X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=keyboard%2Fhbkb%2Fmatrix.c;h=86c18b4b2af77de69941055fa899c3781535e870;hb=e924af9439b6128ba62f3b3109a856cf3a84ce91;hp=d7c06636420532ebe84bb229ac08a48b22964a3e;hpb=81706d1130fdc3c0d6d110f4d8665c47ffd7fb59;p=max%2Ftmk_keyboard.git
diff --git a/keyboard/hbkb/matrix.c b/keyboard/hbkb/matrix.c
index d7c06636..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<