Hallo zusammen, ich habe mir die S-65 LCD-Library vom mp3-player (http://www.my404.de/index.php?&main=Software&sub=ATmusic&style=grey1) für ein eigenes Projekt "ausgeliehen". (An dieser Stelle großen Dank und Respekt an die Autoren!) Das ganz läuft auf einem ATMega644. Nach dem Start des Programms wird etwas auf dem LCD angezeigt und auf eine Tastatureingabe gewartet. Dies passiert zyklisch in der ISR des Timers1 durch den Aufruf der Funktion: gui_elements_thread(); --> s. Anhang gui_elements... Der Timer-Init für die ISR geschieht in der global.c. Nehme ich die originale Version der Autoren (alt_global.c/Timer1) geht alles wunderbar und die Tastendrücke werden wie gewünscht ausgeführt. Da ich aber den Timer1 später für eine andere Funktion benötige, wollte ich den Timer0 für diesen Zweck heran führen. Der Init (neu_global.c/Timer0) hat die gleichen Voraussetzungen: Prescaler 1024, CTC, OCR=244 Zur besseren Übersicht habe ich die xy_global.c gekürzt. Bei meiner Version wird aber kein Tastendruck erkannt bzw. keine ISR ausgeführt. Woran liegt das? Erkennt jemand von euch den Fehler? Gruß Michael
Zusatz: die Variable GLOBAL_TIMER_DIVISOR = 40 OCRx...Ergibt bei 10Mhz ca. 244
dr.prof.schlau schrieb: > Der Init (neu_global.c/Timer0) hat die gleichen Voraussetzungen: > Prescaler 1024, CTC, OCR=244 Nö. Weder hast du Prescaler 1024, noch den CTC-Mode eingestellt.
Hallo Stefan, vielen Dank. --> WGM01 ist in TCCR0A, nicht in TCCR0B. UND: Ich habe die Umstellung zuerst mit Timer2 gemacht und die Clockselect übernommen. Bei Timer2 (auch ein 8-Bit Timer) ist der Prescaler 1024 mit 111 angegeben. Auch wenn ich die CS richtig angeben hätte (101), hätte die WGM01 in TCCR0B einen "Extern Clock" eingestellt. Auweia. Verdammt, manchmal steht man derart auf dem Schlauch, das glaubt man einfach nicht. Ich habe zwanzig mal ins Datenblatt geschaut und trotzdem diese zwei eklatanten Fehler eingebaut. Gruß Michael
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.