如何利用定时器制作万年历?

说明
使用 timer 对象以排定执行一次或多次 matlab® 命令。如果您排定计时器多次执行命令,可以定义每次执行之间的时间间隔以及如何处理排队冲突。
timer 对象使用回调函数执行命令。回调函数在某些事件中执行代码。对于 timer 对象,您可以将回调函数指定为函数句柄或字符串。如果回调函数是字符串,matlab 将以可执行代码形式对其求值。当计时器启动 (startfcn)、执行 (timerfcn)、停止 (stopfcn) 或遇到错误 (errorfcn) 时,计时器对象支持回调函数。
附注: timer 对象受到您的硬件、操作系统和软件的限制。应避免对实时应用程序使用计时器对象。
构造
t= timer 创建一个空的 timer 对象,以排定 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)%%删除显示日期的定时器

聚焦数据价值激活 西部数据创新存储技术加速开放计算落地
VIAVI隆重推出CX300 ComXpert,可单机实现LMR、PMR和LTE无线设备的综合测试
中国手术机器行业基本概况分析
安森美半导体创新PFC控制方案
浅谈电子封装用陶瓷基板材料及其制备工艺
如何利用定时器制作万年历?
深度解读数据要素是如何创造价值的
管道内壁缺陷检测系统的作用是什么
iphone8什么时候上市?iphone8最新消息:iPhone 8如此“颠覆式”设计,你会买吗?
阿里巴巴再现在芯片领域的野心 收购语音芯片公司先声互联
SkyEye嵌入式仿真环境的性能及应用实现
飞思卡尔防夹车窗升降参考设计
荣耀magic继任者曝光:软硬协同+人工智能+人机交互
WiFi模块在智能家居中的应用与优化
HTC U12+官方售价5888元 手机渐渐变为VR配件
用于NAT的选择性知识蒸馏框架
苹果13pro预计价格多少
没有变频器时如何实现电机调速
Windows系统用户摆脱黑客攻击的方法
蓄电池封口胶破裂的修补技巧