~ruther/qmk_firmware

684793360cdb08ac1e50a6d27e1796fadd527adb — Jack Humbert 9 years ago 35a72ca
quantum accommodates more than 16 columns
1 files changed, 12 insertions(+), 5 deletions(-)

M quantum/matrix.c
M quantum/matrix.c => quantum/matrix.c +12 -5
@@ 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;