Forum: Mikrocontroller und Digitale Elektronik Unterschied bei Timer mit Vorteiler und Ohne


von Unterschiede (Gast)


Lesenswert?

Guten Tag,

Ich beschäftige mich gerade mit Interrupts ein bisschen und bin gerade 
am überlegen, wie der Mikrocontroller eigentlich einen Zähler hochzählt 
und ob es bei folgenden zwei Szenarien einen Unterschied gibt.

1.
Ich starte TIMER0, der OHNE Prescaler bis 800 zählt und dann einen 
Interrupt auslöst

oder

2.
Ich starte TIMER0 der mit Prescaler 8 bis 100 zählt und den Interrupt 
auslöst.


Da der Mikrocontroller das TIMER-Register unabhängig von den sonstigen 
Aufgaben hochzählt, dürfte es doch keinen Unterschied geben, oder?

Das einzige, was eine "Verzögerung" bringen könnte, wäre der interne 
Vergleich des aktuellen Zählerstands mit dem Compare-Register. Bei 1. 
müsste ich den 800 mal vergleichen, bei 2. nur 100 mal. Aber ich gehe 
davon aus, dass das auch intern passiert. (Ist nur ein Gefühl!)

Weiß da jemand genaueres?

Grüße

PS: Das sind theorethische Überlegungen. Da steckt kein konkreter Code 
hinter.

von Karl H. (kbuchegg)


Lesenswert?

Unterschiede schrieb:

> Das einzige, was eine "Verzögerung" bringen könnte, wäre der interne
> Vergleich des aktuellen Zählerstands mit dem Compare-Register. Bei 1.
> müsste ich den 800 mal vergleichen, bei 2. nur 100 mal. Aber ich gehe
> davon aus, dass das auch intern passiert. (Ist nur ein Gefühl!)

Ist schon richtig.

Da dieser Vergleich aber von Hardware nebenher gemacht wird, merkt dein 
Programm nichts davon.

von Zaungast (Gast)


Lesenswert?

> Da der Mikrocontroller das TIMER-Register unabhängig von den sonstigen
> Aufgaben hochzählt, dürfte es doch keinen Unterschied geben, oder?

Einen Unterschied macht es eigentlich nur dann, wenn zusätzlich zum 
Interrupt bei Gleichheit auch noch der Interrupt beim Überlauf genutzt 
werden soll (natürlich vorausgetzt, der Zähler-Reset bei Gleichheit wird 
abgeschaltet).

Für Dein Programm dürfte es darüber hinaus keinerlei Bedeutung haben, 
einzig denkbar wäre noch, dass es ggf. einen Unterschied im 
Stromverbrauch macht.

von Thomas E. (thomase)


Lesenswert?

Unterschiede schrieb:
> ob es bei folgenden zwei Szenarien einen Unterschied gibt.
> Ich starte TIMER0, der OHNE Prescaler bis 800 zählt und dann einen
> Interrupt auslöst
Wenn es ein Avr ist, ist der Unterschied, daß es mit Prescaler 
funktioniert und ohne nicht, weil Timer0 ein 8-Bit-Timer ist, der nur 
bis 255 zählen kann.

Aber mit Timer1 würde es gehen.

Da ist der Unterschied die Auflösung. Wenn du z.B. Zeiten messen willst, 
zählt er ohne Prescaler bei 1 MHz in µs-Schritten, 1, 2, 3...
Mit Prescaler in 8µs-Schritten. 8, 16, 24... Denn der Zählwert muss mit 
8 multipliziert werden, damit die korrekte Zeit ermittelt wird. Das 
spielt beim Eierkochen natürlich keine große Rolle.

mfg.

von Peter D. (peda)


Lesenswert?

Prescaler und Timer sind Hardware, kosten also 0 CPU-Zyklen.

Den Prescaler wählt man so klein, daß der Timer bei dem gewünschten 
Zeitintervall noch nicht überläuft.


Peter

von Unterschiede (Gast)


Lesenswert?

Was die Hardware so alles nebenbei machen kann... ;-)

Meine Frage hat sich damit dann ja geklärt. Danke an alle!

von Jo F. (chosn)


Lesenswert?

Gibt's da eventuell Unterschiede hinsichtlich der Leistungsaufnahme?

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.