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

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.