OpenEdv-开源电子网

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

uCOSii 4个任务切换异常,低优先级任务不能运行

[复制链接]

8

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2014-1-7
在线时间
24 小时
发表于 2018-5-7 14:42:50 | 显示全部楼层 |阅读模式
1金钱
求助大神:uCOSii 添加了4个任务,其中按键扫描优先级最高,除了优先级最高的2个任务能正常工作外,低优先级的任务不能正常运行,要很偶然的时间才能触发运行!不知道哪里的原因,求大神们协助!谢谢……[mw_shl_code=c,true]#include "includes.h"          

/////////////////////////UCOSII任务堆栈设置///////////////////////////////////
//按键扫描任务
//设置任务优先级
#define KEY_TASK_PRIO                               5
//设置任务堆栈大小
#define KEY_STK_SIZE                                          64
//创建任务堆栈空间       
OS_STK KEY_TASK_STK[KEY_STK_SIZE];
//任务函数接口
void key_task(void *pdata);

/*******************************dut1任务*********************************/
#define DUT1_TASK_PRIO                               6     //设置任务优先级
#define DUT1_STK_SIZE                                          64    //设置任务堆栈大小       
OS_STK DUT1_TASK_STK[DUT1_STK_SIZE];          //创建任务堆栈空间
void dut1_task(void *pdata);                  //任务函数接口
/*******************************dut2任务*********************************/
#define DUT2_TASK_PRIO                               7     //设置任务优先级
#define DUT2_STK_SIZE                                          64    //设置任务堆栈大小       
OS_STK DUT2_TASK_STK[DUT2_STK_SIZE];          //创建任务堆栈空间
void dut2_task(void *pdata);                  //任务函数接口
/*******************************dut3任务*********************************/
#define DUT3_TASK_PRIO                               8     //设置任务优先级
#define DUT3_STK_SIZE                                          64    //设置任务堆栈大小       
OS_STK DUT3_TASK_STK[DUT3_STK_SIZE];          //创建任务堆栈空间
void dut3_task(void *pdata);                  //任务函数接口
/*******************************dut4任务*********************************/
//#define DUT4_TASK_PRIO                               5     //设置任务优先级
//#define DUT4_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK DUT4_TASK_STK[DUT4_STK_SIZE];          //创建任务堆栈空间
//void dut4_task(void *pdata);                  //任务函数接口
///*******************************dut5任务*********************************/
//#define DUT5_TASK_PRIO                               6     //设置任务优先级
//#define DUT5_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK DUT5_TASK_STK[DUT5_STK_SIZE];          //创建任务堆栈空间
//void dut5_task(void *pdata);                  //任务函数接口
///*******************************dut6任务*********************************/
//#define DUT6_TASK_PRIO                               7     //设置任务优先级
//#define DUT6_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK DUT6_TASK_STK[DUT6_STK_SIZE];          //创建任务堆栈空间
//void dut6_task(void *pdata);                  //任务函数接口
///*******************************dut7任务*********************************/
//#define DUT7_TASK_PRIO                               8     //设置任务优先级
//#define DUT7_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK DUT7_TASK_STK[DUT7_STK_SIZE];          //创建任务堆栈空间
//void dut7_task(void *pdata);                  //任务函数接口
///*******************************dut8任务*********************************/
//#define DUT8_TASK_PRIO                               9     //设置任务优先级
//#define DUT8_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK DUT8_TASK_STK[DUT8_STK_SIZE];          //创建任务堆栈空间
//void dut8_task(void *pdata);                  //任务函数接口
///*******************************dut9任务*********************************/
//#define DUT9_TASK_PRIO                               10     //设置任务优先级
//#define DUT9_STK_SIZE                                          64     //设置任务堆栈大小       
//OS_STK DUT9_TASK_STK[DUT9_STK_SIZE];           //创建任务堆栈空间
//void dut9_task(void *pdata);                   //任务函数接口
///*******************************dut10任务*********************************/
//#define DUT10_TASK_PRIO                               11     //设置任务优先级
//#define DUT10_STK_SIZE                                  64     //设置任务堆栈大小       
//OS_STK DUT10_TASK_STK[DUT10_STK_SIZE];         //创建任务堆栈空间
//void dut10_task(void *pdata);                  //任务函数接口
///*******************************dut11任务*********************************/
//#define DUT11_TASK_PRIO                               12     //设置任务优先级
//#define DUT11_STK_SIZE                                  64     //设置任务堆栈大小       
//OS_STK DUT11_TASK_STK[DUT11_STK_SIZE];         //创建任务堆栈空间
//void dut11_task(void *pdata);                  //任务函数接口
///*******************************dut12任务*********************************/
//#define DUT12_TASK_PRIO                               13     //设置任务优先级
//#define DUT12_STK_SIZE                                  64     //设置任务堆栈大小       
//OS_STK DUT12_TASK_STK[DUT12_STK_SIZE];         //创建任务堆栈空间
//void dut12_task(void *pdata);                  //任务函数接口
///*******************************总控1任务*********************************/
//#define ALL1_TASK_PRIO                               14     //设置任务优先级
//#define ALL1_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK ALL1_TASK_STK[ALL1_STK_SIZE];          //创建任务堆栈空间
//void all1_task(void *pdata);                  //任务函数接口
///*******************************总控2任务*********************************/
//#define ALL2_TASK_PRIO                               15     //设置任务优先级
//#define ALL2_STK_SIZE                                          64    //设置任务堆栈大小       
//OS_STK ALL2_TASK_STK[ALL2_STK_SIZE];          //创建任务堆栈空间
//void all2_task(void *pdata);                  //任务函数接口

/*******************************START 任务*********************************/
//设置任务优先级
#define START_TASK_PRIO                              20 //开始任务的优先级设置为最低
//设置任务堆栈大小
#define START_STK_SIZE                                  512
//创建任务堆栈空间       
OS_STK START_TASK_STK[START_STK_SIZE];
//任务函数接口
void start_task(void *pdata);
//////////////////////////////////////////////////////////////////////////////
OS_EVENT * msg_key;                        //按键邮箱事件块指针                   

int main(void)
{               
    IO_Init();                                //按键初始化
    delay_init();                     //延时函数初始化          
        NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    ResetSYS();
        uart_init(19200);
    TIM6_Int_Init(999,71);   //以1Mhz的频率计数分辨率1us,定时1ms串口超时处理
//    TIM3_Int_Init(50000,71); //定时50ms
        OSInit();                                   //初始化UCOSII                                           
        OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务
        OSStart();            
}

//开始任务
void start_task(void *pdata)
{
    OS_CPU_SR cpu_sr=0;
        pdata = pdata;                   
        msg_key=OSMboxCreate((void*)0);        //创建消息邮箱

   
        OSStatInit();                                        //初始化统计任务.这里会延时1秒钟左右       
        OS_ENTER_CRITICAL();                        //进入临界区(无法被中断打断)                                               
        OSTaskCreate(key_task,(void *)0,(OS_STK*)&KEY_TASK_STK[KEY_STK_SIZE-1],KEY_TASK_PRIO);
    OSTaskCreate(dut1_task,(void *)0,(OS_STK*)&DUT1_TASK_STK[DUT1_STK_SIZE-1],DUT1_TASK_PRIO);
    OSTaskCreate(dut2_task,(void *)0,(OS_STK*)&DUT2_TASK_STK[DUT2_STK_SIZE-1],DUT2_TASK_PRIO);
    OSTaskCreate(dut3_task,(void *)0,(OS_STK*)&DUT3_TASK_STK[DUT3_STK_SIZE-1],DUT3_TASK_PRIO);
//    OSTaskCreate(dut4_task,(void *)0,(OS_STK*)&DUT4_TASK_STK[DUT4_STK_SIZE-1],DUT4_TASK_PRIO);
//    OSTaskCreate(dut5_task,(void *)0,(OS_STK*)&DUT5_TASK_STK[DUT5_STK_SIZE-1],DUT5_TASK_PRIO);
//    OSTaskCreate(dut6_task,(void *)0,(OS_STK*)&DUT6_TASK_STK[DUT6_STK_SIZE-1],DUT6_TASK_PRIO);
//    OSTaskCreate(dut7_task,(void *)0,(OS_STK*)&DUT7_TASK_STK[DUT7_STK_SIZE-1],DUT7_TASK_PRIO);
//    OSTaskCreate(dut8_task,(void *)0,(OS_STK*)&DUT8_TASK_STK[DUT8_STK_SIZE-1],DUT8_TASK_PRIO);
//    OSTaskCreate(dut9_task,(void *)0,(OS_STK*)&DUT9_TASK_STK[DUT9_STK_SIZE-1],DUT9_TASK_PRIO);
//    OSTaskCreate(dut10_task,(void *)0,(OS_STK*)&DUT10_TASK_STK[DUT10_STK_SIZE-1],DUT10_TASK_PRIO);
//    OSTaskCreate(dut11_task,(void *)0,(OS_STK*)&DUT11_TASK_STK[DUT11_STK_SIZE-1],DUT11_TASK_PRIO);
//    OSTaskCreate(dut12_task,(void *)0,(OS_STK*)&DUT12_TASK_STK[DUT12_STK_SIZE-1],DUT12_TASK_PRIO);
//    OSTaskCreate(all1_task,(void *)0,(OS_STK*)&ALL1_TASK_STK[ALL1_STK_SIZE-1],ALL1_TASK_PRIO);
//    OSTaskCreate(all2_task,(void *)0,(OS_STK*)&ALL2_TASK_STK[ALL2_STK_SIZE-1],ALL2_TASK_PRIO);
        OSTaskSuspend(START_TASK_PRIO);        //挂起起始任务.
        OS_EXIT_CRITICAL();                                //退出临界区(可以被中断打断)
}          

//按键扫描任务
void key_task(void *pdata)
{       
        u8 key;                                                                     
        while(1)
        {
                key=KEY_Scan();   
                if(key)OSMboxPost(msg_key,(void*)key);//发送消息
        OSTimeDlyHMSM(0,0,0,100);
//                 delay_ms(10);
        }
}

/*******************************DUT1任务*********************************/
void dut1_task(void *pdata)
{
        u32 key=0;
    u8 err;
        while(1)
        {
        key=(u32)OSMboxPend(msg_key,0,&err);
                switch(key)
                {
            case 0x01:
            {
                KM1=0;
                delay_ms(1000);
                KM13=0;
            }break;
            case 0x02:
            {
                KM13=1;
                delay_ms(800);
                KM1=1;
            }break;
        }
                OSTimeDlyHMSM(0,0,0,50);
//        delay_ms(10);
        }                                                                         
}
/*******************************DUT2任务*********************************/
void dut2_task(void *pdata)
{
        u32 key=0;
    u8 err;
        while(1)
        {
        key=(u32)OSMboxPend(msg_key,0,&err);
                switch(key)
                {
            case 0x03:
            {
                KM2=0;
                delay_ms(1000);
                KM14=0;
            }break;
            case 0x04:
            {
                KM14=1;
                delay_ms(800);
                KM2=1;
            }break;
        }
        OSTimeDlyHMSM(0,0,0,20);
//                delay_ms(10);
        }                                                                         
}
/*******************************DUT3任务*********************************/
void dut3_task(void *pdata)
{
        u32 key=0;
    u8 err;
        while(1)
        {
        key=(u32)OSMboxPend(msg_key,0,&err);  
                switch(key)
                {
            case 0x05:
            {
                KM3=0;
                delay_ms(1000);
                KM15=0;
            }break;
            case 0x06:
            {
                KM15=1;
                delay_ms(800);
                KM3=1;
            }break;
        }
        OSTimeDlyHMSM(0,0,0,10);
//                delay_ms(10);
        }                                                                         
}
///*******************************DUT4任务*********************************/
//void dut4_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x07:
//            {
//                KM4=0;
//                delay_ms(1000);
//                KM16=0;
//            }break;
//            case 0x08:
//            {
//                KM16=1;
//                delay_ms(800);
//                KM4=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT5任务*********************************/
//void dut5_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x09:
//            {
//                KM5=0;
//                delay_ms(1000);
//                KM17=0;
//            }break;
//            case 0x0a:
//            {
//                KM17=1;
//                delay_ms(800);
//                KM5=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT6任务*********************************/
//void dut6_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x0b:
//            {
//                KM6=0;
//                delay_ms(1000);
//                KM18=0;
//            }break;
//            case 0x0c:
//            {
//                KM18=1;
//                delay_ms(800);
//                KM6=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT7任务*********************************/
//void dut7_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x0d:
//            {
//                KM7=0;
//                delay_ms(1000);
//                KM19=0;
//            }break;
//            case 0x0e:
//            {
//                KM19=1;
//                delay_ms(800);
//                KM7=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT8任务*********************************/
//void dut8_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x0f:
//            {
//                KM8=0;
//                delay_ms(1000);
//                KM20=0;
//            }break;
//            case 0x10:
//            {
//                KM20=1;
//                delay_ms(800);
//                KM8=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT9任务*********************************/
//void dut9_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x11:
//            {
//                KM9=0;
//                delay_ms(1000);
//                KM21=0;
//            }break;
//            case 0x12:
//            {
//                KM21=1;
//                delay_ms(800);
//                KM9=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT10任务*********************************/
//void dut10_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x13:
//            {
//                KM10=0;
//                delay_ms(1000);
//                KM22=0;
//            }break;
//            case 0x14:
//            {
//                KM22=1;
//                delay_ms(800);
//                KM10=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT11任务*********************************/
//void dut11_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x15:
//            {
//                KM11=0;
//                delay_ms(1000);
//                KM23=0;
//            }break;[mw_shl_code=applescript,true]#ifndef OS_CFG_H
#define OS_CFG_H


                                       /* ---------------------- MISCELLANEOUS ----------------------- */
#define OS_APP_HOOKS_EN           0u   /* Application-defined hooks are called from the uC/OS-II hooks */
#define OS_ARG_CHK_EN             0u   /* Enable (1) or Disable (0) argument checking                  */
#define OS_CPU_HOOKS_EN           1u   /* uC/OS-II hooks are found in the processor port files         */

#define OS_DEBUG_EN               0u   /* Enable(1) debug variables                                    */

#define OS_EVENT_MULTI_EN         0u   /* Include code for OSEventPendMulti()                          */
#define OS_EVENT_NAME_EN          0u   /* Enable names for Sem, Mutex, Mbox and Q                      */

#define OS_LOWEST_PRIO           63u   /* Defines the lowest priority that can be assigned ...         */
                                       /* ... MUST NEVER be higher than 254!                           */

#define OS_MAX_EVENTS            20u   /* Max. number of event control blocks in your application      */
#define OS_MAX_FLAGS              5u   /* Max. number of Event Flag Groups    in your application      */
#define OS_MAX_MEM_PART           0u   /* Max. number of memory partitions                             */
#define OS_MAX_QS                 5u   /* Max. number of queue control blocks in your application      */
#define OS_MAX_TASKS             20u   /* Max. number of tasks in your application, MUST be >= 2       */

#define OS_SCHED_LOCK_EN          1u   /* Include code for OSSchedLock() and OSSchedUnlock()           */

#define OS_TICK_STEP_EN           1u   /* Enable tick stepping feature for uC/OS-View                  */
#define OS_TICKS_PER_SEC               500u   /* Set the number of ticks in one second                        */


                                       /* --------------------- TASK STACK SIZE ---------------------- */
#define OS_TASK_TMR_STK_SIZE    128u   /* Timer      task stack size (# of OS_STK wide entries)        */
#define OS_TASK_STAT_STK_SIZE   128u   /* Statistics task stack size (# of OS_STK wide entries)        */
#define OS_TASK_IDLE_STK_SIZE   128u   /* Idle       task stack size (# of OS_STK wide entries)        */

[/mw_shl_code]
//            case 0x16:
//            {
//                KM23=1;
//                delay_ms(800);
//                KM11=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************DUT12任务*********************************/
//void dut12_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x17:
//            {
//                KM12=0;
//                delay_ms(1000);
//                KM24=0;
//            }break;
//            case 0x18:
//            {
//                KM24=1;
//                delay_ms(800);
//                KM12=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************ALL1任务*********************************/
//void all1_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x19:
//            {
//                KM1=0;
//                KM2=0;
//                KM3=0;
//                KM4=0;
//                KM5=0;
//                KM6=0;
//                delay_ms(1000);
//                KM13=0;
//                KM14=0;
//                KM15=0;
//                KM16=0;
//                KM17=0;
//                KM18=0;
//            }break;
//            case 0x1a:
//            {
//                KM13=1;
//                KM14=1;
//                KM15=1;
//                KM16=1;
//                KM17=1;
//                KM18=1;
//                delay_ms(800);
//                KM1=1;
//                KM2=1;
//                KM3=1;
//                KM4=1;
//                KM5=1;
//                KM6=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}
///*******************************ALL1任务*********************************/
//void all2_task(void *pdata)
//{
//        u32 key=0;
//    u8 err;
//        while(1)
//        {
//        key=(u32)OSMboxPend(msg_key,10,&err);   
//                switch(key)
//                {
//            case 0x1b:
//            {
//                KM7=0;
//                KM8=0;
//                KM9=0;
//                KM10=0;
//                KM11=0;
//                KM12=0;
//                delay_ms(1000);
//                KM19=0;
//                KM20=0;
//                KM21=0;
//                KM22=0;
//                KM23=0;
//                KM24=0;
//            }break;
//            case 0x1c:
//            {
//                KM19=1;
//                KM20=1;
//                KM21=1;
//                KM22=1;
//                KM23=1;
//                KM24=1;
//                delay_ms(1000);
//                KM7=1;
//                KM8=1;
//                KM9=1;
//                KM10=1;
//                KM11=1;
//                KM12=1;
//            }break;
//        }
//                delay_ms(5);
//        }                                                                         
//}


[/mw_shl_code]

最佳答案

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

post 3次就可以了,或者建立3个不同的邮箱,这样3个任务都可以运行
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

32

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2897
金钱
2897
注册时间
2017-3-6
在线时间
395 小时
发表于 2018-5-7 14:42:51 | 显示全部楼层
post 3次就可以了,或者建立3个不同的邮箱,这样3个任务都可以运行
回复

使用道具 举报

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-3-20
在线时间
30 小时
发表于 2018-5-7 17:31:16 | 显示全部楼层
creat函数是有返回值的,先看下任务创建是不是都成功了
回复

使用道具 举报

8

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2014-1-7
在线时间
24 小时
 楼主| 发表于 2018-5-7 18:52:21 | 显示全部楼层
奔跑的流水灯 发表于 2018-5-7 17:31
creat函数是有返回值的,先看下任务创建是不是都成功了

确认是建成功了的,如果快速的顺序触发任务那么前3个任务都能工作,如果直接触发第3个任务就不可以正常触发第三个任务,前面优先级高的就能正常触发!
回复

使用道具 举报

1

主题

32

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2897
金钱
2897
注册时间
2017-3-6
在线时间
395 小时
发表于 2018-5-8 08:59:04 | 显示全部楼层
你确定你会使用邮箱, 一个任务里POST,三个任务里PEND,怎么可能三个任务都运行???
回复

使用道具 举报

8

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-9-7
在线时间
8 小时
发表于 2018-5-9 09:55:12 | 显示全部楼层
提供个思路(你的代码我没看哈。呵呵):有可能是某个任务出现bug(举个等价的例子:这个bug“好比”是一个while(1)死循环。)导致一直在这个任务里运行。而高优先级的任务在任务调度时可以运行,而低优先级任务就不可能运行了。这和你说的现象很像。先找到我说的“某个任务”,看看有没有这样的bug。
回复

使用道具 举报

8

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2014-1-7
在线时间
24 小时
 楼主| 发表于 2018-5-10 08:09:12 | 显示全部楼层
773208906 发表于 2018-5-8 08:59
你确定你会使用邮箱, 一个任务里POST,三个任务里PEND,怎么可能三个任务都运行???

像我这种多个任务都PEND同一个邮箱,想要根据邮箱传递的不同信息触发不同任务工作的情况该怎么操作?初次使用UCOSII对于邮箱的使用确实不太了解,希望大神指导一下,十分感谢……
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1350
金钱
1350
注册时间
2012-4-25
在线时间
195 小时
发表于 2018-5-10 16:59:24 | 显示全部楼层
叶落浮华 发表于 2018-5-10 08:09
像我这种多个任务都PEND同一个邮箱,想要根据邮箱传递的不同信息触发不同任务工作的情况该怎么操作?初次 ...

你为什么 不能,在一个PEnd里面处理 3种情况,,而是要在3个PEND里面处理
1-1
回复

使用道具 举报

8

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2014-1-7
在线时间
24 小时
 楼主| 发表于 2018-5-11 21:13:01 | 显示全部楼层
mygod 发表于 2018-5-10 16:59
你为什么 不能,在一个PEnd里面处理 3种情况,,而是要在3个PEND里面处理

是因为3个任务要能并行运行,每个任务要出发后要运行很久,如果用一个Pend的话只能3选一的运行了,这不是我想要的实时运行效果!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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