Timer1 läuft nicht an?

Gast #313033
Lesenswert?
• ▲
▼
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 #313037
Lesenswert?
• ▲
▼
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 #313038
Lesenswert?
• ▲
▼
@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 #313039
Lesenswert?
• ▲
▼
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 #313040
Lesenswert?
• ▲
▼
@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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.