joseph-montanez / c-async-task

A simple C library to do

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

c-async-task

A simple C library to do intervaled / once off async work in a loop. Current using for Arduino type hardware, using a single linked list to manage a dynamic array of tasks.

Example

#include "task.h"
#include "task_manager.h"

TaskManager *manager;
const byte BLUE_LED = 3;

void blue_led_off() {
    digitalWrite(BLUE_LED, LOW);
}

void blue_led_on() {
    digitalWrite(BLUE_LED, HIGH);

    //-- Turn off LED in 1 second, and then the task should be deleted after running
    task_manager_add_task(manager, task_create(TASK_TYPE_ONCE, 1000, blue_led_off));
}


void setup() {

    //-- Create the task manager
    manager = task_manager_create();

    task_manager_add_task(manager, task_create(TASK_TYPE_REPEAT, 1000, blue_led_on));

}

void loop() {
    now = millis();
    task_manager_run(manager, &now);
}

About

A simple C library to do

License:MIT License


Languages

Language:C 94.0%Language:CMake 6.0%