// Пример с обработчиками в прерывании #include EncButton enc; // энкодер с кнопкой void setup() { Serial.begin(9600); enc.attach(TURN_HANDLER, myTurn); // подключим поворот // прерывание обеих фаз энкодера на функцию isr attachInterrupt(0, isr, CHANGE); attachInterrupt(1, isr, CHANGE); } void myTurn() { Serial.print("TURN_HANDLER: "); Serial.println(enc.counter); } void isr() { enc.tickISR(); // тикер в прерывании // Не вызывает подключенные коллбэки внутри прерывания!!! } void loop() { enc.tick(); // дополнительный опрос таймаутов и коллбэков в loop // вызов подключенных функций будет здесь, // чтобы не грузить прерывание }