// энкодер и прерывания
#include <Arduino.h>
#include <EncButton.h>
EncButton eb(2, 3, 4);
/*
// esp8266/esp32
IRAM_ATTR void isr() {
eb.tickISR();
}
*/
void isr() {
eb.tickISR();
}
void setup() {
Serial.begin(115200);
attachInterrupt(0, isr, CHANGE);
attachInterrupt(1, isr, CHANGE);
eb.setEncISR(true);
}
void loop() {
eb.tick();
if (eb.turn()) {
Serial.print("направление: шаг ");
Serial.print(eb.dir());
Serial.print(", быстро ");
Serial.print(eb.fast());
Serial.print(", кнопка ");
Serial.print(eb.pressing());
Serial.print(", значение ");
Serial.println(eb.counter);
}
delay(100); // имитация загруженной программы
}