我正在玩FreeRTOS的Posix,GCC模拟器,创建简单的任务,延迟1秒,打印没有给出正确的结果。创建像这样的任务应该会显示每1秒打印一次文本,但看起来更像是打印之间的8-9秒。可能的问题是什么?
void prvTask1( void *pvParameters )
{
for ( ;; )
{
printf( "Task 1 ...%d\n", xTaskGetTickCount());
vTaskDelay( 1000 / portTICK_RATE_MS );
}
}配置:
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )我已经使用值进行了测试:
#define configTICK_RATE_HZ ( ( portTickType ) 250)
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )它看起来像是每个printf大约1秒。不知何故,从~500 > 1000增加值似乎在1秒延迟(变得比1秒多得多)上产生更糟糕的结果。
发布于 2015-11-13 21:59:30
FreeRtosConfig.h演示FreeRtos说:
#define configTICK_RATE_HZ ( 1000 )
// In this non-real time simulated environment
// the tick frequency has to be at least a multiple
// of the Win32 tick frequency, and therefore very slow. 也许您应该尝试构建并运行FreeRtos的原始示例。我确实尝试过运行FreeRtos8.2.1的示例,vTaskDelay运行得很好
https://stackoverflow.com/questions/33608808
复制相似问题