X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=keyboard%2Fergodox%2Fmatrix.c;h=e35b65c95af4b16410d8a20e410d3b381f2e972c;hb=6b7921f91b207820e03e33f8bd9a48e50ee3f2c2;hp=b0ba1c0e7342f5188bf2b17c28de531753e28c94;hpb=e6ad104bd8b4edcfc958ebe794894b0560720f43;p=tmk_firmware.git diff --git a/keyboard/ergodox/matrix.c b/keyboard/ergodox/matrix.c index b0ba1c0..e35b65c 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);