Skip to content

blanboom/Arduino-Task-Scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a task scheduler for Arduinos with a ATmega328p microcontroller. Inspired by Patterns for Time-Triggered Embedded Systems.

NOTE: This library uses Timer 1 on ATmega328p, so it is incompatible some libraries using the same timer. (Such as Servo, Mozzi, or analogWrite() on pin 9 and 10)

How to use?

STEP 1. Put Sch.init(); and Sch.start(); into void setup(), and put Sch.dispatchTasks(); into void loop(), like this:

void setup()
{
    // Your code...

    Sch.init();
    Sch.start();
}

void loop()
{
    Sch.dispatchTasks();
}

STEP 2. Put tasks at the end of your code, like this:

void setup()
{
    // Your code...

    Sch.init();
    Sch.start();
}

void loop()
{
    Sch.dispatchTasks();
}

// Tasks

void task1()
{
  // Your code...
}

void task2()
{
  // Your code...
}

STEP 3. Use Sch.addTask() between Sch.init(); and Sch.start(); to add tasks into the task scheduler, like this:

void setup()
{
    // Your code...

    Sch.init();
    
    Sch.addTask(task1,0,1000,1);  // Add task1. Starts at the 0th ms, and runs every 1000 ms
    Sch.addTask(task2,20,500,1);  // Add task2. Starts at the 20th ms, and runs every 500 ms
    
    Sch.start();
}

void loop()
{
    Sch.dispatchTasks();
}

中文简介在这里:http://blanboom.org/arduino-task-scheduler-library.html

Releases

No releases published

Packages

No packages published

Languages