Was wechselt rum?

#482005
Lesenswert?
• ▲
▼
Manuel wrote:
> Wenn das Programm eines Mikrokontrollers zum Bespiel in eine ISR
> wechselt, kann man dann sagen, dass der PC des M. in die ISR wechselt,
> oder was ist das im Mikrokontroller was die Programmzeilen nacheinander
> liest und bearbeitet?

Ja, das ist der Programmzeiger, Program counter, bzw. PC.

Sein 'alter Zählerstand' (+1) wird während des Interrupt-Aufrufs (oder 
Unterprogramm-Aufrufs) auf dem Stack gesichert, damit bei der Rückkehr 
an der alten Stelle des Programms weitergemacht werden kann.


>
> mfg
> Manu

...
Gast #482006
Lesenswert?
• ▲
▼
> ...was die Programmzeilen nacheinander liest und bearbeitet?
Der PC (Program Counter, Programmzähler) ist im Prinzip ein Zeiger, der 
der CPU mitteilt, an welcher Adresse im Programmspeicher der nächste 
auszuführende Befehl steht. Im Normalfall wird der PC nach jedem Befehl 
inkrementiert. Durch das Programm (Sprungbefehle, Unterprogrammaufrufe) 
oder durch Hardware-Ereignisse (Interrupts) kann er einen anderen Wert 
zugewiesen bekommen.
Gast #482013
Lesenswert?
• ▲
▼
>was ist das im Mikrokontroller was die Programmzeilen nacheinander
>liest und bearbeitet?

Trolle, Zwerge, Kobolde und Elfen...

SNCR

Der PC (Programmzähler) ist nichts anderes als ein Register, das je nach 
ausgeführtem Befehl inkrementiert wird.
Im Falle eines Interrupts wird dieses Register auf dem Stack gerettet 
und die Interruptadresse in den PC geschrieben.
Beim Beenden der ISR wird dann der alte Wert des PC vom Stack 
zurückgeholt. Das übernimmt alles die Programmsteuerlogik, die im 
Controller in Hardware vorhanden ist.
Diese Logik guckt eigentlich immer nur auf das Register, liest den 
aktuellen Wert aus und inkrementiert ihn, sofern kein Sprungbefehl 
ausgeführt werden soll. In diesem Fall wird der PC entsprechend 
modifiziert. Relative Sprünge werden zum PC addiert (rjmp), bei direkten 
wird der PC überschrieben. Bei Aufrufen von Unterprogrammen ("call") 
wird auch wieder der PC auf dem Stack gesichert und beim "ret" 
zurückgeschrieben.
Das ist aber auch alles recht hübsch in Datenblättern beschrieben.

http://de.wikipedia.org/wiki/Mikroprozessor

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.