diff --git a/examples/MultiplePWM/Loop2.ino b/examples/MultiplePWM/Loop2.ino new file mode 100644 index 0000000..e503cc5 --- /dev/null +++ b/examples/MultiplePWM/Loop2.ino @@ -0,0 +1,8 @@ + +// Task no.2 + +void loop2 () { + analogWrite(LED2, counter1); + counter1 += 50; + delay(500); +} diff --git a/examples/MultiplePWM/Loop3.ino b/examples/MultiplePWM/Loop3.ino new file mode 100644 index 0000000..64bb478 --- /dev/null +++ b/examples/MultiplePWM/Loop3.ino @@ -0,0 +1,8 @@ + +// Task no.3 + +void loop3 () { + analogWrite(LED3, counter2); + counter2++; + delay(7); +} diff --git a/examples/MultiplePWM/MultiplePWM.ino b/examples/MultiplePWM/MultiplePWM.ino new file mode 100644 index 0000000..ca2c84b --- /dev/null +++ b/examples/MultiplePWM/MultiplePWM.ino @@ -0,0 +1,54 @@ +/* + Multiple PWM + + Demonstrates the use of the Scheduler library + + Hardware required : + * LEDs connected to PWM pins + + created 28 Dic 2015 + by Testato + +*/ + + +// Include Scheduler since we want to manage multiple tasks. +#include + +#define LED1 13 +#define LED2 10 +#define LED3 11 +byte counter1; +byte counter2; + + +void setup() { + + // Setup the led pins as OUTPUT + pinMode(LED1, OUTPUT); + pinMode(LED2, OUTPUT); + pinMode(LED3, OUTPUT); + + // Add "loop2 and loop3" to scheduler + // "loop" is always started by default + Scheduler.startLoop(loop2); + Scheduler.startLoop(loop3); +} + + +// Task no.1 (standard Arduino loop() ) +void loop() { + digitalWrite(LED1, HIGH); + delay(1000); + digitalWrite(LED1, LOW); + delay(1000); + + // When multiple tasks are running, 'delay' passes control to + // other tasks while waiting and guarantees they get executed + // It is not necessary to call yield() when using delay() +} + + + + + diff --git a/examples/MultipleSketch/MultipleSketch.ino b/examples/MultipleSketch/MultipleSketch.ino new file mode 100644 index 0000000..94429df --- /dev/null +++ b/examples/MultipleSketch/MultipleSketch.ino @@ -0,0 +1,51 @@ +/* + Multiple Sketch + + Demonstrates the use of .start and .startLoop method of the Scheduler library + + Hardware required : + * LEDs connected to pins + + created 07 Gen 2016 + by Testato + +*/ + + +// Include Scheduler since we want to manage multiple tasks. +#include + +#define LED1 13 +#define LED2 10 +#define LED3 11 + + +// Sketch no.1 + +void setup() { + // Setup the led pin as OUTPUT + pinMode(LED1, OUTPUT); + + // Add "setup2 and setup3" to scheduler + Scheduler.start(setup2); + Scheduler.start(setup3); + // Add "loop2 and loop3" to scheduler + Scheduler.startLoop(loop2); + Scheduler.startLoop(loop3); +} + + +void loop() { + digitalWrite(LED1, HIGH); + delay(1000); + digitalWrite(LED1, LOW); + delay(1000); + + // When multiple tasks are running, 'delay' passes control to + // other tasks while waiting and guarantees they get executed + // It is not necessary to call yield() when using delay() +} + + + + diff --git a/examples/MultipleSketch/Sketch2 b/examples/MultipleSketch/Sketch2 new file mode 100644 index 0000000..1a2d854 --- /dev/null +++ b/examples/MultipleSketch/Sketch2 @@ -0,0 +1,13 @@ + +// Sketch no.2 + +void setup2 () { + pinMode(LED2, OUTPUT); +} + +void loop2 () { + digitalWrite(LED2, HIGH); + delay(500); + digitalWrite(LED2, LOW); + delay(500); +} diff --git a/examples/MultipleSketch/Sketch3 b/examples/MultipleSketch/Sketch3 new file mode 100644 index 0000000..f407c19 --- /dev/null +++ b/examples/MultipleSketch/Sketch3 @@ -0,0 +1,13 @@ + +// Sketch no.3 + +void setup3 () { + pinMode(LED3, OUTPUT); +} + +void loop3 () { + digitalWrite(LED3, HIGH); + delay(250); + digitalWrite(LED3, LOW); + delay(250); +} diff --git a/keywords.txt b/keywords.txt index 6134de2..9fddd78 100644 --- a/keywords.txt +++ b/keywords.txt @@ -12,6 +12,7 @@ Scheduler KEYWORD1 Scheduler # Methods and Functions (KEYWORD2) ####################################### +start KEYWORD2 startLoop KEYWORD2 #######################################