中级会员
- 积分
- 399
- 金钱
- 399
- 注册时间
- 2016-5-25
- 在线时间
- 101 小时
|
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;//μ±óíÃÅà-Öá×îμíμÄê±oòò£¿ØÆ÷½aËø
}
if(KEY == 0) {TxBuf[5]=1;TxBuf[6]=1;}
else {TxBuf[5]=0;TxBuf[6]=0;}
nRF24L01_TxPacket(TxBuf);//·¢ËíTxBufêy×éμÄêy¾Y
os_wait(K_IVL,2,0); //¸øò»¶¨Ñóê±èÃêy¾Y·¢Ëííê3é
}
EXIT:
while(1)
{
if((bx-dx)>=255) {TxBuf[1]=255;}//óÃéÏμç¼Ç¼μÄêy¾Y¶Ô2éÑùêy¾Y½øDDDTÕy£¬±£Ö¤ò¡¸ËÖDλê±êy¾YÎ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;}
//óíÃÅ£oTxBuf[4]
TxBuf[4]=ay; //óíÃÅí¨μà2»Dè′|àí£¬Ö±½ó·¢ËíAD¼ì2aμÄ8λêy¾Y¼′¿é£¬¸ù¾YAD2éÑùÔ-àíò×Öa¶áè¡μÄAD2éÑùêy¾Y2»¿éÄüÎa¸oò22»¿éÄü′óóú255
if(KEY == 0) {TxBuf[5]=1;TxBuf[6]=1;}
else{TxBuf[5]=0;TxBuf[6]=0;}
TxBuf[0]++;
nRF24L01_TxPacket(TxBuf);//·¢éäêy¾Y
os_wait(K_IVL,2,0); //¸øò»¶¨Ñóê±èÃêy¾Y·¢Ëííê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);
}
}
|
|