初级会员
- 积分
- 66
- 金钱
- 66
- 注册时间
- 2019-8-26
- 在线时间
- 16 小时
|
10金钱
1、抢占配置位设为1------#define configUSE_PREEMPTION 1
2、建立两个任务,优先级分别为osPriorityNormal和osPriorityAboveNormal
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
osThreadDef(keyTask, keyScan, osPriorityAboveNormal, 0, 128);
keyTaskHandle = osThreadCreate(osThread(keyTask), NULL);
3、任务函数中只打印一些数据
void StartDefaultTask(void const * argument)
{
for(;;)
{
printf("StartDefaultTask\r\n");
}
}
void keyScan(void const * argument)
{
for(;;)
{
printf("keyScanTask\r\n");
osDelay(1);
}
}
keyScanTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
问题:为什么keyScan任务只执行了一次,keyScan任务优先级高,在时间片轮转时,应该抢占StartDefaultTask任务吧?
|
|