diff options
author | Nick Brassel <nick@tzarc.org> | 2022-08-28 14:23:01 +1000 |
---|---|---|
committer | Nick Brassel <nick@tzarc.org> | 2022-08-28 14:23:01 +1000 |
commit | 0a3f7e48690bb2b7b008300a54554979a55be19a (patch) | |
tree | 7499d52f20040ed7d5a56496ecb81ed114f80719 /quantum/encoder.c | |
parent | fc0bf67f372c38f72c303cdec21b1d4afb5e8cb4 (diff) | |
parent | 9b5b0722555891ba94f240760ef3a6d4c870fd13 (diff) |
Merge remote-tracking branch 'upstream/develop'
Diffstat (limited to 'quantum/encoder.c')
-rw-r--r-- | quantum/encoder.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/quantum/encoder.c b/quantum/encoder.c index 105bed0147..5f8a7ce080 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -163,27 +163,38 @@ static bool encoder_update(uint8_t index, uint8_t state) { index += thisHand; #endif 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) { - encoder_value[index]++; - changed = true; +#endif + + encoder_value[index]++; + changed = true; #ifdef ENCODER_MAP_ENABLE - encoder_exec_mapping(index, ENCODER_COUNTER_CLOCKWISE); + encoder_exec_mapping(index, ENCODER_COUNTER_CLOCKWISE); #else // ENCODER_MAP_ENABLE encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE); #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 - encoder_value[index]--; - changed = true; +#endif + encoder_value[index]--; + changed = true; #ifdef ENCODER_MAP_ENABLE - encoder_exec_mapping(index, ENCODER_CLOCKWISE); + encoder_exec_mapping(index, ENCODER_CLOCKWISE); #else // ENCODER_MAP_ENABLE encoder_update_kb(index, ENCODER_CLOCKWISE); #endif // ENCODER_MAP_ENABLE - } - encoder_pulses[i] %= resolution; + } + encoder_pulses[i] %= resolution; #ifdef ENCODER_DEFAULT_POS - if ((state & 0x3) == ENCODER_DEFAULT_POS) { encoder_pulses[i] = 0; } #endif |