-
-
Hi,
benutze zwar nen anderen controller aber:
nit
bsf STATUS,RP0
movlw B'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf PORTB ; alle LEDs ausschalten
bsf STATUS,RP0 ; Bank1
bcf PORTC, 6 ; PortC output 6 (tx COM) !!!!!!!!!!!!!muss auf 1 !!!
bsf PORTC, 7 ; PortC input 7 (rx COM) !!!!!muss auf 1!!!!!!!!
bcf STATUS,RP0
; USART initialisieren
BCF STATUS,RP0 ; Bank1
MOVLW 0x20 ; Sender: RS232
MOVWF TXSTA ;
MOVLW 0x90 ; Empfänger: RS232
MOVWF RCSTA
BCF STATUS,RP0 ;
; USART Baudrate einstellen
BSF STATUS,RP0 ; Bank1
MOVLW d'25' ; Set Baud rate 2,4 kBPS bei 4 MHz
MOVWF SPBRG
BCF TXSTA, BRGH ; BRGH=0
BCF STATUS,RP0 ; Bank 0
RS232in
btfss PIR1,RCIF ; sind Daten da ?
goto RS232in ; nein, noch keine Daten da
bcf PIR1,RCIF
movfw RCREG ; RS232-Register auslesen
movwf PORTB ; u nd nach 'PORTB' schreiben
bsf PIR1,TXIF !!!!!!!!!brauchste nicht!!!
goto RS232out
RS232out
btfss PIR1,TXIF ; ist Sender leer ?
goto RS232out ; nein, noch nicht leer
bcf PIR1,TXIF !!!!!!!!!brauchste nicht!!!
movfw PORTB ; nächstes Byte holen
movwf TXREG ; und in den RS232-Sender schreiben
goto RS232in
end
Das ist mirt auf den ersten Blick aufgefallen .
SChau mal in das Datenblatt .
Die RX/TX müssen auf eines da du sonst RX = Ausgang = 0 = masse das signal auf null ziehst!!!
Ist mit auch erst letzte Woche paasiert !
mfg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen