你好,我想2个定时器对象顺序执行,一个接一个。请帮忙

8次(最近30天)
米特拉Bapat
米特拉Bapat 在2015年3月2日
评论: 米特拉Bapat在2015年3月6日
假设我的程序如下:
T =定时器;
t.StartDelay = 3;
t.TimerFcn = @(myTimerObj,thisEvent)DISP('你好');
开始(T);
T1 =定时器;
t1.StartDelay = 5;
t1.TimerFcn = @(myTimerObj,thisEvent)DISP('世界');
开始(T1);
我想我的程序在3秒后显示“你好”,这确实。但它显示的“世界”在2秒后“你好”的显示。即同时执行发生。
我想“世界”到“你好”显示之后显示5秒钟。并且使延迟8是不是我要找的答案!我需要顺序执行,因为我希望把它放在一个无限循环。
它应该在3秒后显示“你好”,5秒钟后,“世界”。然后,3秒钟后“你好”应显示,5秒后,“世界”。这是需要在一个无限循环。
请帮忙
谢谢!

0评论

登录发表评论。

接受的答案

奥列格·科马罗夫
奥列格·科马罗夫 在2015年3月2日
编辑:奥列格·科马罗夫 在2015年3月2日
可以使用一个定时器和交替的状态(多个)的函数:
抽搐
T =定时器;
t.ExecutionMode ='FIXEDDELAY';
t.StartDelay = 3;
t.TimerFcn = @(OBJ,EVT)alternateState(OBJ);
开始(T);
%设置完毕后
停止(T)
明确一贯
并且状态交替由完成:
功能alternateState(t)的
一贯
如果的isEmpty(上)
上= TRUE;
结束
TOC
停止(T)
如果
DISP('你好'
t.StartDelay = 5;
上= FALSE;
其他
DISP('世界'
t.StartDelay = 3;
上= TRUE;
结束
开始(t)的
结束
状态函数的范围内仍然存在。
基本上,在启动计时器上具有固定延迟重复执行,和3.初始延迟当第一时间函数火灾,它初始化状态为“打开”,打印“你好”,将下一个延迟5.在下次调用,它将恢复延迟回并打印的“世界”。
请注意,我不知道这是干净的,并希望得到的反馈,但它的优势在于支持几种状态。万博1manbetx您还可以清理掉抽动/ TOC是有用于调试目的。

3条评论

米特拉Bapat
米特拉Bapat 在2015年3月3日
非常感谢!它正常工作,就像我想要的。
现在,在我的项目,我有2个摄像头。我想交替,并自动与他们捕捉图像,然后再做进一步处理。任何2个图(1从CAMERA_1和从camera_2其它)的捕获之间经过的时间是可变的(这取决于先前图像上处理的结果)...因此,我刚通过这些变量如在alternateState函数参数。
因此,国家应交替照顾2个摄像头之间交替,而“持续性”将在自动化帮助。我说得这么远?
但现在我不知道如何前进。
如果我使用快照功能,将语法是什么呢?此外,快照功能需要MATLAB 2014A或2014B。我目前使用的2009年版。那么,有没有任何其他的方法来做到这一切,如果快照将在2009年的版本没有工作?
请帮忙,谢谢...
奥列格·科马罗夫
奥列格·科马罗夫 在2015年3月4日
其实,为什么你认为你需要一个计时器?对于快照问题,请分别询问它,因为我没有使用该功能之前和其他可能的帮助。

登录发表评论。

更多的答案(0)