// 第一个任务,控制红灯,每1秒亮灭一次
void task1(void *param_t){
pinMode(4, OUTPUT);
while(1){
// 先读取引脚的高低电平,然后翻转,最后重新设置给这个引脚
digitalWrite(4, !digitalRead(4));
// 等待1秒钟
vTaskDelay(1000/portTICK_PERIOD_MS);
}
}
// 第二个任务,控制绿灯,每2秒亮灭一次
void task2(void *param_t){
pinMode(5, OUTPUT);
while(1){
digitalWrite(5, !digitalRead(5));
vTaskDelay(2000/portTICK_PERIOD_MS);
}
}
// 第三个任务,控制蓝灯,每3秒亮灭一次
void task3(void *param_t){
pinMode(6, OUTPUT);
while(1){
digitalWrite(6, !digitalRead(6));
vTaskDelay(3000/portTICK_PERIOD_MS);
}
}
void setup() {
Serial.begin(115200);
xTaskCreate(task1, "Blink Red",1024,NULL,1,NULL);
Serial.println("第一个任务被创建,将控制红灯每秒亮灭一次");
xTaskCreate(task2, "Blink Green",1024,NULL,1,NULL);
Serial.println("第二个任务被创建,将控制红灯每2秒亮灭一次");
xTaskCreate(task3, "Blink Blue",1024,NULL,1,NULL);
Serial.println("第三个任务被创建,将控制红灯每3秒亮灭一次");
}
void loop() {
}
Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C