A lightweight implementation of cooperative multitasking (task scheduling) supporting:
- Periodic task execution, with dynamic execution period in
milliseconds
(default) ormicroseconds
(if explicitly enabled) โ 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
- Support for event-driven task invocation via Status Request object
- Support for task IDs and Control Points for error handling and watchdog timer
- Support for Local Task Storage pointer (allowing use of same callback code for multiple tasks)
- Support for layered task prioritization
- Support for
std::functions
(ESP8266
only) - Overall task timeout
Scheduling overhead: between 15
and 18
microseconds per scheduling pass (Arduino UNO rev 3 @ 16MHz
clock, single scheduler w/o prioritization)
TaskScheduler was tested on the following platforms:
- Arduino Uno R3
- Arduino Nano
- Arduino Micro
- ATtiny85
- ESP8266 (Node MCU v2.0)
- ESP32
- Teensy (tested on Teensy 3.5)
Version | Version 1 | Version 2 |
---|---|---|
2.6.1 (current version) | ||
1.9.2 | 2.6.0 | |
1.9.0 | 2.5.2 | |
1.8.5 | 2.5.1 | |
1.8.4 | 2.5.0 | |
1.8.3 | 2.4.0 | |
1.8.2 | 2.3.0 | |
1.8.1 | 2.2.1 | |
1.8.0 | 2.2.0 | |
1.7.0 | 2.1.0 | |
1.6.0 | 2.0.1 | |
1.5.1 | 2.0.0 | |
1.5.0 | ||
1.4.1 | ||
1.0.0 |
For detailed functionality overview please refer to TaskScheduler documentation in the 'extras' folder or in the Wiki page.
-
Blow the Wall! - a simple computer shooter game using a 16x2 LCD panel, an Arduino, piezo buzzer, WAV player module, and pushbutton switches.
-
3 Devo - Quality 3D printing filament, now made accessible and affordable (http://3devo.eu/license-information/)
-
Houston midi clock project - TaskScheduler with microseconds resolution
by chaffneue:
My first arduino project. It's a multi-master midi controller with a shared clock and auto count in behaviour.
-
Hackabot Nano by Funnyvale - Compact Plug and Play Arduino compatible robotic kit https://www.kickstarter.com/projects/hackarobot/hackabot-nano-compact-plug-and-play-arduino-robot
-
Arduino Nano based Hexbug Scarab Robotic Spider (by arkhipenko: http://www.instructables.com/id/Arduino-Nano-based-Hexbug-Scarab-Robotic-Spider/)
-
Wave your hand to control OWI Robotic Arm... no strings attached (by arkhipenko: http://www.instructables.com/id/Wave-your-hand-to-control-OWI-Robotic-Arm-no-strin/)
-
APIS - Automated Plant Irrigation System (by arkhipenko: http://www.instructables.com/id/APIS-Automated-Plant-Irrigation-System/)
-
IoT APIS v2 - Autonomous IoT-enabled Automated Plant Irrigation System (by arkhipenko: http://www.instructables.com/id/IoT-APIS-V2-Autonomous-IoT-enabled-Automated-Plant/)
-
Interactive Halloween Pumpkin (by arkhipenko: http://www.instructables.com/id/Interactive-Halloween-Pumpkin/)