|
Библиотека LUFA (раннее название MyUSB) версия 101122
|
Простой шедулер (планировщик) псевдозадач с алгоритмом round-robbin (перебор задач по кругу). More...
#include <stdint.h>#include <stdbool.h>#include <util/atomic.h>#include "../Common/Common.h"Data Structures | |
| struct | TaskEntry_t |
| Структура записи задачи для списка. More... | |
Defines | |
| #define | TASK(name) void name (void) |
| #define | TASK_LIST TaskEntry_t Scheduler_TaskList[] = |
| #define | TASK_MAX_DELAY (MAX_DELAYCTR_COUNT - 1) |
| #define | TASK_RUN true |
| #define | TASK_STOP false |
Typedefs | |
| typedef void(* | TaskPtr_t )(void) |
| typedef uint16_t | SchedulerDelayCounter_t |
Functions | |
| void | Scheduler_Start (void) |
| void | Scheduler_Init (void) |
| static void | Scheduler_ResetDelay (SchedulerDelayCounter_t *const DelayCounter) ATTR_NON_NULL_PTR_ARG(1) ATTR_ALWAYS_INLINE |
| bool | Scheduler_HasDelayElapsed (const uint16_t Delay, SchedulerDelayCounter_t *const DelayCounter) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(2) |
| void | Scheduler_SetTaskMode (const TaskPtr_t Task, const bool TaskStatus) |
| void | Scheduler_SetGroupTaskMode (const uint8_t GroupID, const bool TaskStatus) |
Variables | |
| exter TaskEntry_t | Scheduler_TaskList [] |
| volatile uint8_t | Scheduler_TotalTasks |
| volatile SchedulerDelayCounter_t | Scheduler_TickCounter |
Простейший планироващик с алгоритмом кооперативной передачи управления задачами по кругу для использования в простых проектах, где не нужно выполнять задачи реального времени (real-time). Каждая задача выполняется последовательно, и может быть разрешена или запрещена индивидуально или группой.