OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5068|回复: 4

学习了ucosIII的教程,创建2个任务,但是不能执行,系统只是一直跑 ,为什么呢

[复制链接]

4

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-3-12
在线时间
8 小时
发表于 2021-3-12 11:13:22 | 显示全部楼层 |阅读模式
1金钱
int main(void)
{
       
        OS_ERR err;
        /*关闭中断*/
        //CPU_IntDis();
        CPU_SR  cpu_sr = 0;

        CPU_INT_DIS();
                /*配置SysTick 10ms中断一次*/
       
  OS_CPU_SysTickInit(10);
        /*初始化相关全局变量*/
        OSInit(&err);

       
        /*创建任务*/
        OSTaskCreate((OS_TCB*) &Task1TCB,    //任务控制块
                                                        (CPU_CHAR   *)((void *)"Task1"),
                                                        (OS_TASK_PTR ) Task1,
                                                        (void *) 0,            
                                                        (OS_PRIO     )(3u),   
                                                        (CPU_STK*) &Task1Stk[0],   
                                                        (CPU_STK_SIZE)TASK1_STK_SIZE/10,         
                                                        (CPU_STK_SIZE) TASK1_STK_SIZE,  
                                                        (OS_MSG_QTY  )0u,              
                                                        (OS_TICK     )0u,
                                                        (void       *)0,             
                                                        (OS_OPT      )(OS_OPT_TASK_NONE),   
                                                        (OS_ERR *) &err);            
                                                       
        OSTaskCreate((OS_TCB*) &Task2TCB,
                                                        (CPU_CHAR   *)((void *)"Task2"),
                                                        (OS_TASK_PTR ) Task2,
                                                        (void *) 0,
                                                        (OS_PRIO     )(4u),
                                                        (CPU_STK*) &Task1Stk[0],
                                                        (CPU_STK_SIZE)TASK2_STK_SIZE/10,
                                                        (CPU_STK_SIZE) TASK2_STK_SIZE,
                                                        (OS_MSG_QTY  )0u,
                                                        (OS_TICK     )0u,
                                                        (void       *)0,
                                                        (OS_OPT      )(OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR),
                                                        (OS_ERR *) &err);
                                               
        /*将任务加入到就绪列表*/
                OSRdyList[0].HeadPtr = &Task1TCB;       
                OSRdyList[1].HeadPtr = &Task2TCB;                                                                       
                                                       
        /*启动任务 不在返回*/
                OSStart(&err);
               
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-3-12
在线时间
8 小时
 楼主| 发表于 2021-3-12 12:13:02 | 显示全部楼层
/* 任务1 */
void Task1( void *p_arg )
{
        OS_ERR err;
        /* 任务主体,无限循环且不能返回 */
        for (;;)
        {
                /* 任务主体代码 */
                flag1 = 1;               
                //OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_HMSM_STRICT,&err); //延时200ms
                //OSTimeDly(2,OS_OPT_TIME_TIMEOUT,&err);
                App_OSTimeDly(2);
                flag1 = 0;       
                //OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_HMSM_STRICT,&err); //延时200ms
        //        OSTimeDly(2,OS_OPT_TIME_TIMEOUT,&err);
                App_OSTimeDly(2);
                /*任务切换 手动*/
                OSSched();
        }
}

void App_OSTimeDly(OS_TICK dly)
{
        /*设置延时时间*/
        OSTCBCurPtr->TaskDelayTicks = dly;
        /*进行任务调度*/
        OSSched();

}
回复

使用道具 举报

4

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-3-12
在线时间
8 小时
 楼主| 发表于 2021-3-13 11:26:06 来自手机 | 显示全部楼层
新人没有人理吗
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
发表于 2021-3-13 18:44:11 | 显示全部楼层
帮顶         
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-1-29
在线时间
9 小时
发表于 2021-4-13 09:59:07 | 显示全部楼层
任务1好像只设置了延时时间,始终没有调用延时函数。任务2代码也没发出来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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