// I2C state handler static void i2c_state_handling(I2C_ID_T id) { if (Chip_I2C_IsMasterActive(id)) Chip_I2C_MasterStateHandler(id); else Chip_I2C_SlaveStateHandler(id); }
/** * @brief I2C Interrupt Handler * @return None */ void I2C_IRQHandler(void) { if (Chip_I2C_IsMasterActive(I2C0)) { Chip_I2C_MasterStateHandler(I2C0); } else { Chip_I2C_SlaveStateHandler(I2C0); } }
void I2C0_IRQHandler(void) { if (Chip_I2C_IsMasterActive(ONBOARD_I2C)) { Chip_I2C_MasterStateHandler(ONBOARD_I2C); } else { Chip_I2C_SlaveStateHandler(ONBOARD_I2C); } }
/* Chip polling event handler */ void Chip_I2C_EventHandlerPolling(I2C_ID_T id, I2C_EVENT_T event) { struct i2c_interface *iic = &i2c[id]; volatile I2C_STATUS_T *stat; /* Only WAIT event needs to be handled */ if (event != I2C_EVENT_WAIT) { return; } stat = &iic->mXfer->status; /* Call the state change handler till xfer is done */ while (*stat == I2C_STATUS_BUSY) { if (IP_I2C_IsStateChanged(iic->ip)) { Chip_I2C_MasterStateHandler(id); } } }