概述
当然有人会问,MATLAB不是做数据处理的工具吗,为什么需要定时器?其实任何系统下,定时器除了做时基,还可以让一些需要高优先级的任务并行,特别是可以代替MATLAB里的pause()的阻塞延时功能。
MATLAB的Timer使用,主要启动定时器(Start),停止定时器(Stop)和处理定时器回调事件。详细看代码:
% 启动定时器
clear all;
clc;
% 删除现有的定时器,重新创建一个定时器
stop(timerfind);
delete(timerfind);
timer_id = timer;
timer_id.StartDelay = 1.0;
timer_id.Period = 1.0;
% 周期性执行,fixedSpacing模式
timer_id.ExecutionMode = 'fixedSpacing';
timer_id.TimerFcn = @timer_handler;
%启动定时器
start(timer_id);
function timer_handler(~,~)
persistent counter;
if isempty(counter)
counter = 0;
end
fprintf(1,'定时器回调=%dn',counter);
counter = counter+1;
end
注意,由于MATLAB是描述性语言架构,如果在定时器运行中继续启动仿真,会造成代码继续解释,同样功能的新的定时器就会产生(ID号不一样,回调是一样的入口)。所以,建议重新仿真前,删除所有定时器,使用delete函数操作。
% 注意删除定时器之前,先暂停定时器
stop(timerfind);
delete(timerfind);
关于定时器模式,一共有四种,大家或许不解为什么。是因为MATLAB所在的Windows平台的定时器不一定能保证实时性,为了尽量满足系统的需求(实时性和任务阻塞的最佳平衡),故而有多种模式供开发者配置。
执行模式ExecutionMode有四种:'singleShot'、'fixedDelay'、 'fixedRate'、 'fixedSpacing' ,第一个为定时一次,后三种为连续定时。如图在程序中可以看出这三种执行的先后时序。
最后
以上就是幽默香水为你收集整理的matlab脚本 定时停止_MATLAB下定时器(Timer)使用的全部内容,希望文章能够帮你解决matlab脚本 定时停止_MATLAB下定时器(Timer)使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复