自学内容网 自学内容网

Freertos学习第一天-基于Freertos的ESP32多任务点灯

xTaskCreateTask(Task1,"Blink 23",1024,NULL,1,NULL);

函数的第一个参数是所需要执行的任务Task1

函数的第二个参数是所需要执行任务的名字"Blink 23"

函数的第三个参数是执行这个任务所分配的内存‘

函数的第四个参数是需要传递的参数

函数的第五个参数是任务的优先级

函数的第六个参数是对任务的操作

vTaskDelay(1000);
vTaskDelay(pdMS_TO_TICKS(timeDelay));
vTaskDelay(3000/portTICK_PERIOD_MS));=

对于Freertos中延时函数不能用delay而是需要使用以上三种函数,其中参数的单位为ms

执行多任务点灯的步骤为

1创建任务,设置引脚模式,在循环中点亮LED,设置延时函数。

1创建另一个任务,设置引脚模式,在循环中点亮LED,设置延时函数。

void Task1(void *pt)
{
  pinMode(23, OUTPUT);
  while(1)
  {
     digitalWrite(23,!digitalRead(23));
     vTaskDelay(1000);
     //vTaskDelay(pdMS_TO_TICKS(timeDelay));
     //vTaskDelay(3000/portTICK_PERIOD_MS));
  }
}

void Task2(void *pt)
{
  pinMode(21,OUTPUT);
  while(1)
  {
     digitalWrite(21,!digitalRead(21));
     vTaskDelay(3000);
     //vTaskDelay(pdMS_TO_TICKS(timeDelay));
     //vTaskDelay(3000/portTICK_PERIOD_MS));=
  }
}
void setup()
{
  xTaskCreate(Task1,"Blink 23",1024,NULL,1,NULL);
  xTaskCreate(Task2,"Blink 21",1024,NULL,1,NULL);
}

void loop()
{

}


原文地址:https://blog.csdn.net/qq_61134394/article/details/137880773

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!