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? mfg Manu
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 ...
> ...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.
> Programmzeilen
Da lauert das Missverständnis. Der Controller kennt keine
Programmzeilen. Er kennt nur Maschinenbefehle. Und die stehen nicht an
irgendwelchen Zeilennummern oder Labels, sondern an Adressen des
Programmspeichers.
...
>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
Ich hab zwar am längsten gebraucht, dafür habe ich aber auch das wahre Innenleben beschrieben... ;-)
Rahul, der Drollige wrote: > Ich hab zwar am längsten gebraucht, dafür habe ich aber auch das wahre > Innenleben beschrieben... ;-) Jawollll, Herr Droll... ;-) Gruß nach Kiel... ...
@Troll-Rahul: Wer hat Dich eigentlich aus der Scheibenwelt rausgelassen:-? Aber ist schon richtig: Imho sollte TP Pflichtlektüre sein (am besten allerdings in der Originalversion)...
>(am bestenallerdings in der Originalversion)...
Am besten beide Versionen.
Damit man auch über die Übersetzungsfehler schmunzeln kann...
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.