Hallo, ich brauche für eine Anwendung auf einem ATMega zwei Timer. Einer soll variable sein, der andere fest. Soweit so gut, alles kein Problem im CTC-Modus... Für den variablen Timer muss ich den 16-Bit-Timer nehmen, komme aber mit unterschiedlichen Vorteilern über den vorgesehenen Range hin. Ich stelle mir nun die Frage, ob man nun besser möglichst kleine oder möglichst hohe Vorteilerwerte einstellen sollte bzw. ist das reichlich egal und warum?
Solange du gewünschte Frequenz genau hinbekommst, ist die Kombination aus Vorteiler und Zähler-Top egal. Oliver
avr-timer schrieb: > Einer soll > variable sein, ... Je größer die Timer-Werte, desto feinstufiger kann man variieren. Also möglicht kleine Vorteiler, damit die Timerwerte groß bleiben... ...
Hannes L. schrieb: > Je größer die Timer-Werte, desto feinstufiger kann man variieren. Also > möglicht kleine Vorteiler, damit die Timerwerte groß bleiben... > > ... Naja das ist doch linear... Ein Timer ist doch genauso "feinstufig" bei OCRxn 9-12 wie bei OCRxn 52009 - 52012.
Rene K. schrieb: > Naja das ist doch linear... Ne, wenn der Timer 8x schneller läuft (Vorteiler 8 vs 64) bekommst du eine höhere Auflösung weil ein "Tick" 8x länger ist.
Hannes L. schrieb: > Je größer die Timer-Werte, desto feinstufiger kann man variieren. Also > möglicht kleine Vorteiler, damit die Timerwerte groß bleiben... Tr schrieb: > Ne, wenn der Timer 8x schneller läuft (Vorteiler 8 vs 64) bekommst du > eine höhere Auflösung weil ein "Tick" 8x länger ist. ...das ist richtig, wenn ich es mir richtig durchdenke! Bei theoretisch gebrochenen Zählerwerten wird dadurch die Abweichung zur gewünschten Frequenz kleiner... OK, das ist schon mal ein guter Hinweis! Im Hinblick auf Verarbeitungsgeschwindigkeiten ist nichts weiter zu sagen?
Sind alles synchrone Schaltwerke und die Prescaler sind einfache Flip-Flop Counter. Wenn du Interrupts mit deinem Timer generierst solltest du drauf achten dass die nicht zu oft kommen, die CPU muss die ja abarbeiten. Abgesehen davon gibts da nichts zu beachten, der Timer ist Hardware und läuft im Hintergrund mit clkcpu / Prescaler.
Wenn der Strombedarf wichtig ist, ist der grössere Vorteiler besser. Das reduziert den dynamischen Bedarf des Timers um den Faktor 8.
Lattice User schrieb: > Das reduziert den dynamischen Bedarf des Timers um den Faktor 8. Kann man das im Datenblatt nachlesen, und wenn ja, wo? Oliver
Logisch wäre es ja, da das Register nicht so oft beschrieben wird.
Die Vorteiler haben geringeren Stromverbrauch, weil die einzige Auswertung während des Zählens darin besteht, bei ihrem Überlauf das Eingangsbit des Hauptteilers weiterzuschalten. Der Hauptteiler muss zusätzlich parallel auslesbar sein, weitere Register bedienen wie capture, compare und auf wählbaren Überlauf reagieren usw., hat also viel mehr an "Nebenbei" zu können und daher sicherlich deutlich höheren Stromverbrauch als der "dumme" Vorteiler.
Peter R. schrieb: > und daher > sicherlich mindestens und oder auch vielleicht eventuell, oder doch vielleicht nicht ? Oliver
Recht interessant, aber reden wir hier dann von merkbarem Stromverbrauch oder ist das mehr im Bereich "weil's geht" angesiedelt? (ehrliche Frage, würd mich interessieren)
Heinz L. schrieb: > (ehrliche Frage, würd mich interessieren) Theoretisch ist der Stromverbrauch niedriger, weil ein Teil der Hardware (der Timer selber samt der aktiven Peripherie) mit niedrigerem Takt versorgt wird, die parasitären Kapazitäten also seltener umgeladen werden müssen. Ob das messbar viel ist sagt dir höchstens das Datenblatt, zumindest bei stromsparenden Modellen wird der Stromverbrauch von Peripherieteilen mit angegeben, und wenn ich das richtig zusammenbekomme ist der Stromverbrauch sogar überproportional vom Takt abhängig. Siehe: https://de.wikipedia.org/wiki/Complementary_metal-oxide-semiconductor#/media/File:3d-cmos-loss-diagram.svg
Gut, den Takt insgesamt vierteln und dafür den Vorteiler quadrieren dürft einen weit besseren Energieverbrauch ergeben (so die Schaltung eben keinen schnelleren Takt benötigt).
Der Stromverbrauch der Timer ist nicht so groß, und auch der Vorteiler wird etwas Strom verbrauchen - ggf. etwas weniger als der Timer, aber auch dass ist nicht einmal sicher. Es gibt da ggf. noch den Vorteiler für den ganzen Takt, also auch die CPU - das könnte noch etwas mehr bringen, wenn man mit dem niedrigeren Takt klar kommt.
Ok, bitte keinen Streit anfangen... Meine geplante Anwendung ist nicht stromverbrauchs-kritisch, sondern mehr in ein paar Teilen etwas zeitkritisch, vor allem zwischen den beiden Interrupts der beiden Timer. Die Verarbeitungen, die durch die Timer angestoßen werden sollen, konkurrieren teilweise, da sie die gleiche Hardware "bedienen". Ich habe zwar schon ein Konzept dazu im Kopf, was wahrscheinlich passt, wollte aber mit meiner Frage mehr dahin zielen, ob mit Vorteilern in der einen oder anderen Richtung ein paar Takte mehr oder weniger aus dem Prozessor herauskitzelbar sind. Wenn ich Obiges lese, dann wohl eher nicht. Die Diskussion über den Stromverbrauch brauchen wir von mir aus hier nicht weiterführen. Von meiner Seite sind erst einmal die Fragen beantwortet. Danke!
Keine Angst wir streiten nicht. Das sieht hier GANZ anders aus! :)
Heinz L. schrieb: > Das sieht hier GANZ anders aus! :) ...ich weiß, bin hier schon ein paar Jahre aktiv...:-)
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.