Ja, hast recht. Der Compiler übersetzt die Interruptroutine richtig mit RETFIE und der PIC macht den Rest. Mir schwante da was aus dem XC8 Handbuch dazu. Hier der entspr. Auszug:Nachtrag:Never re-enable interrupts inside the interrupt function itself. Interrupts are
automatically re-enabled by hardware on execution of the RETFIE instruction.
Re-enabling interrupts inside an interrupt function may result in code
failure.
Im MikroC Manual habe ich diesbezüglich keinen Hinweis gefunden. Das ist mMn eine Schwachstelle der MikroC-Dokumentation.
Geändert von witkatz (12.07.2015 um 22:21 Uhr)
Vielen Dank für die Hilfe. Habe den Code etwas umgeschrieben und jetzt funktioniert es. Benutze den Compiler von Micro C.
Einen Blick ins Handbuch erleichtert Fehleranalyse. In Assembler hab ich das GIE Bit immer im Code manuell gesetzt oder gelöscht. Hab es hier deshalb wahrscheinlich noch hingeschrieben. Leuchtet jetzt natürlich ein das es überflüssig ist.
Danke nochmal
Gruß Chipo
Lesezeichen