Also, was du machst ist praktisch RS232 in Software implementieren.
Wenn du Hardware-UART verwendest, ist es aber deutlich einfacher und du brauchst dich nicht um den Timer zu kümmern.
Du brauchst nur eine Initialisierung für den UART:
Code:
; USART initialisieren
BSF STATUS,RP0 ; Bank 1
MOVLW 0x20 ;
MOVWF TXSTA ;
MOVLW D'10' ; = 57 kbps bei 10 MHz
MOVWF SPBRG
BSF TXSTA, BRGH ;
BCF STATUS,RP0 ; Bank 0
MOVLW 0x90 ; Empfänger: RS232
MOVWF RCSTA ;
return
und dann ne Routine zum Ausgeben:
Code:
RS232out
btfss PIR1,TXIF ; kann ich senden?
goto RS232out
movwf TXREG
return
[/code]
bzw. zum Empfangen:
Code:
RS232in
btfss PIR1,RCIF
goto RS232in
movwf RCREG
return
Allerdings bin ich mir bei dem Empfangsabschnitt nicht mehr ganz so sicher, ob ich den noch richtig im Kopf hab (schaff inzwischen hauptsächlich mit C). Am besten einfach mal im Datenblatt nachschaun. Da findest du alles unter dem Begriff USART.
Lesezeichen