From 5778e39687a1436cf2b5de3853062d240a1a777e Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sun, 23 Apr 2023 10:07:52 +0200 Subject: [PATCH] Resync `lcd_encoder_diff` when clicking Flash: +4B SRAM: 0B --- Firmware/lcd.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Firmware/lcd.cpp b/Firmware/lcd.cpp index d02e09bbc..b1b15176d 100644 --- a/Firmware/lcd.cpp +++ b/Firmware/lcd.cpp @@ -692,6 +692,11 @@ void lcd_knob_update() { lcd_encoder_diff %= ENCODER_PULSES_PER_STEP; did_rotate = true; } + else { + // Get lcd_encoder_diff in sync with the encoder hard steps. + // We assume that a click happens only when the knob is rotated into a stable position + lcd_encoder_diff = 0; + } } Sound_MakeSound(did_rotate ? e_SOUND_TYPE_EncoderMove : e_SOUND_TYPE_ButtonEcho);