AVR-Timer-Berechnung
Wie funktioniert die Berechnung : Die Taktfrequenz eines Atmel-AVR wird meist von einem Quarz(oszillator) abgeleitet. Diese Taktfrequenz wird
zuerst mit Hilfe des Prescalers runtergeteilt. Das ist bei der Erzeugung kleiner Ausgangsfrequenzen nötig.
Taktfrequenz : Prescaler = Takt_neu
16000000 Hz : 64 = 250000
Der Takt_neu wird durch die gewünschte Zielfrequenz geteilt und ergibt den Zählerwert, den der Timer noch bis zum Überlauf benötigt und
damit einen Interrupt auslöst. Ein 8-Bit-Timer läuft bei 255 über, ein 16-Bit-Timer bei 65535.
Takt_neu : Zielfrequenz = Zählerwert
250000 : 2000 Hz = 125
Da der Zählerwert kleiner als 255 ist, kann in diesem Beispiel ein 8-Bit-Timer verwendet werden. Zum Schluss wird der Zählerwert vom
Maximalwert des Timers abgezogen, das Ergebnis ist der Preload.
Maximalwert des Timers - Zählerwert = Preload
255 - 125 = 130
Initialiserung : Timer mit Preload laden
der Timer zählt nun von 130 bis 255 und verursacht beim Überlauf einen Interrupt
in der Interruptroutine : Timer mit Preload laden ...