/*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);
}
}
|