aboutsummaryrefslogtreecommitdiff
path: root/keyboards/preonic
diff options
context:
space:
mode:
authorSergey Vlasov <sigprof@gmail.com>2021-10-18 03:09:33 +0300
committerGitHub <noreply@github.com>2021-10-18 11:09:33 +1100
commit587f7508fca50b48578e61c8fb1e1972b56381e1 (patch)
tree6bbd882d152dc533d2743daaefdbd6174c6b7c94 /keyboards/preonic
parentd2f9e352c81fbf3fb04c8978dbe9151ded10cc09 (diff)
downloadqmk_firmware-587f7508fca50b48578e61c8fb1e1972b56381e1.tar.gz
qmk_firmware-587f7508fca50b48578e61c8fb1e1972b56381e1.zip
preonic/rev3_drop: Fix old custom matrix code (#14857)
The old custom matrix code for Preonic rev3 was relying on the `matrix_col_t` type, because the code actually reads the row pins and assembles the state for whole columns, and then transposes the matrix in the custom debouncing code. Restore that type (which is no longer defined by the core QMK code) to make the custom matrix code work properly (when `matrix_row_t` was used instead of `matrix_col_t`, the state of two electrical rows was lost, and those electrical rows corresponded to the bottom physical row, which did not work).
Diffstat (limited to 'keyboards/preonic')
-rw-r--r--keyboards/preonic/rev3_drop/matrix.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/keyboards/preonic/rev3_drop/matrix.c b/keyboards/preonic/rev3_drop/matrix.c
index 392997e0a..07171a39e 100644
--- a/keyboards/preonic/rev3_drop/matrix.c
+++ b/keyboards/preonic/rev3_drop/matrix.c
@@ -24,13 +24,15 @@
24#include "debug.h" 24#include "debug.h"
25#include "matrix.h" 25#include "matrix.h"
26 26
27typedef uint16_t matrix_col_t;
28
27/* 29/*
28 * col: { B11, B10, B2, B1, A7, B0 } 30 * col: { B11, B10, B2, B1, A7, B0 }
29 * row: { A10, A9, A8, B15, C13, C14, C15, A2 } 31 * row: { A10, A9, A8, B15, C13, C14, C15, A2 }
30 */ 32 */
31/* matrix state(1:on, 0:off) */ 33/* matrix state(1:on, 0:off) */
32static matrix_row_t matrix[MATRIX_ROWS]; 34static matrix_row_t matrix[MATRIX_ROWS];
33static matrix_row_t matrix_debouncing[MATRIX_COLS]; 35static matrix_col_t matrix_debouncing[MATRIX_COLS];
34static bool debouncing = false; 36static bool debouncing = false;
35static uint16_t debouncing_time = 0; 37static uint16_t debouncing_time = 0;
36 38
@@ -66,7 +68,7 @@ void matrix_init(void) {
66 palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLDOWN); 68 palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLDOWN);
67 69
68 memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); 70 memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
69 memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t)); 71 memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_col_t));
70 72
71 matrix_init_quantum(); 73 matrix_init_quantum();
72} 74}
@@ -74,7 +76,7 @@ void matrix_init(void) {
74uint8_t matrix_scan(void) { 76uint8_t matrix_scan(void) {
75 // actual matrix 77 // actual matrix
76 for (int col = 0; col < MATRIX_COLS; col++) { 78 for (int col = 0; col < MATRIX_COLS; col++) {
77 matrix_row_t data = 0; 79 matrix_col_t data = 0;
78 80
79 // strobe col { B11, B10, B2, B1, A7, B0 } 81 // strobe col { B11, B10, B2, B1, A7, B0 }
80 switch (col) { 82 switch (col) {