Timerprogrammierung

Gast #92523
Lesenswert?
• ▲
▼
Hallo zusammen,

ich verwende einen ATMega8535 und CodevisionAVR.

Um Impulse in einer bestimmten Zeit auszuwerten, möchte ich mit dem
Timer0 einen Sekundentakt erzeugen, weiss aber nicht wie die ganze
Rechnerei funktioniert um genau auf 1 Sekunde zu kommen!
Kann mir jemand helfen?
Danke Manuwar
Gast #92524
Lesenswert?
• ▲
▼
Es wäre ein Anfang, wenn du die Taktfrequenz posten würdest ...
Ansonsten kann man je nach Verfügbarkeit mit einem
Timer-Overflow-Interrupt bzw. dem Compare-Match-Modus arbeiten.
Am besten wäre es, wenn du das Datenblatt erst einmal studierst und
vielleicht auch hier einen Blick in die Codesammlung wirfst, dort liegt
ein entsprechendes Projekt rum.

Gruss Alex
Gast #92525
Lesenswert?
• ▲
▼
mit dem Timer0 wirst du nie direkt auf 1 Sekunde kommen, selbst bei nur
1MHz Takt und Vorteiler 1024, max. Zählerstand 255 (8bit) kommst du nur
auf ~0,25s.
Also beispielsweise einen 10ms-Interrupt erzeugen und mit einer
(static)-Variablen bis 100 zählen.
Gast #92527
Lesenswert?
• ▲
▼
Hi

du kannst den Timer1 im CTC-Modus dazu hernehmen. Vorteiler 1024, ins
OCR1x-Register 9765 schreiben und Compare-Match-INT aktivieren. Schon
hast du jede Sekunde deinen INT.

Bei so langsamen Frequenzen bevorzuge ich aber auch die Methode von
crazy horse. Also alle Millisekunde einen INT, in diesem dann eine
Variable hochzählen und beim Erreichen des gewünschten Wertes die
entsprechende Aktion ausführen. Dann kann man mit einem Timer nämlich
alle Vielfache von 1ms erschlagen.

Du wirst noch feststellen das man beim Programmieren von µC eigentlich
nie genug Timer haben kann. Insbesondere wenn man noch den ein oder
anderen PWM-Kanal nutzen möchte wirds schnell eng.

Matthias

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.