diff --git a/src/app_i2c_if.c b/src/app_i2c_if.c index 8d89e52..91232f6 100644 --- a/src/app_i2c_if.c +++ b/src/app_i2c_if.c @@ -30,7 +30,7 @@ int app_i2c_if_init(void) { RESET_PeripheralReset(kI2C0_RST_N_SHIFT_RSTn); - APP_I2C_INSTANCE->CLKDIV = 7U; + APP_I2C_INSTANCE->CLKDIV = 2U; APP_I2C_INSTANCE->SLVADR[0] = I2C_SLVADR_SLVADR(APP_I2C_ADDR); // Use slave address 0 APP_I2C_INSTANCE->SLVQUAL0 = 0UL; // Use the address as-is diff --git a/src/app_reg_if.c b/src/app_reg_if.c index bdd282b..182a6d0 100644 --- a/src/app_reg_if.c +++ b/src/app_reg_if.c @@ -9,6 +9,7 @@ #define MODULE_ID_SYS_UTILS 0 #define MODULE_ID_GPIO 1 #define MODULE_ID_ADC 2 +#define MODULE_ID_END 3 typedef uint16_t (*module_reg_read_t)(uint8_t offset); typedef void (*module_reg_write_t)(uint8_t offset, uint16_t data); @@ -39,11 +40,17 @@ static const module_reg_t s_module_regs[] = { uint16_t app_reg_if_read(uint8_t reg) { uint8_t module_id = (reg >> 4U) & 0x0FU; - return s_module_regs[module_id].read(reg & 0x0FU); + if (module_id < MODULE_ID_END) { + return s_module_regs[module_id].read(reg & 0x0FU); + } + + return 0x5555; } void app_reg_if_write(uint8_t reg, uint16_t data) { uint8_t module_id = (reg >> 4U) & 0x0FU; - s_module_regs[module_id].write((reg & 0x0FU), data); + if (module_id < MODULE_ID_END) { + s_module_regs[module_id].write((reg & 0x0FU), data); + } }