byte LED1_PIN = 23;
byte LED2_PIN = 21;
typedef struct{
byte pin;
int delaytime;
} LEDFLASH;
void LedFlash(void *pt){
LEDFLASH *ptLedFlash = (LEDFLASH *)pt; // 定义结构体指针指向传参
byte pin = ptLedFlash->pin; // 引脚
int delaytime = ptLedFlash->delaytime; // 延时时间
pinMode(pin,OUTPUT);
while(1){
digitalWrite(pin,!digitalRead(pin));
vTaskDelay(delaytime/portTICK_PERIOD_MS); // 1千个tick
}
}
void setup() {
Serial.begin(9600);
LEDFLASH led1,led2;
led1.pin = 23; led1.delaytime = 1000;
led2.pin = 21; led2.delaytime = 3000;
if( xTaskCreate(LedFlash, "FlASH LED", 1024, (void *)&led1,1, NULL) == pdPASS ); // 第四个参数为传入参数
Serial.println("Task1 created.\n");
if( xTaskCreate(LedFlash, "FlASH LED", 1024, (void *)&led2,1, NULL) == pdPASS );
Serial.println("Task2 created.\n");
}
void loop() {
}
【记录】freeRTOS-使用任务
最新推荐文章于 2024-07-25 01:51:24 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)