#include <M5StickCPlus.h> TaskHandle_t blinkTH; //LED点滅用 int num = 0; char buf[100]; void setup() { Serial.begin(115200); // 通信速度をbpsで設定 xTaskCreatePinnedToCore(blinkTask , "blink", 1024, NULL, 1, &blinkTH, 1 );//LED点滅 } void loop() { int pos = 0; while (Serial.available()) { //PCから送信された文字があるあいだ、くりかえす char c = Serial.read(); // 1バイト読み取る buf[pos] = c; // 配列buf に格納 pos++; // 格納位置をひとつ右へ } if (pos > 0) { buf[pos] = 0; // さいごに Null (文字列の終端)を追加(これを忘れるとどうなる?) Serial.print("> from pc: "); Serial.print( buf ); // 格納しておいた文字列を表示 if (buf[0] == '0' && pos == 2) { // buf={ 48(='0'), 10(=改行) } のとき num = 0; // num を 0 にする Serial.println( "Reset num" ); } delay(2000); } Serial.printf("%d \n" , num ); num++; delay(500); } // LED点滅用 void blinkTask(void *pvParam){ portTickType lastTime; int PIN = 10; pinMode(PIN, OUTPUT); // PINのモード設定 int highOrLow = 0; for (;;) { /** loop をここに書く **/ lastTime = xTaskGetTickCount(); vTaskDelayUntil(&lastTime, num*10+100 ); // 第2引数に、実行間隔ミリ秒を指定 digitalWrite(PIN, highOrLow); // HIGH = 1, LOW = 0 highOrLow = 1 - highOrLow; // HIGH <=> LOW を切り替える } }