/*---------------------------------------------------------------------------------------------------------*/ void I2C0_IRQHandler(void) { uint32_t u32Status; /* Check I2C Wake-up interrupt flag set or not */ if(I2C_GET_WAKEUP_FLAG(I2C0)) { /* Clear I2C Wake-up interrupt flag */ I2C_CLEAR_WAKEUP_FLAG(I2C0); g_u8SlvI2CWK = 1; return; } u32Status = I2C_GET_STATUS(I2C0); if(I2C_GET_TIMEOUT_FLAG(I2C0)) { /* Clear I2C0 Timeout Flag */ I2C_ClearTimeoutFlag(I2C0); } else { if(s_I2C0HandlerFn != NULL) s_I2C0HandlerFn(u32Status); } }
/*---------------------------------------------------------------------------------------------------------*/ void I2C3_IRQHandler(void) { uint32_t u32Status; u32Status = I2C_GET_STATUS(I2C3); if (I2C_GET_TIMEOUT_FLAG(I2C3)) { /* Clear I2C3 Timeout Flag */ I2C_ClearTimeoutFlag(I2C3); } else { if (s_I2C3HandlerFn != NULL) s_I2C3HandlerFn(u32Status); } }
void TwoWire::onService(void) { uint32_t u32Status; u32Status = I2C_GET_STATUS(i2c); if(I2C_GET_TIMEOUT_FLAG(i2c)) { /* Clear I2C0 Timeout Flag */ I2C_ClearTimeoutFlag(i2c); } else { I2C_SlaveTRx(u32Status); } }
void I2C0_IRQHandler(void) { uint32_t u32Status; u32Status = I2C_GET_STATUS(I2C0); #if 0 //def DEBUG_ENABLE printf("Status 0x%x \n", u32Status); #endif if (I2C_GET_TIMEOUT_FLAG(I2C0)) { /* Clear I2C0 Timeout Flag */ I2C_ClearTimeoutFlag(I2C0); } else { if (s_I2C0HandlerFn != NULL) s_I2C0HandlerFn(u32Status); } }
/*---------------------------------------------------------------------------------------------------------*/ void I2C1_IRQHandler(void) { uint32_t u32Status; // clear interrupt flag I2C1->INTSTS |= I2C_INTSTS_INTSTS_Msk; u32Status = I2C_GET_STATUS(I2C1); if (I2C_GET_TIMEOUT_FLAG(I2C1)) { /* Clear I2C1 Timeout Flag */ I2C_ClearTimeoutFlag(I2C1); } else { if (s_I2C1HandlerFn != NULL) s_I2C1HandlerFn(u32Status); } }