;---------------------------------------------------------------------------- ;uartscada.h ;PICBench SCADA Protocol AUSART Driver ;Copyright Andrew Ferry 2004 ;---------------------------------------------------------------------------- ;This implements PICBench Comms Protocol Driver Macros for the AUSART ;---------------------------------------------------------------------------- ;baud rate code assumes 4MHz Fosc RREG equ RCREG RSTA equ RCSTA TREG equ TXREG COMMS_INIT MACRO ;setup serial bsf STATUS,RP0 ;BANK 1 movlw .25 ;set baud rate to 9600 movwf SPBRG movlw 0x24 ;enable transmission and high baud rate movwf TXSTA bsf TXSTA,TX9 ;enable 9 bit TX bcf TXSTA,TX9D ;make TX 9th bit a space clrf PIE1 IFDEF __16F876 clrf PIE2 ENDIF bsf PIE1,RCIE ;enable recieve interrupt bcf STATUS,RP0 ;BANK 0 bsf RCSTA,RX9 ;enable 9 bit RX bsf RCSTA,ADDEN ;receive only address bytes clrf PIR1 IFDEF __16F876 clrf PIR2 ENDIF ;enable global and peripheral interrupts bsf INTCON,GIE bsf INTCON,PEIE ;enable serial port and reception bsf RCSTA,SPEN bsf RCSTA,CREN ENDM TX_START MACRO bsf STATUS,RP0 ;BANK 1 bsf PIE1,TXIE ;enable transmit interrupt bcf STATUS,RP0 ;BANK 0 ENDM TX_STOP MACRO bsf STATUS,RP0 ;BANK 1 bcf PIE1,TXIE ;disable transmit interrupt bcf STATUS,RP0 ;BANK 0 bcf PIR1,TXIF ;clear interrupt ENDM