55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
#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 */ |