leOS обеспечивает диспетчеризацию выполнения пользовательских функций согласно заданным временным интервалам. Для этого leOS использует аппаратный таймер 2 для отсчета интервалов между вызовами функций, поэтому пользователь теряет доступ к функциям ШИМ на пинах D3 и D11.To be honest, it should more correct to say that leOS is actually something that is halfway a simple prototype of an real-time operating system (RTOS) and a scheduler. [...]
leOS can run simple tasks that don’t require excessive CPU time but it can be useful in all of those situations where the user wants to let a task run itself out of the main loop.
Для использования leOS необходимо подключить библиотеку в начале вашего скетча и создать экземпляр класса:
#include "leOS.h"
leOS myOS;
Подключение пользовательской функции к планировщику выполняется с помощью метода addTask():
void setup() {
myOS.begin();
myOS.addTask(myFunction, interval);
....
}
В ядре используется 64-битный счетчик, так что переполнение планировщика произойдет только через 584 942 417 лет!
Больше информации и исходные коды для leOS можно найти здесь.