diff options
| -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;  | 
