【技术实现步骤摘要】
基于MCU的事件发生时刻测量范围的扩展方法及装置
[0001]本专利技术涉及嵌入式系统领域以及电气工程领域,特别是一种对事件发生时刻的测量范围的扩展方法,具体是用位宽较低的定时器捕获事件发生的时刻,并扩展为宽范围的表示方法。
技术介绍
[0002]定时器是MCU(微控制器)中的标准模块,定时器可以实现较多的功能,比如定时、发波、捕获等。其中,捕获功能是由外部事件触发并记录下此时定时器的计数值,计数值可用作外部事件发生的时刻。外部事件一般为脉冲的上升沿或下降沿。
[0003]大多数MCU定时器都是16位宽度的,能表示的范围为0~(2
16
‑
1),当定时器时钟频率较高时,定时器在较短的时间内便会溢出,对于很多应用来说,16位定时器所能表示的时间范围很有限,因此,需要一种方法来对16位位宽所表示的时间进行扩展,能在更大时间范围内记录外部事件所发生的时刻。通常而言,32位数据所能表示的范围一般都能满足大多数应用,它所表示的范围为0~(2
32
‑
1)。
专利技术内 ...
【技术保护点】
【技术特征摘要】
1.一种基于MCU的事件发生时刻测量范围的扩展方法,其特征在于,包括:当捕获到事件发生时,将当前MCU的定时器的计数值作为事件发生时刻的低字,并根据MCU的定时器是否溢出推算得到事件发生时刻的高字,事件发生时刻的高字和事件发生时刻的低字共同组合成事件的发生时刻;所述高字和所述低字的字长不限于16位。2.根据权利要求1所述的基于MCU的事件发生时刻测量范围的扩展方法,其特征在于,具体包括如下步骤:步骤1:开启MCU的定时器进行递增,并对事件进行捕获,如果有事件发生,则将定时器的计数值锁存至定时器的捕获寄存器中,所述计数器的计数包括虚拟的时间高字和捕获寄存器中存储的时间低字,分别作为待获取的事件发生时刻的高字和事件发生时刻的低字;步骤2:判断定时器是否发生溢出,如果发生溢出则将虚拟的时间高字增1;步骤3:间隔预设时间读取定时器的捕获寄存器,如果捕获寄存器的值小于前一次读取的定时器的计数值,则事件的高位时间字取当前的虚拟的时间高字的值;反之,如果捕获寄存器的值大于等于前一次读取的定时器的计数值,则事件的高位时间字取前一次读取的虚拟的时间高字的值;步骤4:以捕获定时器的计数值作为事件发生时刻的低字,以步骤3获得的高位时间字作为事件发生时刻的高字,共同组合成事件的发生时刻。3.根据权利要求1所述的基于MCU的事件发生时刻测量范围的扩展方法,其特征在于,具体包括如下步骤:步骤1:开启MCU的定时器进行递减计数,并对事件进行捕获,如果有事件发生,则将定时器的计数值锁存至定时器的捕获寄存器中,所述计数器的计数包括虚拟的时间高字和捕获寄存器中存储的时间低字,分别作为待获取的事件发生时刻的高字和事件发生时刻的低字;步骤2:判断定时器是否发生溢出,如果发生溢出则将虚拟的时间高字减1;步骤3:间隔预设时间读取定时器的捕获寄存器,如果捕获寄存器的值大于前一次读取的定时器的计数值,则事件的高位时间字取当前的虚拟的时间高字的值;反之,如果捕获寄存器的值小于等于前一次读取的定时器的计数值,则事件的高位时间字取前一次读取的虚拟的时间高字的值;步骤4:以捕获定时器的计数值作为事件发生时刻的低字,以步骤3获得的高位时间字作为事件发生时刻的高字,共同组合成事件的发生时刻。4.根据权利要求2所述的基于MCU的事件发生时刻测量范围的扩展方法,其特征在于:所述步骤2中,判断定时器是否发生溢出具体包括:MCU间隔预设时间读取定时器的计数值,如果后面一次读取的计数值小于前面一次读取的计数值,则表明定时器发生了溢出跳变。5.根据权利要求2所述的基于MCU的事件发生时刻测量范围的扩展方法,其特征在于:所述步骤3中,间隔预设时间读取定时器的捕获寄存器,具体是MCU周期性的读取定时器的计数值。6.根据权利要求2所述的基于MCU的事件发生时刻测...
【专利技术属性】
技术研发人员:周朝阳,徐晓峰,周党生,
申请(专利权)人:深圳市禾望电气股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。