Forum: Mikrocontroller und Digitale Elektronik Frage zu Interruptaufrufen


von Jörn (Gast)


Lesenswert?

Moin,

ich habe eine Frage zu Hardwareinterrupts bei Atmel µControllern. Bei
einem "richtigen" CPU werden bei einem Hardwareinterrupt der
Instructionpointer und das Flagregister auf dem STack abgelegt. Bei
einem return aus der Interruptroutine werden diese dann wieder vom
Stack geladen. Wie ist es bei einem µC? Der AT90S1200 bietet ja
beispielsweise Interrpts, besitzt aber keinen (zumindest per Programm
erreichbaren) Arbeitsspeicher. Und wie ist es beispielsweise bei dem
ATmega8515, der ja Arbeitsspeicher besitzt? Gibt es dort irgendwelche
Möglichkeiten an die zwischengespeicherten Werte zu gelangen?

Gruß,

Jörn

von thkais (Gast)


Lesenswert?

Viele Mikrocontroller (auch die Atmels) überlassen die Sicherung der
FLags (SREG) und anderer Register dem Anwender. Das heißt: Der
Controller merkt sich lediglich die Rücksprungadresse, sonst nichts.
Zum 1200 kannn ich keine Angabe machen, prinzipiell kann man auf den
Stack mit PUSH und POP zugreifen. Bei den Atmels mit Speicher über
entsprechende Befehle (z.B. LDS), die aktuelle Stackposition ermittelt
man mit SPL (SPH).
In den Datenblättern sollten genauere Informationen diesbezüglich zu
finden sein.

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.