2026年6月19日金曜日

raspberry pi pico by arduinoIDE using freertos

port uf2boardとなるようにブートモードでrapsicoをつなぐがportが出てこん場合は

以下の設定変更を実施する必要あり

[ツール]→[Upload Method]の設定値 default uf2とする

[ツール]→[Operating system]の設定値 freeRTOS SMPとする

以下が書き込み成功したらserial monitorのportをCOMnにすると

どんな表示スピードでもOKとなる なんでやろ?

#define __FREERTOS 1
#include <FreeRTOS.h>
#include <task.h>

// タスク1:Lチカを行う処理
void taskBlink(void *pvParameters) {
  pinMode(LED_BUILTIN, OUTPUT);
  while(1) {
    digitalWrite(LED_BUILTIN, HIGH);
    vTaskDelay(pdMS_TO_TICKS(500)); // 500ms待機
    digitalWrite(LED_BUILTIN, LOW);
    vTaskDelay(pdMS_TO_TICKS(500));
  }
}

// タスク2:シリアル通信でメッセージを出力
void taskPrint(void *pvParameters) {
  while(1) {
    Serial.println("Task 2 is running...");
    vTaskDelay(pdMS_TO_TICKS(1000)); // 1000ms待機
  }
}

void setup() {
  Serial.begin(115200);

  // タスク1の生成 (タスク関数, タスク名, スタックサイズ, パラメータ, 優先度, ハンドル)
  xTaskCreate(taskBlink, "BlinkTask", 128, NULL, 1, NULL);

  // タスク2の生成
  xTaskCreate(taskPrint, "PrintTask", 128, NULL, 1, NULL);

  // vTaskStartScheduler() は自動的に呼ばれるためsetup内に記述不要
}

void loop() {
  // FreeRTOSを使用している場合、loop関数は使用しないか、
  // 最低でも vTaskDelay などの待機処理を組み込む必要があります。
}

0 件のコメント:

コメントを投稿