Gast
#317200
Ich bin mir nicht sicher, aber war es so, dass wenn eine Interruptroutine aufgerufen wird, dort keine rcall - Befehle ausgeführt werden können?
|
Anzeige
|
Subroutinenaufrufe während Interrupt möglich?
Gast
#317200
Ich bin mir nicht sicher, aber war es so, dass wenn eine Interruptroutine aufgerufen wird, dort keine rcall - Befehle ausgeführt werden können? Welcher Prozessor? Dies trifft z.B (bedingt) auf den AT90S1200 zu, da dieser nur einen Hardwarestack von 3 Stufen hat. Gruß Roland
Gast
#317202
ATmega8515
Gast
#317203
Wenn du die Subroutine normal mit RET abschließt, ist das in Ordnung. In der ISR (Interrupt Service Routine) wird das I-Flag gelöscht, das dann verhindert, dass weiter ISRs ausgeführt werden. Deshalb sollte man ne ISR mit RETI (set I-Flag) beenden, damit die IRQs wieder aktiviert werden.
Gast
#317204
Kleine Nebenbemerkung: Beim DSP56F80x (Metrowerks Comiler) gibt man in der aufgerufenen SubRoutine #pragma interrupt called (Übersetzung: diese SubRoutine wird von einer ISR aufgerufen) an, dann weiß der Compiler, was zu tun ist.
Gast
#317205
Und was ist dann so Besonderes zu tun? Oder wieso muss der Compiler das wissen? ----, (QuadDash). Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|