From e5303e409076628dd491a8f34ea96fab0094eff0 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Sun, 10 Aug 2025 11:53:57 +0300 Subject: [PATCH] wip: --- include/zh_avr_i2c.h | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) 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 }