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

42 lines
1.4 KiB
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_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();
}
}