Ich habe einen Timer (TIM1 in einem STM32F103C8T6) programmiert, daß er mit einer Frequenz von ca. 8KHz (ca. 8372.09 Hz) läuft. Timerclock is 72 MHz. Initialisierungscode:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
Kann ich, während der Timer läuft, "on the fly" die Timer.Period schreiben, also z.B. TIM1->ARR=5739? Es funktioniert, aber was passiert genau?
Wenn z.B. der Timer mit der Periode 8599 läuft und er kriegt eine 5739 "verpaßt", während er gerade bei 7123 mit der "Zählerei dran" ist?
Hört er dann auf? Er ist ja längst drüber, oder macht er die 8599 zu Ende? Wie wäre die "saubere" Vorgehensweise? Zähler anhalten, Period neu schreiben und wieder starten?