#include <Arduino_FreeRTOS.h>
#include "semphr.h"
#define LED 13
#define LED 12
#define LED 11
SemaphoreHandle_t xBinarySemaphore;
void setup(){
Serial.begin(9600);
pinMode(13 ,OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
xBinarySemaphore = xSemaphoreCreateBinary();
xTaskCreate(LedOnTask, "LedON",100,NULL,1,NULL);
xTaskCreate(LedoffTask, "LedOFF", 100,NULL,2,NULL);
xTaskCreate(LedOnTask, "LedON", 100,NULL,1,NULL);
xTaskCreate(LedoffTask, "LedOFF", 100,NULL,2,NULL);
xTaskCreate(LedOnTask, "LedOFF", 100,NULL,1,NULL);
xTaskCreate(LedoffTask, "LedOFF", 100,NULL,2,NULL);
xSemaphoreGive(xBinarySemaphore);}
void loop()
{}
void LedOnTask(void *pvParameters){
while(1)
{
xSemaphoreTake(xBinarySemaphore,portMAX_DELAY);
Serial.println("Task1 executed");
digitalWrite(13 ,LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
xSemaphoreGive(xBinarySemaphore);
vTaskDelay(100);
}}
void LedoffTask(void *pvParameters){
while(1)
{
xSemaphoreTake(xBinarySemaphore,portMAX_DELAY);
Serial.println("Task2 executed");
digitalWrite(13 ,HIGH);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
xSemaphoreGive(xBinarySemaphore);
vTaskDelay(50);
}}