Ich habe meinen TIM4 als Encoder-Eingang konfiguriert und alles funktioniert gut, wenn ich TIM_GetCounter (TIM4) ausführe. Aber ich möchte den Timer-Wert auf 0 zurücksetzen (zurücksetzen?), wenn ich einen Taster mit einem Interrupt darauf drücke) und ich ziehe es an Finde keine Reset-Funktion. Ich verwende einen STM32F103 nur mit StdPeriph Lib.
Sie sollten eine für sich selbst schreiben, basierend auf der 'get'-Funktion:
uint32_t TIM_GetCounter(TIM_TypeDef* TIMx)
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
/* Get the Counter Register value */
return TIMx->CNT;
}
a TIM_ResetCounter
sollte also so aussehen:
void TIM_ResetCounter(TIM_TypeDef* TIMx)
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
/* Reset the Counter Register value */
TIMx->CNT = 0;
}
Wenn Sie im Referenzhandbuch nachsehen , können Sie sehen, dass das Zählerwertregister Lese- und Schreibzugriff hat. Sie können es also auf 0 setzen.
Sie können auch eine allgemeine Satzfunktion mit einem zusätzlichen "Wert"-Parameter erstellen.