Improve ENCODER_DEFAULT_POS to recognize lost ticks (#16932)

This commit is contained in:
Marek Wyborski 2022-07-02 14:12:41 +02:00 committed by GitHub
parent 3ecb0a80af
commit b8e8a20ca6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -163,7 +163,14 @@ static bool encoder_update(uint8_t index, uint8_t state) {
index += thisHand; index += thisHand;
#endif #endif
encoder_pulses[i] += encoder_LUT[state & 0xF]; encoder_pulses[i] += encoder_LUT[state & 0xF];
#ifdef ENCODER_DEFAULT_POS
if ((encoder_pulses[i] >= resolution) || (encoder_pulses[i] <= -resolution) || ((state & 0x3) == ENCODER_DEFAULT_POS)) {
if (encoder_pulses[i] >= 1) {
#else
if (encoder_pulses[i] >= resolution) { if (encoder_pulses[i] >= resolution) {
#endif
encoder_value[index]++; encoder_value[index]++;
changed = true; changed = true;
#ifdef ENCODER_MAP_ENABLE #ifdef ENCODER_MAP_ENABLE
@ -172,7 +179,12 @@ static bool encoder_update(uint8_t index, uint8_t state) {
encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE); encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE);
#endif // ENCODER_MAP_ENABLE #endif // ENCODER_MAP_ENABLE
} }
#ifdef ENCODER_DEFAULT_POS
if (encoder_pulses[i] <= -1) {
#else
if (encoder_pulses[i] <= -resolution) { // direction is arbitrary here, but this clockwise if (encoder_pulses[i] <= -resolution) { // direction is arbitrary here, but this clockwise
#endif
encoder_value[index]--; encoder_value[index]--;
changed = true; changed = true;
#ifdef ENCODER_MAP_ENABLE #ifdef ENCODER_MAP_ENABLE
@ -183,7 +195,6 @@ static bool encoder_update(uint8_t index, uint8_t state) {
} }
encoder_pulses[i] %= resolution; encoder_pulses[i] %= resolution;
#ifdef ENCODER_DEFAULT_POS #ifdef ENCODER_DEFAULT_POS
if ((state & 0x3) == ENCODER_DEFAULT_POS) {
encoder_pulses[i] = 0; encoder_pulses[i] = 0;
} }
#endif #endif