新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > VxWorks下基于看门狗的通用定时器设计

VxWorks下基于看门狗的通用定时器设计

作者:时间:2013-05-31来源:网络收藏

2.3 定时器实现
2.3.1 定时器软件结构
共享定时器软件结构如图2所示:

本文引用地址:http://www.eepw.com.cn/article/148020.htm

b.jpg


CWatchDogTimer类完成了对的封装,它由一些通用的函数来维护一个。其中Create()函数用来创建一个;Delete()用来删除该定时器;Start()用来启动定时任务;Cancel()用来暂停定时器工作,此时再使用Start()函数可以恢复定时器的运行。
TimerInfo数据结构由tExe与tInterval两个属性构成,tExe记录定时器的执行时间,tInterval表示定时器的时间间隔。
TimerList用来维护多个TimerInfo结构的变量,每个 TiraerInfo变量记录一个定时器参数信息。
CEffieientTimer类完成对多个定时任务的管理,包括RegistTimer()函数实现注册一个定时器;UnRegistTimer()用来注销一个定时器;ClearTimerList()用来清空定时器列表中所有定时器任务;IsEmpty()用来判断定时器列表是否为空。
2.3.2 看门狗定时模块实现
看门狗定时模块处理流程如图3所示。

c.jpg


看门狗定时器模块是共享定时器的基础,它实现了单一定时器的建立、启动、删除、取消等功能。首先通过Create()函数建立一个看门狗定时器,同时设定定时器时延、定时次数等参数;然后通过Start()函数启动定时器;看门狗程序判断是否到达时间间隔,如果到达则开始执行ISR程序,如果没有到达则继续等待;当执行完ISR程序后,定时器将判断当前执行次数是否到达执行总次数,如果是则结束该次定时任务,若不是程序将跳转到重新启动定时器后依次执行。



评论


相关推荐

技术专区

关闭