diff options
Diffstat (limited to 'keyboards/handwired/xealousbrown/matrix.c')
-rw-r--r-- | keyboards/handwired/xealousbrown/matrix.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/keyboards/handwired/xealousbrown/matrix.c b/keyboards/handwired/xealousbrown/matrix.c index cce0d06eb..ba86ab7af 100644 --- a/keyboards/handwired/xealousbrown/matrix.c +++ b/keyboards/handwired/xealousbrown/matrix.c | |||
@@ -28,7 +28,7 @@ extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values | |||
28 | 28 | ||
29 | // matrix code | 29 | // matrix code |
30 | // super fast read_cols code. | 30 | // super fast read_cols code. |
31 | static matrix_row_t read_cols(void) { | 31 | static inline matrix_row_t read_cols(void) { |
32 | return (PINC & (1 << 6) ? 0 : (1UL << 0)) | | 32 | return (PINC & (1 << 6) ? 0 : (1UL << 0)) | |
33 | (PIND & (1 << 7) ? 0 : (1UL << 1)) | | 33 | (PIND & (1 << 7) ? 0 : (1UL << 1)) | |
34 | (PINE & (1 << 6) ? 0 : (1UL << 2)) | | 34 | (PINE & (1 << 6) ? 0 : (1UL << 2)) | |
@@ -100,13 +100,17 @@ uint8_t matrix_scan_custom(matrix_row_t current_matrix[]) { | |||
100 | // Set row, read cols | 100 | // Set row, read cols |
101 | for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { | 101 | for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { |
102 | select_row(current_row); | 102 | select_row(current_row); |
103 | asm volatile("nop"); | 103 | matrix_output_select_delay(); |
104 | asm volatile("nop"); | 104 | |
105 | matrix_row_t cols = read_cols(); | 105 | matrix_row_t cols = read_cols(); |
106 | changed |= (current_matrix[current_row] != cols); | 106 | changed |= (current_matrix[current_row] != cols); |
107 | current_matrix[current_row] = cols; | 107 | current_matrix[current_row] = cols; |
108 | |||
108 | unselect_rows(); | 109 | unselect_rows(); |
110 | //this internally calls matrix_io_delay() | ||
111 | matrix_output_unselect_delay(); | ||
109 | } | 112 | } |
110 | 113 | ||
111 | return changed; | 114 | return changed; |
112 | } | 115 | } |
116 | |||