OpenEdv-开源电子网

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

RXT操作系统

[复制链接]

13

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-5-25
在线时间
101 小时
发表于 2016-7-15 20:58:35 | 显示全部楼层 |阅读模式
10金钱
用的RXT操作系统,每一个任务都能创建,可是在执行每一个任务的过程中,每一个任务都只能执行两行或者是一行的代码,之后的代码都不能被执行了,像是程序死在了一个地方的感觉一样,导致所有的任务都不能执行,为什么?求指导

void AD(void) _task_ 0 //»ñè¡AD2éÑùêy¾Y
{
        os_create_task (1);
        os_create_task (2);
        IO_and_Init();
        while(1)
        {
                 //¶áè¡4¸öò¡¸Ëí¨μàÿ¸öí¨μàμÄ8λêy¾Y£¬è¡Öμ·¶Î§0-255
                cy=getADCResult(0);  //AD1    P1^0
               
                Delay1ms(10);       
                cx=getADCResult(1);  //AD2    P1^1   óíÃÅ
                Delay1ms(10);
                dy=getADCResult(3);  //AD3  óòéÏ  P1^3
                Delay1ms(10);
                dx=getADCResult(4);   //AD4    P1^4
                Delay1ms(10);
                os_wait(K_IVL,3,0);//Ñóê±3¸ö½úÅÄ
                               
        }
}
void NRF24L01(void) _task_ 1
{
        while(1)
        {
                TxBuf[0]++;
                TxBuf[1] = 128;
                TxBuf[2] = 128;
                TxBuf[3] = 128;
                if(cx<20)
                {
                        goto EXIT;//μ±óí&#195;&#197;à-&#214;á×&#238;μíμ&#196;ê±oòò£&#191;&#216;&#198;÷&#189;a&#203;&#248;
                }
                if(KEY == 0)        {TxBuf[5]=1;TxBuf[6]=1;}
                else        {TxBuf[5]=0;TxBuf[6]=0;}
                nRF24L01_TxPacket(TxBuf);//·¢&#203;íTxBufêy×éμ&#196;êy&#190;Y
                os_wait(K_IVL,2,0);  //&#184;&#248;ò&#187;&#182;¨&#209;óê±è&#195;êy&#190;Y·¢&#203;ííê3é
        }
        EXIT:
        while(1)
        {
                if((bx-dx)>=255)        {TxBuf[1]=255;}//ó&#195;é&#207;μ&#231;&#188;&#199;&#194;&#188;μ&#196;êy&#190;Y&#182;&#212;2é&#209;ùêy&#190;Y&#189;&#248;DDDT&#213;y£&#172;±£&#214;¤ò&#161;&#184;&#203;&#214;D&#206;&#187;ê±êy&#190;Y&#206;a128
                else if((bx-dx)<=0)                {TxBuf[1]=0;}
                else{TxBuf[1]=bx-dx;}
               
                if((by-dy)>=255)        {TxBuf[2]=255;}
                else if((by-dy)<=0)                {TxBuf[2]=0;}
                else{TxBuf[2]=by-dy;}
               
                if((ay-cy)>=255)        {TxBuf[3]=255;}
                else if((ay-cy)<=0)        {TxBuf[3]=0;}
                else{TxBuf[3]=ay-cy;}
                //óí&#195;&#197;£oTxBuf[4]
                TxBuf[4]=ay;  //óí&#195;&#197;í¨μà2&#187;Dè′|àí£&#172;&#214;±&#189;ó·¢&#203;íAD&#188;ì2aμ&#196;8&#206;&#187;êy&#190;Y&#188;′&#191;é£&#172;&#184;ù&#190;YAD2é&#209;ù&#212;-àíò×&#214;a&#182;áè&#161;μ&#196;AD2é&#209;ùêy&#190;Y2&#187;&#191;é&#196;ü&#206;a&#184;oò22&#187;&#191;é&#196;ü′óóú255
                if(KEY == 0)        {TxBuf[5]=1;TxBuf[6]=1;}
                else{TxBuf[5]=0;TxBuf[6]=0;}
                TxBuf[0]++;
                nRF24L01_TxPacket(TxBuf);//·¢é&#228;êy&#190;Y
                os_wait(K_IVL,2,0); //&#184;&#248;ò&#187;&#182;¨&#209;óê±è&#195;êy&#190;Y·¢&#203;ííê3é
        }
}

void OLED(void) _task_ 2
{
        Initial_M096128x64_ssd1306();
        Delay1ms(5);        blue_LED = 0;
        LCD_Fill(0xff);
        LCD_Fill(0x00);
        while(1)
        {
                LCD_P6x8Str(10,3,".edu.cn");
                os_wait(K_IVL,2,0);
        }
}

最佳答案

查看完整内容[请看2#楼]

经过今早上的努力,把所有的警告去掉了 现在正常了~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-5-25
在线时间
101 小时
 楼主| 发表于 2016-7-15 20:58:36 | 显示全部楼层
经过今早上的努力,把所有的警告去掉了   现在正常了~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165312
金钱
165312
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-7-15 21:59:24 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 22:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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