Forum: Compiler & IDEs AVR Studio Simulieren


von Pier S. (bigpier)


Angehängte Dateien:

Lesenswert?

Hallo ,
Ich bin ein absoluter neuling in sachen Gcc und somit möchte ich mich 
auch schon im Voraus bei Euch enschuldigen das ich sicherlich Dumme 
Fragen stellen werde !!!

Also zu meinem Problem ich habe ein kleines Programm geschrieben 
(Anhang) und möchte es im AVR Studio Simulieren geht so weit auch ganz 
gut , bis auf das das ich nicht verstehe warum beide Interrupt Vectoren 
hintereinander ausgeführt werden !! Was mache ich falsch ???
Herzlichen Dank schon mal im Voraus an Euch allen !!!

PS Ein Grosses Lob für dieses tolle Forum

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ich verstehe das Problem nicht, denn die müssen hintereinander kommen.

Der INT0 macht ja erst den Counter0 Interrupt scharf (TIMSK |= 
(1<<OCIE0A)). Wenn letzterer dann auftritt, schaltet er sich als erstes 
wieder ab (TIMSK &= ~(1<<OCIE0A)). Die Runde geht dann beim nächsten 
INT0 von vorne los.

Solltest du Probleme damit haben, dass die Counter0-ISR feuert, ohne 
dass es einen INT0 gegeben hat, dann mach die Initialisierung 
ausführlicher als jetzt. D.h. stelle TIMSK bereits im Hauptprogramm vor 
dem sei wunschgemäß ein.

von H.Baydoun (Gast)


Lesenswert?

Du solltest vielleicht das Interruptflag des Timers zurücksetzen bevor 
Du das Interrupt einschaltest.

Denn das Interruptflag wird gestetzt auch wenn der Interrupt nicht 
eingeschaltet ist.

von Pier S. (bigpier)


Lesenswert?

Vielen Dank !

Jetzt klappt es !!

von Pier S. (bigpier)


Lesenswert?

Du solltest vielleicht das Interruptflag des Timers zurücksetzen bevor
Du das Interrupt einschaltest.

Vielen Dank !!

Genau dass hab ich übersehen !!

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.