Timer Atmega2560 nur ein Durchlauf

OP #4418171
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???
OP #4469124
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.