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é