打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ucosIII 软件定时器

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

软件定时器

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

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

创建定时器

OSTmrCreate (OS_TMR               *p_tmr, //结构体描述定时器             CPU_CHAR             *p_name,//名字             OS_TICK               dly,   //初始延时的第一个周期             OS_TICK               period,//除了第一个周期,之后的所有周期             OS_OPT                opt,   //选择单次还是周期定时器             OS_TMR_CALLBACK_PTR   p_callback,//回调函数             void                 *p_callback_arg,//回调函数的参数             OS_ERR               *p_err)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

定时器开始

CPU_BOOLEAN  OSTmrStart (OS_TMR  *p_tmr,                         OS_ERR  *p_err)
  • 1
  • 2

定时器结束

CPU_BOOLEAN   OSTmrStop (OS_TMR                *p_tmr,//结构体                         OS_OPT                 opt,  //CALLBACK在没有计数到0的时候,就执行了stop也可以执行回调函数                         void                  *p_callback_arg,//回调函数新参数                         OS_ERR                *p_err);
  • 1
  • 2
  • 3
  • 4

单次和周期定时器

  • 单次定时器中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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
UCOSIII
(转载)μC/OS-II软件定时器管理算法分析及改进
VS2013+uCOSII V2.91(uCOSII移植)
STM32F103综合3
SylixOS里的时间【10】--- 软件定时器接口及用法
linux嵌入式系统开发之看门狗---驱动篇
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服