What is the process of reconfiguring General Purpose timer

Hi,
I have configured the General purpose timer TIMER0 to run every 80microseconds.
Sys_Timer_Set_Control(0, (TIMER_MULTI_COUNT_8 |
TIMER_FREE_RUN |
TIMER_SLOWCLK_DIV2 |
TIMER_PRESCALE_1) | 39);
NVIC_EnableIRQ(TIMER0_IRQn);//enable the timer0 interrupt.*/

Now In my application when I press a button I will reconfigure the timer as follows;

cnt++;
if(cnt >10)
cnt = 0;
delayTime = 39+cnt;
Sys_Timers_Stop(SELECT_TIMER0);
Sys_Timer_Set_Control(0, (TIMER_MULTI_COUNT_8 |
TIMER_FREE_RUN |
TIMER_SLOWCLK_DIV2 |
TIMER_PRESCALE_1) | delayTime);
Sys_Timers_Start(SELECT_TIMER0);

When I do this way I see that the delay increases and when I see it on the scope the delay is 39+delaytime, that is when the iteration reaches 6 the total delay on the scope is 170 microseconds (80+45*2)
Why is the behaviour so?
I think I am missing something here, any help would be appreciated.
Regards,
Prasanna

@Prasanna

By using this configuration, there is no issue.
We don’t think you need to stop and start timer in interrupt routine. This is free run mode.

Thank you for using our community forum!