It appears that the write interface extension is the culprit
Code: Select all
inline i2c_regop_res_t write_reg16_addr8(client interface i2c_master_if i,
uint8_t device_addr, uint8_t reg,
uint16_t data) {
uint8_t a_data[3] = {reg, data, data >> 8};
size_t n;
i.write(device_addr, a_data, 3, n, 1);
if (n == 0)
return I2C_REGOP_DEVICE_NACK;
if (n < 3)
return I2C_REGOP_INCOMPLETE;
return I2C_REGOP_SUCCESS;
}
Code: Select all
uint8_t a_data[3] = {reg, data >> 8, data & 0xFF};
Or am I misunderstanding something fundamental about lib_i2c?
regards
Al