summary refs log tree commit diff
diff options
context:
space:
mode:
authorTakeshi ISHII <2170248+mtei@users.noreply.github.com>2021-01-28 02:34:50 +0900
committerGitHub <noreply@github.com>2021-01-28 04:34:50 +1100
commitc27f16158d3f9524bb2d608ef4918783e7551637 (patch)
treeb12d6d7b6849b4954d5912b6ff9576f1c6250825
parent6937f1d70e7d48980032446b137462a66c457bd8 (diff)
add get_matrix_scan_rate() to tmk_core/common/keyboard.c (#11489)
-rw-r--r--common_features.mk2
-rw-r--r--tmk_core/common/keyboard.c11
-rw-r--r--tmk_core/common/keyboard.h2
3 files changed, 13 insertions, 2 deletions
diff --git a/common_features.mk b/common_features.mk
index 8ac53ec45a..b9cd084d29 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -24,6 +24,8 @@ QUANTUM_SRC += \
 ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
     OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
     CONSOLE_ENABLE = yes
+else ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), api)
+    OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
 endif
 
 ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c
index 8c7bdc8b55..b35620e7fd 100644
--- a/tmk_core/common/keyboard.c
+++ b/tmk_core/common/keyboard.c
@@ -97,21 +97,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #endif
 
 // Only enable this if console is enabled to print to
-#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
+#if defined(DEBUG_MATRIX_SCAN_RATE)
 static uint32_t matrix_timer      = 0;
 static uint32_t matrix_scan_count = 0;
+static uint32_t last_matrix_scan_count = 0;
 
 void matrix_scan_perf_task(void) {
     matrix_scan_count++;
 
     uint32_t timer_now = timer_read32();
     if (TIMER_DIFF_32(timer_now, matrix_timer) > 1000) {
+#    if defined(CONSOLE_ENABLE)
         dprintf("matrix scan frequency: %d\n", matrix_scan_count);
-
+#    endif
+        last_matrix_scan_count = matrix_scan_count;
         matrix_timer      = timer_now;
         matrix_scan_count = 0;
     }
 }
+
+uint32_t get_matrix_scan_rate(void) {
+    return last_matrix_scan_count;
+}
 #else
 #    define matrix_scan_perf_task()
 #endif
diff --git a/tmk_core/common/keyboard.h b/tmk_core/common/keyboard.h
index d04e685cdb..70e8f7e2c7 100644
--- a/tmk_core/common/keyboard.h
+++ b/tmk_core/common/keyboard.h
@@ -73,6 +73,8 @@ void keyboard_post_init_user(void);
 void housekeeping_task_kb(void);
 void housekeeping_task_user(void);
 
+uint32_t get_matrix_scan_rate(void);
+
 #ifdef __cplusplus
 }
 #endif