/* Multitasking Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
void tledR(void* p);
void tledV(void* p);
void tledB(void* p);
void setup() {
pinMode(2, OUTPUT); // GPIO2 pour la LED Rouge
pinMode(4, OUTPUT); // GPIO4 pour la LED Verte
pinMode(5, OUTPUT); // GPIO5 pour la LED Bleue
xTaskCreatePinnedToCore(tledR, "tledR", 2048, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(tledR, "tledR", 2048, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(tledV, "tledV", 2048, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(tledB, "tledB", 2048, NULL, 1, NULL, 0);
}
void loop() {
// Ne rien faire dans la boucle principale
}
void tledR(void* p) {
while (1) {
digitalWrite(2, HIGH); // Allumer la LED Rouge
delay(500); // Attendre 500 ms
digitalWrite(2, LOW); // Éteindre la LED Rouge
delay(500); // Attendre 500 ms
}
}
void tledV(void* p) {
while (1) {
digitalWrite(4, HIGH); // Allumer la LED Verte
delay(500); // Attendre 500 ms
digitalWrite(4, LOW); // Éteindre la LED Verte
delay(500); // Attendre 500 ms
}
}
void tledB(void* p) {
while (1) {
digitalWrite(5, HIGH); // Allumer la LED Bleue
delay(500); // Attendre 500 ms
digitalWrite(5, LOW); // Éteindre la LED Bleue
delay(500); // Attendre 500 ms
}
}