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.FreeRTOS一天一个小知识之任务延时函数vTaskDelay_simplemethane的博客-CSDN博客_vtaskdelay最小间隔多少

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

上一篇:(freeRTOS)EventGroup的使用


下一篇:Arduino与FreeRTOS-FreeRTOS队列管理