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)!