X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=keyboard%2Fergodox%2Fmatrix.c;h=e35b65c95af4b16410d8a20e410d3b381f2e972c;hb=39da065913380c89246e6f788e1be772947c470e;hp=b0ba1c0e7342f5188bf2b17c28de531753e28c94;hpb=cfc23836e5f9571056d3710b8580c1f27b91ed54;p=max%2Ftmk_keyboard.git diff --git a/keyboard/ergodox/matrix.c b/keyboard/ergodox/matrix.c index b0ba1c0e..e35b65c9 100644 --- a/keyboard/ergodox/matrix.c +++ b/keyboard/ergodox/matrix.c @@ -29,6 +29,9 @@ along with this program. If not, see . #include "matrix.h" #include "ergodox.h" #include "i2cmaster.h" +#ifdef DEBUG_MATRIX_FREQ +#include "timer.h" +#endif #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -44,6 +47,10 @@ static void init_cols(void); static void unselect_rows(uint8_t mcp23018_status); static void select_row(uint8_t mcp23018_status, uint8_t row); +#ifdef DEBUG_MATRIX_FREQ +uint32_t matrix_timer; +uint32_t matrix_scan_count; +#endif inline uint8_t matrix_rows(void) @@ -71,10 +78,29 @@ void matrix_init(void) matrix[i] = 0; matrix_debouncing[i] = 0; } + +#ifdef DEBUG_MATRIX_FREQ + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif } uint8_t matrix_scan(void) { +#ifdef DEBUG_MATRIX_FREQ + matrix_scan_count++; + + uint32_t timer_now = timer_read32(); + if (TIMER_DIFF_32(timer_now, matrix_timer)>1000) { + print("matrix scan frequency: "); + pdec(matrix_scan_count); + print("\n"); + + matrix_timer = timer_now; + matrix_scan_count = 0; + } +#endif + #ifdef KEYMAP_CUB uint8_t layer = biton32(layer_state);