Hallo!
Du gibst einen Überlauf Interrupt vom Timer0 frei. Aber nirgends sehe ich den Code für die ISR. Sowas kann ganz lustige Folgen haben.
Auch ist deine scheinbare Tastenentprellung irgendwie seltsam.
Dennis
Hallo!
Du gibst einen Überlauf Interrupt vom Timer0 frei. Aber nirgends sehe ich den Code für die ISR. Sowas kann ganz lustige Folgen haben.
Auch ist deine scheinbare Tastenentprellung irgendwie seltsam.
Dennis
Ich studiere die Wirkung der Sonnenstrahlen auf das Liebesleben der Pflastersteine
Danke, jetzt geht alles wie es soll.
Mir hat die Zeile: TIFR0 &= ~(1<<TOV0) in der ISR(TIMER0_OVF_vect) gefehlt.
Das mit der entprellung (Abfrage, Warten und nochmalige Abfrage) habe ich so irgendwo mal im Netz gefunden.
Der Zusatz ist nur dazu da um in der endlosschleife drinnen zu bleiben, bis halt die Start-Taste gedrückt ist.
Das glaube ich nicht. Mit diesem Befehl löscht du das Interrupt Flag. Das wird aber automatisch gelöscht, sobald du in die ISR reinspringst. Nach wie vor fehlt in deinem "kompletten" Code die ISR ganz.
Das ist aber eine schlechte Art einer Entprellung. Für dein jetziges Vorhaben vielleicht ausreichend, aber trotzdem ein ganz schlechter Stil. Für gewöhnlich macht man sowas mit einem Timer-Interrupt.Das mit der entprellung (Abfrage, Warten und nochmalige Abfrage) habe ich so irgendwo mal im Netz gefunden.
Der Zusatz ist nur dazu da um in der endlosschleife drinnen zu bleiben, bis halt die Start-Taste gedrückt ist.
http://www.mikrocontroller.net/artic...areentprellung
Dennis
Ich studiere die Wirkung der Sonnenstrahlen auf das Liebesleben der Pflastersteine
Stange, dass es trotzdem funktioniert. Heißt also noch mal das Datenblatt und das Web wälzen.
Na gut.
Mit dem Entprellen hast du recht. per Timer ist besser. Wird beim nächsten Projekt beachtet.
Hier brauche ich nur einen Taster und einmal drücken zum start (damit mir der Robot nicht ungewolt vom Tisch springt).
Lesezeichen