Jörn Arne
20.08.2006, 14:28
Hallo!
Ich möchte an den PIC 16F627 Daten vom PC aus senden und umgekehrt.
Das Senden klappt..
Nur das Empfangen krieg ich irgendwie nicht richtig hin.
Ein Zeichen soll über "polling" eingelesen werden:
RS232in
btfss PIR1,RCIF ; sind Daten da ?
goto RS232in ; nein, noch keine Daten da
movfw RCREG ; RS232-Register auslesen
movwf controlByte ; und nach 'controlByte' schreiben
Allein da scheiterts schon...
Initialisiert habe ich die RS232 mit folgendem Code:
controlByte equ 0x20
org 0x00
goto reset
;----------------------------------------------------------------
;interrupt
org 0x04
retfie
;-----------------------------------------------------------------
reset
clrf controlByte
;bank 1
bsf STATUS, RP0
;init rs
movlw d'25' ;baud 9600
movwf SPBRG
movlw b'00100100' ;transmit enable, high baud
movwf TXSTA
movlw b'00000000' ;alle Ports als Ausgang
movwf TRISB
movwf TRISA
bcf STATUS, RP0
;bank 0
;init rs
movlw b'10010000' ;enables rs, continuos reception
movwf RCSTA
bcf INTCON,GIE ;generell Interrupts sperren
goto main
Scheinbar wird das RCIF flag nie gesetzt
Der PIC wird an einem 4 MHZ Schwinger betrieben und zwischen PC und PIC sitzt ein MAX232 (Schaltung mit anderen Controllern getestet)
Ein Beispiel von Sprut.de habe ich auch schon ausprobiert, hat leider nicht funktioniert.
Für Hilfen und Tips wäre ich dankbar
Gruß
Jörn Arne
Ich möchte an den PIC 16F627 Daten vom PC aus senden und umgekehrt.
Das Senden klappt..
Nur das Empfangen krieg ich irgendwie nicht richtig hin.
Ein Zeichen soll über "polling" eingelesen werden:
RS232in
btfss PIR1,RCIF ; sind Daten da ?
goto RS232in ; nein, noch keine Daten da
movfw RCREG ; RS232-Register auslesen
movwf controlByte ; und nach 'controlByte' schreiben
Allein da scheiterts schon...
Initialisiert habe ich die RS232 mit folgendem Code:
controlByte equ 0x20
org 0x00
goto reset
;----------------------------------------------------------------
;interrupt
org 0x04
retfie
;-----------------------------------------------------------------
reset
clrf controlByte
;bank 1
bsf STATUS, RP0
;init rs
movlw d'25' ;baud 9600
movwf SPBRG
movlw b'00100100' ;transmit enable, high baud
movwf TXSTA
movlw b'00000000' ;alle Ports als Ausgang
movwf TRISB
movwf TRISA
bcf STATUS, RP0
;bank 0
;init rs
movlw b'10010000' ;enables rs, continuos reception
movwf RCSTA
bcf INTCON,GIE ;generell Interrupts sperren
goto main
Scheinbar wird das RCIF flag nie gesetzt
Der PIC wird an einem 4 MHZ Schwinger betrieben und zwischen PC und PIC sitzt ein MAX232 (Schaltung mit anderen Controllern getestet)
Ein Beispiel von Sprut.de habe ich auch schon ausprobiert, hat leider nicht funktioniert.
Für Hilfen und Tips wäre ich dankbar
Gruß
Jörn Arne