matlab 初见定时器
Posted 胡刚2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 初见定时器相关的知识,希望对你有一定的参考价值。
案例一
设置一个定时器,按下按钮,每隔1秒打印一个1,打印5次后自动停止,停止后再次按按钮,仍然每隔1秒打印一个1,打印5次后自动停止。
1.1创建GUI项目
1.2 布局
1.3 定义定时器和定时器的回调函数
global mytimer
% ('Period',1)意思是任务执行的周期为1秒;('TasksToExecute',5)的意思是任务执行5次后自动停止; ('ExecutionMode','fixedDelay')的意思是上一次TimerFcn执行完毕时刻到下一次TimerFcn被加入队列时刻之间的间隔;
mytimer=timer('Period',1,'ExecutionMode','fixedDelay','TasksToExecute',5);
mytimer.TimerFcn=@my_callback_fcn;
注意:定时器回调函数的模型为
function onTimer(obj,events,arg)
%前两个参数是必不可少的,最后的arg才是用户传递的数据
定义定时器的回调函数为如下:
function my_callback_fcn(obj, events, args)
disp(1);
1.4 编写Button的回调函数
在回调函数中启动定时器
function pushbutton1_Callback(hObject, eventdata, handles)
global mytimer;%记得一定要加这行代码
start(mytimer);
运行结果
案例二
定义一个定时器,点击开始按钮后,每隔1秒打印一个1,点击结束按钮后,停止打印,再次点击开始按钮后,又开始每隔1秒打印一个1。
2.1 布局
布局如下
2.2 定义定时器和定时器的回调函数
在开头的地方定义 global mytimer,不能定义在后面Button回调函数附近,那样运行会报错
global mytimer
mytimer=timer('Period',1,'ExecutionMode','fixedDelay');
mytimer.TimerFcn=@my_callback_fcn;
定义timer的回调函数
function my_callback_fcn(hObject, eventdata, handles)
disp(1);
2.3 定义按钮的回调函数
在开始按钮的回调函数中启动定时器
function pushbutton1_Callback(hObject, eventdata, handles)
%先要找到所有的定时器,让它们先停下来
ts=timerfind;
if length(ts)>0
stop(ts);
end
%然后开启定时器
global mytimer;
start(mytimer);
在结束按钮的回调函数中关闭定时器
function pushbutton2_Callback(hObject, eventdata, handles)
ts=timerfind;
if length(ts)>0
stop(ts);
delete(ts);
end
注意,一定要使用timerfind找到所有的定时器,遍历每一个定时器,调用stop和delete,如果只 stop(mytimer);和delete(mytimer);是不能使得定时器停下来的。
以上是关于matlab 初见定时器的主要内容,如果未能解决你的问题,请参考以下文章
Matlab高级教程_第二篇:Matlab相见恨晚的模块_01
matlab的gui界面编程中,想要设置一个时间定时器,求解释!