[发明专利]一种扩展单片机硬件定时器的方法有效
申请号: | 201510071478.8 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104597820B | 公开(公告)日: | 2017-07-28 |
发明(设计)人: | 李俊画;马剑;朱永;莫平勇 | 申请(专利权)人: | 四川天邑康和通信股份有限公司 |
主分类号: | G05B19/042 | 分类号: | G05B19/042 |
代理公司: | 成都金英专利代理事务所(普通合伙)51218 | 代理人: | 袁英 |
地址: | 610000 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 扩展 单片机 硬件 定时器 方法 | ||
1.一种扩展单片机硬件定时器的方法,其特征在于:它包括以下步骤:
S1:定义定时信息结构类型,定时信息类型为包括时间值变量和消息值变量的结构类型,约定消息值变量为0时,表示定时信息无效;
S2:定义定时信息数组,用于存放定时信息,在初始化定时信息数组时,将每个组元的消息值变量设为0;
S3:定义基准时间变量,用于在使能定时器的函数中生成时间变量值和用于在硬件定时器中断服务程序中加1,作为整个定时器扩展的基准时间;
S4:设置硬件定时器的中断周期,使硬件定时器按一定周期调用中断服务程序;
S5:使能定时器的函数,参数包括定时值和消息值,函数程序包括以下子步骤:
S51:查找定时信息数组是否存在参数消息值的定时信息,如果存在则用新的定时信息覆盖原有的定时信息,如果不存在则查找一个消息值为0的定时信息;
S52:判断函数参数的定时值是否为0,如果不为0,则将函数参数的定时值与基准时间变量相加,并将相加的结果存入步骤S51找到的定时信息的时间值变量中,将消息值存入步骤S51找到的定时信息的消息值变量中;如果为0,则将步骤S51找到的定时信息中的消息值清0;
S6:为硬件定时器编写中断服务程序;中断服务程序包括以下子步骤:
S61:基准时间变量加1;
S62:循环比对定时信息数组中消息值不为0的定时信息的时间值,如果时间值和基准时间相等,则发送该定时信息指定的消息,然后设置定时信息消息值为0来释放该定时信息。
2.根据权利要求1所述的一种扩展单片机硬件定时器的方法,其特征在于:所述步骤S1、S2、S3,定义了扩展定时器所需要的数据结构,包括数据类型为结构的定时信息、数据类型为定时信息的数组和基准时间变量,定时信息数组的组元数量根据整个软件系统同时用到定时器的最大数量确定。
3.根据权利要求1所述的一种扩展单片机硬件定时器的方法,其特征在于:所述步骤S4,设置单片机的一个硬件定时器间隔一个周期产生一次中断,所述的一个周期为1毫秒。
4.根据权利要求1所述的一种扩展单片机硬件定时器的方法,其特征在于:所述步骤S5,为各任务进程使用定时器设计一个函数,参数包括定时值和消息值,如果参数中的定时值不为0,则表示参数中的定时值时间到时,向消息队列中存入一个参数消息值定义的消息;如果参数中的定时值为0,则表示释放定时信息中消息值为参数指定消息值的定时信息,并将定时信息的消息值设为0。
5.根据权利要求1所述的一种扩展单片机硬件定时器的方法,其特征在于:所述步骤S6,在硬件定时器产生中断时,硬件自动调用中断服务程序,每次进入中断服务程序时,基准时间变量增量,循环比对所有的定时信息,当定时信息的消息值不为0且时间值与基准时间值相等时,则向消息队列中存入定时信息中指定的消息值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川天邑康和通信股份有限公司,未经四川天邑康和通信股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510071478.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:碳硫坩埚相对软化温度的测定方法
- 下一篇:充电枪