音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請(qǐng)問關(guān)于µC/OS-II郵箱的問題

作者:小指 欄目:ARM技術(shù)
請(qǐng)問關(guān)于ΜC/OS-II郵箱的問題
我一共建立了兩個(gè)任務(wù)和兩個(gè)郵箱
兩個(gè)任務(wù)之間通過兩個(gè)郵箱來進(jìn)行互相的信息傳遞
兩個(gè)任務(wù)都是用OSMboxPost函數(shù)來向郵箱中發(fā)送消息
用OSMboxPend函數(shù)來等待郵箱中的消息
但是現(xiàn)在的問題是即使不向郵箱中發(fā)送任何消息
著兩個(gè)任務(wù)還是在執(zhí)行
請(qǐng)問這是什么原因阿


2樓: >>參與討論
zlgARM
郵件等待是否超時(shí)呢,還是無限期等待郵件?
 
3樓: >>參與討論
greatbin
把代碼貼出來看看
 
4樓: >>參與討論
hhyhc
檢查郵箱是否創(chuàng)建成功
 
5樓: >>參與討論
xuanysg
是否創(chuàng)建油箱的時(shí)候就對(duì)MSG賦值了阿
 
6樓: >>參與討論
hhyhc
>
      例:
      Uart0WrMbox= OSMboxCreate(NULL);                           
      if (Uart0WrMbox == NULL) { while (1); }

     如果Uart0WrMbox == NULL則說明沒有可用的事件控制塊

7樓: >>參與討論
小指
關(guān)于郵箱問題的代碼和說明
主程序代碼如下
一共有兩個(gè)任務(wù)
都是死循環(huán)反復(fù)運(yùn)行
相互之間通過兩個(gè)郵箱來聯(lián)系
在OC—CFG中已經(jīng)設(shè)置了與郵箱有關(guān)的參數(shù)
郵箱現(xiàn)在設(shè)置的時(shí)無限期等待
但改成超時(shí)后也沒有反應(yīng)
對(duì)兩個(gè)任務(wù)的優(yōu)先級(jí)進(jìn)行修改后也是一樣
但是現(xiàn)在在屏蔽了向郵箱發(fā)送消息的程序之后(見代碼)
著兩個(gè)任務(wù)卻還在不斷運(yùn)行
另外在加了hhyhc 所給的檢查郵箱的函數(shù)后也是一樣
郵箱的建立可能是沒有問題的
由于本人是初學(xué)嵌入式和uc/os
很多東西都不是很明白
書上又沒有網(wǎng)上也沒有找到什么可以參考的資料
所以希望各位大蝦指教



OS_STK TaskStk[64];   /*任務(wù)堆棧»*/
OS_STK TaskStk1[64];
OS_EVENT *pTask1MailBox;
OS_EVENT *pTask2MailBox;  /*郵箱*/
void LedTask1(void *data);
void LedTask2(void *data);
unsigned CHAR num=0;
/************************************************************************************************************/

void  TaskStart(void *data);
void  Task(void *data);
int main (void)
    {
         OSInit();
    pTask1MailBox = OSMboxCreate(NULL);
    pTask2MailBox = OSMboxCreate(0);
         OSTaskCreate(LedTask1,(void*)0,(void*)&TaskStk,3);
         OSTaskCreate(LedTask2,(void*)0,(void*)&TaskStk1,2);
         OSStart();
    }


/****************************************************************************************************************/
void LedTask1(void *pdata)
    {
    INT8U count=1;
    INT8U *counter;    
    INT8U error;
         pdata = pdata;                  

        TargetInit();                                                   /* 初始化*/
    IODIR &= ~KEY1;                                                    /* 設(shè)置鍵盤*/
    IOSET = BEE;
    IODIR |= BEE1;                                                /* 設(shè)置輸出信號(hào)*/
    PINSEL0 = (PINSEL0 & 0xc0ff3fff);                               /* ¹Ü½ÌÑ¡ÔñÄ£¿é³õʼ»¯ */
       while(1)
                {
           for(count=0;count<3;count++)
            {
  //             OSMboxPost(pTask1MailBox,(void*)&count);
                IOCLR = BEE;
              OSTimeDlyHMSM(0,0,0,500);
              IOSET = BEE;
              OSTimeDlyHMSM(0,0,0,500);               
            }
        OSMboxPend(pTask2MailBox,0,&error);
        IOCLR = BEE;
        OSTimeDlyHMSM(0,0,2,500);
        IOSET = BEE;
        OSTimeDlyHMSM(0,0,1,500);
        }
    }
void LedTask2(void *data)
    {
    INT8U *counte;
    INT8U countt=1;
    INT8U err;
    data=data;
    while(1)
        {
    OSMboxPend(pTask1MailBox,0,&err);
        OSTimeDlyHMSM(0,0,0,500);
           IOCLR = BEE2;
         OSTimeDlyHMSM(0,0,2,500);
    IOSET = BEE2;
        
        OSTimeDlyHMSM(0,0,0,500);
//        OSMboxPost(pTask2MailBox,(void*)&countt);
//OSTaskSuspend(OS_PRIO_SELF);
        }
    } 

8樓: >>參與討論
hhyhc
在用戶程序中不能夠使用的優(yōu)先級(jí)有:
0,1,2,3,OS_LOWEST_PRIO-3,OS_LOWEST_PRIO-2,OS_LOWEST_PRIO-1,
你看看關(guān)于Ucosii的書就知道了

9樓: >>參與討論
小指
我后來調(diào)整了優(yōu)先級(jí)還是不行阿
我將優(yōu)先級(jí)改為8 和10  最低優(yōu)先級(jí)設(shè)為了17
事件控制塊最多可有8個(gè)
還是不行阿


10樓: >>參與討論
hhyhc
你的OS_STK_GROWTH為0嗎,
如果為1,則(void*)&TaskStk應(yīng)為(void*)&TaskStk[63],按你的寫法OS_STK_GROWTH為0

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
IIC的怪現(xiàn)象
Electronic News---philips ARM9:
關(guān)于2200中8019的地址問題
怎樣區(qū)分是字節(jié)寫還是頁寫????
2200川口中間件,為什么不能連續(xù)輸出>16個(gè)字符?
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)