Skip to content

Commit 2bec855

Browse files
Björn MellströmBjörn Mellström
authored andcommitted
Added a C++ Scheduler library
1 parent f037f92 commit 2bec855

File tree

3 files changed

+44
-0
lines changed

3 files changed

+44
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include "ESP8266Scheduler.h"
2+
3+
static void startLoopHelper(void *arg) {
4+
reinterpret_cast<SchedulerTask>(arg)();
5+
}
6+
7+
void SchedulerClass::startLoop(SchedulerTask task, uint32_t stackSize) {
8+
spawn(startLoopHelper, reinterpret_cast<void*>(task), stackSize);
9+
}
10+
11+
SchedulerClass Scheduler;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma once
2+
3+
#include <Arduino.h>
4+
5+
extern "C" {
6+
typedef void (*SchedulerTask)(void);
7+
}
8+
9+
class SchedulerClass {
10+
public:
11+
static void startLoop(SchedulerTask task, uint32_t stackSize = 1024);
12+
};
13+
14+
extern SchedulerClass Scheduler;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include <ESP8266Scheduler.h>
2+
3+
static void blinkLoop() {
4+
digitalWrite(LED_BUILTIN, HIGH);
5+
delay(1000);
6+
digitalWrite(LED_BUILTIN, LOW);
7+
delay(1000);
8+
}
9+
10+
void setup() {
11+
pinMode(LED_BUILTIN, OUTPUT);
12+
Serial.begin(115200);
13+
Scheduler.startLoop(blinkLoop);
14+
}
15+
16+
void loop() {
17+
Serial.println("Hello");
18+
delay(1000);
19+
}

0 commit comments

Comments
 (0)