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
ja, Stefan, suche im Datenblatt nach dem Stichwort "CTC" beim Timer 1 lies den Abschnitt durch. Ciao Wolfgang Horn
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.