if(can12->SR & (1<<2) && (!bMsgSent))/*tx is free & msg not sent*/
{
can12->TFI1 = MsgBuf_TX.Frame;
can12->TID1 = MsgBuf_TX.MsgID;
can12->TDA1 = MsgBuf_TX.DataA;
can12->TDB1 = MsgBuf_TX.DataB;
can12->CMR = m_bCAN_mode;
bMsgSent=1;
}
delay_ms(100); //100 ms delay
if((can12->SR & (1<<3)) && bMsgSent) /*transmission complete*/
{
bReturn_val=1;
}
|