设置和使用硬件定时器的方法以及装置的制造方法

文档序号:9432751阅读:393来源:国知局
设置和使用硬件定时器的方法以及装置的制造方法
【技术领域】
[0001] 本发明设及数字电路领域,特别是指一种设置和使用硬件定时器的方法W及装 置。
【背景技术】
[0002] 对于现有的数字电路系统的设计,CPU(CentralProcessing化it,中央处理 器KMClKMicrocontrollerUnit,微控制单元)、DSP值igitalSi即alProcess,即数字 信号处理技术)忍片、FPGA(Field-Programm油leGateArray,现场可编程口阵列)、 CPLD(ComplexProgramm油leLogicDevice,复杂可编程逻辑器件)等是非常常用的主处 理器,而在运些主处理器中,除了中央处理器核之外,还会集成很多常用的硬件模块,而硬 件定时器由于其地位的重要性,在每个处理器中都有集成,少则集成一个硬件定时器,多则 集成四至五个硬件定时器。
[0003] 硬件定时器顾名思义是被用来计时间的,由于其计时准确,使用方便,在软件编程 中被广泛的应用,并且是一个不可或缺的部分。
[0004] 硬件定时器内部都设有一个或多个计数寄存器和一个或多个比较寄存器,硬件定 时器都会有一个工作时钟,其频率计为H;设定时时间为T,在定时开始前,将比较寄存器的 值设为N,将计数寄存器的初值设为COUNT;在定时开始后,每一个时钟,计数寄存器的都会 变化一个值,或加1,或减1。当计数寄存器的实时值C0UNT_REAL与比较寄存器的值N相 等的时候,表示定时时间到,此时硬件定时器就会设置一个中断标记,当硬件定时器中断功 能被使能的时候,就会触发一个中断。该中断标记存储在某个特定的寄存器中,应用程序 通过判断该寄存器中是否有中断标记来判断定时时间是否达到,从而进行后续的工作,后 续工作完成后清除中断标记。在下一个时钟到来的时候,计数寄存器中的值自动回到初值 COUNT,为下次定时做准备。 阳0化]现有技术对定硬件时器的使用如图1和图2所示;图1中,在硬件定时器定时时, 应用软件不执行任何动作,表示应用软件等待一段时间后再进行后续的工作;图2中在硬 件定时器定时时,应用软件进行相关操作,直到定时完毕后再进行其他的工作。现有技术存 在如下问题:
[0006] 一、对硬件定时器的利用效率不高:一个硬件定时器仅仅被用在一个应用场景中, 而主处理器内部的硬件定时器的数量是有限制的,当有多种应用场景的时候,就会造成硬 件定时器不够用的问题;
[0007] 二、并行使用性差:某一个硬件定时器,如果在某一个地方正在被使用,那么此时 该硬件定时器就不能在其它地方再被使用;尤其是在多进程、多线程编程中,运种问题表现 的更为突出。
[0008] =、应用范围窄:硬件定时器的应用只是局限在定时、计数的功能上,没有任何的 扩展应用。

【发明内容】

[0009] 本发明提供一种设置和使用硬件定时器的方法W及装置,该方法能够提高对硬件 定时器的使用效率,使硬件定时器的并行使用性好,并且拓宽了硬件定时器的适用范围,降 低了系统的功耗。 阳010] 为解决上述技术问题,本发明提供技术方案如下:
[0011] 一种设置硬件定时器的方法,包括:
[0012] 步骤S101 :确定定时时间,设定所述硬件定时器的计数寄存器的初值W及比较寄 存器的值;
[0013] 步骤S102 :启动所述硬件定时器,开始定时,若定时时间到,计数寄存器恢复到初 值,重新开始定时;
[0014] 步骤S103 :每次定时时间到时,同时执行定时器中断处理函数,使第一计数变量 F1自加或自减。
[0015] 一种使用硬件定时器的方法,包括:
[0016] 步骤S501 :在开始使用所述硬件定时器时,得到所述硬件定时器此时的总工作时 间,记为Time_total_l ;
[0017] 步骤S502 :在开始使用所述硬件定时器后,实时读取所述硬件定时器当前的总工 作时间,记为Time_total_2 ;
[0018] 步骤S503 :判断ITime_total_l-Time_total_2I是否等于设定时间,若是,结束, 否则,转至步骤S502。
[0019] 一种设置硬件定时器的装置,包括:
[0020] 设定模块,用于确定定时时间,设定所述硬件定时器的计数寄存器的初值W及比 较寄存器的值;
[0021] 定时模块,用于启动所述硬件定时器,开始定时,若定时时间到,计数寄存器恢复 到初值,重新开始定时;
[0022] 中断模块,用于每次定时时间到时,同时执行定时器中断处理函数,使第一计数变 量F1自加或自减。
[0023] 一种使用硬件定时器的装置,包括:
[0024] 第一获取模块,用于在开始使用所述硬件定时器时,得到所述硬件定时器此时的 总工作时间,记为Time_total_l ;
[00巧]第二获取模块,用于在开始使用所述硬件定时器后,实时读取所述硬件定时器当 前的总工作时间,记为Time_total_2 ;
[00%] 第二判断模块,用于判断ITime_total_l-Time_total_2I是否等于设定时间,若 是,结束,否则,转至第二获取模块。
[0027] 本发明具有W下有益效果:
[0028] 本发明的设置硬件定时器的方法中,首先设定硬件定时器的定时时间,然后启动 硬件定时器,开始定时,当定时时间到后,自动重新开始定时,如此循环执行;并且每次定时 时间到后,都执行一次定时器中断处理函数,使第一计数变量F1自加或自减。运样,通过第 一计数变量F1计数硬件定时器循环的次数,通过各个参数即可计算出硬件定时器当前的 总工作时间Time_total,从而为各个应用程序W及其中的各个应用场景提供定时功能。
[0029] 与现有技术相比,本发明的设置硬件定时器的方法只需要一个硬件定时器在循环 定时,各个应用程序在需要完成定时操作时,就可W在定时操作开始时得到硬件定时器的 总工作时间,记为Time_total_l,然后执行相关操作,当然运个操作可W不存在,在需要判 断定时操作的地方得到硬件定时器当前的总工作时间,记为Time_total_2,两者之差即可 计算出定时操作的时间。如此,一个硬件定时器可W被用在多个应用场景中,提高了对硬件 定时器的使用效率;并且当该硬件定时器在某一个地方正在被使用时,也能在其它地方再 被使用,并行使用性好。
[0030] 另外,由于该硬件定时器一直在不间断的循环定时,并通过第一计数变量F1计算 循环次数,如果设备或系统被设置了一个启示时间,那么就可启示时间为基点,通过 Time_total计算出当前的时间。故可W将该硬件定时器作为实时时钟使用,拓宽了硬件定 时器的适用范围。
[0031] 再者,由于一个硬件定时器已经能满足应用的需要,其余的硬件定时器就不需要 再使用,关闭运些硬件定时器,在一定程度上将降低系统的功耗。
[0032] 故本发明的设置硬件定时器的方法能够提高对硬件定时器的使用效率,使硬件定 时器的并行使用性好,并且拓宽了硬件定时器的适用范围,降低了系统的功耗。
【附图说明】
[0033] 图1为现有技术中使用硬件定时器的方法流程图一;
[0034] 图2为现有技术中使用硬件定时器的方法流程图二;
[0035] 图3为本发明的设置硬件定时器的方法流程图一;
[0036] 图4为本发明的设置硬件定时器的方法流程图二;
[0037] 图5为本发明的使用硬件定时器的方法流程图;
[0038] 图6为本发明的设置硬件定时器的装置结构图一;
[0039] 图7为本发明的设置硬件定时器的装置结构图二;
[0040] 图8为本发明的使用硬件定时器的装置结构图。
【具体实施方式】
[0041] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具 体实施例进行详细描述。
[0042] 本发明提供一种设置硬件定时器的方法,如图3所示,包括:
[0043] 步骤S101 :确定定时时间,设定硬件定时器的计数寄存器的初值W及比较寄存器 的值;
[0044] 通过设定硬件定时器的计数寄存器的初值COUNTW及比较寄存器的值N来设定定 时时间;此时需要设置定时时间到中断使能;
[0045] 步骤
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1