Timer1 läuft nicht an?

Gast #313033
Hallo,
die letzten Tage habe ich mit dem Installieren und der Inbetriebnahme
und Einarbeitung des AVR Studios mit WinAvr beschäftigt. Ich habe
vorher mit CodeVision gearbeitet und war nun einfach mal auf der Suche
nach einem freien C-Compiler. Mein Fazit vorab: Ich bin sehr angetan
von der aus Kombination von Studio und WinAvr entstehenden kompletten
Entwicklungsumgebung. Großes Plus ist die Möglichkeit auf C-Ebene zu
debuggen.
Nun wollte ich den Timer1 mal zum Laufen bringen, dieser läuft aber
leider nicht los. Ich denke eigentlich habe ich alle Register
vernünftig initialisiert, aber wie gesagt er läuft nicht los.

Vielen Dank für die Hilfe und Tips schon im voraus.
Angehängte Dateien:
Gast
Mit symbolischer Schreibweise ist gemeint: TIMSK = (1<<OCIE1A) zum
Beispiel. Liest sich besser als TIMSK = 0x10;
Denn TIMSK = 0x40 ist falsch. Der Timer läuft zwar, löst aber keinen
Interrupt aus (denn Du hast den Overflow des Timer2 selektiert)
Gast
@thkais,
hast recht, muss natürlich TIMSK=0x01 bzw. TIMSK=(1<<OCIE1A) heißen.


Aber das Hauptproblem bleibt; der Timer läuft nicht an. Er müsste doch
nach Init von TCCR1B anlaufen. Hier wähle ich:
CS12:CS10 0b00000101 //Vorteiler 1024
Und für CTC Mode: Setzen von WGM12 bzw. CTC1. Dies ist das 3. Bit im
Register, also ergibt sich doch
TCCR1B=0b00001101 bzw. TCCR1B=0x0D
bzw. symbolisch:
TCCR1B=(1<<CS12)|(1<<CS10)|(1<<CTC1);
Gast
Woraus schließt Du eigentlich, dass der Timer nicht losläuft? Wenn Du
das vom Debugger hast, in welchem Modus lässt Du den denn laufen? Bei
einer Taktteilung von 1024 kriegste ja nur alle 1024 Takte ein
Inkrement in TCNT1. Wenn Du in Einzelschritten simulierst, dann
müsstest Du 1024 mal klicken, bevor sich da überhaupt was tut.
Gast
@johnny b
Hast auch recht. Ich hab den Vorteiler auf 1 eingestellt und den
Compare wert auf 10, so dass man im Simulator mehr sieht.
Timer läuft, die ISR wird jedoch nicht ausgeführt. Jetzt weiß ich
zumindest schon genauer wo es klemmt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.