Timer - Output Compare Mode

Gast #84671
Lesenswert?
• ▲
▼
In sämtlichen Timer-Tutorials, die ich kenne, wird beim Output Compare
Mode beispielsweise für einen 1sec-Timer bei 8MHz und Prescaler 256,
31250 in OCR1A geschrieben (8000000/256=31250). Da aber der Timer bei 0
und nicht bei 1 zu zählen anfängt, wäre doch 31249 richtig, oder?
Schließlich dauert es 31251 Timer-Zyklen, bis er von 0 bis 31250
gezählt hat. Oder liegt da bei mir ein Denkfehler vor? :-)
#84673
Lesenswert?
• ▲
▼
"Oder liegt da bei mir ein Denkfehler vor? :-)"

Ja.

Der Übertrag von 31250 nach 0 erfolgt in einem Zyklus. Ohne Vorteiler
müßte man diesen Zyklus abziehen.

Mit Vorteiler kommte jedoch der nächste Zählimpuls erst 256 Zyklen
später, deshalb muß man diesen Zyklus nicht abziehen.

Man hat also:

256 Zyklen: 31249
  1 Zyklus: 31250
255 Zyklen: 00000
256 Zyklen: 00001
usw.


Peter
Gast #84674
Lesenswert?
• ▲
▼
Wenn der Timer sich so verhält, wie du es beschreibst, dann hätte er
doch aber einen "Schluckauf"? Schließlich sind die Zyklus-Abstände
zwischen den Schritten 31250-00000-00001 dann nicht konstant, oder?
Gast #84675
Lesenswert?
• ▲
▼
Ich habe das ganze mal im AVR-Studio simuliert, der Timer springt
nicht in einem Zyklus von 31250 auf 0. Die Aussage von Peter scheint
also nicht korrekt zu sein. Trotzdem wäre mir eine dritte Meinung noch
ganz recht ;-)
Gast #84676
Lesenswert?
• ▲
▼
Und um das ganze noch zusätzlich zu verkomplizieren, sagt die
Simulator-Hilfe:

"When set up to toggle on overflow, OC1A toggles immediately in the
simulator whereas in silicon it will wait for the timer to roll over to
0x0000. This has been verified for ATmega8, but may be experienced with
other parts."
Gast #84677
Lesenswert?
• ▲
▼
Um das Thema totzuschlagen (zumindest auf dem Mega8) schaut einmal ins
datasheet vom Mega8. Dort findet sich auf Seite 87 Mitte eine Formel.
Diese Formel bestätigt den ersten Post hier im Thread. Sie berechnet
die Frequenz, welche sich für verschiedene Einstellungen des
Compare-Match-Wertes bei verschiedenen Prescaler-Einstellungen.

MfG, Khani

P.S.: Die meisten Antworten stehen im Datenblatt - nur nicht immer da,
wo man denkt ;-)
Gast #84679
Lesenswert?
• ▲
▼
Warum dann die Formel im Mega8-Datenblatt wiederum die erste Annahme
bestätigt, verstehe ich nun allerdings auch nicht... ich kann mir
eigentlich nicht vorstellen, dass das Timerverhalten in der Hinsicht
einfach geändert wurde.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren