I configured my TIM4 as encoder input and everything is working well when I execute TIM_GetCounter(TIM4) But I would like to put the timer value back to 0 (reset?) when I press a push button with an interrupt on it) and I don't find a reset function. I'm running a STM32F103 with only StdPeriph Lib.
Asked
Active
Viewed 8,424 times
1 Answers
6
You should write one for yourself based on the 'get' function:
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;
}
So a TIM_ResetCounter
should look like this:
void TIM_ResetCounter(TIM_TypeDef* TIMx)
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
/* Reset the Counter Register value */
TIMx->CNT = 0;
}
If you check in the reference manual, you can see that the counter value register has read-write access. So you can set it to 0.
You can create a general set function as well with an additional "value" parameter.

Bence Kaulics
- 6,353
- 12
- 33
- 60