isr.ino 763 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // энкодер и прерывания
  2. #include <Arduino.h>
  3. #include <EncButton.h>
  4. EncButton eb(2, 3, 4);
  5. /*
  6. // esp8266/esp32
  7. IRAM_ATTR void isr() {
  8. eb.tickISR();
  9. }
  10. */
  11. void isr() {
  12. eb.tickISR();
  13. }
  14. void setup() {
  15. Serial.begin(115200);
  16. attachInterrupt(0, isr, CHANGE);
  17. attachInterrupt(1, isr, CHANGE);
  18. eb.setEncISR(true);
  19. }
  20. void loop() {
  21. eb.tick();
  22. if (eb.turn()) {
  23. Serial.print("turn: dir ");
  24. Serial.print(eb.dir());
  25. Serial.print(", fast ");
  26. Serial.print(eb.fast());
  27. Serial.print(", hold ");
  28. Serial.print(eb.pressing());
  29. Serial.print(", counter ");
  30. Serial.println(eb.counter);
  31. }
  32. delay(100); // имитация загруженной программы
  33. }