一种毫秒级精度计时方法技术

技术编号:2768173 阅读:455 留言:1更新日期:2012-04-11 18:40
本发明专利技术公开了一种毫秒级精度计时方法,首先,初始化具有跑表硬件的芯片中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器;然后,实时时钟状态寄存器同步启动跑表时钟计数寄存器按1/100秒的频率计数、周期中断告警时钟计数寄存器按1/1000秒的频率进行计数;判断周期中断告警时钟计数寄存器的当前计数值是否小于10,若是,继续进行计数,判断是否停止计数,若是,则获取当前计数值。按照本发明专利技术所述方法,从硬件上实现了毫秒级精度计时。若否,则产生硬件中断,将周期中断告警时钟计数寄存器清零,并重新开始计数。

【技术实现步骤摘要】

本专利技术涉及一种计时方法,具体地说,是涉及一种毫秒级精度的计时方法。
技术介绍
现有的计时装置,如体育赛事中经常用到的跑表,精度一般在10毫秒的精度级。这些常见的基于毫秒级的计时工具,一般是通过软件添加这个毫秒的纪录,导致较低的准确性。另外,还有些秒表纪录工具中的毫秒位就是简单的从0-9进行循环,也只是单纯从表面纪录上表示纪录的位数为毫秒位,但根本没有达到毫秒级的精度要求。但在一些要求比较高的重大赛事中,更高精度的时间纪录是增加比赛看点和确保赛事公平性的一个重要因素。因此,如何提供一种毫秒级精度的计时方法,成为一种亟待解决的技术问题。
技术实现思路
本专利技术所要解决的技术问题是提供,来实现一种高精度的毫秒级精度计时方法。为解决上述技术问题,本专利技术提供方案如下,包括如下步骤步骤一初始化具有跑表硬件的芯片中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器;步骤二实时时钟状态寄存器同步启动跑表时钟计数寄存器按1/100秒的频率计数、周期中断告警时钟计数寄存器按1/1000秒的频率进行计数;步骤三判断周期中断告警时钟计数寄存器的当前计数值是否小于10,如果是,则继续进行计数,执行步骤五;如果否,执行步骤四;步骤四产生硬件中断,将周期中断告警时钟计数寄存器清零,并重新开始计数,回到步骤三;步骤五判断是否停止计数,如果是,则执行步骤六;步骤六获取当前计数值。本专利技术所述方法,通过采用设置实时时钟状态寄存器同步启动按1/100秒频率计时的跑表时钟计数寄存器和按1/1000秒频率计时的周期中断告警寄存器,并设置周期中断告警寄存器的告警值为10的方法,实现了毫秒级精度计时,避免了软件方法实现时由于判断时延带来的误差,保证了计时的精确性,从而使得本专利技术所述的方法实现了真正意义上的毫秒级精确度。使得毫秒级精度实现了真正意义上的精确。本专利技术所要解决的技术问题、技术方案要点及有益效果,将结合实施例,参照附图作进一步的说明。附图说明图1为本专利技术所述实施例方法的流程图;图2为本专利技术所述实施例装置的结构图。具体实施例方式如图所示,为本专利技术所述实施例方法的流程图。首先,初始化具有跑表硬件的芯片中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器,设置周期中断告警寄存器的告警值为10(步骤101);然后,实时时钟状态寄存器同步启动跑表时钟计数寄存器按1/100秒的频率计数、周期中断告警时钟计数寄存器按1/1000秒的频率进行计数(步骤102);判断周期中断告警时钟计数寄存器的当前计数值是否小于10,如果是,则继续进行计数,执行步骤105;如果否,执行步骤104(步骤103);产生硬件中断,将周期中断告警时钟计数寄存器清零,并重新开始计数,回到步骤103(步骤104);判断是否停止计数,如果是,则执行步骤106(步骤105);读取跑表时钟计数寄存器的当前值作为1/100秒精度的计时值,并读取周期中断告警时钟计数寄存器中的当前值为计时值中的毫秒值(步骤106)。这里,计时值可以以hh:mm:ss:xxy的格式显示,其中,hh表示小时,mm表示分钟,ss表示秒,xxy表示毫秒。如图2所示,为本专利技术所述实施例装置的结构图。本专利技术所述实施例的一种移动终端100,如手机,小灵通,包括启动/停止计时按键2,与启动/停止计时按键2相连并开启/锁定启动/停止计时按键2的计时功能设定模块1、显示单元6和具有跑表硬件的芯片7,具有跑表硬件的芯片7包括按1/100秒频率计数的跑表时钟计数寄存器4、按1/1000秒频率计数的周期中断告警寄存器5,与周期中断告警寄存器5、跑表时钟计数寄存器4相连并对周期中断告警寄存器5、跑表时钟计数寄存器4进行同步启动的实时时钟状态寄存器3,启动/停止计时按键2与实时时钟状态寄存器3相连并启动实时时钟状态寄存器3,及开启/锁定启动/停止计时按键2的计时功能设定模块1,显示单元6与跑表时钟计数寄存器4、周期中断告警寄存器5相连并显示周期中断告警寄存器5、跑表时钟计数寄存器4输出的计数值,其中,周期中断告警寄存器5的告警溢出值为10。本专利技术所述方法可以利用Intel Bulverde芯片提供的跑表硬件实现。即,利用其中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器,可以达到同样的效果。首先,在根据用户请求,启动RTC状态寄存器(实时时钟状态寄存器)同步启动Stopwatch时钟计数寄存器(跑表时钟计数寄存器)以1/100秒频率计数,Periodic Interrupt时钟计数寄存器(周期中断告警寄存器)1/1000秒频率进行计数,当Periodic Interrupt时钟计数寄存器计数值到达10时,Stopwatch时钟计数寄存器的计数值会累加1,由于Periodic Interrupt时钟计数寄存器的告警值设置为10,则此时Periodic Interrupt时钟计数寄存器会复位为0,重新开始计数。这样就达到了计数毫秒位满10进位复0的效果,避免了由于软件判断的时延带来的误差,保证了计时的精确性。本专利技术所述的,并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本专利技术之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本专利技术并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。权利要求1.,其特征在于包括如下步骤步骤一初始化具有跑表硬件的芯片中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器;步骤二实时时钟状态寄存器同步启动跑表时钟计数寄存器按1/100秒的频率计数、周期中断告警时钟计数寄存器按1/1000秒的频率进行计数;步骤三判断周期中断告警时钟计数寄存器的当前计数值是否小于10,如果是,则继续进行计数,执行步骤五;如果否,执行步骤四;步骤四产生硬件中断,将周期中断告警时钟计数寄存器清零,并重新开始计数,回到步骤三;步骤五判断是否停止计数,如果是,则执行步骤六;步骤六获取当前计数值。2.根据权利要求1所述的方法,其特征在于所述步骤一中,设置周期中断告警寄存器的告警值为10。3.根据权利要求1所述的方法,其特征在于所述步骤六所述获取当前计数值进一步包括如下步骤读取跑表时钟计数寄存器的当前值作为1/100秒精度的计时值;读取周期中断告警时钟计数寄存器中的当前值为计时值中的毫秒值。4.根据权利要求3所述的方法,其特征在于所述计时值以hh:mm:ss:xxy的格式显示,其中,hh表示小时,mm表示分钟,ss表示秒,xxy表示毫秒。全文摘要本专利技术公开了,首先,初始化具有跑表硬件的芯片中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器;然后,实时时钟状态寄存器同步启动跑表时钟计数寄存器按1/100秒的频率计数、周期中断告警时钟计数寄存器按1/1000秒的频率进行计数;判断周期中断告警时钟计数寄存器的当前计数值是否小于10,若是,继续进行计数,判断是否停止计数,若是,则获取当前计数值。按照本专利技术所述方法,从硬件上实现了毫秒级精度计时。若否,则产生硬件中断,将周期中断告警时钟计数寄存器清零,并重新开始计数。文档编号G04F10/04GK1963699SQ20051011585公本文档来自技高网...

【技术保护点】
一种毫秒级精度计时方法,其特征在于包括如下步骤:步骤一:初始化具有跑表硬件的芯片中的实时时钟状态寄存器、周期中断告警寄存器、跑表时钟计数寄存器;步骤二:实时时钟状态寄存器同步启动跑表时钟计数寄存器按1/100秒的频率计数、周 期中断告警时钟计数寄存器按1/1000秒的频率进行计数;步骤三:判断周期中断告警时钟计数寄存器的当前计数值是否小于10,如果是,则继续进行计数,执行步骤五;如果否,执行步骤四;步骤四:产生硬件中断,将周期中断告警时钟计数寄存 器清零,并重新开始计数,回到步骤三;步骤五:判断是否停止计数,如果是,则执行步骤六;步骤六:获取当前计数值。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈夕华
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[]

网友询问留言 已有1条评论
  • 来自[广东省广州市电信] 2014年12月10日 11:42
    毫秒是一种较为微小的时间单位是一秒的千分之一
    0
1
相关领域技术
  • 暂无相关专利