typedef struct{
byte pin;
int delayTime;
}LEDFLASH;
void ledFlash(void * pt) {
LEDFLASH * ptLEDFlash =(LEDFLASH *)pt; //将传入的void类型pt指针强制转化为LEDFLASH类型,并将地址传递给ptLEDFlash
byte pin = ptLEDFlash->pin; //pin读取结构体指针变量ptLEDFlash中的pin变量
int delayTime = ptLEDFlash->delayTime; //delayTime读取结构体指针变量ptLEDFlash中的delayTime变量
pinMode(pin, OUTPUT);
while(1) {
digitalWrite(pin,!digitalRead(pin));
vTaskDelay(delayTime);
}
}
void setup() {
Serial.begin(115200);
LEDFLASH LED1,LED2,LED3; //创建LEDFLASH类型变量
LED1.pin=23;
LED1.delayTime=1000;
LED2.pin=21;
LED2.delayTime=3000;
LED3.pin=15;
LED3.delayTime=5000;
if(xTaskCreate(ledFlash,"FLASH LED",1024,(void *)&LED1,1,NULL)==pdPASS)
Serial.println("led1 flash 1S task Created.");
if(xTaskCreate(ledFlash,"FLASH LED",1024,(void *)&LED2,1,NULL)==pdPASS)
Serial.println("led2 flash 3S task Created.");
if(xTaskCreate(ledFlash,"FLASH LED",1024,(void *)&LED3,1,NULL)==pdPASS)
Serial.println("led3 flash 5S task Created.");
}
void loop() {
}