uC/OS中添加了个任务问什么还得添加延时啊

[复制链接]
 楼主| haitianhappy 发表于 2012-7-24 16:16 | 显示全部楼层 |阅读模式
就是中断接收到了数据之后解析 的任务 还得再加一句
OSTimeDlyHMSM(0,0,1,0);

void Task_LED3(void *p_arg)
{
(void)p_arg;
SysTick_init();
while (1)
{
  OSTimeDlyHMSM(0,0,1,0);
     hand_data(UART1_com);
}
}
zxm19820916 发表于 2013-12-11 12:02 | 显示全部楼层
是啊,为什么啊?
我们的工程首先main函数里创建了一个优先级为0的任务TaskStart(),
然后在TaskStart中创建了其他10个任务(优先级都大于0),然后还有这几行代码是做什么用的?
if (OSTaskSuspend(OS_PRIO_SELF) != OS_NO_ERR)
{
        Uart_Printf("Suspend self task Error!\n");
}

while (1)
{
        OSCtxSwCtr = 0;
        OSTimeDlyHMSM(0,0,60,0);      // wait 1m
}
prayerwind 发表于 2013-12-11 13:36 | 显示全部楼层
你可以读一下基本的RTOS概念,
1.抢占式内核;
2.调度方式(静态 & 动态)

如果一个高优先级的任务一直运行,那么CPU一直被它占用,其它任务怎么办?
Nick_Qiu 发表于 2013-12-11 14:47 | 显示全部楼层
延迟意义在于让出CPU的控制权限,给其他任务执行!
5186 发表于 2013-12-11 14:48 | 显示全部楼层
是这么个理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

131

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部