If you don’t want to reset the timer, just call the timer callback
function as any other function. Otherwise you would have to stop the
timer then restart it with a new timeout time (or just change its period
so it expires at the new desired time, which effectively does the same
thing).
Timer callback functions are just standard C functions, and can be
called by another task (in which case the function runs in the context
of the calling task). As all you are doing is calling a C function it
will not change the software timer, which will continue and expire just
as it would have done otherwise.
15:10 pm => Timer1 start
15:20 pm => Timer1 should execute the callback function
and me, at 15;12 pm, I need to execute the callback function, with(top solution) or whithout reset of the timer.
So you thought the timer should expire at 15:20, but something happened that means it now needs to expire at 15:12. Do you want it to execute at 15:20 as well? If so just call the callback function at 15:12 from a task. If you dont want it to execute at 15:20 as well just stop the time then call the callback from a atsk.
You could perform the reset of the timer from the timer callback
function itself. That way if you manually execute the callback function
the timer will automatically reset at that point.