|
|||||||||||
| 技術(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 |
W78E58B的輔助256字節(jié)RAM和movx指令一起使用時(shí)會(huì)沖突嗎? |
| 作者:xymxym 欄目:單片機(jī) |
單片機(jī)用W78E58B,P0和P2全地址的外擴(kuò)了29C040A.html">AT29C040A,在單獨(dú)使用78E58B的輔助RAM時(shí)完全正常,但當(dāng)將該RAM中數(shù)據(jù)寫入到29C040A.html">AT29C040A時(shí)全為FF,程序如下: #define XBYTE(addr) (*(uchar xdata *)(addr)) void FlashWrite(uint idata Sector,uint idata Address,uchar idata *wp,uint idata Count) { uint data i; FlashProtect(0xA0); SelectSegment(Sector/256);//除了P0和P2,P1.0,P1.1,P1.2也是29C040 Sector = Sector<<=8; //的地址線 for(i=0;i<Count;i++) { Address |= Sector; XBYTE(Address++)=*wp; wp++; } Delay1ms(10); } XBYTE(Address)反匯編后是movx @dptr,*wp指向78E58B的輔助RAM,而對(duì)該RAM的匯編指令是movx @Ri,文檔上說明在使用輔助RAM時(shí)不會(huì)影響P0,P2,WD,RD 但現(xiàn)在事實(shí)是如上程序中同時(shí)使用時(shí)寫到29C040A為FF,當(dāng)讓wp指向idata數(shù)組時(shí)就OK了,真是暈死了,哪位知道這是怎么回事?謝謝! * - 本貼最后修改時(shí)間:2005-12-29 21:40:48 修改者:xymxym |
| 2樓: | >>參與討論 |
| 作者: xymxym 于 2005/12/30 14:10:00 發(fā)布:
搞定了 原來78E58B另外的256字節(jié)AUX_RAM也占用了外部地址,如果打開了AUX_RAM,而又要在外擴(kuò)展存儲(chǔ)芯片,外部地址的0-FF和AUX_RAM是重疊的,是不能用的!只能從0x0100開始!感謝華邦技術(shù)人員的解答! :) |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |