发 帖  
原厂入驻New
ucos2任务调度问题如何解决
139 cpu
分享
我是一个初学者,现有一个问题有疑问,在一个任务里必需调用延时OStimeDlyHMSM(0, 0, 0, 1)来进行任务调度吗?
我直接在任务里调用OS_Sched();程序就不能正常运行,请教一下各位老师是怎么回事?
下面的代码不能运行,把OS_Sched();注释掉,换成OSTimeDlyHMSM(0, 0, 0, 1);就能运行了
void LED3_task(void *pdata)
{
        CPU_INT08U  os_err;
        while(1)
        {
                OSSemPend(sem_xinhaolian,0,&os_err);
                LED3=!LED3;
                OS_Sched();
        //        OSTimeDlyHMSM(0, 0, 0, 1); //小于5ms切换不成功
        }
}
0
2020-5-29 09:15:12   评论 分享淘帖 邀请回答
7个回答
原子老师您好!我看你视频里讲是可以直接调用OS_Sched()的,我就试了一下,结果就不能正常运行,我上想立马就切换到别的任务,如果用delay()的话那不又要浪费一部分时间么?
2020-5-29 12:48:05 评论

举报

2020-5-29 13:07:20 评论

举报

我记得这是涉及到“用户任务”和“系统任务”的关系,一般用户程序不可以直接调用一些内核函数 之类的意思,,
2020-5-29 13:16:38 评论

举报

2020-5-29 13:50:56 评论

举报

2020-5-29 14:05:21 评论

举报

2020-5-29 14:17:47 评论

举报

哈哈,是谢谢那些大神老师,我也是学生,互相交流而已
2020-5-29 14:33:40 评论

举报

只有小组成员才能发言,加入小组>>

292个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表