Hi Leute,
Ich hänge seit einigen Stunden an einem Timer im Atmega2560. Im Internet
habe ich auch einiges gefunden, aber meinen Fehler bekomme ich nicht
weg.. der Timer soll im ctc Modus laufen und jede Sekunde einen neuen
Pixel in eine Reihe zeichnen.
meine Timer Einstellung ist:
TCCR4B|= (1<<WGM42) | (1<<CS42) | (1<<CS40); //prescaler 1024
TIMSK4|= (1<<OCIE4A);
OCR4A=15625;
sei();
Meine ISR lautet:
ISR(TIMER4_COMPA_vect)
{
count++; if(count>100)count=0;
myGLCD.drawPixel(count,10);
}
Das Problem: der Timer geht genau einmal in die ISR..
Hat jemand ne Idee???
Das Problem wurde gelöst und falls Jemand ein ähnliches Problem haben sollte: Ich hatte die Variablen auf die ich in der ISR zugreife "normal" global geklariert. Das sieht man oben im Sketch nicht (ich dachte halt es liegt am setup). Das lässt dem Compiler wohl die Möglichkeit offen den Variablen einen Gültigkeitsbereich zuzuweisen den er für angemessen hält. Der Compiler will optimieren und macht alles kaputt :D:D .... Lösung ist die Variable als Volatile zu deklarieren. Dann kann sie immer und überall geändert werden. lg
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.