#if CONFIG_FREERTOS_UNICORE
static const BaseType_t app_cpu = 0;
#else
static const BaseType_t app_cpu = 1;
#endif
TaskHandle_t taskhandler = NULL;
void toggleLED_1(void *parameter)
{
while(1)
{
digitalWrite(13,HIGH);
vTaskDelay(500/portTICK_PERIOD_MS);
digitalWrite(13,LOW);
vTaskDelay(500/portTICK_PERIOD_MS);
}
}
void control(void *parameter)
{
while(1)
{
if(digitalRead(19)==LOW)
{
if (taskhandler == NULL)
{
xTaskCreatePinnedToCore(toggleLED_1,"Toggle 1",1024,NULL,1,&taskhandler,app_cpu);
Serial.println("Task Created");
vTaskDelay(120/portTICK_PERIOD_MS);
}
}
if(digitalRead(21)==LOW)
{
if(taskhandler != NULL)
{
vTaskDelete(taskhandler);
Serial.println("Task Deleted");
vTaskDelay(120/portTICK_PERIOD_MS);
taskhandler = NULL;
}
}
if(digitalRead(25)==LOW)
{
if(taskhandler != NULL)
{
vTaskSuspend(taskhandler);
Serial.println("Task Suspended");
vTaskDelay(120/portTICK_PERIOD_MS);
}
}
if(digitalRead(22)==LOW)
{
if(taskhandler != NULL)
{
vTaskResume(taskhandler);
Serial.println("Task Resumed");
vTaskDelay(120/portTICK_PERIOD_MS);
}
}
}
}
void setup()
{
Serial.begin(115200);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(19,INPUT_PULLUP);
pinMode(21,INPUT_PULLUP);
pinMode(22,INPUT_PULLUP);
pinMode(25,INPUT_PULLUP);
xTaskCreatePinnedToCore(control,"ControlFunction",40000,NULL,1,NULL,app_cpu);
}
void loop()
{
}