定时器的属性和回调
t = timer(‘PropertyName1’, PropertyValue1, ‘PropertyName2’, PropertyValue2,…);
示例 t = timer(‘StartDelay’,1,‘TimerFcn’,@t_TimerFcn,‘Period’,2,‘ExecutionMode’,‘fixedRate’);
BusyMode:当定时器需要执行TimerFcn,但前一次的TimerFcn仍然在执行的时候,此属性生效。
属性值:
'drop' — Do not execute the function.(默认)
'error' — Generate an error. RequiresErrorFcn to be set.
'queue' — Execute function at next opportunity.
ExecutionMode 指定定时器的触发方式(触发一次,还是循环触发……)总共有四种方式
sigleShot;只执行一次,故Period属性不起作用,其他模式都可以执行多次
fixedDelay;上一次TimerFcn执行完毕时刻到下一次TimerFcn被加入队列时刻之间的间隔
fixedRate;上一次开始执行到下一次被加入队列之间的间隔
fixedSpacing: 前后两次被加入到执行语句队列时刻之间的间隔
TasksToExecute:
指定定时器最多被触发的次数,该属性默认为inf,如果希望不停的循环执行,可以不指定该属性
Period时间间隔(执行周期):即每个Period执行一次TimerFcn
StartDelay启动时延时
从启动Timer开始到第一次把TimerFcn的加入到Matlab的执行语句队列中去的时延,默认值为0s
Name 为定时器命名
Running 指示定时器当前是否在执行off,on
tag : 一个字符串,可以任意指定,一般用于标志某个特定的定时器,以方便在程序中别的地方查找该定时器
TimerFcn : 定时器被触发时要执行的函数或语句
StartFcn: 定时器开启时的回调函数
StopFcn: 定时器停止时的回调函数
定时器停止条件:
1、运行stop(timer)函数
2、定时器执行TimerFcn并完成函数内容(i.e., the value ofTasksExecutedreaches the limit set byTasksToExecute.[即定时器执行次数到达设定值])
3、发生错误
与定时器相关的其他操作
delete(timer) %删除
disp(timer) %显示
get(timer) %获取属性
isvalid(timer) %检查有效性
set(timer) %设置属性
start %开始
startat %开始(可以指定开始时的某些参数)
stop %停止
timerfind %查找某个定时器
timerfindall %也是查找
wait %等待直到定时器被停止