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
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.
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.
Und was ist dann so Besonderes zu tun? Oder wieso muss der Compiler das wissen? ----, (QuadDash).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.