From dfa898807df3a4dbd63a7a4b846a37e9ab2c182f Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Wed, 9 Feb 2022 09:22:45 +0800 Subject: [PATCH] Update matrix.c --- quantum/matrix.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/quantum/matrix.c b/quantum/matrix.c index 483d518ecc..8596c2eabd 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -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 } }