Ich versuche, den Timer (TIM4) zu verwenden, um steigende und fallende Flankenzeiten von einem externen Sensor zu protokollieren. Ich muss den Timer so einstellen, dass er alle 1 µs tickt und eine Periode von 40 ms hat (also 40.000 Ticks zählt, bevor er überläuft). TIM4 hat eine Quellentaktrate von 84 MHz. Das Datenblatt sagt:
"Programmierbarer 16-Bit-Vorteiler zum Teilen der Zählertaktfrequenz durch einen beliebigen Faktor zwischen 1 und 65536".
In den meisten Tutorials wird jedoch durch 84 - 1 geteilt, um 1 MHz zu erhalten. Kann jemand die genauen Formeln zur Berechnung der Parameter bereitstellen? Vielen Dank im Voraus
Die Prescaler-Registerbeschreibung besagt, dass der Eingangstakt durch den Registerwert + 1 geteilt wird. Wenn Ihre Eingangsfrequenz also 84 MHz beträgt und Sie möchten, dass der Timer bei 1 MHz zählt, müssen Sie 84-1 programmieren, um das PSC-Register zu erhalten einen Teiler von 84 und damit einen Zählertakt von 1 MHz.
Auf den internen PSC-Zähler kann nicht zugegriffen werden, sodass die 16-Bit-Beschränkung nicht umgangen werden kann.
Programmieren Sie das ARR-Register mit 39999, der Überlauf tritt bei der nächsten (der 40000. Flanke) auf.
JimmyB