电子说
说明
使用 timer
对象以排定执行一次或多次 MATLAB® 命令。如果您排定计时器多次执行命令,可以定义每次执行之间的时间间隔以及如何处理排队冲突。
timer
对象使用回调函数执行命令。回调函数在某些事件中执行代码。对于 timer
对象,您可以将回调函数指定为函数句柄或字符串。如果回调函数是字符串,MATLAB 将以可执行代码形式对其求值。当计时器启动 (StartFcn
)、执行 (TimerFcn
)、停止 (StopFcn
) 或遇到错误 (ErrorFcn
) 时,计时器对象支持回调函数。
附注: timer
对象受到您的硬件、操作系统和软件的限制。应避免对实时应用程序使用计时器对象。
构造
创建一个空的 t
= timertimer
对象,以排定 MATLAB 命令的执行。如果启动了计时器,但未定义 TimerFcn
,则会出现错误。
使用由一个或多个 t
= timer(Name,Value
)Name,Value
对组参数指定的其他选项创建 timer
对象。
MATLAB中使用定时器(timer)基本格式为
t = timer('PropertyName1', PropertyValue1, 'PropertyName2', PropertyValue2,...);
start(t);
最简单的定时器一般指定以下属性:
TimerFcn ——指定定时器被触发时要执行的函数或语句
Period ——指定定时器的触发时间,单位为秒
ExecutionMode ——指定定时器的触发方式(触发一次,还是循环触发……),该属性有四个可选值,具体见matlab帮助
TasksToExecute ——指定定时器最多被触发的次数,该属性默认为inf,如果希望不停的循环执行,可以不指定该属性
tag ——一个字符串,可以任意指定,一般用于标志某个特定的定时器,以方便在程序中别的地方查找该定时器
与定时器相关的其他操作
delete(timer) %删除
disp(timer) %显示
get(timer) %获取属性
isvalid(timer) %检查有效性
set(timer) %设置属性
start %开始
startat %开始(可以指定开始时的某些参数)
stop %停止
timerfind %查找某个定时器
timerfindall %也是查找
wait %等待直到定时器被停止
例如写一个计数器,每过一秒计数加1
x=0
t = timer('TimerFcn','disp(x);x=x+1;', 'Period', 1, 'ExecutionMode', 'fixedSpacing');
start(t);
运行结果如下,如果不想继续可以在命令窗口输入delete(h)
利用定时器我们就可以制作数字时钟
首先创建fig
在fig的open回调函数里写计时器函数并创建时间显示函数。
function varargout = szsz(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @szsz_OpeningFcn, ...
'gui_OutputFcn', @szsz_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function szsz_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
global h
h=timer('TimerFcn',{@disptime,handles},'ExecutionMode','fixedRate','Period',1);
%定时器,定时会触发 TimerFcn 函数,定时函数(TimerFcn)触发用户自定义的函数(disptime函数)
start(h); %开启定时器
guidata(hObject, handles);
function disptime( , , handles)%显示系统时间函数
shijian=datestr(now,'yyyy-mm-dd HH:MM:SS');
%生成前日期字符串
set(handles.text2,'string',shijian(1:4));
%%显示年
set(handles.text8,'string',shijian(6:7));
%%显示月
set(handles.text10,'string',shijian(9:10));
%%显示日
set(handles.text12,'string',shijian(12:end));
%%显示时分秒
function varargout = szsz_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function figure1_CreateFcn(hObject, eventdata, handles)
function figure1_DeleteFcn(hObject, eventdata, handles)
global h
delete(h)%%删除显示日期的定时器
全部0条评论
快来发表一下你的评论吧 !