Sha256: 21ab552f4cbec02d91d965a6949a15133bcf06901c221172ac0f0ba23b1f8b02
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
/* ========================================================================= Ceedling - Test-Centered Build System for C ThrowTheSwitch.org Copyright (c) 2010-25 Mike Karlesky, Mark VanderVoord, & Greg Williams SPDX-License-Identifier: MIT ========================================================================= */ #include "Types.h" #include "TaskScheduler.h" typedef struct _Task { bool doIt; uint32 period; uint32 startTime; } Task; typedef struct _TaskSchedulerInstance { Task usart; Task adc; } TaskSchedulerInstance; static TaskSchedulerInstance this; void TaskScheduler_Init(void) { this.usart.doIt = FALSE; this.usart.startTime = 0; //The correct period this.usart.period = 1000; this.adc.doIt = FALSE; this.adc.startTime = 0; this.adc.period = 100; } void TaskScheduler_Update(uint32 time) { if ((time - this.usart.startTime) >= this.usart.period) { this.usart.doIt = TRUE; this.usart.startTime = time - (time % this.usart.period); } if ((time - this.adc.startTime) >= this.adc.period) { this.adc.doIt = TRUE; this.adc.startTime = time - (time % this.adc.period); } } bool TaskScheduler_DoUsart(void) { bool doIt = FALSE; if (this.usart.doIt) { doIt = TRUE; this.usart.doIt = FALSE; } return doIt; } bool TaskScheduler_DoAdc(void) { bool doIt = FALSE; if (this.adc.doIt) { doIt = TRUE; this.adc.doIt = FALSE; } return doIt; }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ceedling-1.0.1 | examples/temp_sensor/src/TaskScheduler.c |
ceedling-1.0.0 | examples/temp_sensor/src/TaskScheduler.c |