X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/1d433d4506113c95285f633e3553ff62d4cfd05d..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/LUFA/Scheduler/Scheduler.c diff --git a/LUFA/Scheduler/Scheduler.c b/LUFA/Scheduler/Scheduler.c index 857e9dd2d..56e1cf41e 100644 --- a/LUFA/Scheduler/Scheduler.c +++ b/LUFA/Scheduler/Scheduler.c @@ -31,18 +31,20 @@ #include "Scheduler.h" volatile SchedulerDelayCounter_t Scheduler_TickCounter; -volatile uint8_t Scheduler_TotalTasks; +volatile uint_least8_t Scheduler_TotalTasks; -bool Scheduler_HasDelayElapsed(const uint16_t Delay, +bool Scheduler_HasDelayElapsed(const uint_least16_t Delay, SchedulerDelayCounter_t* const DelayCounter) { SchedulerDelayCounter_t CurrentTickValue_LCL; SchedulerDelayCounter_t DelayCounter_LCL; - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) - { - CurrentTickValue_LCL = Scheduler_TickCounter; - } + uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask(); + GlobalInterruptDisable(); + + CurrentTickValue_LCL = Scheduler_TickCounter; + + SetGlobalInterruptMask(CurrentGlobalInt); DelayCounter_LCL = *DelayCounter; @@ -83,7 +85,7 @@ void Scheduler_SetTaskMode(const TaskPtr_t Task, } } -void Scheduler_SetGroupTaskMode(const uint8_t GroupID, +void Scheduler_SetGroupTaskMode(const uint_least8_t GroupID, const bool TaskStatus) { TaskEntry_t* CurrTask = &Scheduler_TaskList[0];