Skip to content

Pretty tiny Scheduler or ptScheduler is an Arduino library for writing non-blocking periodic tasks easily.

License

Notifications You must be signed in to change notification settings

alexmaurer-madis/ptScheduler

 
 

Repository files navigation

ptScheduler

Pretty tiny Scheduler

Pretty tiny Scheduler or ptScheduler is a non-preemptive task scheduler library for Arduino that helps you to write non-blocking periodic tasks easily and effectively without using ordinary delay routines or using millis() function on your own.

You won't have to use delay() or millis() functions again.

Under the hood, ptScheduler uses the native millis() implementation. The millis() function is a hardware timer based ISR that increments a global counter variable (unsigned integer) every millisecond.

When you create a new ptScheduler object, you can specify the time intervals and execution modes. All the class member variables and functions are public and therefore gives you full control over your tasks, allowing dynamically changing the behavior of the task.

To run a task, just enclose the call() function inside any conditional statements, either inside your infinite loop or inside a function. Every time you invoke the call() function, it checks if the elapsed time is larger than the preset interval. If yes, it will return true and cause the code under the conditional block to be executed once.

ptScheduler is good mainly for control applications that require the periodic polling of sensors, GPIOs and other IO devices. ptScheduler tasks can coexist with preemptive tasks such as FreeRTOS tasks.

Hello World

Here is the basic Hello World example.

#include "ptScheduler.h"

//create tasks
ptScheduler sayHello = ptScheduler(1000);

//setup function runs once
void setup() {
  Serial.begin(9600);
}

//infinite loop
void loop() {
  if (sayHello.call()) {  //executed every second
    Serial.println("Hello World");
  }

  //add other tasks and non-blocking code here
}

Tutorial and Documentation

Complete tutorial can be found at CIRCUITSTATE

Reference

See the reference of all available functions and variables in the Reference page.

About

Pretty tiny Scheduler or ptScheduler is an Arduino library for writing non-blocking periodic tasks easily.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%