ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【ESP32】マルチタスクについて

 ESP32でマルチタスクをする方法を探していたら見つけたので記録しておきます。

■ESP32でマルチタスクを行うプログラム
 基本的には参考記事のところにあるソースで良いのですが、なぜか自分のに書き込むと動かなかったので少し修正しました。

int maincount = 0; // メインカウンタ

// 裏で動かすタスク
void testTask(void *pvParameters) {
  int subcount = 1000; // サブカウンタ
  while(1) {
    Serial.println("sub task " + String(subcount));
    subcount++;
    delay(1000);
  }
}

void setup() {
 Serial.begin(115200);
 // タスクの登録(1とある引数が多分タスクのナンバリング)
 xTaskCreate(testTask,"testTask", 1024, NULL, 1, NULL);
}

void loop() {
  // loopの中では別の処理
  Serial.println("arduino loop "+ String(maincount));
  maincount++;
  delay(1000);
}

 上記をESP32に書き込んでからシリアルモニタを立ち上げると、以下のように二つのカウントアップ文字列が表示されます。
f:id:rikoubou:20170612153723p:plain


■参考記事
なんか作ろうよ ESP-WROOM-32でマルチタスク

■追加情報
マルチタスクでさらにわかったことを記事にしました。
rikoubou.hatenablog.com