diff options
author | Jack Humbert <jack.humb@gmail.com> | 2016-05-09 00:36:23 -0400 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2016-05-09 00:36:23 -0400 |
commit | 684793360cdb08ac1e50a6d27e1796fadd527adb (patch) | |
tree | b666da50e3910825815083a6796255ac96362455 /quantum | |
parent | 35a72ca5e1abaf2eece7f61c17f94260ea1d16c7 (diff) | |
download | qmk_firmware-684793360cdb08ac1e50a6d27e1796fadd527adb.tar.gz qmk_firmware-684793360cdb08ac1e50a6d27e1796fadd527adb.zip |
quantum accommodates more than 16 columns
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/matrix.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/quantum/matrix.c b/quantum/matrix.c index 2dab6ae941..7d70f728d4 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -42,6 +42,13 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS]; static matrix_row_t matrix_reversed_debouncing[MATRIX_COLS]; #endif + +#if MATRIX_COLS > 16 + #define SHIFTER 1UL +#else + #define SHIFTER 1 +#endif + static matrix_row_t read_cols(void); static void init_cols(void); static void unselect_rows(void); @@ -235,15 +242,15 @@ static matrix_row_t read_cols(void) #endif if ((col & 0xF0) == 0x20) { - result |= (PINB&(1<<(col & 0x0F)) ? 0 : (1<<x)); + result |= (PINB&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x)); } else if ((col & 0xF0) == 0x30) { - result |= (PINC&(1<<(col & 0x0F)) ? 0 : (1<<x)); + result |= (PINC&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x)); } else if ((col & 0xF0) == 0x40) { - result |= (PIND&(1<<(col & 0x0F)) ? 0 : (1<<x)); + result |= (PIND&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x)); } else if ((col & 0xF0) == 0x50) { - result |= (PINE&(1<<(col & 0x0F)) ? 0 : (1<<x)); + result |= (PINE&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x)); } else if ((col & 0xF0) == 0x60) { - result |= (PINF&(1<<(col & 0x0F)) ? 0 : (1<<x)); + result |= (PINF&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x)); } } return result; |