首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeRTOS configTICK_RATE_HZ

FreeRTOS configTICK_RATE_HZ
EN

Stack Overflow用户
提问于 2010-02-12 09:57:28
回答 1查看 10K关注 0票数 2

我使用的是带有FreeRTOS 5.4版本的MSP430f5438。

我有一个有趣的问题,我不能解决。

基本上,当我将configTICK_RATE_HZ设置为不同的值时,发光二极管闪烁得更快或更慢;它应该保持不变的速率。我设置的configTICK_RATE_HZ越高,它闪烁的速度就越慢,当我设置TICK_RATE越低,它闪烁的速度就越快。

vTaskDelayUntil( &xLastFlashTime,xFlashRate );是这样的,不管configTICK_RATE_HZ是什么,vTaskDelayUntil每秒只能闪烁一次。我一步一步检查了xFlashRate以确保。它总是=到configTICK_RATE_HZ。代码:

代码语言:javascript
复制
xFlashRate = ledFLASH_RATE_BASE;//my flash base rate is 1000ms
xFlashRate /= portTICK_RATE_MS; //so xFlashrate = whatever configTICK_RATE_HZ equals

/* We need to initialise xLastFlashTime prior to the first call to vTaskDelayUntil().*/ 
xLastFlashTime = xTaskGetTickCount();
for(;;) { 
vTaskDelayUntil( &xLastFlashTime, xFlashRate ); vParTestToggleLED( uxLED ); 
flashled();//this should happen every 1 second.
}

当我将configtick_rate_hz设置为1000时,led以大于1秒的周期闪烁,当我将滴答率设置为小于~200时,led以远小于1s的周期闪烁

configTICK_RATE_HZ不应影响指示灯闪烁时间。

我意识到需要更多的信息,并随时提供任何需要帮助的代码片段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-15 10:55:32

RTOS节拍由定时器中断产生。定时器的设置(不正确)使得无论您将configTICK_RATE_HZ设置为什么,它总是在400 The处产生固定的滴答声。由于闪烁速率是在假设RTOS滴答速率由configTICK_RATE_HZ (portTICK_RATE_MS = 1000/configTICK_ rate _HZ)正确表示的假设下设置的,因此问题随之而来。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2249185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档