English
Language : 

PIC16F1829LIN Datasheet, PDF (16/74 Pages) Micon Design Technology Corporation – 20-Pin, 8-bit Flash LIN/J2602 Microcontroller
PIC16F1829LIN
2.2.3 SAMPLE RECEIVE SOFTWARE
The following routines are called when PIR1<RCIF> = 1:
GetBREAK
banksel RCSTA
BTFSS RCSTA,FERR
; was BREAK character longer than 8 bits?
GOTO BadBREAKchar ; no, not a valid BREAK, too short
MOVF RCREG,w
; dump break character, reset RCIF and FERR
BTFSS STATUS,Z
GOTO BadBREAKchar ; no, not a valid BREAK, not zero
DECF MESSAGE_COUNTER
banksel PORTB
BTFSS LINRX
GOTO $-2
banksel BAUDCTL
BSF
BAUDCTL,ABDEN ; enable AutoBaud
RETURN
BadBREAKchar
MOVF RCREG,w
; dump break character, reset RCIF and FERR
RETURN
GetSYNC
banksel BAUDCTL
BTFSC BAUDCTL,ABDOVF; did baud rate generator overflow?
GOTO BadSYNCchar; yes, bad sync character
BTFSC RCSTA,FERR; was there a Framing Error?
GOTO BadSYNCchar; yes, bad sync character
DECF SPBRG
MOVF RCREG,w
; dump sync character, reset RCIF
DECF MESSAGE_COUNTER
RETURN
BadSYNCchar
BCF
BAUDCTL,ABDOVF; clear the overflow condition
MOVLW .12
; reset the state machine
MOVWF MESSAGE_COUNTER
RETURN
GetDATAbyte
banksel RCREG
MOVF RCREG,w
; get character, reset RCIF and FERR
MOVWF RXTX_REG
; copy data into w-register
MOVWF INDF0
; copy data into data area
INCF FSR0, f
; point to next location
DECF MESSAGE_COUNTER, f ; decrement number of bytes to receive by one
RETURN
DS41673A-page 16
Preliminary
 2012 Microchip Technology Inc.