FreeRtos的软件定时器的使用

头文件#include "freertos/timers.h"

总体过程:申请→启动→定时

0.初始化/注册:

Delay_Turnoff_timer_init();

Delay_Turnoff_timer_init();函数内容:

 /*-------------------------------------------------------------------------------------------
    软件定时器创建函数
    pcTimerName:软件定时器名字,文本形式,纯粹是为了调试(FreeRTOS使用定时器时通过句柄,而不是名字)
    xTimerPeriodInTicks:软件定时器的周期,单位为系统节拍周期(即 tick)
    uxAutoReload:设置为pdTURE使用周期模式,设置pdFALSE使用单次模式
    pvTimerID:软件定时器ID,数字形式
    pxCallbackFunction:软件定时器的回调函数(用户自己实现)
    返回值是一个TimerHandle_t类型的句柄
----------------------------------------------------------------------------------------------*/
static void Delay_Turnoff_timer_init(void)
{
    xTimer_delay_turnoff = xTimerCreate("delay_turn_off_light",
                        /*定时溢出周期, 单位是任务节拍数*/
                        pdMS_TO_TICKS(10000),   //这边设置定时的时间
                        /*是否自动重载, 此处设置周期性执行*/
                        pdFALSE,
                        /*定时器ID*/
                        (void *) 1,
                        /*回调函数*/
                        vtimer_delay_callback);
}


TimerHandle_t xTimer_delay_turnoff = NULL;

2.给定时器申明一个指针变量xTimer_delay_turnoff,后面注册和启动,停止都会用到。

        

3.在所要开始定时的位置

xTimerStart(xTimer_delay_turnoff,0);

4.回调函数中处理内容 

static void vtimer_delay_callback(xTimerHandle pxTimer)
{
}

5. 结束软件定时

xTimerStop(xTimer_delay_turnoff,0);

备注:

1.

xTimerStart( xTimer, xTicksToWait );
//启动定时器,如果定时器正在运行的话调用该函数的结果和xTimerReset()一样, 在中断中则使用xTimerResetFromISR ()

xTimerStop( xTimer, xTicksToWait );
//停止定时器, 在中断中则使用xTimerStopFromISR ()

2. 函 数 xTaskGetTickCount

函数原型:

volatile TickType_t xTaskGetTickCount( void );

函数描述:

函数 xTaskGetTickCount 用于获取系统当前运行的时钟节拍数。

 

参考总结:

1.FreeRTOS一天一个小知识之任务延时函数vTaskDelay_simplemethane的博客-CSDN博客_vtaskdelay最小间隔多少

2.个人笔记--FreeRTOS软件定时器_未来可期-CSDN博客_freertos定时器

3.STM32-FreeRTOS快速学习之总结1 - 诺谦 - 博客园

4.1个系统节拍 c语言_FreeRTOS — 系统时钟节拍和时间管理_陈奶爸-短视频的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值