Forum: Compiler & IDEs Probleme mit externem Interrupt --> Reset! - ratlos?


von Hansi_ (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

Ich hab folgendes Problem:

Ich möchte am INT2 (PB2) an einem Atmega32 ein Rechtecksignal auswerten. 
Meine Implementierung -> siehe Datei.
Es gibt einen Timer um die Zeit zu erfassen. sobald die Zeit abgelaufen 
ist (Überlauf) soll das Display beschrieben werden.
In der Routine für den INT2 wird einfach nur ein Zähler inkrementiert.
Das Problem ist, sobald ich den Interrupt für INT2 in der Funktion 
Init_Zeit() initialisiere, resettet sich der Atmega 32 dauernd...
HArdwaremäßig ist alles in Ordnung - andere Programme laufen nach wie 
vor hervorragend.

Könnt ihr mir weiterhelfen? Herzlichen Dank!!

von Johannes M. (johnny-m)


Lesenswert?

> ISR(EXT_INT2)
Das muss INT2_vect heißen!

von Michael Wilhelm (Gast)


Lesenswert?

Möglichkeit 1:
ist INT2 auch mit 5 definiert?

Möglichkeit 2:
Stack Überlauf

Mehr fällt mir nicht ein.
MW

von Hansi_ (Gast)


Lesenswert?

So einfach kanns sein...

Danke! Das nächste mal schau ich direkt in der lib und nicht im 
Datenblatt nach!

:D

von Karl H. (kbuchegg)


Lesenswert?

Michael Wilhelm wrote:
> Möglichkeit 1:
> ist INT2 auch mit 5 definiert?
>
> Möglichkeit 2:
> Stack Überlauf
>
> Mehr fällt mir nicht ein.

Möglichkeit 3:
Der Name des Interrupt Vektors ist falsch geschrieben.
Das ist die Hauptursache für das Symptom: Sobald die
Bedingung für einen Interrupt hergestellt ist, resettet
sich der µC

von Johannes M. (johnny-m)


Lesenswert?

Hansi_ wrote:
> So einfach kanns sein...
>
> Danke! Das nächste mal schau ich direkt in der lib und nicht im
> Datenblatt nach!
>
> :D
Wo bitteschön steht im Datenblatt "EXT_INT2"? In meinem Datenblatt steht 
"INT2"... Die Vektornamen in der lib sind identisch mit denen aus dem 
Datenblatt, bis auf das angehängte "_vect" (und natürlich die durch 
Undercsores ersetzten Blanks bzw. Sonderzeichen...). Genau das ist ja 
der Sinn der "neuen" Bezeichnungen in der lib: Man soll eben nicht 
mehr ständig wegen jeder Kleinigkeit in der lib-Doku nachsehen müssen...

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.