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()
{
}