Библиотека LUFA (раннее название MyUSB) версия 101122
Scheduler.h File Reference

Простой шедулер (планировщик) псевдозадач с алгоритмом 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

Detailed Description

Простейший планироващик с алгоритмом кооперативной передачи управления задачами по кругу для использования в простых проектах, где не нужно выполнять задачи реального времени (real-time). Каждая задача выполняется последовательно, и может быть разрешена или запрещена индивидуально или группой.

Deprecated:
Этот модуль устарел и будет удален в будущих релизах библиотеки.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines