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);
        }
    }
}