Ich sag mal ganz frisch ins neue Jahr RTFM (Nr. 1)..
1. Der normale "Timer" zählt immer nach oben. Wenn man den
Overflow-Interrupt wählt und eine bestimmte Zeit will, so muss man wohl
oder übel dem Timer einen kleinen Vorsprung geben. Sicher könnte man
57xxx hinschreiben, jedoch ist es doch viel (menschlicher)
verständlicher, wenn man das maximale (65535) und davon den *zu
zählenden* Wert subtrahiert, man sieht also sofort, wieviel gezählt
wird.
2. Achso.. Ich hatte grad gedacht, dass ein Mensch mehr anzufangen hat
mit TOIE1 als mit 0b1000 0000 oder 128. Werd ich mich wohl vertan
haben. Vielleicht bin ich auch der einzige hier, aber ich verwende sehr
gern das mit den Bit-Namen. RTFM (Nr. 2). Es sind alle Bit-Namen und
Registernamen und Bit-Nummern und Wertigkeiten im Datasheet verzeichnet.
Das TOIE1 entnimmt der Assembler der "xxx.inc" Datei. Da steht z.B.
".equ TOIE1 = 7" und der Assembler macht aus der Direktive
"1<<TOIE1" ==> "1<<7" ==> "128", weil bei I/O Zugriffen
eigentlich die BitNUMMER zählt und hier die BitWERTIGKEIT. Das "<<"
schiebt die 1 einfach mal schnell 7 Stellen nach links, praktisch,
gell.
3. RTFM (Nr. 3). Ich glaube, es gibt nicht viele andere Sachen, die
nicht durch den Begriff oder im Datenblatt besser beschrieben sind. Der
Vorteiler "teilt" den Systemtakt (I/O-Takt) "vor". Es ist ein
Baustein, der dem Timer vorgeschoben ist (alles im Datasheet mit
Blockschaltbildern etc.). Wenn du also 101 = 1024 als Prescaler
(englisch G) nimmst, dann kommt nur jeder 1024te Takt am Timer an.
Sorry, dass ich leider (nur) 3. RTFM (Nr. 4) gesagt hab, aber diese
Fragen sind so gut im Datasheet zu finden, und zwar alles unter den
Überschriften bei Timern. Aber ich helfe ja gerne....
So. Nochmal wiederholen: RTFM (Nr. 5), RTFM (Nr. 6), RTFM (Nr. 7) G
dave