feat(kscan): Improve matrix debouncing

Switched the GPIO matrix driver to debouncing using a simple integrator
algorithm. Whenever a key is pressed, we now scan at a rate controlled
by debounce-scan-period-ms (default 1 ms) until all keys are released,
then return to either waiting for an interrupt or polling more slowly.

The timers for key press and release can now be controlled separately,
so debounce-period is deprecated in favor of debounce-press-ms and
debounce-release-ms. Global Kconfig options
ZMK_KSCAN_DEBOUNCE_PRESS_MS and ZMK_KSCAN_DEBOUNCE_RELEASE_MS are also
added to make these easier to set.

Added documentation for debouncing options.
This commit is contained in:
Joel Spadin
2021-07-31 01:23:33 -05:00
committed by Pete Johanson
parent 5cc7c280a5
commit f946dc6893
8 changed files with 348 additions and 64 deletions

View File

@@ -11,6 +11,7 @@ module.exports = {
Features: [
"features/keymaps",
"features/combos",
"features/debouncing",
"features/displays",
"features/encoders",
"features/underglow",