Mod on rotary encoder to avoid bouncing

This commit is contained in:
Sjef Verhoeven PE5PVB
2024-03-26 13:25:31 +01:00
parent c8fe5d2af2
commit 2c2273b3ab
+4 -4
View File
@@ -82,6 +82,7 @@ bool menu;
bool menuopen; bool menuopen;
bool mwstepsize; bool mwstepsize;
bool nobattery; bool nobattery;
bool optenc;
bool rdsflagreset; bool rdsflagreset;
bool rdsreset; bool rdsreset;
bool RDSSPYTCP; bool RDSSPYTCP;
@@ -168,7 +169,6 @@ byte memoryposold;
byte memoryposstatus; byte memoryposstatus;
byte menupage; byte menupage;
byte MSold; byte MSold;
byte optenc;
byte poweroptions; byte poweroptions;
byte rdsblockold; byte rdsblockold;
byte rdsqualityold; byte rdsqualityold;
@@ -3497,7 +3497,7 @@ void read_encoder() {
if (digitalRead(ROTARY_PIN_B)) old_AB |= 0x01; if (digitalRead(ROTARY_PIN_B)) old_AB |= 0x01;
encval += enc_states[( old_AB & 0x0f )]; encval += enc_states[( old_AB & 0x0f )];
if (optenc == 1) { if (optenc) {
if (encval > 3) { if (encval > 3) {
if (rotarymode) rotary = -1; else rotary = 1; if (rotarymode) rotary = -1; else rotary = 1;
encval = 0; encval = 0;
@@ -3506,10 +3506,10 @@ void read_encoder() {
encval = 0; encval = 0;
} }
} else { } else {
if (encval > 2) { if (encval > 3) {
if (rotarymode) rotary = -1; else rotary = 1; if (rotarymode) rotary = -1; else rotary = 1;
encval = 0; encval = 0;
} else if (encval < -2) { } else if (encval < -3) {
if (rotarymode) rotary = 1; else rotary = -1; if (rotarymode) rotary = 1; else rotary = -1;
encval = 0; encval = 0;
} }