Всем доброго времени суток) Есть похожая вот на эту программу штука на Ардуино: Код (C++): void setup() { // что-то объявляем } void handler_0() { Flag_0 = !Flag_0; detachInterrupt(0); } void handler_1() { Flag_1 = !Flag_1; detachInterrupt(1); } void loop() { // кусок программы if(condition_1) { attachInterrupt(0, handler_0, CHANGE); } if(condition_2) { attachInterrupt(1, handler_1, CHANGE); } // кусок программы } У меня несколько вопросов: 1) Прерывания будут корректно работать в этой программе?) или их обязательно объявлять только в setup? 2) Функция micros() "заметит", что часть времени ушло на выполнение обработчика, верно?
1. Без разницы, где объявлять. Flag_x объявить с volatile. По поводу detach внутри прерывания под вопросом - слышал, что не работает. Сам не пробовал. 2. Заметит.