Fix `lcd_encoder_diff` getting out of sync with the knob hard steps

Flash: +18B
SRAM: 0B
This commit is contained in:
Alex Voinea 2023-04-23 09:48:09 +02:00
parent ee8b95b556
commit 1f181a949a
No known key found for this signature in database
GPG Key ID: 37EDFD565CB33BAD
1 changed files with 5 additions and 3 deletions

View File

@ -684,9 +684,11 @@ void lcd_knob_update() {
if (lcd_backlight_wake_trigger) {
lcd_backlight_wake_trigger = false;
backlight_wake();
if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) {
lcd_encoder += lcd_encoder_diff / ENCODER_PULSES_PER_STEP;
lcd_encoder_diff = 0;
int8_t enc_diff = lcd_encoder_diff;
if (abs(enc_diff) >= ENCODER_PULSES_PER_STEP) {
lcd_encoder += enc_diff / ENCODER_PULSES_PER_STEP;
enc_diff %= ENCODER_PULSES_PER_STEP;
lcd_encoder_diff = enc_diff;
Sound_MakeSound(e_SOUND_TYPE_EncoderMove);
} else {
Sound_MakeSound(e_SOUND_TYPE_ButtonEcho);