Вопросы с тегом «isr»

21
Может ли функция вызываться автоматически при изменении входа?

В настоящее время мой эскиз проверяет входной контакт каждый раз вокруг основного цикла. Если он обнаруживает изменение, он вызывает пользовательскую функцию, чтобы ответить на него. Вот код (урезанный до самого необходимого): int pinValue = LOW; void pinChanged() { //... } void setup() {...

9
Необходима ли изменчивость, когда переменная доступна из> 1 ISR, но не используется совместно с ISR?

Это четко задокументированы , что , когда глобальные данные совместно с ISR и основной программой, то данные должны быть объявлены volatileдля того , чтобы видимость гарантии памяти (и , что достаточно только для данных 1 байт, требуется какой- либо большое специальные меры , чтобы гарантировать...

8
Как обновить переменную в ISR с помощью таймеров

Я пытаюсь проверить частоту Timer3 с помощью счетчика. Значение счетчика, объявленное как volatile, увеличивается в ISR, и каждую секунду сумма отображается в основном цикле, а значение сбрасывается в ноль. Таймер был настроен правильно. (Если я выберу таймер 3 Гц, я вижу мигание светодиода)...

8
Прерывание Arduino (при смене контактов)

Я использую функцию прерывания, чтобы заполнить массив значениями, полученными из digitalRead(). void setup() { Serial.begin(115200); attachInterrupt(0, test_func, CHANGE); } void test_func(){ if(digitalRead(pin)==HIGH){ test_array[x]=1; } else if(digitalRead(pin)==LOW){ test_array[x]=0; } x=x+1; }...