|
|||||||||||
| 技術(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 |
不解 |
| 作者:wangbo1211 欄目:單片機(jī) |
我現(xiàn)在用16F873,它的RAM是bank2影射到bank0,bank3影射到bank1,這樣如果一個(gè)變量ADDR,要在幾個(gè)bank里都用到, 可設(shè)變量如 ADDR EQU 70H,和ADDR EQU 0F0 就行了,但為什么編譯時(shí),出錯(cuò)提醒說ADDR定義重復(fù)呢?請(qǐng)指教,謝謝! 如下所示的定義對(duì)嗎?我看見書上也是如此定義的,對(duì)16F873和16F874而言,是哪兒搞錯(cuò)了嗎? RESULTH EQU 71H RESULTL EQU 72H W_TEMP EQU 73H STATUS_TEMP EQU 74H ADDR EQU 75H R0 EQU 76H R1 EQU 77H R2 EQU 78H X0 EQU 79H X0H EQU 7AH X0L EQU 7BH RESULTH EQU 0F1H ;這是在bank1中的定義,哪兒不對(duì),請(qǐng)指點(diǎn)謝謝 RESULTL EQU 0F2H W_TEMP EQU 0F3H STATUS_TEMP EQU 0F4H PCLATH_TEMP EQU 74H ADDR EQU 0F5H R0 EQU 0F6H R1 EQU 0F7H R2 EQU 0F8H X0 EQU 0F9H X0H EQU 0FAH X0L EQU 0FBH |
| 2樓: | >>參與討論 |
| 作者: daiguoyuan 于 2003/10/28 17:02:00 發(fā)布:
你定義一個(gè)就可以 你定義一個(gè)就可以了,對(duì)于16F873你只需定義在BANK0或BANK1就行.好好看書! |
|
| 3樓: | >>參與討論 |
| 作者: wangbo1211 于 2003/10/28 20:52:00 發(fā)布:
re 不行啊,我是說的16F873啊,仁兄,不是16F877,873的bank0和bank1 跟本沒有影射關(guān)系啊,不過我的定義是重復(fù)的也是不對(duì)的, 給點(diǎn)建議,謝謝 |
|
| 4樓: | >>參與討論 |
| 作者: bolofeng 于 2003/11/1 9:48:00 發(fā)布:
wangbol1211 I 服了 you 你把同一個(gè)變量名ADDR定義兩次不出問題才怪呢? 如果哪本書是這樣做的,要么是印刷錯(cuò)誤,要么作者是傻子。 873/874的RAM體是兩個(gè)獨(dú)立的沒錯(cuò)。 你把STATUS_TEMP 定義在 74H,把 f4H 空著就行,別讓其他東東占著它就是了。 不是叫你把STATUS_TEMP 定義兩次。 |
|
| 5樓: | >>參與討論 |
| 作者: bolofeng 于 2003/11/1 9:57:00 發(fā)布:
補(bǔ)充 如果為了中斷,對(duì)873/874而言,WREG_TEMP equ 0x7f,那么把 0xff 空著就行. 其他寄存器只需定義一次。上面說的STATUS_TEMP不需要這樣。 |
|
| 6樓: | >>參與討論 |
| 作者: eling 于 2003/11/1 15:01:00 發(fā)布:
建議還是找本中文的看一下 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |