全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210590279.8 (22)申请日 2022.05.27 (71)申请人 无锡寰芯微电子科技有限公司 地址 214101 江苏省无锡市锡山区安 镇街 道丹山路78号锡东创融大厦B座 431 (72)发明人 赵晓威 于涛 范荔锋  (74)专利代理 机构 合肥天明专利事务所(普通 合伙) 34115 专利代理师 苗娟 (51)Int.Cl. G06F 9/50(2006.01) G06F 9/48(2006.01) (54)发明名称 硬件定时器实现多个计时任务的方法及存 储介质 (57)摘要 本发明的一种硬件定时器实现多个计时任 务的方法及存储介质, 通过链表实现, 通过链表 将所有的定时任务根据定时时长进行排序, 当排 序完成后, 把硬件定时的时长设置与链表的首个 任务时长一致; 还包括通过链表记录各个定时任 务到期后的操作。 本发明通过硬件定时器根据当 前最短时间的虚拟定时器来进行定时, 虚拟定时 器在添加时即开始计算其时间。 当无虚拟定时器 时, 关闭硬件定时器, 减少中断次数。 将每个虚拟 定时器使用结构体表示, 结构体成员为与前一个 虚拟定时器的时间差即该参数单位为要求时间 精度和回调函数等, 使用链表按照定时时间到期 顺序将所有结构体进行链接, 每次中断只需要扫 描第一个结构体链表成员, 从而减少对于CPU时 间占用。 权利要求书1页 说明书4页 CN 115114018 A 2022.09.27 CN 115114018 A 1.一种硬件定时器实现多个计时任务的方法, 其特征在于, 通过链表实现, 通过链表将 所有的定时任务根据定时时长进行排序, 当排序完成后, 把硬件定时的时长设置与链表的 首个任务时长一 致; 还包括通过链表记录各个定时任务到期后的操作。 2.根据权利要求1所述的硬件定时器实现多个计时任务的方法, 其特征在于: 包括以下 步骤, S1、 当无定时任务时, 硬件定时器处于不工作状态; S2、 当第一个定时任务来临时, 将该任务更新到链表中, 并驱动硬件定时器开始工作, 定时周期与该定时任务时间相同; S3、 当新的定时任务来临, 且当前有定时任务未结束, 通过硬件计时器获取当前计数 值, 并根据定时的时间长短与现存的定时任务进行排序, 时间越短, 顺序越靠前; 将该新的 任务添加到链表中, 并记录与前后两个定时任务之间的时间差值, 若新的定时任务时间更 短, 则更新硬件定时周期重新计时, 并在链 表中将该新的定时任务 排在第一个任务的前边; S4、 当硬件计时到期后, 更新当前硬件进行链表中第 二个计时任务的计时时长, 并进行 相应链表中首个计时器任务执行, 执行完成后删除链表的首个任务, 若无第二个计时任务 则停止硬件计时。 3.一种计算机可读存储介质, 存储有计算机程序, 所述计算机程序被处理器执行时, 使 得所述处理器执行如权利要求1或2所述方法的步骤。权 利 要 求 书 1/1 页 2 CN 115114018 A 2硬件定时器实现多个计时任务的方 法及存储介质 技术领域 [0001]本发明涉及计时技 术领域, 具体涉及一种硬件定时器实现多个 计时任务的方法。 背景技术 [0002]现有技术中往往使用一个硬件定时器实现多个虚拟定时器时, 硬件定时器进行固 定周期(比如1ms)定时, 使用一个结构 体数组作为软定时器描述表, 数 组的结构体数就是最 大虚拟定时器的数量, 每个结构体的成员都包括虚拟 定时器状态(空闲、 激活、 运行、 超时触 发、 周期触发)、 定时值(换算成定时周期数, 例如1ms的硬件定时周期, 现进行100 ms的定时, 定时值就是100)、 标识ID  和回调函数等; 用一个变量作为定时周期计数器, 每次进入定时 中断, 重置定时器, 扫描结构体数组中的每个成员结构体, 对定时值做减一操作, 然后判断 该定时值是否为0, 是则判定该值对应的虚拟 定时器定时时间到, 调用相应的回调函数进 行 相应的处 理。 如此往复。 [0003]该技术有三个缺陷, 一是硬件定时器固定周期进行中断响应, 在无虚拟定时器任 务时, 会占用CPU时间; 二是虚拟定时器激活后在下一个硬件定时中断后才会开始运行, 也 就是说有 可能有接近一个硬件定时周期的定时误差(延迟), 如果没有激活态 直接运行则也 有可能是一个硬件定时周期的定时误差(提前), 总之这种方法一定会有一个硬件周期的定 时误差; 第三个问题是在定时中断中进行结构体数组扫描、 运算以及有可能的回调函数 的 执行会消耗CPU指令周期的, 势必会使定时中断函数执行时间变长有可能影响其他中断响 应, 因此要注意在该硬件中断中开全局中 断, 允许其他中断响应, 并且硬件定时器值重置要 一进中断就重置以免影响硬件定时周期的精度, 还有必须保证在硬件定时周期内执行完这 个中断程序, 以避免中断重入。 发明内容 [0004]本发明提出的一种硬件定时器实现多个 计时任务的方法, 可解决上述 技术问题。 [0005]为实现上述目的, 本发明采用了以下技 术方案: [0006]一种硬件定时器实现多个计时任务的方法, 通过链表实现, 通过链表将所有的定 时任务根据定时时长进行排序, 当排序完成后, 把硬件定时的时长设置与链表的首个任务 时长一致; [0007]还包括通过链表记录各个定时任务到期后的操作。 [0008]进一步的, 包括以下步骤, [0009]S1、 当无定时任务时, 硬件定时器处于不工作状态; [0010]S2、 当第一个定时任务来临时, 将该任务更新到链表中, 并驱动硬件定时器开始工 作, 定时周期与该定时任务时间相同; [0011]S3、 当新的定时任务来临, 且当前有定时任务未结束, 通过硬件计时器获取当前计 数值, 并根据定时的时间长短与现存的定时任务进行排序, 时间越短, 顺序越靠前; 将该新 的任务添加到链表中, 并记录与前后两个定时任务之间的时间差值, 若新的定时任务时间说 明 书 1/4 页 3 CN 115114018 A 3

.PDF文档 专利 硬件定时器实现多个计时任务的方法及存储介质

文档预览
中文文档 6 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 硬件定时器实现多个计时任务的方法及存储介质 第 1 页 专利 硬件定时器实现多个计时任务的方法及存储介质 第 2 页 专利 硬件定时器实现多个计时任务的方法及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:33:27上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。