/****************************************************************************************** * За основу взят планировщик задач с сайта ChipEnable.ru * * http://chipenable.ru/index.php/programming-avr/item/110-planirovschik.html * * * * Доработал Шибанов Владимир aka KontAr * * Дата: 26.03.2014 * * * * Изменения: * * - добавлен однократный вызов задачи * * - добавлено удаление задачи по имени * * - при повторном добавлении задачи обновляются ее переменные * * - добавлен указатель на "хвост" списка * * - функции РТОС скорректированы с учетом "хвоста" * ****************************************************************************************** * shilov, 2015.04.07 * * совместил с модулем милисекундных задержек на таймере * ******************************************************************************************/ #pragma once #ifndef RTOS_H #define RTOS_H #include #define MAX_TASKS 10 // Количество задач /** * Будем использовать таймер 0, период -- 1 мсек */ #define TIMER_HZ 1000 #define TIMER_PRESCALER 64 #define TIMER_CNT (0x100 - (F_CPU / TIMER_PRESCALER / TIMER_HZ)) #define TIMER_TCCR TCCR0 #define TIMER_TCNT TCNT0 #define TIMER_TIMSK TIMSK #define TIMER_CSB ((0<