Tasks
tasks can be used to structure an application. TaskScheduler
features one time tasks and prioritized task as well as repeated tasks.
void schedule_priority_task(TaskCallbackType callback)
void remove_priority_task(TaskCallbackType callback)
void schedule_task(TaskCallbackType callback)
void remove_task(TaskCallbackType callback)
void schedule_repeated_task(TaskCallbackType callback)
void remove_repeated_task(TaskCallbackType callback)
bool process()
Example Tasks
#include "Arduino.h"
#include "System.h"
#include "Console.h"
#include "TaskScheduler.h"
using namespace klangstrom;
TaskScheduler fTaskScheduler;
void exec_priority_task() {
static uint8_t counter = 0;
console_println("exec_priority_task: %i",counter);
counter++;
}
void exec_normal_task() {
static uint8_t counter = 0;
console_println("exec_normal_task: %i",counter);
counter++;
}
void exec_repeated_task() {
static uint8_t counter = 0;
console_println("exec_repeated_task: %i",counter);
counter++;
if (counter > 5) {
fTaskScheduler.remove_repeated_task(exec_repeated_task);
}
}
void setup() {
fTaskScheduler.schedule_priority_task(exec_priority_task);
fTaskScheduler.schedule_task(exec_normal_task);
fTaskScheduler.schedule_task(exec_normal_task);
fTaskScheduler.schedule_task(exec_normal_task);
fTaskScheduler.schedule_repeated_task(exec_repeated_task);
}
void loop() {
fTaskScheduler.process();
delay(500);
}