void CANIntHandler(void) { u32 status = CANIntStatus(CAN0_BASE, CAN_INT_STS_CAUSE); if(status == CAN_INT_INTID_STATUS) { status = MAP_CANStatusGet(CAN0_BASE, CAN_STS_CONTROL); can_err_flag = 1; can_tx_flag = 0; } else if( status == CAN_MSG_OBJ_RX ) // Message receive { MAP_CANIntClear(CAN0_BASE, CAN_MSG_OBJ_RX); can_rx_flag = 1; can_err_flag = 0; } else if( status == CAN_MSG_OBJ_TX ) // Message send { MAP_CANIntClear(CAN0_BASE, CAN_MSG_OBJ_TX); can_tx_flag = 0; can_err_flag = 0; } else MAP_CANIntClear(CAN0_BASE, status); }
uint32_t CANController::getMobEnabledRegister() { return MAP_CANStatusGet(_base, CAN_STS_MSGVAL); }
uint32_t CANController::getNewDataRegister() { return MAP_CANStatusGet(_base, CAN_STS_NEWDAT); }
uint32_t CANController::getTxRequestRegister() { return MAP_CANStatusGet(_base, CAN_STS_TXREQUEST); }
uint32_t CANController::getControlRegister() { return MAP_CANStatusGet(_base, CAN_STS_CONTROL); }