From 95e56d6da373df1d03983e43d9925d159190c369 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:15:26 +0100 Subject: [PATCH] Fix for multiple AMUX usage --- keyboards/cipulot/common/ec_switch_matrix.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/keyboards/cipulot/common/ec_switch_matrix.c b/keyboards/cipulot/common/ec_switch_matrix.c index 945e435e1557..845ef99d2234 100644 --- a/keyboards/cipulot/common/ec_switch_matrix.c +++ b/keyboards/cipulot/common/ec_switch_matrix.c @@ -153,7 +153,10 @@ void ec_noise_floor(void) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { - uint8_t adjusted_col = amux == 0 ? col : col + amux_n_col_sizes[amux - 1]; + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } @@ -178,7 +181,10 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - uint8_t adjusted_col = amux == 0 ? col : col + amux_n_col_sizes[amux - 1]; + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) {