diff --git a/include/zh_avr_i2c.h b/include/zh_avr_i2c.h index df55eb2..e40ae24 100644 --- a/include/zh_avr_i2c.h +++ b/include/zh_avr_i2c.h @@ -29,12 +29,29 @@ extern "C" AVR_ERR_NOT_ALLOWED } avr_err_t; + /** + * @brief Initialize I2C bus. + * + * @param[in] pullup Using internal pullup resistors. + * + * @return AVR_OK if success or an error code otherwise. + */ avr_err_t zh_avr_i2c_master_init(const bool pullup); + + /** + * @brief Probe I2C address, if address is correct and ACK is received, this function will return AVR_OK. + * + * @param[in] addr Address I2C device address that you want to probe. + * @param[in] xTicksToWait Wait timeout in FreeRTOS ticks. + * + * @return AVR_OK if success or an error code otherwise. + */ avr_err_t zh_avr_i2c_master_probe(const uint8_t addr, TickType_t xTicksToWait); avr_err_t zh_avr_i2c_master_transmit(const uint8_t addr, uint8_t *data, uint8_t size, TickType_t xTicksToWait); avr_err_t zh_avr_i2c_master_receive(const uint8_t addr, uint8_t *data, uint8_t size, TickType_t xTicksToWait); - avr_err_t zh_avr_i2c_master_transmit_register(const uint8_t addr, uint16_t *reg, uint8_t *data, uint8_t size, TickType_t xTicksToWait); - avr_err_t zh_avr_i2c_master_receive_register(const uint8_t addr, uint16_t *reg, uint8_t *data, uint8_t size, TickType_t xTicksToWait); + + avr_err_t zh_avr_i2c_master_transmit_register(const uint8_t addr, uint16_t *reg, uint8_t *data, uint8_t size, TickType_t xTicksToWait); // To Do + avr_err_t zh_avr_i2c_master_receive_register(const uint8_t addr, uint16_t *reg, uint8_t *data, uint8_t size, TickType_t xTicksToWait); // To Do #ifdef __cplusplus }