|
|||||||||||
| 技術(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 |
MCU硬件復(fù)位對(duì)RAM沒有影響的問題。(不掉電的情況下) |
| 作者:happystar 欄目:單片機(jī) |
我工作中片子通過人機(jī)設(shè)置后把參數(shù)設(shè)置好,需要按復(fù)位鍵來把數(shù)據(jù)寫入EEPROM里。我查資料看硬件復(fù)位后只是堆棧有影響,而RAM不變。其它的也沒有說詳細(xì)些。我看了有點(diǎn)糊涂,我想問問硬件復(fù)位和上電的區(qū)別,謝謝。 |
| 2樓: | >>參與討論 |
| 作者: NE5532 于 2006/12/20 18:48:00 發(fā)布:
復(fù)位本身不影響。但是C語言的啟動(dòng)文件要清RAM |
|
| 3樓: | >>參與討論 |
| 作者: happystar 于 2006/12/20 20:10:00 發(fā)布:
謝謝2樓 那樓上的意思是我復(fù)位后,RAM里的數(shù)都已經(jīng)被清成隨機(jī)數(shù)了。那書上我RAM不變是怎么解釋呢?比如我把設(shè)置好的數(shù)放在全局變量里,一復(fù)位那么這里邊的數(shù)已經(jīng)改變拉。是這樣的嗎? |
|
| 4樓: | >>參與討論 |
| 作者: NE5532 于 2006/12/20 20:18:00 發(fā)布:
我好像謝的是“不影響”吧 就是說復(fù)位后內(nèi)存里的數(shù)據(jù)本身是不會(huì)變的(前提是供電沒有中斷過),但是如果用C語言開發(fā),C語言的啟動(dòng)文件會(huì)把內(nèi)存全部清空為0x00(不排除有寫0xFF的) |
|
| 5樓: | >>參與討論 |
| 作者: happystar 于 2006/12/20 20:27:00 發(fā)布:
對(duì)對(duì),樓上真細(xì)心。 是寫的“不影響”,嘿嘿,那我理解意思就是數(shù)據(jù)不改變拉。我用C寫的,可是既然RAM清0,而全局變量也動(dòng)態(tài)給分配地址,為什么不影響呢?謝謝 |
|
| 6樓: | >>參與討論 |
| 作者: AIRWILL 于 2006/12/20 20:33:00 發(fā)布:
如果要讓數(shù)據(jù)不改變 對(duì)于 C. 可以修改 啟動(dòng)文件, 比如 KEIL C 的 startup.a51 當(dāng)然有的可能沒有單獨(dú)的啟動(dòng)文件. |
|
| 7樓: | >>參與討論 |
| 作者: happystar 于 2006/12/20 20:38:00 發(fā)布:
好的,謝謝各位 我決定不用這種方法拉,再想想別的思路/ |
|
| 8樓: | >>參與討論 |
| 作者: hotpower 于 2006/12/21 0:34:00 發(fā)布:
按復(fù)位鍵來把數(shù)據(jù)寫入EEPROM里不難 首先要使RAM不初始化. 其次要設(shè)置個(gè)"掉電標(biāo)志"0x55aa. 再者要在EEPROM里設(shè)置"出廠標(biāo)志"0x55aa. 首次上電時(shí),RAM一般為隨機(jī)數(shù)肯定(不是絕對(duì),但可保證萬無一失)不為0x55aa. 初始化完成后再寫入0x55aa. 即不為0x55a,則為上電復(fù)位,否則可以斷定為手動(dòng)復(fù)位.(即實(shí)現(xiàn)用復(fù)位鍵做一般鍵盤的功能) 至于EEPROM,若"出廠標(biāo)志"不為0x55aa,則整片初始化. 否則進(jìn)行"按復(fù)位鍵來把數(shù)據(jù)寫入EEPROM里" * - 本貼最后修改時(shí)間:2006-12-21 0:38:17 修改者:hotpower |
|
| 9樓: | >>參與討論 |
| 作者: happystar 于 2006/12/21 17:15:00 發(fā)布:
謝謝hotpower 我采用了令一種方法已經(jīng)解決了這個(gè)問題了:上電后把讀出來的數(shù)存入臨時(shí)單元,當(dāng)進(jìn)入設(shè)置并完成后則調(diào)用寫函數(shù)把新數(shù)據(jù)寫入其中,然后延時(shí)等待用戶按復(fù)位鍵,如果時(shí)間到?jīng)]有按鍵則把舊數(shù)據(jù)再次寫入EEP里。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |