Forum: Mikrocontroller und Digitale Elektronik Timerprogrammierung


von Manuwar (Gast)


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

von Alex (Gast)


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

von crazy horse (Gast)


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.

von Manuwar (Gast)


Lesenswert?

hier die vergessenene daten:

10 MHZ/1024 --> 9,766 KHz

von Matthias (Gast)


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

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
Noch kein Account? Hier anmelden.