// // Created by xemon on 12.10.22. // #ifndef UVEOS_ON_NATION_I2CPORTINTERFACE_H #define UVEOS_ON_NATION_I2CPORTINTERFACE_H #include "stdint.h" //typedef enum { // I2C_RW_OK = 0x00U, // I2C_RW_ERROR = 0x01U, // I2C_RW_BUSY = 0x02U, // I2C_RW_TIMEOUT = 0x03U //} I2cIOResult; typedef uint16_t ( *I2C_IO_Operation )(void *env, uint16_t devAddress, uint8_t *data, uint16_t size, uint32_t timeout); typedef struct { void *env; I2C_IO_Operation read; I2C_IO_Operation write; } tI2cIO; #define I2cRead(IO, DEV_ADDR, DATA, SIZE, TIMEOUT) IO->read(IO->env,DEV_ADDR, DATA, SIZE, TIMEOUT) #define I2cWrite(IO, DEV_ADDR, DATA, SIZE, TIMEOUT) IO->write(IO->env,DEV_ADDR, DATA, SIZE, TIMEOUT) #endif //UVEOS_ON_NATION_I2CPORTINTERFACE_H