未验证 提交 d3ccd2a9 编写于 作者: W WereCatf 提交者: GitHub

FreeRTOS.ino: fix usage of vTaskDelay (#7418)

The original code assumes 100Hz FreeRTOS tick rate and just supplies vTaskDelay with the assumed number of ticks required for the wanted delay. This patch simply fixes it to use portTICK_PERIOD_MS, thereby working correctly regardless of what tick rate FreeRTOS has been configured to run at.
上级 c1dc4f2e
......@@ -67,9 +67,11 @@ void TaskBlink(void *pvParameters) // This is a task.
for (;;) // A Task shall never return or exit.
{
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
vTaskDelay(100); // one tick delay (15ms) in between reads for stability
// arduino-esp32 has FreeRTOS configured to have a tick-rate of 1000Hz and portTICK_PERIOD_MS
// refers to how many milliseconds the period between each ticks is, ie. 1ms.
vTaskDelay(1000 / portTICK_PERIOD_MS ); // vTaskDelay wants ticks, not milliseconds
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
vTaskDelay(100); // one tick delay (15ms) in between reads for stability
vTaskDelay(1000 / portTICK_PERIOD_MS); // 1 second delay
}
}
......@@ -92,6 +94,6 @@ void TaskAnalogReadA3(void *pvParameters) // This is a task.
int sensorValueA3 = analogRead(A3);
// print out the value you read:
Serial.println(sensorValueA3);
vTaskDelay(10); // one tick delay (15ms) in between reads for stability
vTaskDelay(100 / portTICK_PERIOD_MS); // 100ms delay
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册