matlab的timer 怎么知道系统已经到达预定时间了,我用了timer.startat()函数启动的定时器

matlab中定时器timer具体怎么使用?有简单的例子教我一下吗_百度知道
matlab中定时器timer具体怎么使用?有简单的例子教我一下吗
提问者采纳
有例子,但是你想做伸手党从不采纳的话还是算了吧。
恩恩,知道了,谢谢您
稍等我给你写一个延迟的例子function [b_x,b_y]=fR=10;global neb_x;global neb_y;global next_node_x;global next_node_y;neb=[4 8 9 6 1];neb_x=[0.9 0.6 0.8 0.2 0.4];neb_y=[0.4 0.8 0.3 0.6 0.1];for j=1:5
if R-neb(j)&1
%只要满足此条件立即执行
next_node_x=neb_x(j);
next_node_y=neb_y(j);
elseif 1&R-neb(j)&3
%满足此条件延时后执行,延时过程中不影响for语句的执行
%T1 = timer('PropertyName1', PropertyValue1, 'PropertyName2', PropertyValue2,...)
T = timer('TimerFcn',@TimerFcn1, 'ExecutionMode','singleShot');
pause(0.002)
%其余延时后执行
next_node_x=neb_x(j);
next_node_y=neb_y(j);
endendb_x=next_node_x;b_y=next_node_y;function TimerFcn1(obj, event)pause(0.001);global neb_x;global neb_y;global next_node_x;global next_node_y;next_node_x=neb_x(j);next_node_y=neb_y(j);
提问者评价
来自团队:
其他类似问题
为您推荐:
timer的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看: 7437|回复: 4|关注: 0
MATLAB GUI实时时间显示
& &看到论坛有MATLAB GUI实时时间显示的发言。也看了些资料,还编了几句试了试,还行,感想写于下面供参考。
& && &MATLAB利用datestr函数获取计算机系统的时间信息,对此信息及时更新便可成为实时显示的时间信息。
& &更新获取信息的datestr函数的时间间隔可由定时器的定时周期控制(广义而言,只要循环往复地执行datestr函数即可)。
采用定时器控制更新时间信息可采用如下方法:
a)利用Timer函数创建定时器对象
T= timer (相关的属性及其属性值)
(以上两句写在Opening函数下面)
属性及其属性值譬如:BusyMode(queue)、ExecutionMode(fixedRate)、period(1)等。
相关的属性及属性值指定了定时器执行模式属性,如定时精度(fixedRate)、定时周期(1)等。若将period的属性值写为5,定时周期则为5S。
b)编写定时器回调函数
定时周期决定定时器触发事件的频率,也就是实时时间更新频率。在定时器定时事件触发时将执行其回调函数,将时间信息获取函数datestr至于其中即可。譬如:
Str=datestr(now,’HH:MM:SS’);
c)将实时时间送到静态、动态文本框或其它控件中显示即可。譬如:
set(handles.文本框tag,’String’ Str);
因在内网上试的,还行,就是程序考不出来。
timer函数的属性'TimerFcn'对应的属性值'callbk' 具体怎么写啊? 是调用某个显示时间控件的回调函数吧,应该怎么写?
我没试成功~ 谢谢!
定时器的timer函数
& && && &T=timer(‘tag’,’timer1’,’BusyMode’,’queue’,’ExecutionMode’,’fixedrate’,’period’,1,’timerfcn’,{@t_update,handles})
& & 理解为:其中的忙闲模式属性、执行模式属性、定时周期属性、名称属性、回调函数等(属性值)均不是唯一的,斟酌适用性选择则可。例如定时器可产生四种事件,相应可写出不同的回调函数等…。
& & 也是初学者,相互交流,也算是新手对于论坛的回馈吧。
您好 我现在是想实现毫秒计时功能 我现在遇到的问题就是period设置为0.001时 就是设置的下限的时候,str=datestr(now, 'HH:MM:SS:FFF');时候 出现的结果不是我想要的&&数据的变化并不连贯 希望大侠指点
我的程序是:
t=timer('TimerFcn',{@timercallback,handles},'ExecutionMode', 'fixedRate', 'Period', 0.01);
function timercallback(obj, event,handles)
str=datestr(now, 'HH:MM:SS:FFF');
set(handles.edit1, 'String',str);
yiyayamatlab 发表于
您好 我现在是想实现毫秒计时功能 我现在遇到的问题就是period设置为0.001时 就是设置的下限的时候,str=da ...
将fixedrate改为fixedspacing可以达到连续变化的效果
站长推荐 /1
为其他会员撰写推荐,表示您认可他们对于论坛的出色贡献;
向其他坛友请求推荐,令您的声望页面更有说服力。
赶快学习新功能怎么用吧,推荐写起来!~
Powered by 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Matlab系列之Matlab_M函数
下载积分:600
内容提示:Matlab系列之Matlab_M函数
文档格式:PPT|
浏览次数:161|
上传日期: 21:42:47|
文档星级:
该用户还上传了这些文档
Matlab系列之Matlab_M函数
官方公共微信3986人阅读
C55x&DSP片内有两个2通用定时器,利用定时器可向CPU产生周期性中断或向DSP片外的器件提供周期信号。其中TMS320VC09/5510
DSP提供的是2个20位通用定时器.
1 结构框图
20位的定时器由两部分组成:一个4位的预定标器(PSC)和一个16位的主计数器(TIM)。
定时器有两个计数寄存器(PSC,TIM)和两个周期寄存器(TDDR,PRD),在定时器初始化过程中,周期寄存器的内容拷贝到计数寄存器中。
<span style="color:# 工作原理
&&& 定时器的工作时钟可以来自DSP内部的CPU时钟,也可以来自引脚TIN/TOUT。
&&& 定时器控制寄存器(TCR)中的字段FUNC可以确定时钟源和TIN/TOUT引脚的功能,这样定时器的工作模式包括以下几种:
当FUNC=00b时,TIN/TOUT为高阻态,时钟源是内部时钟(CPU时钟)。
当FUNC=01b时,TIN/TOUT为定时器输出,时钟源是内部时钟(CPU时钟)。
当FUNC=10b时,TIN/TOUT为通用输出,时钟源是内部时钟(CPU时钟)。
当FUNC=11b时,TIN/TOUT为定时器输入,时钟源是外部时钟。
&&&&&在定时器中,预定标器由输入时钟驱动,PSC在每个输入时钟周期减1,当其减到0时,TIM减1,当TIM减到0,定时器向CPU发送一个中断请求(TINT)或向DMA控制器发送同步事件。定时器发送中断信号或同步事件信号的频率可用下式计算:
&&& TINT频率 = 输入时钟频率 /& (TDDR &#43; 1) * (PRD&#43;1)
&&& 通过设置TCR中的自动重装控制位ARB,可使定时器工作于自动重装模式,当TIM减到0,重新将周期寄存器(TDDR,PRD)的内容拷贝到计数寄存器(PSC,TIM)中,继续定时。
每个定时器包括4个寄存器,即定时器预定标寄存器PRSC、主计数寄存器TIM、主周期寄存器PRD和定时器控制寄存器TCR。
3 使用方法
在定时器的工作过程中,要注意以下因素对定时器的影响。
1.初始化定时器
通用定时器的初始化过程如下:
(1)停止计时(TSS=1),定时器装载使能(TLB=1),&
并将周期寄存器(TIM,PSC)的内容拷贝到计数寄存器(PRD,TDDR);
(2)将预定标计数周期数写入TDDR;
(3)将主计数器周期数装入PRD;
(4)关闭定时器装载(TLB=0),启动计时(TSS=0)。
2.停止/启动定时器
利用时钟控制寄存器中的TSS位可以停止或启动定时器。
TSS=1,停止计时
TSS=0,启动计时
3.DSP复位
DSP复位后定时器的寄存器将按照如下规则复位:
l停止定时(TSS=1);
预定标计数器&#20540;为0;
主计数器&#20540;为FFFFh;
定时器不进行自动重装(ARB=0);
idle指令不能使定时器进入省电模式;
仿真时遇到软件断点定时器立即停止工作;
TIN/TOUT为高阻态,时钟源是内部时钟(FUNC=00b)。
4 通用定时器的应用
如果使用芯片支持库函数对通用定时器进行编程,则必须包含头文件csl_timer.h。
&&&&&&& 首先定义通用定时器句柄和配置结构:
TIMER_Handle hT
TIMER_Config Config_TIMER = {
载入 TCR0t:
; IDLE_EN = 0 (不允许空闲状态)
; FUNC = 00b (引脚为高阻态)
; TLB = 0 (TLB
; FREE = 1 (遇到断点时时钟不停止)
; PWID = 00b (脉冲延迟一个 CPU
; ARB = 1 (当TIM计数到0时重新载入TIM和
; TSS = 1 (停止计数器)
; C/P = 0 (引脚输出为脉冲模式)
; POLAR = 0 (引脚信号开始为低)
/* prd = 407 */
/*& prsc = 7 TDDR=7 */
计数器每 )
个时钟周期输出:
接下来打开句柄:
hTimer = TIMER_open(TIMER_DEV0,0);//设置计数器0,中断20K/s
&&&&&&&&& 调用定时器配置函数对计数器初始化:
TIMER_config(hTimer,&Config_TIMER);
&&&&&&&&& 调用定时器开始函数使定时器开始工作:
TIMER_start(hTimer);
&&&&&&&&&& 如果在程序中需要暂时停止定时器计数可以调用定时器停止函数:
TIMER_stop(hTimer);
&&&&&&&&&& 当使能定时器中断时,则当定时中断发生时将运行定时中断服务程序:
interrupt void Timer0_Isr()
5 通用定时器的调试
通用定时器可以产生定时中断,或者作为DMA同步事件来同步DMA传送,如果将通用定时器的输出从通用定时器引脚引出,也可以为系统的其他部分提供定时。
&&&&&&& 通用定时器的调试步骤如下:
设定通用定时器的时钟源,通用定时器的时钟源可以是CPU时钟,也可由外部信号提供,如果选择外部时钟,则需要将这个信号从TIN/TOUT引脚引入,应当注意此时TIN/TOUT引脚将不能够作为定时器输出使用;
正确设置定时器寄存器&#20540;,使定时器开始工作;
在定时器中断服务程序中设置断点,看能否进入定时中断,如果定时器的时钟源是CPU时钟,这时也可以将定时器信号从TIN/TOUT引脚输出,通过示波器检测定时器输出是否正常。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:264505次
积分:4420
积分:4420
排名:第3043名
原创:175篇
转载:71篇
评论:34条
(1)(12)(5)(1)(7)(5)(2)(1)(1)(4)(4)(1)(8)(3)(5)(6)(2)(2)(1)(8)(1)(1)(2)(21)(31)(10)(29)(21)(8)(42)(1)}

我要回帖

更多关于 matlab的timer 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信