byte LED1_PIN = 23;
byte LED2_PIN = 21;
typedef struct{
byte pin;
int delayTime;
}LEDFLASH;
void flashLed(void *pt)
{
LEDFLASH led = *((LEDFLASH*)pt);
Serial.printf("pin %d, delay: %d\n", led.pin, led.delayTime);
pinMode(led.pin, OUTPUT);
while(true)
{
digitalWrite(led.pin, !digitalRead(led.pin));
Serial.printf("pin %d, delay: %d\n", led.pin, led.delayTime);
vTaskDelay(pdMS_TO_TICKS(led.delayTime));
}
}
LEDFLASH led1, led2;
void setup() {
Serial.begin(115200);
led1.pin = 23;
led1.delayTime = 1000;
led2.pin = 21;
led2.delayTime = 3000;
// put your setup code here, to run once:
if(pdPASS == xTaskCreate(flashLed, "Blink 23", 2*1024, (void*)(&led1), 1 ,NULL))
{
Serial.println("Taks 1 Created");
}
if(pdPASS == xTaskCreate(flashLed, "Blink 21", 2*1024, (void*)(&led2), 1 ,NULL))
{
Serial.println("Taks 2 Created");
}
}
void loop() {
// put your main code here, to run repeatedly:
}