#pragma once #include "FreeRTOS.h" #include "event_groups.h" #include "avr/io.h" #include "avr/interrupt.h" // #include "stdlib.h" // #include "stdint.h" // #include "string.h" #include "stdbool.h" #include "stdio.h" #ifdef __cplusplus extern "C" { #endif typedef enum { AVR_FAIL = -1, AVR_OK, AVR_ERR_NO_MEM, AVR_ERR_INVALID_ARG, AVR_ERR_INVALID_STATE, AVR_ERR_INVALID_SIZE, AVR_ERR_NOT_FOUND, AVR_ERR_NOT_SUPPORTED, AVR_ERR_TIMEOUT, AVR_ERR_INVALID_RESPONSE, AVR_ERR_INVALID_CRC, AVR_ERR_INVALID_VERSION, AVR_ERR_NOT_FINISHED, AVR_ERR_NOT_ALLOWED } avr_err_t; avr_err_t zh_avr_i2c_master_init(const bool pullup); 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_receive(const uint8_t addr, uint8_t *write_data, uint8_t write_size, uint8_t *read_data, uint8_t read_size, size_t delay); #ifdef __cplusplus } #endif