uCOSIII实时操作系统 八 软件定时器

本文详细介绍了UCOSIII中软件定时器的创建、启动、停止和删除方法,以及单次定时器和周期定时器的区别,通过实际任务示例展示了如何在任务A和B中使用软件定时器进行控制和通信。

目录

软件定时器概述

使用步骤:

创建软件定时器:

启动软件定时器:

停止软件定时器:

删除软件定时器:

单次定时器:

​编辑周期定时器:

无初始化延时:

有初始化延时:

软件定时器实验:


软件定时器概述

在学习单片机的的时候,会使用定时器来做很多事情,这个定时器时单片机自带的也就是硬件定时器,而UCOSIII内核提供了一个模拟定时器的机制类似于任务,但是占用资源少,只能做一些简单的定时控制,如可以定时器喂狗控灯。在软件定时器中绝对不能添加事件管理函数,阻塞等待函数。

使用步骤:

创建软件定时器:

利用OSTmrCreate()函数,函数原型如下:

参数:

 p_tmr,                软件定时器对象

p_name,              软件定时器的名字

dly,                      启动定时器后,延迟多长时间执行,默认隐含dly10ms

period,                 定时周期,默认隐含period10ms

opt:                      模式

OS_OPT_TMR_ONE_SHOT,软件定时器执行一遍

OS_OPT_TMR_PERIODIC,软件定时器周期性执行

p_callback,          软件定时器执行的回调函数 void MyCallback (OS_TMR *p_tmr, void *p_arg);

p_callback_arg,   传递参数给软件定时器的回调函数

p_err,                   返回错误码,没有错误的就返回OS_ERR_NONE

启动软件定时器:

函数原型如下:

参数:

p_tmr :软件定时器对象

p_err  :返回错误码,没有错误就返回OS_ERR_NONE

返回值:

 DEF_TRUE is the timer was started

DEF_FALSE if not or upon an error

停止软件定时器:

函数原型如下:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值