自适应定时方法、装置

文档序号:1020595 发布日期:2020-10-27 浏览:24次 >En<

阅读说明:本技术 自适应定时方法、装置 (Self-adaptive timing method and device ) 是由 潘帅 李大宝 于 2020-06-28 设计创作,主要内容包括:本发明公开了一种自适应定时方法、装置,所述方法包括:设定脉冲的时间序列,和定时器发生中断的时间宽度;所述时间序列包括时间节点、脉冲宽度;控制计数器开始计数,在设置的计数器初值达到时间节点时,控制触发脉冲动作;所述计数器初值依据发生中断的次数而相应增长。采用上述技术方案,定时脉冲相对0时刻可正、可负;降低时序的存储开销。(The invention discloses a self-adaptive timing method and a self-adaptive timing device, wherein the method comprises the following steps: setting a time sequence of pulses and a time width of interruption of a timer; the time sequence comprises time nodes and pulse widths; controlling a counter to start counting, and controlling a trigger pulse to act when a set initial value of the counter reaches a time node; the initial value of the counter is increased accordingly depending on the number of interrupts that occur. By adopting the technical scheme, the timing pulse can be positive or negative relative to the 0 moment; the storage overhead of the time sequence is reduced.)

自适应定时方法、装置

技术领域

本发明涉及单片机定时控制领域,尤其涉及一种自适应定时方法、装置。

背景技术

单片机定时器通常用于控制脉冲的输出,在现有技术中采用的定时器控制脉冲方案中,定时器只能相对于0时刻设置正的时间序列,不适用于需要设置负的时间序列,其次,定时器的时间序列都是相对于0时刻而言的,当时序较多时会占用大量的存储空间,从而降低了定时器的性能。

发明内容

发明目的:本发明旨在提供一种自适应定时方法、装置,通过计数器初值与时间序列之间的设置关系,实现定时脉冲相对0时刻可正、可负,其次,通过设置时间节点和脉冲宽度,每个定时脉冲的相对时序关系可任意配置,可以降低时序的存储开销。

技术方案:本发明提供一种自适应定时方法,包括:设定脉冲的时间序列,和定时器发生中断的时间宽度;所述时间序列包括时间节点、脉冲宽度;控制计数器开始计数,在设置的计数器初值达到时间节点时,控制触发脉冲动作;所述计数器初值依据发生中断的次数而相应增长。

具体的,所述定时器工作方式为TMOD=1。

具体的,所述定时器初始化和中断时设置TH0=(65536-50000)/256,TL0=(65536-50000)&0xff。

具体的,所述时间序列为t0,Δt0,t1,Δt1,…,tn-1,Δtn-1,其中t0,t1,…,tn-1为时间节点,Δt0,Δt1,…,Δtn-1为与各个时间节点对应的脉冲宽度,时间节点占计数器12位,脉冲宽度占计数器4位。

具体的,当计数器初值等于ti-t0时,控制触发开始脉冲;当计数器初值等于ti-t0+Δti时,控制触发结束脉冲;ti为第i个时间节点。

本发明还提供一种自适应定时装置,包括:设定单元和计数单元,其中:

所述设定单元,用于设定脉冲的时间序列,和定时器发生中断的时间宽度;所述时间序列包括时间节点、脉冲宽度;

所述计数单元,用于控制计数器开始计数,在设置的计数器初值达到时间节点时,控制触发脉冲动作;所述计数器初值依据发生中断的次数而相应增长。

具体的,所述定时器工作方式为TMOD=1。

具体的,所述定时器初始化和中断时设置TH0=(65536-50000)/256,TL0=(65536-50000)&0xff。

具体的,所述时间序列为t0,Δt0,t1,Δt1,…,tn-1,Δtn-1,其中t0,t1,…,tn-1为时间节点,Δt0,Δt1,…,Δtn-1为与各个时间节点对应的脉冲宽度,时间节点占计数器12位,脉冲宽度占计数器4位。

具体的,所述计数单元,用于当计数器初值等于ti-t0时,控制触发开始脉冲;当计数器初值等于ti-t0+Δti时,控制触发结束脉冲;ti为第i个时间节点。

有益效果:与现有技术相比,本发明具有如下显著优点:定时脉冲相对0时刻可正、可负;降低时序的存储开销。

附图说明

图1为本发明提供的自适应定时方法的流程示意图。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明。

参阅图1,其为本发明提供的自适应定时方法的流程示意图。

步骤1,设定脉冲的时间序列,和定时器发生中断的时间宽度。

本发明实施例中,所述时间序列包括时间节点、脉冲宽度。

本发明实施例中,所述时间序列为t0,Δt0,t1,Δt1,…,tn-1,Δtn-1,其中t0,t1,…,tn-1为时间节点,Δt0,Δt1,…,Δtn-1为与各个时间节点对应的脉冲宽度。

在具体实施中,时间节点是控制脉冲开始的时刻,脉冲宽度是控制脉冲持续发生的时间,其中脉冲宽度Δt0对应的是时间节点t0开始的脉冲,Δt1对应的是t1,其他同理,不同时间节点对应的脉冲宽度可以设置的不一致,也即每个定时脉冲的相对时序关系可任意配置。

在具体实施中,时间序列中时间节点的设置相对于0时刻可正、可负,通过时间序列控制的定时脉冲可以用于控制外部器件。

本发明实施例中,定时器工作方式为TMOD=1。

本发明实施例中,定时器初始化和中断时设置TH0=(65536-50000)/256,TL0=(65536-50000)&0xff。

在具体实施中,在单片机中(例如8031单片机),有两个计数器(TH0和TL0),设置定时器的工作模式为TM0D=1,即16位定时器,最大的计数量为65535;对于一个12M的晶体振荡器,供给计数器的脉冲时间间隔为1微秒。在初始化和中断时设置TH0=(65536-50000)/256,TL0=(65536-50000)&0xff,即当发生50000次振荡后,T0溢出,产生一次中断,中断每50ms发生一次(中断的时间宽度),因此50ms可以作为定时器的时间序列单位,根据实际应用场景,中断的时间宽度也可以相应的进行调整。

本发明实施例中,时间节点占计数器12位,脉冲宽度占计数器4位。

在具体实施中,时间序列占用的存储空间为(12+4)*n/8=2n字节,可控制n个矩形脉冲的产生,最大脉冲延迟为2047*50=102350ms=102.35s,最大脉冲宽度为15*50=750ms=0.75s。通过设置时间节点和脉冲宽度,以及时间节点和脉冲宽度的计数器位数分配,每个定时脉冲的相对时序关系可任意配置,可以降低时序的存储开销。

步骤2,控制计数器开始计数,在设置的计数器初值达到时间节点时,控制触发脉冲动作;所述计数器初值依据发生中断的次数而相应增长。

本发明实施例中,当计数器初值等于ti-t0时,控制触发开始脉冲;当计数器初值等于ti-t0+Δti时,控制触发结束脉冲;ti为第i个时间节点。

在具体实施中,可以设置计数器初值num=0,每次触发中断时num加1,则当num等于零时,触发第一个脉冲事件,对于其余时间序列t0,t1,…,tn-1,当num等于ti-t0时触发开始脉冲事件,当num等于ti-t0+Δti时触发结束脉冲事件。

在具体实施中,通过计数器初值与时间节点之间的设置关系,实现定时脉冲相对0时刻可正、可负,在通过单片机定时器实际控制外部器件时,可以据此校正时间误差。

在具体实施中,ti可以为t0,t1,…,tn-1中任意一个时间节点,若需要重新设置脉冲的产生时间和脉冲宽度,重新设置时间序列t0,Δt0,t1,Δt1,…,tn-1,Δtn-1即可。

本发明还提供一种自适应定时装置,包括:设定单元和计数单元,其中:

所述设定单元,用于设定脉冲的时间序列,和定时器发生中断的时间宽度;所述时间序列包括时间节点、脉冲宽度;

所述计数单元,用于控制计数器开始计数,在设置的计数器初值达到时间节点时,控制触发脉冲动作;所述计数器初值依据发生中断的次数而相应增长。

本发明实施例中,所述定时器工作方式为TMOD=1。

本发明实施例中,所述定时器初始化和中断时设置TH0=(65536-50000)/256,TL0=(65536-50000)&0xff。

本发明实施例中,所述时间序列为t0,Δt0,t1,Δt1,…,tn-1,Δtn-1,其中t0,t1,…,tn-1为时间节点,Δt0,Δt1,…,Δtn-1为与各个时间节点对应的脉冲宽度,时间节点占计数器12位,脉冲宽度占计数器4位。

本发明实施例中,所述计数单元,用于当计数器初值等于ti-t0时,控制触发开始脉冲;当计数器初值等于ti-t0+Δti时,控制触发结束脉冲;ti为第i个时间节点。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:户外时间监测系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!