Add support for driving unselected row/col. (#16278)

This commit is contained in:
Nick Brassel 2022-02-09 15:50:13 +11:00 committed by GitHub
parent e26778ceb5
commit efdaa7f972
Failed to generate hash of commit
4 changed files with 19 additions and 139 deletions

View file

@ -82,6 +82,13 @@ static inline void setPinOutput_writeLow(pin_t pin) {
}
}
static inline void setPinOutput_writeHigh(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
setPinOutput(pin);
writePinHigh(pin);
}
}
static inline void setPinInputHigh_atomic(pin_t pin) {
ATOMIC_BLOCK_FORCEON { setPinInputHigh(pin); }
}
@ -141,7 +148,11 @@ static bool select_row(uint8_t row) {
static void unselect_row(uint8_t row) {
pin_t pin = row_pins[row];
if (pin != NO_PIN) {
# ifdef MATRIX_UNSELECT_DRIVE_HIGH
setPinOutput_writeHigh(pin);
# else
setPinInputHigh_atomic(pin);
# endif
}
}
@ -200,7 +211,11 @@ static bool select_col(uint8_t col) {
static void unselect_col(uint8_t col) {
pin_t pin = col_pins[col];
if (pin != NO_PIN) {
# ifdef MATRIX_UNSELECT_DRIVE_HIGH
setPinOutput_writeHigh(pin);
# else
setPinInputHigh_atomic(pin);
# endif
}
}