我是靠谱客的博主 幽默香水,最近开发中收集的这篇文章主要介绍matlab脚本 定时停止_MATLAB下定时器(Timer)使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当然有人会问,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' ,第一个为定时一次,后三种为连续定时。如图在程序中可以看出这三种执行的先后时序。

v2-1b505ace96b20a2bdb8730f9869b2ed3_b.jpg

最后

以上就是幽默香水为你收集整理的matlab脚本 定时停止_MATLAB下定时器(Timer)使用的全部内容,希望文章能够帮你解决matlab脚本 定时停止_MATLAB下定时器(Timer)使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部