X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=converter%2Fpana_m8%2Fpana_m8.c;h=b455675100eb5cebef0c68c40ecc4ffa7144908b;hb=f19780d4ad85ee26172ae28bdea6ce88fd6db9fa;hp=19f884877a19a3c1df57ebc7cb6fe88ac158f5b4;hpb=64c8f2375c652957f292e1919a67650a1c8f58cb;p=max%2Ftmk_keyboard.git diff --git a/converter/pana_m8/pana_m8.c b/converter/pana_m8/pana_m8.c index 19f88487..b4556751 100644 --- a/converter/pana_m8/pana_m8.c +++ b/converter/pana_m8/pana_m8.c @@ -3,16 +3,19 @@ #include "matrix.h" #include "led.h" #include "wait.h" +#include "timer.h" #include "debug.h" #define CLK_HI() (PORTD |= (1<<0)) #define CLK_LO() (PORTD &= ~(1<<0)) -#define STATE() (PIND & (1<<1)) +#define STATE() (!!(PIND & (1<<1))) #define RST_HI() (PORTD |= (1<<3)) #define RST_LO() (PORTD &= ~(1<<3)) #define SENSE() (PIND & (1<<2)) static matrix_row_t matrix[8] = {}; +static matrix_row_t matrix_debouncing[8] = {}; +static uint16_t debouncing_time = 0; void matrix_init(void) @@ -48,10 +51,10 @@ uint8_t matrix_scan(void) CLK_HI(); wait_us(10); - if (STATE()) { - matrix[row] |= (1< DEBOUNCE) { + for (int row = 0; row < MATRIX_ROWS; row++) { + matrix[row] = matrix_debouncing[row]; + } + debouncing_time = 0; + } return 1; }