Kontinuierlicher Reset-Interrupt ?

Gast #1816535
Lesenswert?

Hallo Spezialisten,

ich habe ein Problem mit dem Interruptsystem des Mega32. Ich habe ein 
Programm erstellt zunächst völlig ohne Interrupts und es funktioniert 
alles sehr gut. Jetzt möchte ich einen zyklischen 
Timer2-Overflow-Interrupt hinzufügen.

Mein Problem: Es wird nach Aufruf von sei() ständig in einer 
"Endlosschleife" der Reset-Vector ausgeführt und mein Programm arbeitet 
zyklisch immer wieder die Initialisierung ab bis zum Aufruf sei(). Woran 
kann das liegen? Woher bekommt der Mega32 den Reset bei Aufruf von sei() 
?

Danke für jegliche Hinweise!

Programmcode (compilierbares Projekt mit allen Dateien für WINAVR) ist 
im Anhang.

Danke,
Gert
Angehängte Dateien:
#1816577
Lesenswert?

Ich bin jetzt nicht den ganzen Source durchgegangen, aber
1
TIMSK=0x40; //enable timer2 ovf interrupt
und als einzige ISR, die ich gefunden habe,
1
ISR(TIMER0_OVF_vect)
(Timer 2 vs. 0) wollen mir nicht zusammenpassen.

Es gibt übrigens die wunderbare Möglichkeit, Sourcecode durch 
Einrückungen lesbar zu gestalten und durch Verwendung von Bitnamen statt 
„0x40“ übersichtlich zu halten.
Gast #1817300
Lesenswert?

Hallo zusammen,

erstmal vielen Dank für die Tips, komme eben erst zum Lesen.

Zum Code: Ja, nicht der schönste Stil, ist aus vielen Programmen 
zusammengestückelt. Ich schäme mich :-)

@Klaus:
Ja, ich habe den ADC-Interrupt aktivieren "müssen" weil ich den ADC im 
Freerunning Mode laufen habe. Er läuft sonst nicht wenn ich den 
ADC-Interrupt sperre. Der ADC läuft bei mir kontinuierlich im 
Hintergrund und aktualisiert nur das Ergebnisregister ADCH auf welches 
ich dann jederzeit schnell zugreifen kann.

@Randy:
Danke für den Hinweis, das war mir nicht bekannt! Zusammen mit dem Tip 
von Klaus würde das passen: ich habe den ADC Interrupt aktiviert aber 
keine ADC-ISR im Code. Das bedeutet nach Randy dann einen Reset! Würde 
passen! Ich teste es gleich morgen mal!

Schonmal vielen Dank an die Profis ! Super!!

Gert

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren