__interrupt void _LinICU (void)
{
(Omitted)
if (T00CR1_IR == SET) {
(Omitted)
if (ucLinStatus == LIN_WAIT_SYNCH_FIELD_START){
uiICUTime1 = T00DR;
(Omitted)
ucLinStatus = LIN_WAIT_SYNCH_FIELD_END;
else if(ucLinStatus == LIN_WAIT_SYNCH_FIELD_END){
(Omitted)
uiICUTime2= T00DR;
/* adjust Baud Rate */
(Omitted)
vEnableLinUartReception();
ucLinStatus = LIN_ID_RECEPTION;
}
(Omitted)
}else if(T00CR1_IF == SET){
(Omitted)
}
}
Check edge detection interrupt
Check whether there is an overflow interrupt
Acquire number of overflows
Figure 5-15 Input capture (ICU) interrupt controls
102
Synch field start wait
Acquire timer value
Acquire timer value
Baud rate adjustment processing
LIN-UART interrupt authorized
State transition: ID received
AN07-00200-03E
State transition:
synch field end wait