Forum: Mikrocontroller und Digitale Elektronik Reset Interrupt Vektor


von ovt (Gast)


Lesenswert?

was hat es eignetlch mit diesen Vektoren auf sich? Gibt ja jede menge: 
Reset Vektor, Interrupt vektor usw.

Ist in diesem Speicherelement (also wo der vektor ist) die Sprung 
Adresse, des entsprechenden events gespeichert? Also eigentlch nur ein 
Pointer?

von Falk B. (falk)


Lesenswert?

@ ovt (Gast)

>was hat es eignetlch mit diesen Vektoren auf sich? Gibt ja jede menge:
>Reset Vektor, Interrupt vektor usw.

Das sind Zeiger auf Interruptserviceroutinen.

>Ist in diesem Speicherelement (also wo der vektor ist) die Sprung
>Adresse, des entsprechenden events gespeichert?

Praktisch ja. Wobei es da zwei Arten gibt, abhängig vom Prozessor.
Beim AVR stehen an der Stelle Sprungbefehle in die Routinen. Bei anderen 
Prozessoren stehen dort nur die Adressen, die der Prozessor erst 
auslesen muss und dann dorthin springt.

> Also eigentlch nur ein Pointer?

Ja.

MFG
Falk

von ovt (Gast)


Lesenswert?

Genau das wollte ich wissen - Danke

Ach ja und wie geht das mit dem Reset Vektor? Ist das nur ein Pointer 
auf eine std Funktion welche die Peripherie des uC (Xscale) zurücksetzt, 
oder wird der ganze conntroller zurückgesetzt (also PC = 0)?

von ovt (Gast)


Lesenswert?

ach ja noch was:
was ist der unteschied zwischen Inerrupt Vektor und Fast Interrupt 
Vektor?

von christiang (Gast)


Lesenswert?

Das Zurücksetzen eines µCs geschieht normalerweise durch den Resetimpuls 
(Leitung auf LOW ziehen). Die Adresse die im Resetvektor steht zeigt auf 
den Code, der zuerst ausgeführt wird (z.B. Variablen initialisieren) und 
deine Main-Funktion aufruft.
Damit kannst du (je nach Typ) den µC (komplett) neu initialisieren. 
Teilweise haben µCs aber auch "Write-Once" Register, die nur einmalig 
nach dem Reset verändert werden können. Diese sind doch einen 
Softwarereset (Sprung auf den Interruptvektor) dann natürlich nicht mehr 
veränderbar.

von pico (Gast)


Lesenswert?

.... dazu kann man bei avr abfragen, ob ein port schon auf eine
     bestimmte richtung (ddrx) initialisiert wurde .....

mfg pico

von Jochen M. (taschenbuch)


Lesenswert?

Hallo,

Das zuvor gesagt geht zwar in die richtige Richtung und meint auch das 
richtige, ist aber genau genommen falsch!

Bei AVR sind das KEINE Vektoren im eigentlichen Sinn, sondern 
Befehlsspeicherstellen.

Ein Vektor wäre es dann, wenn dort lediglich eine Adresse stehen würde, 
die der AVR dann intern in einen Sprung "umwandeln" würde.

Beim  AVR wird dort aber keine reine Adresse plaziert, sondern ein 
kompletter Befehl, z.B. kann in der Vektortabelle ja ein einfaches RETI 
stehen, wenn dieser Int. nicht benötigt wird.
Die Aussage, dass es sich um reine Pointer handelt ist also so nicht 
richtig.

Jochen Müller

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.