Petfilamachine/libraries/EncButton/examples/callbackISR/callbackISR.ino

30 lines
975 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Пример с обработчиками в прерывании
#include <EncButton.h>
EncButton<EB_CALLBACK, 2, 3, 4> enc; // энкодер с кнопкой <A, B, KEY>
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
// вызов подключенных функций будет здесь,
// чтобы не грузить прерывание
}