マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 3.6.3. すべてのタスクを周期実行させる

Up: 3.6. タスクの実行頻度

Next: 3.6.5. vTaskDelayUntil


マイコン徹底入門:RTOS編:フリーのリアルタイムOS活用法: 3. タスク管理: 3.6. タスクの実行頻度:

3.6.4. portTICK_RATE_MS

サンプルプログラム

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


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。