Merge branch 'debounce_refactor' of https://github.com/alex-ong/qmk_firmware into debounce_refactor

This commit is contained in:
alex-ong 2019-01-26 23:21:27 +11:00
commit 503e02db79
4 changed files with 7 additions and 9 deletions

View file

@ -265,11 +265,11 @@ endif
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
# Debounce Modules. If implemented in matrix.c, don't use these. # Debounce Modules. If implemented in matrix.c, don't use these.
ifeq ($(strip $(DEBOUNCE_ALGO)), manual) ifeq ($(strip $(DEBOUNCE_TYPE)), custom)
# Do nothing. do your debouncing in matrix.c # Do nothing. do your debouncing in matrix.c
else ifeq ($(strip $(DEBOUNCE_ALGO)), sym_g) else ifeq ($(strip $(DEBOUNCE_TYPE)), sym_g)
QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_sym_g.c QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_sym_g.c
else ifeq ($(strip $(DEBOUNCE_ALGO)), eager_pk) else ifeq ($(strip $(DEBOUNCE_TYPE)), eager_pk)
QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_eager_pk.c QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_eager_pk.c
else # default algorithm. Won't be used if we have a custom_matrix that doesn't utilize it else # default algorithm. Won't be used if we have a custom_matrix that doesn't utilize it
QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_sym_g.c QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_sym_g.c

View file

@ -68,7 +68,7 @@ SUBPROJECT_rev1 = yes
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
CUSTOM_MATRIX = no CUSTOM_MATRIX = no
DEBOUNCE_ALGO = manual DEBOUNCE_TYPE = custom
LAYOUTS = split60 LAYOUTS = split60

View file

@ -1,7 +1,5 @@
#pragma once #pragma once
#include "matrix.h"
// raw is the current key state // raw is the current key state
// on entry cooked is the previous debounced state // on entry cooked is the previous debounced state
// on exit cooked is the current debounced state // on exit cooked is the current debounced state

View file

@ -16,9 +16,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Basic global debounce algorithm. Used in 99% of keyboards at time of implementation Basic global debounce algorithm. Used in 99% of keyboards at time of implementation
When no state changes have occured for DEBOUNCE milliseconds, we push the state. When no state changes have occured for DEBOUNCE milliseconds, we push the state.
*/ */
#include "debounce.h"
#include "matrix.h" #include "matrix.h"
#include "timer.h" #include "timer.h"
#include "quantum.h"
#ifndef DEBOUNCE #ifndef DEBOUNCE
#define DEBOUNCE 5 #define DEBOUNCE 5
#endif #endif
@ -45,13 +45,13 @@ void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
#else //no debouncing. #else //no debouncing.
void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed)
{ {
for (int i = 0; i < MATRIX_ROWS; i++) { for (int i = 0; i < num_rows; i++) {
cooked[i] = raw[i]; cooked[i] = raw[i];
} }
} }
#endif #endif
bool debounce_active() { bool debounce_active(void) {
return debouncing; return debouncing;
} }