Previous: 3.2. タスクにパラメータを渡す(整数値) |
Up: 3. タスク管理 |
Next: 3.4. 一つのタスク用関数で複数のタスクを登録する |
サンプルプログラム |
freertos_pvParameters_string |
前項のサンプルでは整数値を渡しましたが、ポインタなので文字列を渡すこともできます。処理の流れは前項のものとほとんど変わりません。
まず渡す文字列を宣言・定義しておきます。
int8_t TaskA_symbol[] = "Aa"; int8_t TaskB_symbol[] = "Bb"; |
xTaskCreate関数では同じくポインタを渡します。
xTaskCreate(prvTaskA, (signed portCHAR *)"TaskA", 192, &TaskA_symbol, 1, NULL); xTaskCreate(prvTaskB, (signed portCHAR *)"TaskB", 192, &TaskB_symbol, 1, NULL); |
タスク用関数では、受け取った仮引数をint8_t型のポインタにキャストします。文字列なのでポインタのままで利用します。
void prvTaskA(void *pvParameters) { ? int8_t* pcTaskName; ? pcTaskName = (int8_t *)pvParameters; |
このサンプルプログラムの実行結果は以下の通りです。
BbBbBbBbBbBbAaAaAaAaAaAaBbBbBbBbBbBAaAaAaAaAaAabBbBbBbBbBbBAaAa AaAaAaAbBbBbBbBbBbBaAaAaAaAaAabBbBbBbBbBbBAaAaAaAaAaAbBbBbBbBbB bBaAaAaAaAaAabBbBbBbBbBbBAaAaAaAaAaAbBbBbBbBbBbBaAaAaAaAaAabBbB ... |
Previous: 3.2. タスクにパラメータを渡す(整数値) |
Up: 3. タスク管理 |
Next: 3.4. 一つのタスク用関数で複数のタスクを登録する |