www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Was wechselt rum?


Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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

...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

...

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab zwar am längsten gebraucht, dafür habe ich aber auch das wahre 
Innenleben beschrieben... ;-)

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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)...

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>(am bestenallerdings in der Originalversion)...

Am besten beide Versionen.
Damit man auch über die Übersetzungsfehler schmunzeln kann...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.