English
Language : 

AN1105 Datasheet, PDF (66/100 Pages) STMicroelectronics – ST7 pCAN PERIPHERAL DRIVER
ST7 pCAN PERIPHERAL DRIVER
SetBit(CANCSR,SRTE);
#endif /*SIMULTANEOUS_EMISSION_RECEPTION*/
if (run_set)
{
CAN_RUN_Cell();
}
return CAN_INIT_SUCCESS;
}
else {
return CAN_INIT_FAILURE;
}
}
/*--------------------------------------------------------------------------
ROUTINE NAME : CAN_In_Queue
INPUT/OUTPUT : pointer on a CAN buffer
output error code
DESCRIPTION : Put a message given by the application into the transmission queue
Updates the queue parameters
COMMENTS : Called by CAN_Transmit_Request
Must not be interrupted
Possible return values : CAN_FIFO_FULL
CAN_TRANSMIT_SUCCESS
CAN_TRANSMIT_FATAL
--------------------------------------------------------------------------*/
static CAN_Transmit_Error CAN_In_Queue (CAN_Buffer* msg_to_queue)
{
if (CAN_transmit_queue.isinuse) //Necessary to avoid multiple simultaneous
access
{
return CAN_TRANSMIT_FATAL;
//Time out ?
}
//to the datas
CAN_transmit_queue.isinuse=CTRUE; //Locks the queue
if ((CAN_transmit_queue.fifo_size)>=MAX_FIFO_SIZE) //Tests if the FIFO is
already full
{
CAN_transmit_queue.isinuse=CFALSE;
//If yes, releases the queue
return CAN_FIFO_FULL;
//...and aborts process
66/100