diff --git a/firmware/src/board_defs.h b/firmware/src/board_defs.h index aa365f2..fccbe1e 100644 --- a/firmware/src/board_defs.h +++ b/firmware/src/board_defs.h @@ -6,8 +6,8 @@ #if defined BOARD_MAI_PICO #define I2C_PORT i2c1 -#define I2C_SDA 6 -#define I2C_SCL 7 +#define I2C_SDA 16 +#define I2C_SCL 17 #define I2C_FREQ 400*1000 #define RGB_PIN 13 diff --git a/firmware/src/touch.c b/firmware/src/touch.c index 5871f8d..3a47cae 100644 --- a/firmware/src/touch.c +++ b/firmware/src/touch.c @@ -156,10 +156,13 @@ bool touch_sensor_ok(unsigned i) const uint16_t *touch_raw() { static uint16_t readout[36] = {0}; + // Do not use readout as buffer directly, update readout with buffer when operation finishes + uint16_t buf[36] = {0}; for (int i = 0; i < 3; i++) { - sensor_ok[i] = mpr121_raw(MPR121_BASE_ADDR + i, readout + i * 12, 12); + sensor_ok[i] = mpr121_raw(MPR121_BASE_ADDR + i, buf + i * 12, 12); } + memcpy(readout, buf, sizeof(readout)); return readout; }