l_get_sync
movf RCREG, W ; Check for a valid sync byte
xorlw 0x55
btfss STATUS, Z
bsf LE_SYNC
bsf LS_SYNC ; Indicate sync received
goto ErrFlagChecks
denna koden är direkttagen från "lin.asm" en del av källkoden som tillhör ANN237 "Implementing a LIN Slave Node on a PIC16F73". Meningen är att denna koden ska kolla om den mottagna byten från USART:en är lika med 0x55 (som är en konstant för LIN bussens SYNC signal) och därefter sätta LE_SYNC som talar om för en rutin som kallas av USART:ens ISR att nästa byte ska vara ID byten. Problemet är ju att det spelar ingen roll vad SYNC byten är enligt denna kod! såååå dåligt... tycker ju att dom borde testa lite innan som släpper ANN.
Efter vad jag ser kommer LE_SYNC enbart att settas när Zeroflaggan är aktiv, den blir den beroende på en EXOR mellan 0x55 och den inkommande byte och om du EXOR 0x55 med 0x55 blir resultatet 0x00 = Zeroflaggan satt.