X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=keyboard%2Fhbkb%2Fmatrix.c;h=86c18b4b2af77de69941055fa899c3781535e870;hb=4b44e106b38f7c4143c51ad4f0b0331a96925537;hp=a24d24b8c3bd5aa5c4cfa8f0370db00054734319;hpb=81d2753ab07890532ea8c4bd6a68de3e5e08ca33;p=max%2Ftmk_keyboard.git diff --git a/keyboard/hbkb/matrix.c b/keyboard/hbkb/matrix.c index a24d24b8..86c18b4b 100644 --- a/keyboard/hbkb/matrix.c +++ b/keyboard/hbkb/matrix.c @@ -32,62 +32,22 @@ along with this program. If not, see . * COL: PD0-7 * ROW: PB0-7, PF4-7 */ - -#if (MATRIX_COLS > 16) -# error "MATRIX_COLS must not exceed 16" -#endif -#if (MATRIX_ROWS > 255) -# error "MATRIX_ROWS must not exceed 255" -#endif - - #ifndef DEBOUNCE -# define DEBOUNCE 0 +# define DEBOUNCE 10 #endif static uint8_t debouncing = DEBOUNCE; -// matrix state buffer(1:on, 0:off) -#if (MATRIX_COLS <= 8) -static uint8_t *matrix; -static uint8_t *matrix_prev; -static uint8_t _matrix0[MATRIX_ROWS]; -static uint8_t _matrix1[MATRIX_ROWS]; -#else -static uint16_t *matrix; -static uint16_t *matrix_prev; -static uint16_t _matrix0[MATRIX_ROWS]; -static uint16_t _matrix1[MATRIX_ROWS]; -#endif +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; -#ifdef MATRIX_HAS_GHOST -static bool matrix_has_ghost_in_row(uint8_t row); -#endif -static uint8_t read_col(void); +static matrix_row_t read_cols(void); static void unselect_rows(void); static void select_row(uint8_t row); -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - void matrix_init(void) { - print_enable = true; - debug_enable = true; - debug_matrix = true; - debug_keyboard = false; - debug_mouse = false; - print("debug enabled.\n"); - // JTAG disable for PORT F. write JTD bit twice within four cycles. MCUCR |= (1<