Skip to main content
Senior
August 14, 2023
Solved

Timer interrupting on MCU reset

Hello I have set the timer7 for 1 minute interrupt. It is working at every minute as expected. 

But the interrupt is also triggered as MCU is reset. I have set global counter for increment in timer7 callback. As soon MCU is reset , Timer7 callback is called and counter is incremented. Please suggest why it is happening.

static void MX_TIM7_Init(void)
{

/* USER CODE BEGIN TIM7_Init 0 */

/* USER CODE END TIM7_Init 0 */

TIM_MasterConfigTypeDef sMasterConfig = {0};

/* USER CODE BEGIN TIM7_Init 1 */

/* USER CODE END TIM7_Init 1 */
htim7.Instance = TIM7;
htim7.Init.Prescaler = 65400;
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
htim7.Init.Period = 44035;
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}

}

//**********************************

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
 
str_flag = str_flag + 1;
 
}

 

 

This topic has been closed for replies.
TDK
TDKBest answer
August 14, 2023

Before you start the timer and enable interrupts, generate an update event and clear the UE bit. Timers being triggered immediately can be due to the ARR register being preloaded.

"If you feel a post has answered your question, please click ""Accept as Solution""."

2 replies

TDK
TDKBest answer
August 14, 2023

Before you start the timer and enable interrupts, generate an update event and clear the UE bit. Timers being triggered immediately can be due to the ARR register being preloaded.

"If you feel a post has answered your question, please click ""Accept as Solution""."
Nico3Author
Senior
August 14, 2023

thanks..