From a13d74779b25dda964d81b36b1ab12863111e8f5 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 31 May 2018 10:58:21 +0200 Subject: Handle high-frequency key presses in debounce logic --- src/system.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/system.cc b/src/system.cc index 9b04f69..66b3a53 100644 --- a/src/system.cc +++ b/src/system.cc @@ -152,10 +152,12 @@ void System::next_mode(void) void System::debounce_start(void) { - btn_debounce = 1; - wdt_reset(); - WDTCSR = _BV(WDE) | _BV(WDCE); - WDTCSR = _BV(WDIE) | _BV(WDP1) | _BV(WDP0); + if (!btn_debounce) { + btn_debounce = 1; + wdt_reset(); + WDTCSR = _BV(WDE) | _BV(WDCE); + WDTCSR = _BV(WDIE) | _BV(WDP1) | _BV(WDP0); + } } void System::debounce_done(void) -- cgit v1.2.3