callback.ino 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // опрос событий через функцию-обработчик
  2. #include <Arduino.h>
  3. #include <EncButton.h>
  4. EncButton eb(2, 3, 4);
  5. void cb() {
  6. // здесь EB_self - указатель на сам объект
  7. Serial.print("callback: ");
  8. switch (eb.action()) {
  9. case EB_PRESS:
  10. Serial.println("press");
  11. break;
  12. case EB_HOLD:
  13. Serial.println("hold");
  14. break;
  15. case EB_STEP:
  16. Serial.println("step");
  17. break;
  18. case EB_RELEASE:
  19. Serial.print("release. steps: ");
  20. Serial.print(eb.getSteps());
  21. Serial.print(", press for: ");
  22. Serial.print(eb.pressFor());
  23. Serial.print(", hold for: ");
  24. Serial.print(eb.holdFor());
  25. Serial.print(", step for: ");
  26. Serial.println(eb.stepFor());
  27. break;
  28. case EB_CLICK:
  29. Serial.println("click");
  30. break;
  31. case EB_CLICKS:
  32. Serial.print("clicks ");
  33. Serial.println(eb.getClicks());
  34. break;
  35. case EB_TURN:
  36. Serial.print("turn ");
  37. Serial.print(eb.dir());
  38. Serial.print(" ");
  39. Serial.print(eb.fast());
  40. Serial.print(" ");
  41. Serial.println(eb.pressing());
  42. break;
  43. case EB_REL_HOLD:
  44. Serial.println("release hold");
  45. break;
  46. case EB_REL_HOLD_C:
  47. Serial.print("release hold clicks ");
  48. Serial.println(eb.getClicks());
  49. break;
  50. case EB_REL_STEP:
  51. Serial.println("release step");
  52. break;
  53. case EB_REL_STEP_C:
  54. Serial.print("release step clicks ");
  55. Serial.println(eb.getClicks());
  56. break;
  57. default:
  58. Serial.println();
  59. }
  60. }
  61. void setup() {
  62. Serial.begin(115200);
  63. eb.attach(cb);
  64. }
  65. void loop() {
  66. eb.tick();
  67. }