如何停止定时器函数在指定的时间吗?
9的观点(30天)
显示旧的评论
你好. .
我用一个计时器函数来捕获图像文件自动连续在一个固定利率,在指定的时间。我使用
startat
函数来做这个工作,但是,我的问题是,我无法停止在指定的时间我想要的。相反,我使用
暂停
。然而,一旦我停顿了一下程序,整个程序暂停,它从不执行下一个功能。
谁能帮我吗?
这里有一些我的部分代码:
dstart = {“07:30时”“07:32”“07:34”“12”“13:30”“维基”“18:00”“7:30”};
dfinish = {‘07:31‘07:33 ' ' 07:35 ' ' 13:25 07:31的‘16:25’‘09:01’‘20:55};
%这里captureimage函数来捕获图像使用imaq工具箱。
t1 =计时器(“TimerFcn”,“captureimage”,“ExecutionMode”,“FixedRate”);
tp1 =计时器(“TimerFcn”,“暂停”);%我无法停止计时器fcn这就是为什么我使用暂停
%捕获开始在07:30AM持续7秒
startat (t1, dstart (1,1));
%,正是07:31AM时程序暂停
startat (tp1 dfinish (1,1));
我怎样才能停止计时器函数不使用暂停,因为暂停计时器功能,而整个项目停顿。
我将非常感谢你的帮助。
谢谢你!
0评论
接受的答案
更多的答案(2)
1月
2011年2月4日
%创建倍DATENUM向量:
TimerData。开始=地板(现在)+ datenum (…
{“07:30时”“07:32”“07:34”“12”“13:30”“维基”“18:00”“7:30”});
TimerData。完成=地板(现在)+ datenum (…
{‘07:31‘07:33 ' ' 07:35 ' ' 13:25 07:31的‘16:25’‘09:01’‘20:55});
TimerData。指数= 1;
T =计时器(“TimerFcn”@myTimerFcn,…
“ExecutionMode”,“FixedRate”,“时间”,7.0,…
“用户数据”,TimerData);
startat (T, TimerData.start (1));
% - - - - - -计时器功能:
函数myTimerFcn (TimerH EventData)
TimerData =得到(TimerH,“用户数据”);
%停止时间到了吗?
如果现在> = TimerData.finish (TimerData.index)
停止(TimerH);
TimerData。在dex = TimerData.index + 1;
上次%达到?
如果TimerData。在dex > length(TimderData.start)
删除(TimerH);%的清理
其他的%重启计时器在下次开始时间:
集(TimerH,“用户数据”,TimerData);% EDITED2
startat (TimerH TimerData.start (TimerData.index));
结束
返回;%编辑
结束
%执行行动——插入代码:
capturimage
% - - - - - -结束:定时器功能
好运!
4评论
1月
2011年2月4日
@Kent: StartFcn和StopFcn执行,当定时器启动或停止,但他们不触发启动或停止。
是的,你需要开始由STARTAT计时器。我在代码中插入它。
我在代码中插入一个返回去改善它。请再试一次。