|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
麻煩高手幫我分析一下Microblaze的一段小程序! |
| 作者:kir007 欄目:EDA技術(shù) |
這是一段Microblaze的程序,其功能是對8個LED進(jìn)行控制,引腳我已經(jīng)鎖定好了; 可是程序下載以后,并沒有預(yù)料的結(jié)果; 我想問的是: 1.XGpio_mSetDataReg(BaseAddress, 1, 0x55); 這個函數(shù)中BaseAddress是LED的基地址, 1表示通道,0x55表示寫給輸出端口的數(shù)據(jù); 那么這個通道是怎么確定,我如何知道這個我所約定的那些引腳 正好對準(zhǔn)這個通道呢? 2.我下載以后為什么就是沒有預(yù)料的結(jié)果呢? 3.Microblaze應(yīng)該使用什么復(fù)位電平呢? 麻煩各位知情的幫我分析一下!謝謝! void WriteToGPOutput(Xuint32 BaseAddress, int gpio_width) { int i=0; volatile int delay=0; XGpio_mSetDataDirection(BaseAddress, 1, 0x00000000); /* Set as outputs */ while (1) { for(i=0; i<(gpio_width-1); i++) { XGpio_mSetDataReg(BaseAddress, 1, 0x55); for (delay=0; delay<1000000; delay++); } for(i=0; i<(gpio_width-1); i++) { XGpio_mSetDataReg(BaseAddress, 1, 0x55); for (delay=0; delay<1000000; delay++); } } } int main (void) { WriteToGPOutput(XPAR_LEDS_BASEADDR, 8); return 0; } |
| 2樓: | >>參與討論 |
| 作者: picklas 于 2005/9/12 10:36:00 發(fā)布:
re 你的程序沒有什么大問題,在XPS設(shè)計的硬件產(chǎn)生的時候(使用BSB)不是有一個專門的測試GPIO得文件么?用那個試一試把。估計是你的硬件結(jié)構(gòu)不合適,也可能是你的UCF不合適,再就是再使用GPIO之前最好初始化一下。 你可以看一下GPIO得輸出PORT有兩組,分別對應(yīng)的是0,1兩個通道,建議單向輸出時使用gpio_D_out管教(不經(jīng)過三態(tài))。 microblaze得復(fù)位一般是通過reset_block實(shí)現(xiàn)的,復(fù)位電平可設(shè)。 |
|
| 3樓: | >>參與討論 |
| 作者: goalyoung 于 2005/12/16 18:22:00 發(fā)布:
樓上說得在理 本人已經(jīng)用GPIO跑起來了,設(shè)置基本與樓上同 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |