Previous: 3.6.3. すべてのタスクを周期実行させる |
Up: 3.6. タスクの実行頻度 |
Next: 3.6.5. vTaskDelayUntil |
サンプルプログラム |
freertos_vTaskDelay_portTICK_RATE_MS |
vTaskDelay関数は待ち時間の指定の単位がTickです。動作周波数がきりのよい数字であればよいのですが、中途半端な数の場合には、待ち時間を指定するときにその都度計算しないといけず面倒です。そこでFreeRTOSにはportTICK_RATE_MSという定数が用意されています。これは「1Tickが何msか」を表しているものです。そこで以下のように待ち時間を指定する際にportTICK_RATE_MSで割るようにしておくと、指定するms単位で記載すればよいことになります。
void prvTaska(void *pvParameters) { ----- ????? vTaskDelay(5 / portTICK_RATE_MS); ----- } |
サンプルプログラムの実行結果は以下の通りです。待ち時間が5msになっていれば正解な訳ですが、”ABC”の文字数は55文字程度ですからこれも計算が合っています。
abcABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC AabcBCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC ABabcCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC .... |
Previous: 3.6.3. すべてのタスクを周期実行させる |
Up: 3.6. タスクの実行頻度 |
Next: 3.6.5. vTaskDelayUntil |