FreeRTOS软件定时器的使用
先贴上一个创建的代码,先声明一个句柄
TimerHandle_t pump_wakeup_timer_handle = NULL;
创建定时器和启动定时器,第三个参数,pdFALSE是只定时一次,pdTRUE是自动重载定时器,也就是一直循环。
if(pump_wakeup_timer_handle == NULL)
{
//定时器的第一个参数,字符串,定时器的名字
//第二个参数,是定时时间,毫秒级别
//第三个参数,只定时一次,还是自动加载
//第4个参数吗,定时器的ID,一般为0
//第5个参数,定时到了的回调函数
pump_wakeup_timer_handle = xTimerCreate(NULL, (), pdFALSE, NULL, pump_wakeup_timeout_callback);
//启动定时器
//reset这个定时器
if(xTimerStart(pump_wakeup_timer_handle, ) != pdPASS)
{
Report("timer start fail");
}
}
定时器回调函数,比如上面定时了15S,那么15S之后到了就会调用这个函数。
void pump_wakeup_timeout_callback(TimerHandle_t xTimer)
{
if (pump_wakeup_timer_handle != NULL)
{
xTimerDelete(pump_wakeup_timer_handle, );
pump_wakeup_timer_handle = NULL;
}
Report("task suspend");
}
问题记录,实际测试发现定时器启动函数,只能启动一次,如果启动之后,再次启动会产生问题,导致时间异常,总结起来就是定时器启动函数不会在内部检查是否已经启动了。我犯过这个错误,需要注意。
if(xTimerStart(pump_wakeup_timer_handle, ) != pdPASS)
FreeRTOS软件定时器的使用的更多相关文章
- FreeRTOS软件定时器
API函数 //创建 TimerHandle_t xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriod ...
- FreeRTOS_软件定时器
FreeRTOS 软件定时器 实验 创建2个任务,start_task.timercontrol_task. start_stask:创建timercontrol_task任务:创建周期定时器Auto ...
- 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 定 ...
- 【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 的软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,本质上软件定时器的使用相当 ...
随机推荐
- sql语句更新某字段内容中部分数据
使用到的sql 语句的关键字就是replace, 如下图,把带有zhangjun 的值替换成 user 使用的sql语句就是 update 表名 set 字段名=replace(字段名,‘替换字符内容 ...
- cocos2d-x3.1 下实现相似Android下ExpandListView的效果
在左Android開始有SDK提供ExpandListView的可扩展列表,而在iOS下有很多第三方做好的Demo,这里我是參照iOS下RATreeView这个第三方库实现的. 本文代码:须要在3.1 ...
- bzoj 3028 生成函数
计算完后为 f(x): 根据我翻高数书,终于推倒出来了. (- ̄▽ ̄)-
- 深度优先搜索(dfs),城堡问题
题目链接:http://poj.org/problem?id=1164 1.深搜,每个点都访问一次,没有标记的话,就做深搜,同时标记. #include <iostream> #inclu ...
- PHP设计模式——适配器模式
<?php /** * 适配器模式 * 适配器模式是将某个对象的接口适配为另一个对象所期望的接口 * * 在需要转化一个对象的接口用于另一个对象时,最好实现适配器模式对象 */ class We ...
- 写一个简单的shellcode
0x00 前言 漏洞利用中必不可缺的部分就是shellcode,不会编写shellcode和咸鱼有什么区别,跳出咸鱼第一步. 0x01 系统调用 通过系统调用execve函数返回shell C语言实现 ...
- SpringMVC学习记录六——异常定义和上传图片
19 异常处理 19.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试 ...
- sqlite简单笔记
五种约束需要注意的地方 1.自增使用:autoincrement 2.约束必须进行后面处理:unique(字段[多个可以以逗号分开]) 3.外键必须放后面:foreign key(字段引用) refe ...
- VS2012 Getting Started with Owin and Katana
参考地址:http://www.asp.net/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana 小提示: 该示 ...
- 前端 new和instanceof JavaScript
new和instanceof的内部机制 new 代码例子 var Func=function(){ }; var func=new Func (); new共经过4个阶段 1.创建一个空对象 var ...