12 #ifndef __I2C_SFRS_H__
13 #define __I2C_SFRS_H__
34 uint8_t ISTRSTRETCH:1;
62 #define I2C_SFRS ((__IO I2C_SFRS_t *) (SDIO_BASE + 0x08))
67 #define E_I2C_STATUS_BIT_IRBUFOVL ((uint8_t) (1<<0))
68 #define E_I2C_STATUS_BIT_IWBUFOVL ((uint8_t) (1<<1))
69 #define E_I2C_STATUS_BIT_IBUFF ((uint8_t) (1<<2))
70 #define E_I2C_STATUS_BIT_IRWBUSY ((uint8_t) (1<<3))
71 #define E_I2C_STATUS_BIT_ISTPR ((uint8_t) (1<<4))
72 #define E_I2C_STATUS_BIT_ISTRR ((uint8_t) (1<<5))
73 #define E_I2C_STATUS_BIT_IADDRR ((uint8_t) (1<<6))
74 #define E_I2C_STATUS_BIT_IACKR ((uint8_t) (1<<7))
79 #define E_I2C_CTRL1_BIT_ISTRSTRETCH ((uint8_t) (1<<0))
80 #define E_I2C_CTRL1_BIT_ISTPSIZE ((uint8_t) (1<<1))
81 #define E_I2C_CTRL1_BIT_ISACK ((uint8_t) (1<<2))
82 #define E_I2C_CTRL1_BIT_ISNACK ((uint8_t) (1<<3))
83 #define E_I2C_CTRL1_BIT_IRCSTRT ((uint8_t) (1<<4))
84 #define E_I2C_CTRL1_BIT_IGC ((uint8_t) (1<<5))
85 #define E_I2C_CTRL1_BIT_ICLKSTR ((uint8_t) (1<<6))
86 #define E_I2C_CTRL1_BIT_IRSTR ((uint8_t) (1<<7))
91 static __INLINE void f_I2C_Enable(void)
191 uint8_t ctrl =
I2C_SFRS->CTRL1.BYTE;
203 uint8_t ctrl =
I2C_SFRS->CTRL1.BYTE;
290 I2C_SFRS->IADDR1 = (addr >> 8) & 0x03;
static __INLINE uint8_t f_I2C_ReadData(void)
Read a byte from I2C module.
Definition: i2c_sfrs.h:115
static __INLINE uint8_t f_I2C_WriteBuffNotEmpty(void)
Check if I2C write buffer full.
Definition: i2c_sfrs.h:318
static __INLINE void f_I2C_SlaveAddreeSizeTen(void)
Set slave address length.
Definition: i2c_sfrs.h:165
static __INLINE void f_I2C_SlaveClockStretch(void)
Start clock stretch in I2C slave mode.
Definition: i2c_sfrs.h:133
static __INLINE void f_I2C_SetClockDivider(uint8_t div)
Set clock divider for I2C module.
Definition: i2c_sfrs.h:308
static __INLINE uint8_t f_I2C_GetStatus(void)
Get the status of I2C module.
Definition: i2c_sfrs.h:125
static __INLINE void f_I2C_Disable(void)
Disable I2C Module.
Definition: i2c_sfrs.h:99
static __INLINE uint8_t f_I2C_IsMasterMode(void)
Check if I2C module a master mode.
Definition: i2c_sfrs.h:245
static __INLINE void f_I2C_InitSlaveMode(void)
Initialize I2C module to slave mode.
Definition: i2c_sfrs.h:237
static __INLINE void f_I2C_MasterIssueStart(void)
Issue a Start bit in I2C master mode.
Definition: i2c_sfrs.h:221
static __INLINE void f_I2C_EnableFilter(void)
Enable I2C filter.
Definition: i2c_sfrs.h:269
static __INLINE void f_I2C_InitMasterMode(void)
Initialize I2C module to master mode.
Definition: i2c_sfrs.h:229
static __INLINE void f_I2C_Set10BitSlaveAddr(void)
Set I2C slave address in 10-bit mode.
Definition: i2c_sfrs.h:261
static __INLINE void f_I2C_MasterRepeatStart(void)
Send Repeat Start bit in I2C master mode.
Definition: i2c_sfrs.h:173
static __INLINE uint8_t f_I2C_BuffFull(void)
Check if I2C buffer full.
Definition: i2c_sfrs.h:328
static __INLINE void f_I2C_Set7BitSlaveAddr(void)
Set I2C slave address in 7-bit mode.
Definition: i2c_sfrs.h:253
static __INLINE void f_I2C_MasterIssueNack(void)
Issue NACK bit in I2C master mode.
Definition: i2c_sfrs.h:189
#define I2C_SFRS
The starting address of I2C SFRS.
Definition: i2c_sfrs.h:62
static __INLINE void f_I2C_MasterIssueAck(void)
Issue Ack bit in I2C master mode.
Definition: i2c_sfrs.h:201
static __INLINE uint8_t f_I2C_StartBitReceived(void)
Check if I2C Start bit is received.
Definition: i2c_sfrs.h:338
static __INLINE void f_I2C_DisableFilter(void)
Disable I2C filter.
Definition: i2c_sfrs.h:277
uint8_t IADDR1
Definition: i2c_sfrs.h:56
static __INLINE void f_I2C_SlaveDisableGeneralCall(void)
Disable general call mode in I2C slave mode.
Definition: i2c_sfrs.h:157
static __INLINE void f_I2C_SlaveReleaseClock(void)
Release clock stretch in I2C slave mode.
Definition: i2c_sfrs.h:141
uint8_t DATA
Definition: i2c_sfrs.h:54
static __INLINE void f_I2C_SlaveEnableGeneralCall(void)
Enable general call mode in I2C slave mode.
Definition: i2c_sfrs.h:149
A structure to represent Special Function Registers for I2C.
Definition: i2c_sfrs.h:18
static __INLINE void f_I2C_MasterReceiveStart(void)
Start to receive data in I2C master mode.
Definition: i2c_sfrs.h:181
#define E_I2C_CTRL1_BIT_ISACK
Definition: i2c_sfrs.h:81
static __INLINE void f_I2C_MasterIssueStop(void)
Issue a Stop bit in I2C master mode.
Definition: i2c_sfrs.h:213
uint8_t BYTE
Definition: i2c_sfrs.h:30
static __INLINE void f_I2C_SetSlaveAddress(uint16_t addr)
Set I2C address in slave mode.
Definition: i2c_sfrs.h:287
static __INLINE void f_I2C_SetSlaveAddressMask(uint16_t mask)
Set I2C address mask in slave mode.
Definition: i2c_sfrs.h:298
static __INLINE void f_I2C_WriteData(uint8_t data)
Write a byte to I2C module.
Definition: i2c_sfrs.h:107
#define E_I2C_CTRL1_BIT_ISNACK
Definition: i2c_sfrs.h:82
uint8_t IADDR0
Definition: i2c_sfrs.h:55