Petfilamachine/libraries/EncButton/examples/optimisation/optimisation.ino

42 lines
1.4 KiB
Arduino
Raw Normal View History

2022-03-11 22:50:28 +03:00
// пример с небольшой оптимизацией опроса
#include <EncButton.h>
EncButton<EB_TICK, 2, 3, 4> enc; // энкодер с кнопкой <A, B, KEY>
//EncButton<EB_TICK, 2, 3> enc; // просто энкодер <A, B>
//EncButton<EB_TICK, 4> enc; // просто кнопка <KEY>
void setup() {
Serial.begin(9600);
}
void loop() {
// тик вернёт отличное от нуля значение, если произошло событие:
// 1 - left + turn
// 2 - right + turn
// 3 - leftH + turnH
// 4 - rightH + turnH
// 5 - click
// 6 - held
// 7 - step
// 8 - press
// опрос этих событий можно проводить в условии,
// чтобы "не тратить время" на постоянный опрос в loop
if (enc.tick()) {
if (enc.turn()) Serial.println("turn");
if (enc.turnH()) Serial.println("hold + turn");
if (enc.left()) Serial.println("left");
if (enc.right()) Serial.println("right");
if (enc.leftH()) Serial.println("leftH");
if (enc.rightH()) Serial.println("rightH");
if (enc.press()) Serial.println("press");
if (enc.click()) Serial.println("click");
if (enc.held()) Serial.println("held");
if (enc.step()) Serial.println("step");
// в конце лучше вызвать resetState(), чтобы сбросить необработанные флаги!
enc.resetState();
}
}