Ich habe TCCRO deaktiviert und wollte mal schauen, ob sich was tut.
Leider ist es nicht so. Warum?
Doch sobald ich TCCRO aktiviere, gibt es alle 30ms einen Überlauf und
die LED fängt an zu blinken.
Keine Ahnung von welchem Mikrocontroller du hier sprichst. Aber wenn wir
mal annehmen, dass es sich beim Timer0 um einen 8 Bit Timer/Counter
handelt, dann gibt es bei deinen Einstellungen alle 30,63 Sekunden einen
Overflow.
8000000 1024 255 = 30,63
Und was genau ist jetzt die Frage? Der Timer/Counter läuft nur, wenn du
eine Clock Source auswählst.
Tim schrieb:> Doch sobald ich TCCRO aktiviere, gibt es alle 30ms einen Überlauf und> die LED fängt an zu blinken.Tim schrieb:> oder kann es sein, dass die LED alle 31s blinkt?
Naja, 30ms und 31s sollten sich doch mit etwas Zeitgefühl auch ohne
aufwändige Messtechnik unterscheiden lassen.
Ich schliesse mich Cube an: Was ist jetzt eigentlich die Frage?
Übrigens dürften es nach nochmaligem Nachrechnen 30,52 Sekunden sein, da
man natürlich durch 256 teilen muss und nicht durch 255. 255 ist nur der
höchste Werte, weil man ja bei 0 anfangt zu zählen.
Daher:
8000000/1024/256 = 30,52
Cube schrieb:> Übrigens dürften es nach nochmaligem Nachrechnen 30,52 Sekunden sein, da> man natürlich durch 256 teilen muss und nicht durch 255. 255 ist nur der> höchste Werte, weil man ja bei 0 anfangt zu zählen.>> Daher:>> 8000000/1024/256 = 30,52
keine 30,52s , sondern 30,52ms
Tim schrieb:> Ich meinte, wenn ich nun den Prescaler deaktiviere, dann müsste doch> alle 31s ein Overflow geben.
Da muss man mal ein wenig Ordnung ins Chaos bringen.
Wenn du den Prescaler deaktivierst, dann hat der Timer keinen Clock
mehr. Ohne Clock läuft er auch nicht. Ein Timer der nicht läuft kann
auch keinen Overflow generieren.
> denn>> 8000000 / 256 = 31,25s
Das ist aber nicht 'kein Prescaler' sondern ein Prescaler von 1. Auch
den kann man mit den CS Bits auswählen.
Tim schrieb:> Spess53 schrieb:>> Hi>>>>>keine 30,52s , sondern 30,52ms>>>> Auch das stimmt nicht.>>>> 1/(8000000/256) = 32µs>>>> MfG Spess>> woher hast du die 1?
ok.
Es wird Zeit auch da ein wenig Ordnung reinzubringen.
Wenn eine Zählschaltung in 1 Sekunde bis 8 Millionen zählen kann
(könnte), wie lange braucht sie dann um von 0 bis 255 (256 Zählschritte)
zu zählen?
8000000 ..... 1 Sekunde
256 ..... x
------------------------
256 * 1
x = ---------- = 0.000032 Sekunden
8000000
Jetzt hast du einen Prescaler von sagen wir mal 1024. D.h. in 1 Sekunde
zählt der Timer nicht mehr 8 Millionen Pulse, sondern ein 1024-tel
davon. 8000000 / 1024 = 7812.5
Wenn also der Timer in 1 Sekunde 7812.5 Zählschritte macht, wie lange
braucht er dann um 256 Zählschritte auszuführen?
7812.5 ....... 1 Sekunde
256 ....... x
----------------------------
256 * 1
x = ----------- = 0.032768 Sekunden
7812.5
Hi
>woher hast du die 1?
8000000/256 ergibt die 'Frequenz' der Überläufe. Um die Zeitdauer zu
bestimmen muss man halt 1/... rechnen. Bei 8MHz und Vorteiler 1024
kommst du auf 32,768 ms. Für Blinken inner noch etwas kurz.
MfG Spess