嵌入式学习小组
直播中

朱寅竹

8年用户 218经验值
私信 关注

UCOSIII延时的任务调度怎么实现?

STM32用UCOSIII去写程序,现在需要延时,但不能进行调度,延时的时间是几百毫秒,改怎么搞?

回帖(6)

李琴

2020-4-17 09:14:02
楼主,你如果只是需要给调度器上锁,用OSSchedLock(&err)比较恰当。临界段代码保护会根据OS_CFG_ISR_POST_DEFERRED_EN 是否为一 来分别用调度器上锁或则关中断的方式来保护代码。如果你是要关调度器并关中断 你得让OS_CFG_ISR_POST_DEFERRED_EN=0再调用OS_CRITICAL_ENTER(),OS_CRITICAL_EXIT() 。
举报

王红梅

2020-4-17 09:25:41
延时之前给任务调度器上锁,延时结束后解锁任务调度器
举报

彭小海

2020-4-17 09:39:29
是这样写吗?
CPU_SR_ALLOC();
OS_CRITICAL_ENTER();
//中间代码
OS_CRITICAL_EXIT();
举报

陈舒斌

2020-4-17 09:52:44
OS_ERR err;
OSSchedLock(&err);
{
  .....;
}
OSSchedUnlock(&err);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分