基本信息
更多>>
产品展示
| 产品名称: | 1336F-BRF05-AA-EN-HCS2-L9E /B |
| 浏览量: | ![]() |
| 价格: | 65 |
| 供货总量: | 666 |
| 规格: | 1336F-BRF05-AA-EN-HCS2-L9E /B |
| 更新日期: | 2018年12月26日,有效期:360天 |
| 关键字: | 1336FBRF0A 1336FBRF0A 1336FBRF0A |
| 联系人: | ![]() |
| 联系电话: | ![]() |
| 即时通讯: | ![]() |
详情信息
提供类似于Windows的接口函数,定时器的索引是id号,操作定时器均通过id完成。分为2种类型定时器:周期性定时器和一次性定时器。周期性定时器可以周期性地触发。一次性定时器则只触发一次,类似于定时器,触发后看门狗自动删除,相应的任务自动退出。在用户对定时器模块进行初始化后,用户可以在程序的任何地方调用定时器提供的接口。
3.3具体实现
3.3.1对看门狗的封装
基于程序设计上的考虑,将定时器的管理控制和看门狗的具体操作分开,对看门狗进行封装lkGenerator类封装了看门狗的所有操作,包括看门狗的创建、删除、取消和启动,保存定时器id、类型、定时周期等。值得注意的是:看门狗的回调函数并不是用户的回调函数,而是看门狗管理控制中提供的统一回调函数,回调函数中的参数为定时器的索引号。封装代码如下:
3.3.2定时器管理与控制
定时器管理与控制模块负责模块初始化、多个定时器相关参数的存储管理、定时器任务的安全退出,以及用户接口的实现。
定时器的主要数据结构:定时器控制结构和存储结构。
用户在调用SetTimer函数时,创建一个初始状态为空的计数信号量timerArrv,同时生成一个任务timerTask等待该信号量,此时任务状态为PEND;实例化一lk-Generator对象,创建看门狗启动定时器。当定时器超时时,释放timerArrv信号量,解除阻塞在timerArrv上的任务,回调用户函数完成一个完整的定时过程。定时器的典型运行过程如图2所示。


