matlab 定時器的用法
阿新 • • 發佈:2019-01-03
定時器的使用的程式例項:
%% 定時器 % 函式說明:(命令列輸入) % t_test:建立一個定時器物件,從 0 開始計數(每 2 秒) % t_test('stop'):停止計數,刪除定時器 function t_test(varargin) global num num1 num2 if nargin == 0 % 直接命令列輸入 t_test 表示:建立一個定時器物件,開始定時 num = 0; num1 = 100; num2 = 1000; delete(timerfind) % 刪除現有的定時器,重新建立一個定時器 t = timer('StartDelay',1,'TimerFcn',@t_TimerFcn,'Period',2,'ExecutionMode','fixedRate'); t1 = timer('StartDelay',1,'TimerFcn',@t_TimerFcn1,'Period',2,'ExecutionMode','fixedDelay'); t2 = timer('StartDelay',1,'TimerFcn',@t_TimerFcn2,'Period',2,'ExecutionMode','fixedSpacing'); start([t,t1,t2]) elseif ((nargin == 1) && strcmp(varargin{1},'stop')) stop(timerfind) delete(timerfind) else end end %% 回撥函式 function t_TimerFcn(hObject,eventdata) global num disp(num2str(num)) num = num + 1; end function t_TimerFcn1(~,~) global num1 disp(num2str(num1)) num1 = num1 + 1; end function t_TimerFcn2(~,~) global num2 disp(num2str(num2)) num2 = num2 + 1; end
注意:
1.使用程式時,將程式碼貼上到新文件中,命名為t_test.m。
2.定時器的定時回撥函式的寫法:
t = timer('StartDelay',1,'TimerFcn',@t_TimerFcn,'Period',2,'ExecutionMode','fixedRate')
雖然此處好像沒有傳入引數,但是函式定義時需要傳入兩個引數,例如:function t_TimerFcn(hObject,eventdata)
end
3.定時器的開始、停止、刪除:start(t)
注意刪除定時器之前,先暫停定時器
stop(t)
delete(t)
當然你不知道有幾個定時器的時候,可以使用 timerfind 函式查到所有的定時器,停止刪除,例如:4.執行模式ExecutionMode有四種:'singleShot'、'fixedDelay'、 'fixedRate'、 'fixedSpacing' ,第一個為定時一次,後三種為連續定時stop(timerfind) delete(timerfind)
同時,在程式中可以看出這三種執行的先後順序。