|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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)幫我看看吧。 |
| 作者:john1225cn 欄目:ARM技術(shù) |
#include "config.h" ////////////////////////////////////////////////////////// OS_STK ScanInputStk[128]; OS_STK MovetoStk[128]; int run[2]; //////////////////////////////////////////////////////////////////// void ScanInput(void *pdata); void Moveto(void *pdata); void DelayMS(uint32 dly) { uint8 i; for(; dly>0; dly--) for(i=0; i<100; i++); } /////////////////////////////////////////////////////////////////// int main(void) { OSInit(); OSTaskCreate(ScanInput,(void *)0,&ScanInputStk[128-1],7); OSStart(); } /////////////////////////////////////////////////////////////////////// void ScanInput(void *pdata) { volatile uint8 key; uint8 err; pdata=pdata; TargetInit(); OSTaskCreate(Moveto,(void *)0,&MovetoStk[128-1],5); for(;;) { for(key=0;key<=0x07;key++) { ZLG7290ShowChar(key,key); DelayMS(200);} } } } void Moveto(void *pdata) { uint8 *err; int *step; pdata=pdata; while(1) { OSSemPend(XMotorSem,0,err); OSSemPend(YMotorSem,0,err); step=(int *)OSMboxPend(MoveMbox,0,err); ////////////////在這里任務(wù)應(yīng)該被掛起的,可是調(diào)試的時(shí)候發(fā)現(xiàn),任務(wù)一直在運(yùn)行,沒有被掛起,我仔細(xì)看了也不明白,請(qǐng)指導(dǎo)一下。謝謝。 if(step[0]>0) //move +x { PWMPCR=PWMPCR|0x0400; T1MR0=(uint32)step[0]-1; } else if(step[0]<0) { PWMPCR=PWMPCR|0x0400; T1MR0=(uint32)-(step[0]+1); } if(step[1]>0) { PWMPCR=PWMPCR|0x1000; T1MR0=(uint32)step[1]-1; } else if(step[1]<0) { PWMPCR=PWMPCR|0x1000; T1MR0=(uint32)-(step[1]+1); } OS_ENTER_CRITICAL(); PWMTCR=0X09; T1TCR=1; OS_EXIT_CRITICAL(); } } |
| 2樓: | >>參與討論 |
| 作者: zlgARM 于 2005/3/9 8:19:00 發(fā)布:
您使用的郵箱和信號(hào)量在哪里建立的? 建議在"step=(int *)OSMboxPend(MoveMbox,0,err);"下一句建立一個(gè)斷點(diǎn),觀察收到了什么郵件,還是因?yàn)殄e(cuò)誤退出了等待。 |
|
| 3樓: | >>參與討論 |
| 作者: john1225cn 于 2005/3/9 9:59:00 發(fā)布:
問題 郵箱和信號(hào)量建立在TargetInit();中建立的。。 并且我跟蹤發(fā)現(xiàn)都是建立成功的,但是在step=(int *)OSMboxPend(MoveMbox,0,err);內(nèi)我發(fā)現(xiàn)傳給pevent的值變成了0,而不是郵箱的地址。我很奇怪這是什么原因?? |
|
| 4樓: | >>參與討論 |
| 作者: john1225cn 于 2005/3/9 10:50:00 發(fā)布:
熱 我以搞定了,是在變量定義中出了問題,F(xiàn)在一切ok 了 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |