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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.