/*CAN transmit callback */ /*Function is executed by the Callback handler after a CAN message has been transmitted */ void CAN_tx(uint8_t msg_obj_num) { txIntCount++; CAN_TxReady = TRUE; } void CAN_Process() { uint16_t i,j; CAN_t TempMsg; CCAN_MSG_OBJ_T msg_obj; i = CAN_MessagesInQueue(&CAN_TxQueue); //if there is data to send, then dequeue and send. if(CAN_TxReady && i>0) { CAN_TxReady = FALSE; CAN_MesssageDequeue(&CAN_TxQueue,&TempMsg); //move from our CAN_t queue to the Rom driver routine msg_obj.msgobj = 16; msg_obj.mode_id = CAN_MSGOBJ_EXT | TempMsg.ID; msg_obj.mask = 0x0; msg_obj.dlc = TempMsg.DLC; for(j=0;j<TempMsg.DLC;j++) { msg_obj.data[j] = TempMsg.Data[j]; } LPC_CCAN_API->can_transmit(&msg_obj); } } |