47 #define ESOS_I2C_ACK 0
50 #define ESOS_I2C_NAK 1
54 #define I2C_WADDR(x) (x & 0xFE) //clear R/W bit of I2C addr
55 #define I2C_RADDR(x) (x | 0x01) //set R/W bit of I2C addr
67 #define ESOS_TASK_WAIT_ON_AVAILABLE_I2C() \
69 ESOS_TASK_WAIT_UNTIL(ESOS_IS_I2C_AVAILABLE()); \
70 __esos_SetSystemFlag(__ESOS_SYS_I2C_IN_USE); \
83 #define ESOS_SIGNAL_AVAILABLE_I2C() __esos_ClearSystemFlag(__ESOS_SYS_I2C_IN_USE)
95 #define ESOS_IS_I2C_AVAILABLE() (__esos_IsSystemFlagClear(__ESOS_SYS_I2C_IN_USE))
116 #define ESOS_TASK_WAIT_ON_WRITE1I2C( u8_addr, u8_d1 ) \
118 __esos_i2c_dataBytes[0] = (u8_d1); \
119 ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskI2C, __esos_i2c_hw_writeN, (u8_addr), &__esos_i2c_dataBytes[0], 1 ); \
139 #define ESOS_TASK_WAIT_ON_WRITE2I2C( u8_addr, u8_d1, u8_d2 ) \
141 __esos_i2c_dataBytes[0] = (u8_d1); \
142 __esos_i2c_dataBytes[1] = (u8_d2); \
143 ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskI2C, __esos_i2c_hw_writeN, (u8_addr), &__esos_i2c_dataBytes[0], 2 ); \
159 #define ESOS_TASK_WAIT_ON_WRITENI2C( u8_addr, pu8_d, u8_cnt ) \
161 ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskI2C, __esos_i2c_hw_writeN, (u8_addr), (pu8_d), (u8_cnt) ); \
177 #define ESOS_TASK_WAIT_ON_READ1I2C( u8_addr, u8_d1 ) \
178 ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskI2C, __esos_i2c_hw_readN, (u8_addr), &(u8_d1), 1 )
198 #define ESOS_TASK_WAIT_ON_READ2I2C( u8_addr, u8_d1, u8_d2 ) \
200 ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskI2C, __esos_i2c_hw_readN, (u8_addr), &__esos_i2c_dataBytes[0], 2 ); \
201 (u8_d1) = __esos_i2c_dataBytes[0]; \
202 (u8_d2) = __esos_i2c_dataBytes[1]; \
218 #define ESOS_TASK_WAIT_ON_READNI2C( u8_addr, pu8_d, u8_cnt ) \
220 ESOS_TASK_SPAWN_AND_WAIT( (ESOS_TASK_HANDLE)&__stChildTaskI2C, __esos_i2c_hw_readN, (u8_addr), (pu8_d), (u8_cnt) ); \
230 extern ESOS_CHILD_TASK( __esos_hw_getI2C, uint8_t* pu8_x, uint8_t u8_ack2Send);
231 extern ESOS_CHILD_TASK( __esos_i2c_hw_writeN, uint8_t u8_addr, uint8_t* pu8_d, uint8_t u8_cnt);
232 extern ESOS_CHILD_TASK( __esos_i2c_hw_readN, uint8_t u8_addr, uint8_t* pu8_d, uint8_t u8_cnt);