// Use only core 1 for demo purposes
#if CONFIG_FREERTOS_UNICORE
static const BaseType_t app_cpu = 0; // juste pour savoir si c'est le coeur 1 ou 2 qui est solicité
#else // pas d'utilité précise pour ce cas
static const BaseType_t app_cpu = 1;
#endif
// Pins
static const int led_pin = LED_BUILTIN; // ceci est la led acrcochée sur la board pas de câblage nécessaire
// Our task: blink an LED
void toggleLED(void *parameter) {
while(1) { // début boucle infinie
digitalWrite(led_pin, HIGH); // allumer la led à la syntaxte arduino (digitalWrite)
vTaskDelay(500 / portTICK_PERIOD_MS); // vTaskDelay pour faire une temporisation de 500ms - voir l'exemple : https://www.freertos.org/a00127.html
digitalWrite(led_pin, LOW); // eteindre la led à la syntaxte arduino
vTaskDelay(500 / portTICK_PERIOD_MS); // vTaskDelay pour faire une temporisation de 500ms
Serial.println("Je suis dans toggleLED");
}
}
void setup() {
// Configure pin
pinMode(led_pin, OUTPUT);
// UART = Universal Asynchronous Receiver Transmitter
Serial.begin(9600); // Défini les baud
// Task to run forever
xTaskCreatePinnedToCore( // Use xTaskCreate() FreeRTOS
toggleLED, // Function to be called
"task_LED", // Name of task
1024, // Stack size de 1024 (bytes in ESP32, words in FreeRTOS)
NULL, // Parameter to pass to function ->NULL
0, // Task priority 1 (0 to configMAX_PRIORITIES - 1)
NULL, // Task handle -> NULL
app_cpu // Run on one core for demo purposes (ESP32 only)
);
}
void loop() {
// Ecrire "je suis dans la loop" syntaxe arduino
Serial.println("Je suis dans la loop");
delay(100);
// setup() and loop() run in their own task with priority 1 in core 1
// on ESP32
}