UCOSII软件定时器
API函数
//创建
OS_TMR *OSTmrCreate (INT32U dly,
INT32U period,
INT8U opt,
OS_TMR_CALLBACK callback,
void *callback_arg,
INT8U *pname,
INT8U *perr);
//删除
BOOLEAN OSTmrDel (OS_TMR *ptmr,
INT8U *perr);
//定时器名字
INT8U OSTmrNameGet (OS_TMR *ptmr,
INT8U **pdest,
INT8U *perr);
//溢出时间
INT32U OSTmrRemainGet (OS_TMR *ptmr,
INT8U *perr);
//定时器状态
INT8U OSTmrStateGet (OS_TMR *ptmr,
INT8U *perr);
//启动
BOOLEAN OSTmrStart (OS_TMR *ptmr,
INT8U *perr);
//关闭
BOOLEAN OSTmrStop (OS_TMR *ptmr,
INT8U opt,
void *callback_arg,
INT8U *perr);
//发送信号
INT8U OSTmrSignal (void);
应用举例
OS_TMR *tmr;
void start_task(void *pdata)
{
OS_ENTER_CRITICAL();
tmr = OSTmrCreate ((INT32U )0,
(INT32U )50, //50*100ms
(INT8U )OS_TMR_OPT_PERIODIC,
(OS_TMR_CALLBACK)tmr_callback,
(void *)0,
(INT8U *)"tmr",
(INT8U *)&err);
OS_EXIT_CRITICAL();
OSTmrStart(msg->tmr, &err);
}
void tmr_callback(void *ptmr, void *parg)
{
INT32U remain;
remain = OSTmrRemainGet(ptmr, &err);
if(remain <= 5)
{
printf("tmr_callback OSTmrRemainGet remain err: %d\r\n", remain);
return;
}
}
UCOSII软件定时器的更多相关文章
- rt-thread中软件定时器组件超时界限的一点理解
@2019-01-15 [小记] 对 rt-thread 中的软件定时器组件中超时界限的一点理解 rt_thread_timer_entry(void *parameter)函数中if ((next_ ...
- 【iCore4 双核心板_uC/OS-II】例程四:软件定时器
一.实验说明: 一些应用程序执行它们的任务时需要延迟一段特定的时间,因此uC/OS-II为我们提供了一些相应的 延时函数,本例程我们使用软件定时器定时500ms点亮相应的LED实现三色LED循环闪烁. ...
- 6.1-uC/OS-III软件定时器
1.软件定时器是 uC/OS 操作系统的一个内核对象,软件定时器是基于时钟节拍和系统管理创建的软件性定时器,理论上可以创建无限多个,但精准度肯定比硬件定时稍逊一筹. 2.软件定时器启动之后是由软件定时 ...
- 6.0-uC/OS-III软件定时器管理
1.软件定时器管理 uC/OS-III提供了软件定时器服务(相关代码在OS_TMR.C中).当设置OS_CFG.H中的OS_CFG_TMR_EN为1时软件定时器服务被使能. 2.uC/OS-III 定 ...
- FreeRTOS_软件定时器
FreeRTOS 软件定时器 实验 创建2个任务,start_task.timercontrol_task. start_stask:创建timercontrol_task任务:创建周期定时器Auto ...
- 【STM32H7教程】第22章 STM32H7的SysTick实现多组软件定时器
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第22章 STM32H7的SysTick实现 ...
- uC/OS-III 软件定时器(三)
软件定时器是uC/OS 操作系统的一个内核对象,软件定时器是基于时钟节拍和系统管理创建的软件性定时器,理论上可以创建无限多个,操作简单,但精准度肯定比硬件定时稍逊一筹. 原理和实现过程 要用到的函数: ...
- 【TencentOS tiny】深度源码分析(8)——软件定时器
软件定时器的基本概念 TencentOS tiny 的软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,本质上软件定时器的使用相当 ...
- liteos软件定时器(十)
1 概述 1.1 基本概念 软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数.定时精度与系统Tick时钟的周期有关. 硬件定时器受 ...
随机推荐
- filebeat获取nginx的access日志配置
filebeat获取nginx的access日志配置 产生nginx日志的服务器即生产者服务器配置: 拿omp.chinasoft.com举例: .nginx.conf主配置文件添加日志格式 log_ ...
- Qt 图片缩放参数计算
缩放图片 void VCImgWidget::wheelEvent(QWheelEvent *event) { ) { // 当滚轮远离使用者时 //ui->textEdit->zoomI ...
- 基于Emit的C#下DataTable转实体类方法,一直报错.
xxxx ;WITH Tab AS ( SELECT CAST(ROW_NUMBER()OVER(ORDER BY CC.CreateTime DESC) AS INT) AS Sequency, ) ...
- jwplayer :若请求不到流,则页面一直转圈请求效果
思路: 利用jwplayer onPlay(播放) .onError(出错)事件. 页面:背景图为黑色,嵌入一张背景为黑色的 git 动态图,加载页面时隐藏. 流程:若进入到onPlay 方法,则说明 ...
- copyProperties 忽略null值字段
在做项目时遇到需要copy两个对象之间的属性值,但是有源对象有null值,在使用BeanUtils来copy时null值会覆盖目标对象的同名字段属性值,然后采用以下方法找到null值字段,然后忽略: ...
- [LeetCode] 121. Best Time to Buy and Sell Stock 买卖股票的最佳时间
Say you have an array for which the ith element is the price of a given stock on day i. If you were ...
- [LeetCode] 261. Graph Valid Tree 图是否是树
Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...
- SVN 本地文件锁/服务端文件锁清除步骤
1.本地文件锁,直接cleanup,cleanup界面选择break locks即可 2.服务端文件锁,本地文件右击没有release lock或者break lock的选项时 方法1:右键,svn选 ...
- C# 编译器 和 反编译器,你要哪个(歪头)? 我全都要(捏拳)!
前言 从 C# 6.0 开始,C# 编译器就从以前由 C++ 实现的 csc.exe 换成了用 C# 重新实现的开放式 API 式编译服务 Roslyn.这个编译器到现在已经替代了老式编译器,从前 W ...
- python-tkinter使用方法——转载(二)
转载URL:https://www.cnblogs.com/yudanqu/p/9467803.html Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包 ...