vTaskDelay 任务相对延时

2018-07-22 14:08 更新

vTaskDelay

函数名 :vTaskDelay 头文件 :task. h 函数功能:任务相对延时 函数声明:

void vTaskDelay( portTickType xTicksToDelay );

INCLUDE_vTaskDelay 必须定义为 1以使能此函数。见configuration 章节获得更多信息。 延迟一个任务给定数量的时间封(心跳间隔时间)。实际任务阻塞的时间长度在于时间封频率。常量portTICK_RATE_MS 可以用来计算时间封的实际时间间隔。 vTaskDelay指定了任务从调用 vTaskDelay 起算,解除阻塞的 相对时间。举例,指定阻塞时间为100 个时间封,会导致任务在调用vTaskDelay后阻塞100 个时间封。 vTaskDelay并不提供一个好方法控制周期任务的频率,其它任务和中断的活动,会影响vTaskDelay的调用频率。见 vTaskDelayUntil() ,这是另外一种API函数,设计来便利固定频率的执行。它靠指定绝对时间(而非相对时间)来实现功能,而此时调用的任务进入阻塞。 具体参数 xTicksToDelay :时间封的数量。 范例

void vTaskFunction( void * pvParameters )
{
    /* Block for 500ms. */
    const portTickType xDelay = 500 / portTICK_RATE_MS;
    for( ;; )
    {
        /* 
        Simply toggle the LED every 500ms, blocking between each toggle. */
        vToggleLED();
        vTaskDelay( xDelay );
    }
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号