"LL_TIM_GetCounter(const TIM_TypeDef *TIMx)" return wrong ticks

That's mean that LL_TIM_GetCounter(TIM2) returns '1' sometimes. Nothing in my code not calling void EXTI1_IRQHandler(void), except EXTI Interrupt. And the main question is - Why it reterns only '1'??? Not 2,3 e.t.c.
Thank you for help!
void EXTI1_IRQHandler(void)
{
if (LL_EXTI_IsActiveFlag_0_31(LL_EXTI_LINE_1))
{
LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_1);
static uint8_t edge_switch = 0;
if (!edge_switch)
{
edge_switch = 1;
LL_TIM_SetCounter(TIM2, 0);
}
else
{
edge_switch = 0;
measure_speed_rpm = speed_reference / LL_TIM_GetCounter(TIM2);
NVIC_SetPendingIRQ(SPI1_IRQn); // SPI1_IRQHandler is free vector in list, that's why I use it for PID update trigger
}
uint8_t hall_index = HALL_Read();
SixStep_SetPhase(duty, hall_index);
}
}Edited to apply source code formatting - please see How to insert source code for future reference.