Filter löschen
Filter löschen

What would happen if the time for function execution is bigger that the t.Period using timer object

1 Ansicht (letzte 30 Tage)
Hello, guys! I am wondering what would happen if I use a timer object to execute a program, but the period of the timer is smaller than the time required for the program execution.
For example:
t = timer;
t.TimerFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.Period = 10;
t.ExecutionMode = 'fixedRate';
start(t)
and the time for the function execution takes, let's say 20 sec. Are there any methods which send us a message that the program could not be done, because it requires more time? Thank you!

Antworten (1)

Guillaume
Guillaume am 17 Okt. 2018
It's completely documented in the timer documentation and the behaviour will depends on what you set the BusyMode property to. It can drop the missed task, queue it, or simply error.
  1 Kommentar
Jan
Jan am 17 Okt. 2018
+1. Exactly. And you can check manually what happens:
t.TimerFcn = @myTask;
t.BusyMode = 'drop'; % or 'queue' or 'error'
...
function myTask(TimerH, Event)
disp([Event.Type ' executed ' ...
datestr(Event.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]
pause(11)
end

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Construct and Work with Object Arrays finden Sie in Help Center und File Exchange

Produkte


Version

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by