Доброго дня!
Помогите разобраться с многопоточностью (если правильно назвал) на ESP32.
немного изменил скрипт примера
код работает, при отправке из терминала 't' - loop1 реагирует только в том случае, если строка delay(100); не закомментирована - подскажите зачем там этот делей? и можно ли подобным образом сделать три loops - в одном будет код обработки датчиков, во втором код веб сервера, а в третьем код бота для телеграмма?
Помогите разобраться с многопоточностью (если правильно назвал) на ESP32.
немного изменил скрипт примера
Код:
int i = 0;
void setup() {
Serial.begin(115200);
xTaskCreatePinnedToCore(loop1, "loop1", 4096, NULL, 1, NULL, 1);
xTaskCreatePinnedToCore(loop2, "loop2", 4096, NULL, 1, NULL, 1);
}
void loop() {
while (true) {
int command = Serial.read();//read a command
if (command == -1) break;//if no more commands, then exit
else if (command == 't') {
Serial.println("read 't'");
i = -1;
}
}
}
void loop1(void *pvParameters) {
while (1) {
if (i == -1 ){
Serial.println("loop изменил i на -1");
i = 0;
}
delay(100);
}
}
void loop2(void *pvParameters) {
while (1) {
Serial.print("loop2 i = "); Serial.println(i);
delay(500);
}
}