Forum: Mikrocontroller und Digitale Elektronik Was passiert nach dem Interrupt


von student (Gast)


Lesenswert?

Hallo Jungs,

ich habe folgendes Probelm, mein Programm macht machmal Sachen die es 
nicht tun soll, die ich nicht ganz nachvolziehen kann. Ich denke aber 
das hat mit meinem Overflow Interrupt zu tun.
So daher meine Frage: Wenn Interrupt eingetretten ist, wo faengt meine 
Hauptprogram wieder an? An der Stelle wo es unterbrochen wurde oder am 
Anfang des Hauptprograms?

Wenn am Anfang des Programms das koente einiges erklaren! Kann man dann 
das Programm dazu zwingen, dort zu starten wo es aufgehoert hat?

Gruss
von Sam .. (sam1994)


Lesenswert?

Das Programm speichert sobald ein Interrupt auftritt den PC 
(=Programmcounter) auf dem Stack. Dieser wird wieder zurückgeschrieben 
sobald der Interrupt beendet wird.

Aus deiner Beschreibung heraus kann man wenig sagen: Sprache? µC? Was 
sagt der Simulator? Interruptvektor (für Overflow) geschrieben (wenn 
nein, resettet sich der µC)?
von crazy horse (Gast)


Lesenswert?

Klingt nach Assembler + SREG-Probleme :-)
von finten (Gast)


Lesenswert?

mit welcher sprache programmierst du?
von student (Gast)


Lesenswert?

Hey,

verdammt, ich versteh es einfach nicht.
ich programmiere mit AVR STUDIO 5 einen Atmega64M1 in c.

Gruss
von Peter II (Gast)


Lesenswert?

wenn dein Programm wieder am anfang anfängt, dann könnte es auch ein 
Interupt sein der nicht definiert ist aber aktiv ist.
von Sam .. (sam1994)


Lesenswert?

Samuel K. schrieb:
> Interruptvektor (für Overflow) geschrieben

?
von Lasse S. (cowz) Benutzerseite


Lesenswert?

Stack initialisiert?

Allgemein: Bitte mehr Infos (Sourcecode, ...)
von Peter II (Gast)


Lesenswert?

Lasse S. schrieb:
> Stack initialisiert?

in C?
von student (Gast)


Lesenswert?

>> Stack initialisiert?

in c mus man das wirklich machen?
von Sam .. (sam1994)


Lesenswert?

student schrieb:
>>> Stack initialisiert?
>
> in c mus man das wirklich machen?

Nein und jetzt poste mal deinen Code damit das Rätselraten endlich 
aufhört.
von Lasse S. (cowz) Benutzerseite


Lesenswert?

Ah, das mit dem C hab ich überlesen, nachdem weiter oben schon Assembler 
erwähnt wurde.

Dann tippe auch ich auf einen in C nicht behandelten Interrupt.
von Falk B. (falk)


Lesenswert?

@  student (Gast)

>So daher meine Frage: Wenn Interrupt eingetretten ist, wo faengt meine
>Hauptprogram wieder an? An der Stelle wo es unterbrochen wurde oder am
>Anfang des Hauptprograms?

Ja wo denn wohl?

>Wenn am Anfang des Programms das koente einiges erklaren!

Nö, das sind freigegebene Interrupts ohne ISR, dort macht der AVR-GCC 
einen Reset.

> Kann man dann
>das Programm dazu zwingen, dort zu starten wo es aufgehoert hat?

Das tut es im Normalfall, siehe Interrupt.

MfG
Falk
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.