#include <stdint.h> #include <stdbool.h> #include <avr/io.h> #include "wait.h" #include "print.h" #include "debug.h" #include "util.h" #include "matrix.h" #include "timer.h" #ifdef CONSOLE_ENABLE static uint16_t matrix_scan_count = 0; static uint32_t matrix_timer = 0; void matrix_check_scan_rate(void) { matrix_scan_count++; if (matrix_scan_count > 1000) { uint32_t timer_now = timer_read32(); uint16_t ms_per_thousand = TIMER_DIFF_32(timer_now, matrix_timer); uint16_t rate_per_second = 1000000UL / ms_per_thousand; print("scan_rate: "); pdec(rate_per_second); print("\n"); matrix_timer = timer_now; matrix_scan_count = 0; } } static uint32_t last_scan_time = 0; void matrix_time_between_scans(void) { if (timer_elapsed(last_scan_time) > 1) { print(">1ms elapsed since last scan: "); pdec(timer_elapsed(last_scan_time)); print("\n"); } last_scan_time = timer_read(); } #endif