#ifndef I2C_H #define I2C_H #define I2C_TIME_OUT (uint16_t)(5000) #define I2C_OK 1 #define I2C_FAIL 0 #define I2C_END 1 typedef enum { I2C_START = 0, I2C_SEND_ADDR, I2C_CLEAR_ADDRESS_FLAG, I2C_TRANSMIT_DATA, I2C_STOP } i2c_process_enum; /** * \brief Return codes for IIC APIs. * @{ */ #define IIC_SUCCESS 0 #define IIC_INVALID_ARGUMENT 1 #define IIC_ARBITRATION_LOST 2 #define IIC_NO_CHIP_FOUND 3 #define IIC_RECEIVE_OVERRUN 4 #define IIC_RECEIVE_NACK 5 #define IIC_SEND_OVERRUN 6 #define IIC_SEND_NACK 7 #define IIC_BUSY 8 #define IIC_ERROR_TIMEOUT 9 /** * @} */ void i2c_master_initialize1(void); void i2c_master_initialize3(void); void i2c_master_init(void); void i2c_master_deinit1(void); void i2c_master_deinit3(void); uint8_t i2c_master_read_register1(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue); uint8_t i2c_master_read_register3(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue); uint8_t i2c_master_read_register1_raw(unsigned char Address, unsigned short len, unsigned char *data); uint8_t i2c_master_read_register3_raw(unsigned char Address, unsigned short len, unsigned char *data); uint8_t i2c_master_write_register1(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue); uint8_t i2c_master_write_register3(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue); uint8_t i2c_master_write_register1_raw(unsigned char Address, unsigned short len, unsigned char *data); uint8_t i2c_master_write_register3_raw(unsigned char Address, unsigned short len, unsigned char *data); #endif /* I2C_H */