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 初见定时器的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本之初见——理论篇

计算机视觉学习----初见OpenCV

Matlab高级教程_第二篇:Matlab相见恨晚的模块_01

matlab的gui界面编程中,想要设置一个时间定时器,求解释!

MATLAB教程案例7基于Gardner环的定时误差检测matlab仿真

内核定时器 -32