|
@@ -205,7 +205,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
|
|
|
# endif
|
|
|
if (MATRIX_IO_DELAY_ALWAYS || current_row + 1 < MATRIX_ROWS) {
|
|
|
MATRIX_DEBUG_DELAY_START();
|
|
|
- matrix_output_unselect_delay(current_row, current_row_value != 0);
|
|
|
+ matrix_output_unselect_delay(current_row, current_row_value != 0); // wait for col signal to go HIGH
|
|
|
MATRIX_DEBUG_DELAY_END();
|
|
|
}
|
|
|
|
|
@@ -238,6 +238,7 @@ static void init_pins(void) {
|
|
|
|
|
|
static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
|
|
|
bool matrix_changed = false;
|
|
|
+ bool key_pressed = false;
|
|
|
|
|
|
// Select col
|
|
|
select_col(current_col);
|
|
@@ -253,6 +254,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
|
|
|
if (readPin(row_pins[row_index]) == 0) {
|
|
|
// Pin LO, set col bit
|
|
|
current_row_value |= (MATRIX_ROW_SHIFTER << current_col);
|
|
|
+ key_pressed = true;
|
|
|
} else {
|
|
|
// Pin HI, clear col bit
|
|
|
current_row_value &= ~(MATRIX_ROW_SHIFTER << current_col);
|
|
@@ -268,7 +270,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
|
|
|
// Unselect col
|
|
|
unselect_col(current_col);
|
|
|
if (MATRIX_IO_DELAY_ALWAYS || current_col + 1 < MATRIX_COLS) {
|
|
|
- matrix_output_unselect_delay(current_row, current_row_value != 0);
|
|
|
+ matrix_output_unselect_delay(current_col, key_pressed); // wait for col signal to go HIGH
|
|
|
}
|
|
|
|
|
|
return matrix_changed;
|