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?
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.
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.
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!