一种扩展单片机硬件定时器的方法技术

技术编号:11408432 阅读:103 留言:0更新日期:2015-05-06 07:39
本发明专利技术公开了一种扩展单片机硬件定时器的方法,与基于消息队列的单片机操作系统联合使用,可为不同的任务进程提供任务所需要的定时器触发消息。本发明专利技术中先分配一个存放定时信息的数组和一个作为基准时间的基准时间变量;再使用一个硬件定时器产生一定周期的中断;最后在中断服务程序中完成定时器的扩展。在每次调用中断服务程序时,基准时间变量加1,然后与各定时值进行比对,如相等,则发送定时信息指定的消息。本发明专利技术的有益效果是:该方法只占用1个硬件定时器,编写软件代码结构简洁、运行高效,在基于消息队列的单片机操作系统中进行时间相关的多任务设计时,使用灵活,能够满足各任务进程对时间控制的需要。

【技术实现步骤摘要】
一种扩展单片机硬件定时器的方法
本专利技术涉及一种扩展单片机硬件定时器的方法。
技术介绍
在单片机软件设计中,经常要按时间顺序的发展设计任务进程,而标准型号的51系列单片机只有4个硬件定时器,部分定时器还会被一些外设部件占用,如UART等,可用作时间控制的定时器是非常少的。如果在硬件定时器中断中直接处理进程任务,则会使软件结构显得杂乱,为软件维护带来困难。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种扩展单片机硬件定时器的方法,本专利技术与基于消息队列的单片机操作系统联合使用,可为不同的任务进程提供任务所需要的定时器触发消息,运行效率更高,使用更加灵活。本专利技术的目的是通过以下技术方案来实现的:一种扩展单片机硬件定时器的方法,它包括以下步骤:S1:定义定时信息结构类型,定时信息类型为包括时间值变量和消息值变量的结构类型,约定消息值变量为0时表示定时信息无效;S2:定义定时信息数组,用于存放定时信息,在初始化定时信息数组时,将每个组元的消息值变量设为0;S3:定义基准时间变量,用于在硬件定时器中断服务程序中加1,作为整个定时器扩展的基准时间;S4:设置硬件定时器的中断周本文档来自技高网...
一种扩展单片机硬件定时器的方法

【技术保护点】
一种扩展单片机硬件定时器的方法,其特征在于:它包括以下步骤:S1:定义定时信息结构类型,定时信息类型为包括时间值变量和消息值变量的结构类型,约定消息值变量为0时,表示定时信息无效;S2:定义定时信息数组,用于存放定时信息,在初始化定时信息数组时,将每个组元的消息值变量设为0;S3: 定义基准时间变量,用于在硬件定时器中断服务程序中加1,作为整个定时器扩展的基准时间;S4:设置硬件定时器的中断周期,使硬件定时器按一定周期调用中断服务程序;S5:使能定时器的函数,参数包括定时值和消息值,函数程序包括以下子步骤:S51:查找定时信息数组是否存在参数消息值的定时信息,如果存在则用新的定时信息覆盖原有的...

【技术特征摘要】
1.一种扩展单片机硬件定时器的方法,其特征在于:它包括以下步骤:S1:定义定时信息结构类型,定时信息类型为包括时间值变量和消息值变量的结构类型,约定消息值变量为0时,表示定时信息无效;S2:定义定时信息数组,用于存放定时信息,在初始化定时信息数组时,将每个组元的消息值变量设为0;S3:定义基准时间变量,用于在使能定时器的函数中生成时间变量值和用于在硬件定时器中断服务程序中加1,作为整个定时器扩展的基准时间;S4:设置硬件定时器的中断周期,使硬件定时器按一定周期调用中断服务程序;S5:使能定时器的函数,参数包括定时值和消息值,函数程序包括以下子步骤:S51:查找定时信息数组是否存在参数消息值的定时信息,如果存在则用新的定时信息覆盖原有的定时信息,如果不存在则查找一个消息值为0的定时信息;S52:判断函数参数的定时值是否为0,如果不为0,则将函数参数的定时值与基准时间变量相加,并将相加的结果存入步骤S51找到的定时信息的时间值变量中,将消息值存入步骤S51找到的定时信息的消息值变量中;如果为0,则将步骤S51找到的定时信息中的消息值清0;S6:为硬件定时器编写中断服务程序;中断服务程序包括以下子步骤:S61:基准时间变量加1;S62:循环比对定时信息数组中消息值不为0的定时信息的时间值,如果时间值和基准时间相等,则发...

【专利技术属性】
技术研发人员:李俊画马剑朱永莫平勇
申请(专利权)人:四川天邑康和通信股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1