Moin,
Ich hab mal ein kleines Problem mit dem PIC16LF876A @ 8MHz, und zwar kann ich einwandfrei Daten über UART senden nur beim Empfang hapert es etwas der PIC bekommt mit das was gesendet wurde allerdings ist RCREG immer lehr.
Die Config:
; UART Config 19200bps 8n1
banksel SPBRG ; SBRG=(Fosc/(Baud * 16))-1
movlw D'25'
movwf SPBRG
; Transmit Register
banksel TXSTA
bsf TXSTA, BRGH ; High baud rate select
bsf TXSTA, CSRC ; Clock source select - Not Ariable im Asincron Mode
bcf TXSTA, TX9 ; 9 bit transmission
bsf TXSTA, TXEN ; Transmit enable
bsf TXSTA, SYNC ; Synchronous mode select
bcf TXSTA, TRMT ; Transmit shift register status
bcf TXSTA, TX9D ; 9th bit of data to transmit
bcf TXSTA, TXIF ; Statusbit Löschen
; Recive Register
banksel RCSTA
bsf RCSTA, SPEN ; Serial port enable
bcf RCSTA, RX9 ; bit receive enable
bsf RCSTA, SREN ; Single receive enable
bsf RCSTA, CREN ; Continuous receive enable
bcf RCSTA, ADDEN ; Address detect enable
bcf RCSTA, FERR ; Framing error
bcf RCSTA, OERR ; Overrun error
bcf RCSTA, RX9D ; 9th bit of data received
Der Schnipsel zum entfang:
main
waitrx
banksel PIR1
btfss PIR1, RCIF
goto waitrx
banksel RCSTA
btfsc RCSTA, FERR
goto err
btfsc RCSTA, OERR
goto err
banksel RCREG
movf RCREG, w
banksel PORTC
movwf PORTC
banksel PIR1
bcf PIR1, RCIF
goto main
err
movwf NACK
call uartsend
banksel RCSTA
bcf RCSTA, FERR
bcf RCSTA, OERR
goto main
end
mfg tb