Main Content

startat

排定计时器在指定时间触发回调

说明

使用此函数在计时器启动和计时器回调函数 timerFcn 将开始触发之间添加一个延迟。

示例

startat(t,firingTime) 排定计时器 t 在指定时间 firingTime 触发回调。计时器通过执行回调函数 timerFcn 而触发。firingTime 必须处于从当前时间开始的 25 天范围之内。请注意,如果 t 具有启动回调函数 startFcn,则在调用 startat 时(而不是在 firingTime 指定的时间),将触发此函数。

  • 如果 t 是一个计时器数组,而 firingTime 是一个标量,则 startat 会将所有计时器设置为在指定时间触发。

  • 如果 t 是一个计时器数组,而 firingTime 是一个大小与 t 相同的数组,则 startat 会将每个计时器设置为在对应时间触发。

示例

startat(t,Y,M,D) 启动计时器并排定在您指定的年份 (Y)、月份 (M) 和日期 (D) 执行 TimerFcn

startat(t,Y,M,D,H,MI,S) 还指定您指定的小时 (H)、分钟 (MI) 和秒 (S)。

示例

全部折叠

创建一个在启动时和触发时显示消息的计时器。

t = timer('TimerFcn', @(~,~)disp('Fired.'), ...
    'StartFcn', @(~,~)disp('Started.'));

通过使用 datetime 并添加 2 秒的 duration,将计时器设置为自目前时间起的 2 秒钟后触发。

two = seconds(2); % a two second duration
fTime = datetime + two
startat(t,fTime);
fTime = 

  datetime

   14-Aug-2020 16:30:50

Started.
Fired.

等待计时器触发,然后删除计时器。

delete(t)

创建一个在启动时和触发时显示消息的计时器。

t = timer('TimerFcn', @(~,~)disp('Fired.'), ...
    'StartFcn', @(~,~)disp('Started.'));

排定计时器从目前 00:00:00 起的 2 天后触发。

[Y, M, D, H, MI, S] = datevec(now+2);
startat(t,Y,M,D)
Started.

手动停止并删除计时器。

stop(t)
delete(t)

输入参数

全部折叠

要启动的计时器,指定为计时器对象或计时器对象数组。

示例: startat(t,firingTime)

计时器触发回调的时间,指定为 datetime 数组、日期序列值、日期格式的字符表示或日期向量。firingTime 可以是单个日期,也可以是值的数目与 t 中的计时器对象数相同的日期数组。

  • datetime 数组存储表示时间点的值,包括日期和时间。可以使用 + 运算符将 duration 添加到 datetime 中。有关详细信息,请参阅表示 MATLAB 中的日期时间

  • 日期序列值指示自 0000 年 1 月 1 日以来经过的天数(从 1 开始)。有关序列号的详细信息,请参阅 datenum

  • 要指定日期的字符表示,请使用 datestr 函数定义的以下日期格式:0、1、2、6、13、14、15、16 或 23。这些数值标识符与 datestr 函数的 formatOut 属性定义的格式对应。年份为两个字符的日期被解释为属于以当前年份为中心的 100 年内。

  • 日期向量指定为 m-by-6m-by-3 矩阵,分别包含 m 个完整或部分日期向量。完整日期向量带有六个元素,依顺序分别指示年份、月份、日期、小时、分钟和秒。部分日期向量只带有三个元素,依顺序分别指示年份、月份和日期。

示例: startat(t,firingTime)

计时器对象触发回调的时间,指定为一组数字,分别指示年份 (Y)、月份 (M) 和日期 (D)。小于 1 的月份值会被设置为 1。其他参数可以绕回和具有负值。

示例: startat(t,Y,M,D)

计时器对象触发回调的时间,指定为一组数字,分别指示年份 (Y)、月份 (M)、日期 (D)、小时 (H)、分钟 (MI) 和秒 (S)。小于 1 的月份值会被设置为 1。其他参数可以绕回和具有负值。

示例: startat(t,Y,M,D,H,MI,S)

版本历史记录

在 R2006a 之前推出

另请参阅

| | |