TaskHandle_t Task1; TaskHandle_t Task2; const int led1 = 2; const int led2 = 4; void stp(){ pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); xTaskCreatePinnedToCore( Task1code, /* Task function. */ "Task1", /* name of task. */ 10000, /* Stack size of task */ NULL, /* parameter of the task */ 1, /* priority of the task */ &Task1, /* Task handle to keep track of created task */ 0); /* pin task to core 0 */ // xTaskCreate(Task1code, "task1", 1000, NULL, 1, NULL); delay(500); xTaskCreatePinnedToCore( Task2code, /* Task function. */ "Task2", /* name of task. */ 10000, /* Stack size of task */ NULL, /* parameter of the task */ 1, /* priority of the task */ &Task2, /* Task handle to keep track of created task */ 1); /* pin task to core 1 */ // xTaskCreate(Task2code, "task2", 1000, NULL, 1, NULL); delay(500); } //Task1code: blinks an LED every 1000 ms void Task1code( void * pvParameters ){ Serial.print("Task1 running on core "); Serial.println(xPortGetCoreID()); for(;;){ digitalWrite(led1, HIGH); delay(1000); digitalWrite(led1, LOW); delay(1000); } } //Task2code: blinks an LED every 700 ms void Task2code( void * pvParameters ){ Serial.print("Task2 running on core "); Serial.println(xPortGetCoreID()); for(;;){ digitalWrite(led2, HIGH); delay(700); if(!s.isFired){ digitalWrite(led2, LOW); delay(700); } } } void killOne(){ // Kill task1 if it's running if(Task1 != NULL) { eTaskState taskState= eTaskGetState(Task1 ); if(taskState == eDeleted){ Serial.println("Task deleted"); }else{ Serial.println("No more green"); vTaskDelete(Task1); } } }