From 6d356114a84fcc022826ea18f93ed05dac031621 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Tue, 26 Jun 2018 18:24:30 -0700 Subject: [PATCH 1/3] Debounce key releases --- right/src/usb_report_updater.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index 6a9e9f0..6497bf5 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -326,7 +326,7 @@ static void updateActiveUsbReports(void) if (keyState->debounceCounter < KEY_DEBOUNCER_TIMEOUT_MSEC) { keyState->current = keyState->previous; - } else if (!keyState->previous && keyState->current) { + } else if (keyState->previous != keyState->current) { keyState->debounceCounter = 0; } From ff99c2e734a0fade225c94dfa5fb93eae4487baf Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Tue, 26 Jun 2018 18:27:01 -0700 Subject: [PATCH 2/3] Change KEY_DEBOUNCER_TIMEOUT_MSEC to match keyswitch datasheets --- right/src/key_debouncer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/right/src/key_debouncer.h b/right/src/key_debouncer.h index c6455bc..25a35b4 100644 --- a/right/src/key_debouncer.h +++ b/right/src/key_debouncer.h @@ -9,7 +9,7 @@ // Macros: #define KEY_DEBOUNCER_INTERVAL_MSEC 1 - #define KEY_DEBOUNCER_TIMEOUT_MSEC 100 + #define KEY_DEBOUNCER_TIMEOUT_MSEC 5 // Functions: From cdfabaec4211c18370a483a9d3cabc996956902d Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Tue, 26 Jun 2018 21:58:48 -0700 Subject: [PATCH 3/3] Make the debounce counters count down --- right/src/key_debouncer.c | 4 ++-- right/src/usb_report_updater.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/right/src/key_debouncer.c b/right/src/key_debouncer.c index 8a85eb3..fceebcb 100644 --- a/right/src/key_debouncer.c +++ b/right/src/key_debouncer.c @@ -11,8 +11,8 @@ void PIT_KEY_DEBOUNCER_HANDLER(void) for (uint8_t slotId=0; slotIddebounceCounter < KEY_DEBOUNCER_TIMEOUT_MSEC) { + if (keyState->debounceCounter) { keyState->current = keyState->previous; } else if (keyState->previous != keyState->current) { - keyState->debounceCounter = 0; + keyState->debounceCounter = KEY_DEBOUNCER_TIMEOUT_MSEC + 1; } if (keyState->current) {