ucosIII 软件定时器

本文内容简介:
包含软件定时器的介绍。回调函数的介绍。以及软件定时器相关的部分API讲解
重点在于最后的软件定时器操作步骤

软件定时器
  • 定时器本质是递减计数器,当计数器减到零时可以触发某种动作的执行,这个动作通过回调函数来实现。当定时器计时完成时,定义的回调函数就会被立即调用,应用程序可以有任意数量的定时器,UCOSIII中定时器的时间分辨率由一个宏OS_CFG_TMR_TASK_RATE_HZ:表示步长,比如一次100ms,那么10次就是1s,单位为HZ,默认为100Hz。
    注意!一定要避免在回调函数中使用阻塞调用或者可以阻塞或删除定时器任务的函数。
  • 使能宏:通过OS_CFG_TMR_EN 使能为 1
  • 回调函数/strong>
    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

API:创建,删除,启动,停止,得到时间,得到状态

API

创建定时器

定时器开始

定时器结束

单次和周期定时器
  • 单次定时器中dly有效,period是无效的,并且单次定时器也可以多次start
  • 周期定时器:1. dly为0就是无初始延时定时器 2.dly有值就是有初始延时周期定时器

软件定时器操作步骤

1-使能 宏
2-定义tmr1,2 以及 相应回调函数:void tmr1_callback(void *p_tmr, void *p_arg);
3-OSTmrCreate创建定时器
4-在任务中使用start和stop

来源:猎羽

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年11月16日
下一篇 2015年11月17日

相关推荐