Timing
Cooperative multitasking for Arduino, ESPx, STM32 and other microcontrollers.
Supports: periodic task execution (with dynamic execution period in milliseconds or microseconds – frequency of execution), number of iterations (limited or infinite number of iterations), execution of tasks in predefined sequence, dynamic change of task execution parameters (frequency, number of iterations, callback methods), power saving via entering IDLE sleep mode when tasks are not scheduled to run, event-driven task invocation via Status Request object, task IDs and Control Points for error handling and watchdog timer, Local Task Storage pointer (allowing use of same callback code for multiple tasks), layered task prioritization, std::functions (where supported), overall task timeout, static and dynamic callback method binding.
Maintainer: Anatoli Arkhipenko
This library is compatible with all architectures so you should be able to use it on all the Arduino boards.
To use this library, open the Library Manager in the Arduino IDE and install it from there.