CoopTask
Кооперативная многозадачность для Arduino: одновременный запуск нескольких задач на ESP8266/ESP32, AVR, Linux и Windows через stackful coroutines
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:953a070aa6e35be2039d3be59923dc8808d61a4c34b2825a065060abcf0342b1CoopTask-3.9.0-953a070a.zipОписание
Кооперативная многозадачность для Arduino — когда нужно запустить несколько задач одновременно на одном микроконтроллере. CoopTask работает как встроенный Scheduler на ESP8266/ESP32, но также поддерживает AVR, Linux и Windows. Каждая задача пишется почти как обычный setup()/loop(), но их может быть много одновременно. Задачи — это stackful coroutines, которые переключаются между собой: используешь обычный delay() для засыпания на нужное время или yield() для отдачи CPU другим задачам. Библиотека даже мощна настолько, что может запустить WebServer прямо в CoopTask. Есть опциональные callback'и для уборки завершённых задач и для оптимизации энергопотребления через sleep-режимы. Основная идея — не тратить память стека основного loop'а впустую, выделяя его одной бесконечной задаче вместо этого.