summaryrefslogtreecommitdiffstats
path: root/keyboards/moon/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/moon/matrix.c')
-rw-r--r--keyboards/moon/matrix.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/keyboards/moon/matrix.c b/keyboards/moon/matrix.c
index 24b4d49560..0615b60ad3 100644
--- a/keyboards/moon/matrix.c
+++ b/keyboards/moon/matrix.c
@@ -158,10 +158,12 @@ static void select_row(uint8_t row) {
}
static uint16_t read_cols(void) {
- uint16_t state_1 = pca9555_readPins(IC2, PCA9555_PORT0);
- uint16_t state_2 = pca9555_readPins(IC2, PCA9555_PORT1);
+ uint8_t state_1 = 0;
+ uint8_t state_2 = 0;
+ pca9555_readPins(IC2, PCA9555_PORT0, &state_1);
+ pca9555_readPins(IC2, PCA9555_PORT1, &state_2);
- uint16_t state = ((state_1 & PORT0_COLS_MASK) << 3) | ((state_2 & PORT1_COLS_MASK));
+ uint16_t state = (((uint16_t)state_1 & PORT0_COLS_MASK) << 3) | (((uint16_t)state_2 & PORT1_COLS_MASK));
// A low pin indicates an active column
return (~state) & COLS_MASK;