Kochrezept „Timer Reload-Wert Berechung“

Kochrezept „Timer Reload-Wert Berechung“
 t

Reload _ Value = 2 n −  Soll 
t

 TimerStep 
n:
tSoll:
tTimerStep:
Reload_Value:
Anzahl Bits des Reload-Werts
Überlaufzeit des Timers
Zeitintervall pro Timer-Schritt
Timer Reload-Wert
Beispiel 1:
n=8
t Soll = 108µs
tTimerStep = 0,6 µs
Lässt sich tSoll ohne Prescaler realisieren?
t Soll < 2 n * tTimerStep
108µs < 153,6µs → OK !
Berechung Reload-Wert:
 108 * 10 −6 s 

Reload _ Value = 256 − 
−6 
 0,6 * 10 s 
Reload _ Value = 76
Reload _ ValueHex = 0x4C
Beispiel 2:
n = 16
t Soll = 50ms
tTimerStep = 1,2 µs
Lässt sich tSoll ohne Prescaler realisieren?
t Soll < 2 n * tTimerStep
50ms < 78,6432ms → OK !
Berechung Reload-Wert:
 50 * 10 −3 s 

Reload _ Value = 65536 − 
−6 
 1,2 * 10 s 
Reload _ Value = 23869
Reload _ ValueHex = 0x5D3D
Beispiel 3:
n = 16
t Soll = 1s
tTimerStep = 1,2 µs
Lässt sich tSoll ohne Prescaler realisieren?
t Soll < 2 n * tTimerStep
1s < 78,6432ms → NICHT OK !
Wir legen Timer-Überlaufzeit auf 50ms fest. Berechung des Prescalers:
t Soll = Prescaler * 50ms
1s = Prescaler * 50ms
Prescaler = 20
Berechung Reload-Wert siehe Beispiel 2.