Forum: Mikrocontroller und Digitale Elektronik Subroutinenaufrufe während Interrupt möglich?


von Fred (Gast)


Lesenswert?

Ich bin mir nicht sicher, aber war es so, dass wenn eine
Interruptroutine aufgerufen wird, dort keine rcall - Befehle ausgeführt
werden können?

von Roland P. (pram)


Lesenswert?

Welcher Prozessor?
Dies trifft z.B (bedingt) auf den AT90S1200 zu, da dieser nur einen
Hardwarestack von 3 Stufen hat.

Gruß
Roland

von Fred (Gast)


Lesenswert?

ATmega8515

von David W. (Gast)


Lesenswert?

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.

von Profi (Gast)


Lesenswert?

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.

von ---- (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.