Hallo Jango,
da steht bei Sprut aber schon deutlich mehr, als ich beim kurzen überfliegen bei Dir sehen konnte.
Schau mal:
Code:
org 4 ; Interrupt beginnt immer bei Adresse 4
int
movwf w_temp ; w und STATUS retten
swapf STATUS,w
movwf status_temp
;RS232-Empfänger-Interrupt?
btfss PIR1,RCIF
goto intEnde ; Interrupt kam von wo anders
movfw RCREG ; RS232-Register auslesen
movwf Zeichen ; und in den Speicher nach 'Zeichen' schreiben
bcf PIR1,RCIF ; interrupt-Flag löschen
intEnde ; gerettete w und STATUS wieder zurückschreiben
swapf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie
Mal unabhängig das Du nichts sicherst (Register/Statusbyte) würde ich auch sagen, das Du das Interupt Flag nicht löscht. Dann wird natürlich auch kein neuer ausgelöst...
Wenn ich es übersehen haben sollte...
Initalisierung und den Rest habe ich mir jetzt noch gar nicht angeschaut...
Gruß André
Lesezeichen