codecamp

vTaskDelay 任务相对延时

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 );
    }
}
xTaskDelete 任务删除
vTaskDelayUntil 任务绝对延时
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

无标题目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }