本发明专利技术提供了一种定时器及其实现方法,其应用于多任务系统中,该定时器包括:设定单元,用于设定多个任务的定时时间和计时起点;计时单元,用于根据多个任务的定时时间设定定时周期;计数单元,用于根据多个任务的定时时间和定时周期设定最大计时次数,并根据计时起点进行计数,在定时时间结束时,发送任务执行消息;执行单元,用于接收任务执行消息,并根据任务执行消息以预定方式触发执行与任务执行消息对应的任务。本发明专利技术仅通过一个定时器实现对系统中多个任务的执行进行合理有序的管理,从而减少定时器对系统资源的占用,提高系统执行效率,降低对定时器进行测试和维护方面的难度。
【技术实现步骤摘要】
本专利技术主要涉及计算机领域,尤其涉及。 背景4支术定时器,作为计算机系统中的重要组成部分,被广泛地使用。通过定时器 的定时操作,从而使计算机系统能够精确并有条不紊地执行每一项任务。 定时器主要包括计时单元和计数单元两部分。对于计时单元, 一般包括位数为8位、16位或32位的计时单元,设计人 员根据实际需要选择相应位数的计时单元,同时设定计时单位时长,即定时周 期T。定时周期T作为计算机系统中累加指令的机器周期,由计算机系统中的 微控制器(MCU, Micro Control Unit)的晶振频率决定,现有的很多微控制器 如单片机等都有预定的晶振频率,但晶振频率远远高于计算机系统的实际工作 频率,因此,需要通过对晶振频率进行适当分频来实现对定时周期T的设定, 例如,对晶振频率进行1/2或1/4分频。对于计数单元,设计人员根据预定定时时间t设计计数单元的最大计数次 数n。当定时器^^皮启动后,计数器从初值"0"开始计数,由于计数过程中的 每一次加1操作都需要占用一个定时周期T,因此,当计数器计数次数达到最 大计时次数n次时,即预定定时时间t等于计时时间nx丁时,触发中断执行 在该时间点的任务。在单片机中,常采用8位、16位或32位的寄存器来设计定时器,通过寄 存器的溢出实现定时功能。也就是说,定时器被启动后,其计数数值从初值"0" 不断执行加l操作,当累计的数值导致寄存器的存储单元溢出时,触发中断执 行在该时间点的任务。例如,在16位的定时器中,当计数单元变成二进制数 0xFFFF时,此时并不产生中断,而在下一次计数加1完成时,由于该次计数 加1导致定时器的存储单元溢出,从而触发中断执行在该时间点的任务。现有技术中,常常在计算机系统中设定多个定时器来控制管理多个任务的 执行。例如,根据任务执行时间点的不同在计算机系统中设定多个具有不同定 时周期和最大计时次数的定时器。这种计算机系统,由于多个定时器的使用, 不仅占用了较大的系统资源,而且执行效率相对较低,另外,增加了定时器在 测试和维护方面的难度。
技术实现思路
有鉴于此,本专利技术的目的在于提供,达到通过一 个定时器对系统中多个任务的执行进行合理有序管理的目的。根据本专利技术的一方面,提供了一种定时器,应用于包括多个任务的系统, 包括设定单元,用于设定所述多个任务的定时时间和计时起点;计时单元,用于根据所述定时时间设定定时周期;计数单元,用于才艮据所述定时时间和所述定时周期设定最大计时次数,并 根据所述计时起点进行计数,在所述定时时间结束时,发送任务执行消息;执行单元,用于接收所述任务执行消息,并根据所述任务执行消息以预定 方式触发执行与所述任务执行消息对应的任务。按照本专利技术的一种特征,所述设定单元将初始时间点设定为所述计时起点。按照本专利技术的另 一种特征,所述多个任务至少包括当前任务和与当前任务 相邻的前一任务;所述设定单元将所述与当前任务相邻的前一任务的触发时间 点设定为所述当前任务的所述计时起点。按照本专利技术的另 一种特征,所述计数单元根据所述多个任务的所述定时时 间计算最大公约数,将所述最大公约数设定为所述定时周期。按照本专利技术的另一种特征,所述预定方式为指针方式。根据本专利技术的另一方面,提供了一种定时器的实现方法,应用于包括多个 任务的系统包括设定所述多个任务的定时时间和计时起点;根据所述定时时间设定定时周期;根据所述定时时间和所述定时周期设定最大计时次数,并根据所述计时起点进行计数,在所述定时时间结束时,发送任务执行消息。接收所述任务执行消息,并根据所述任务执行消息触发执行与所述任务执行消息对应的任务。按照本专利技术的一种特征,所述设定多个任务的计时起点为将初始时间点设定为所述计时起点。按照本专利技术的另 一种特征,所述多个任务至少包括当前任务和与当前任务相邻的前一任务;所述设定多个任务的计时起点为将所述与当前任务相邻的 前一任务的触发时间点设定为所述当前任务的所述计时起点。按照本专利技术的另一种特征,所述根据多个任务的定时时间设定定时周期 为根据所述多个任务的所述定时时间计算最大公约数,将所述最大公约数设 定为所述定时周期。按照本专利技术的另一种特征,所述预定方式为指针方式。 本专利技术实施例所述的定时器及其实现方法,仅通过一个定时器就实现对系 统中多个任务的执行进行合理有序的管理,减少了对系统资源的占用,提高了 系统执行效率,降低了对定时器进行测试和维护方面的难度。附图说明图1为本专利技术第一具体实施例中定时器1的结构框图2为本专利技术第一具体实施例中定时器1的实现方法的流程图3为本专利技术第二具体实施例中定时器3的结构框图4为本专利技术第二具体实施例中定时器3的实现方法的流程图。具体实施例方式下面结合附图详细描述本专利技术的具体实施例。图1为本专利技术第一具体实施例中定时器1的结构框图。图1中,定时器1包括设定单元101、计时单元102、计数单元103和执行单元104,其中,设定单元101,用于根据系统需要设定多个任务的定时时间和计时起点。设定单元101将初始时间点设定为当前任务的计时起点,通过建立任务时 间表来管理系统中需要执行的每项任务。如表1所示,任务名称定时时间计时起点第一任务50毫秒4刀始时间点笫二任务150毫秒初始时间点第三任务IOO毫秒初始时间点第四任务200毫秒4刀始时间点表1表l中的三个重要组成部分分别为任务名称、计时起点和定时时间,具体叙述如下当前系统包括四个任务第一任务、第二任务、第三任务、第四任务。这 四个任务需要经过不同的定时时间来触发执行,具体触发执行过程为以初始时间点为计时起点,每经过50毫秒的定时时间后,触发执行一次第一任务;以初始时间点为计时起点,每经过150毫秒的定时时间后,触发执行一次第二任务;以初始时间点为计时起点,每经过ioo毫秒的定时时间后,触发执行一次 第三任务;以初始时间点为计时起点,每经过200毫秒的定时时间后,触发执行一次第四任务。计时单元102,用于根据多个任务的定时时间设定定时周期。7例如,由于在设定单元101创建的任务时间表中,第一任务的定时时间为50毫秒,第二任务的定时时间为150毫秒,第三任务的定时时间为100毫秒, 第四任务的定时时间为200毫秒,因此,上述四个任务的定时时间的最大公约 凌史50毫秒即为该计时单元102的定时周期。通常,设计人员根据需要对定时器的定时周期进行设定,在本实施例中, 只需要将定时器的定时周期设定为50毫秒,即定时器每隔50毫秒将触发一次 中断以执行相应的任务。当然也不排除设计人员根据系统中执行多个任务所需 的不同定时时间选择相应的定时周期来设计定时器。例如,对于系统中多个任 务的定时时间分别为50毫秒、60毫秒、70毫秒、80毫秒时,由于50毫秒、 60毫秒、70毫秒、80毫秒的最大公约数为IO毫秒,因此,设计人员则需要 选择定时周期为IO毫秒的定时器。计数单元103,用于才艮据多个任务的定时时间和定时周期设定最大计时次 数并根据设定的计时起点进行计数,在定时时间结束时,即当计数次数达到最 大计时次数时,发送任务执行消息。计数单元103根据设定单元101建立的任务时间表和计时单元102设定的 定时周期,得出多个任务的最大计时次数。例如,对于上述系统的四个任务, 其中,计数单元103以执行第四本文档来自技高网...
【技术保护点】
一种定时器,应用于包括多个任务的系统,其特征在于,包括:设定单元,用于设定所述多个任务的定时时间和计时起点;计时单元,用于根据所述定时时间设定定时周期;计数单元,用于根据所述定时时间和所述定时周期设定最大计时次数,并根据所述计时起点进行 计数,在所述定时时间结束时,发送任务执行消息;执行单元,用于接收所述任务执行消息,并根据所述任务执行消息以预定方式触发执行与所述任务执行消息对应的任务。
【技术特征摘要】
【专利技术属性】
技术研发人员:艾国,
申请(专利权)人:北京中星微电子有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。