MATLAB: Varying timer’s period inside the TimerFcn

MATLABtimer

Hello all,
My question is: it is possible to change the timer's period inside the TimerFcn?
Thanks

Best Answer

  • This page mentions an approach to vary the period of timer: https://stackoverflow.com/questions/15576682/matlab-change-repeating-timer-period
    Here I show the method mentioned in the second answer. This example sets a random time period between 1 to 5 seconds after each callback of timer.
    t = timer('StartDelay', 1, 'TimerFcn', @timerFcn, ...
    'StopFcn', @timerStopFcn, 'ExecutionMode', 'singleShot');
    start(t);
    function timerFcn(obj, ~)
    disp(obj.StartDelay)
    end
    function timerStopFcn(obj, ~)
    period = randi([1 5]);
    obj.StartDelay = period;
    start(obj);
    end