Timer Startwert AVR

Gast #3984239
Lesenswert?

Hallo,

Habe ein Frage zum Überlauf eines Timers.

Wird der Timer beim Überlauf auf 0 gesetzt und zählt dann wieder hoch, 
oder auf den Startwert den man vorher festgelegt hat?.

Wenn man z.B. einen Startwert festlegt dann zählt ja der Timer von 
diesem Wert weg. Wenn der Timer jedoch überläuft springt er dann auf 0 
zurück oder auf den gesetzten Startwert?.


Mfg Gabriel
Gast #3984258
Lesenswert?

Gabriel Staudinger schrieb:
> Wenn man z.B. einen Startwert festlegt dann zählt ja der Timer von
> diesem Wert weg. Wenn der Timer jedoch überläuft springt er dann auf 0
> zurück oder auf den gesetzten Startwert?.

Er springt auf 0 zurück. Der Startwert wird ja normalerweise in das TCNT 
Register geschrieben, mit dem der Timer hochzählt. Der Startwert geht 
also verloren weil er durch Hochzählen des Timers im TCNT überschrieben 
wird.

Du solltest immer den µC angeben, auf den sich deine Frage bezieht. Ich 
gehe mal davon aus, daß du einem AVR meinst, einen ATmega8A?
Gast #3984293
Lesenswert?

Gabriel Staudinger schrieb:

> Habe ein Frage zum Überlauf eines Timers.
>
> Wird der Timer beim Überlauf auf 0 gesetzt und zählt dann wieder hoch,

Das kommt vor, ja. Typisch für Normal-, FastPWM- und CTC-Modus.

> oder auf den Startwert den man vorher festgelegt hat?.

Das passiert niemals und es ist auch völlig logisch, daß das niemals 
passieren kann, weil es schlicht kein Register gibt, in dem der Timer 
sich diese "Vorgabe" merken könnte. Das Zählregister, in das du (in 
99,99% der Fälle unsinnigerweise) deine Vorgabe schreibst, wird ja beim 
Zählen ständig verändert. Der ursprünglich hineingeschriebene Wert ist 
also nach dem ersten Zählschritt bereits unrettbar verloren.

Ein wenig Logik beim Denken, bitte!

Was es aber gibt, ist noch ein anderes Verhalten als Rücksetzen auf 
Null. Nämlich runterzählen vom erreichten End-Zählerstand auf Null. Das 
ist logisch möglich (weil der Endzählerstand im Moment des Überlaufs 
bekannt ist, sogar aus gleich zwei Quellen) und die Sache wird auch 
tatsächlich genutzt, nämlich bei den anderen beiden PWM-Modi 
(PhaseCorrect und Phase&FrequencyCorrect).
Gast #3984363
Lesenswert?

c-hater schrieb:
> Ein wenig Logik beim Denken, bitte!

> Null. Nämlich runterzählen vom erreichten End-Zählerstand auf Null. Das
> ist logisch möglich (weil der Endzählerstand im Moment des Überlaufs
> bekannt ist, sogar aus gleich zwei Quellen) und die Sache wird auch
> tatsächlich genutzt, nämlich bei den anderen beiden PWM-Modi
> (PhaseCorrect und Phase&FrequencyCorrect).

Da kann man doch nicht von Überlauf sprechen.

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