Tag Habe mir verschiedene Seiten angeguckt um den CTC modi zu verstehen. Hab es auch soweit glaube ich verstanden. Aber was ist wenn man den CTC modus dazu nutzen will Impulse mit veränderbarer Periodendauer zu nutzen? (Angenommen man liest eine analoge spannung ein und anhand dieser spannung stellt man die periodendauer ein) Dann muss man doch auch hier neu nachladen oder? Wäre dieser Modus denn trotzdem genauer als einen Timer Interrupt Overflow zu nutzen? Habe im Tutorial folgendes gefunden, allerdings steht da nicht viel: "Diese Betriebsart macht das Timer-Nachladen, das bei AVRs, die ja im Unterschied zu 8051-Derivaten keine Auto-Reload-Funktion haben, immer mit Ungenauigkeiten und programmtechnischen Klimmzügen verbunden ist, überflüssig. Ist das OCRnx einmal gesetzt, dann wird das Signal am Ausgang kontinuierlich ausgegeben, ohne dass die Anwendersoftware eingreifen muss (es sei denn, die Frequenz soll geändert werden)."
Eigentlich gibt es nur einen CTC modus, der wirklich so heisst. Alle anderen heissen irgendwas mit PWM. Du kannst also z.B. den FastPWM-Mode nehmen und ICR als TOP benutzen. Die Pulsweite kannst du dann durch Ändern des zugehörigen OC-Registers veriieren.
Hi Deine Pulsdauer wird vom OC-Register bestimmt. Wenn du die Frequenz ändern willst musst du 'Top' einstellen. Näheres in den Datenblättern unter 'Modes of Operation'. Spess53
Hallo
>> Die Pulsweite kannst du dann durch Ändern des zugehörigen OC-Registers
veriieren.
Das wäre im Grunde genau dasselbe, wenn ich zB TCNT2 neu nachlade um
verschiedene Impulsbreiten zu erhalten?
>Das wäre im Grunde genau dasselbe, wenn ich zB TCNT2 neu nachlade um >verschiedene Impulsbreiten zu erhalten? Nicht wirklich. Es ist wesentlich besser, da es automatisch läuft. Wenn du den Wert nicht ändern willst, brauchst du dich nicht weiter um das Ding kümmern. Erst, wenn du etwas ändern willst.
Hi >Das wäre im Grunde genau dasselbe, wenn ich zB TCNT2 neu nachlade um >verschiedene Impulsbreiten zu erhalten? Damit veränderst du aber die Frequenz gleich mit. Also etwas kontraproduktiv. MfG Spess
spess53 wrote: > Damit veränderst du aber die Frequenz gleich mit. Also etwas > kontraproduktiv. Er will die Frequenz ändern! Steht sogar im Betreff. Und im Text steht "Periodendauer", und die ist bekanntermaßen der Kehrwert der Frequenz. Ich schätze, das mit der "Impulsbreite" war nur "unpräzise Ausdrucksweise"... Trotzdem kann man mit ein bisschen Nachdenken herausfinden, warum das Ändern vom Compare-Register besser ist. Es muss nämlich nur genau einmal der Wert geändert werden und der Timer läuft mit der neuen Frequenz weiter! Beim Timer-Reload muss nach jedem Überlauf der Timer nachgeladen werden. Jetzt klar? Falls wirklich die Impulsdauer geändert werden soll (bei gleichbleibender Frequenz), ist allerdings tatsächlich die PWM das Mittel der Wahl (wobei PWM auch eigentlich nur ein CTC-Modus mit Zusatzfunktion ist...)
>Beim Timer-Reload muss nach jedem Überlauf der Timer >nachgeladen werden. Jetzt klar? Naja, hinschreiben muß man das auch nur einmal, das Programm macht es dann schon alleine. So groß ist der Aufwand nicht. Problematisch wird es halt nur, wenn auch noch andere Interrupts aktiv sind, und das Nachladen dadurch unkontrolliert verzögert wird. Oliver
Beim Verändern des Top Wertes aber aufpassen! Wenn dein aktueller Zählerstand zur Zeit gerade zb 1000 ist, du den alten Top Wert von 2000 auf 500 veränderst, läuft dir der Zähler einmal durch. Enige PWM Modi berücksichtigen das, indem das eigentliche Top Register erst beim erreichen des alten Top Wertes verändert wird. WIe das beim CTC ist, weiß ich nicht auswendig. Also Datenblatt studieren, bzw. selbst dafür Sorge tragen, dass hier nichts passiert.
Karl heinz Buchegger wrote: > Enige PWM Modi berücksichtigen das, indem das eigentliche Top > Register erst beim erreichen des alten Top Wertes verändert wird. WIe > das beim CTC ist, weiß ich nicht auswendig. Beim CTC wird nicht synchronisiert (im Gegensatz zu den PWM-Modi)! CTC sollte man nicht als PWM-Ersatz "missbrauchen". Wenn man ne PWM haben will, dann den Timer in einem PWM-Modus betreiben, dafür sind die da.
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.