你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
pretty868 发表于 2018-10-8 14:31 嗯嗯,我是刚接触RTOS。 按照您的意思,是不是所有的任务里面都需要有vTaskDelay才会以前任务调度,系统 ...
toofree 发表于 2018-10-8 12:21 Delay_Ms()是软件延时,死等吗? 在操作系统中最好不要用死等,除非任务之间有些条件,不得不这么做。 vTa ...
hu9977 发表于 2018-10-8 14:35 vTaskDelay可以引起调度,这个是入门最容易弄的,后面还有信号量,队列,邮箱等等都可以引起调度 ...
pretty868 发表于 2018-10-8 12:02 改为延时50和延时100均不行,异常问题依旧,任务1能正常,任何2不执行
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
1q1q
12345
11
11.08
vTaskDelay可以引起调度,这个是入门最容易弄的,后面还有信号量,队列,邮箱等等都可以引起调度
我系统里面有个创建任务的函数(创建任务1和任务2),必须把它的优秀级调高(大于任务1和任务2),系统才能正常,才能跟你的描述相一致!谢谢您的指教
创建任务的函数如下:
void Create_Task(void * pvParameters)
{
xTaskCreate((TaskFunction_t) Task1_Task,
(char* ) "Task1_Task",
(uint16_t ) TASK1_STK_SIZE,
(void* ) NULL,
(UBaseType_t ) TASK1_TASK_PRIO,
(TaskHandle_t* ) &Task1_Handle);
xTaskCreate((TaskFunction_t) Task2_Task,
(char* ) "Task2_Task",
(uint16_t ) TASK2_STK_SIZE,
(void* ) NULL,
(UBaseType_t ) TASK2_TASK_PRIO,
(TaskHandle_t* ) &Task2_Handle);
vTaskDelete(TaskCreate_Handle);
}
明白了,谢谢
你看你的中断触发时间,同时也要保证一点单个任务运行的时间不能大于你的时标间隔。所以如果你的时标是us级的,你可以尝试将Delay_Ms(500);改为Us级。或者直接使用vTaskDelay()。