Forum: Compiler & IDEs Überflaufwert 16bit-Timer


von Stefan (Gast)


Lesenswert?

Hi,

eine kurze Frage: kann ich an einem Mega16 beim 16-Bit-Timer einen Wert
definieren, der den Timer überlaufen lässt, bevor er die 65536
erreicht?

Habe schon das Register TCNT1 versucht, ging aber nicht.

MfG

von Wolfgang Horn (Gast)


Lesenswert?

ja, Stefan,

suche im Datenblatt nach dem Stichwort "CTC" beim Timer 1 lies den
Abschnitt durch.

Ciao
Wolfgang Horn

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Da steht auch das man den TCNT1 verändern soll.

Vielleicht hab ich mein Problem falsch beschrieben.
Mein Timer läuft und gibt am PinD5 einen Low-Pegel aus, dann kommt der
Compare Match (OCR1A) und dann wird der Pin high gesetzt.
Ich will letztenendes das Signal einfach nur frühzeitig abschneiden
(siehe jpg) und mit einem Wert der kleiner als 65536 ist das
Abschneiden definieren (siehe roten und grünen Strich im Bild)

MfG

von johnny.m (Gast)


Lesenswert?

Im CTC-Modus brauchste an TCNT1 überhaupt nix zu ändern! Das ist schon
genau das, was Du brauchst. Es gibt beim Mega16 zwei CTC-Modi, einen
mit OCR1A als Maximalwert und einen mit ICR1 als Maximalwert. Wenn Du
nur ein Signal erzeugen willst, dann ist es relativ egal, welchen der
beiden Du nimmst. Es wird einfach ein Maximalwert für den Zähler
definiert, bei dem der Zähler auf null zurückgesetzt wird. Wenn in
OCR1A der Maximalwert steht, dann kannst Du in OCR1B den Compare-Wert
einstellen. Wenn Du unbedingt den OC1A-Pin benutzen musst (weil die
Hardware vielleicht schon fertig ist), dann nimm den anderen CTC-Modus,
dann kannste auch OCR1A für den Compare-Wert nutzen.

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.