]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - tmk_core/common/keyboard.c
make some change to complie stm32_f103_onekey with new version of Chibios (#583)
[max/tmk_keyboard.git] / tmk_core / common / keyboard.c
index 864db2b295f6f2f7b1127da9a7cac9688cfde857..2302acb7910ffda5c4d686c796ed09b459165919 100644 (file)
@@ -93,7 +93,7 @@ void keyboard_init(void)
 }
 
 /*
- * Do keyboard routine jobs: scan mantrix, light LEDs, ...
+ * Do keyboard routine jobs: scan matrix, light LEDs, ...
  * This is repeatedly called as fast as possible.
  */
 void keyboard_task(void)
@@ -126,17 +126,18 @@ void keyboard_task(void)
             matrix_ghost[r] = matrix_row;
 #endif
             if (debug_matrix) matrix_print();
-            for (uint8_t c = 0; c < MATRIX_COLS; c++) {
-                if (matrix_change & ((matrix_row_t)1<<c)) {
+            matrix_row_t col_mask = 1;
+            for (uint8_t c = 0; c < MATRIX_COLS; c++, col_mask <<= 1) {
+                if (matrix_change & col_mask) {
                     keyevent_t e = (keyevent_t){
                         .key = (keypos_t){ .row = r, .col = c },
-                        .pressed = (matrix_row & ((matrix_row_t)1<<c)),
+                        .pressed = (matrix_row & col_mask),
                         .time = (timer_read() | 1) /* time should not be 0 */
                     };
                     action_exec(e);
                     hook_matrix_change(e);
                     // record a processed key
-                    matrix_prev[r] ^= ((matrix_row_t)1<<c);
+                    matrix_prev[r] ^= col_mask;
 
                     // This can miss stroke when scan matrix takes long like Topre
                     // process a key per task call