|
|||||||||||
| 技術(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 |
M8的E2ROM |
| 作者:binglin18 欄目:單片機(jī) |
我使用M8的內(nèi)部E2ROM,為何數(shù)據(jù)會(huì)丟失??有哪位能指點(diǎn)一下手莖? void EEPROM_write(unsigned int uiAddress, unsigned CHAR ucData) { /* 等待上一次寫操作結(jié)束 */ while(EECR & (1<<EEWE)); TIMSK &=0xfe; /* 設(shè)置地址和數(shù)據(jù)寄存器*/ EEAR = uiAddress; EEDR = ucData; /* 置位EEMWE */ EECR |= (1<<EEMWE); /* 置位EEWE 以啟動(dòng)寫操作*/ EECR |= (1<<EEWE); while(EECR & (1<<EEWE)); EECR &= ~(1<<EEWE); TIMSK |=1; } unsigned CHAR EEPROM_read(unsigned int uiAddress) { /* 等待上一次寫操作結(jié)束 */ while(EECR & (1<<EEWE)); /* 設(shè)置地址寄存器*/ TIMSK &=0xfe; EEAR = uiAddress; /* 設(shè)置EERE 以啟動(dòng)讀操作*/ EECR |= (1<<EERE); /* 自數(shù)據(jù)寄存器返回?cái)?shù)據(jù) */ TIMSK |=1; return EEDR; } |
| 2樓: | >>參與討論 |
| 作者: 十步殺一人 于 2006/4/22 23:35:00 發(fā)布:
有一種說(shuō)法是 關(guān)中斷,不使用前幾個(gè)字節(jié) |
|
| 3樓: | >>參與討論 |
| 作者: dcp 于 2006/4/23 19:44:00 發(fā)布:
打開BOD |
|
| 4樓: | >>參與討論 |
| 作者: 鎮(zhèn)關(guān)西 于 2006/4/24 9:55:00 發(fā)布:
12343 每一次重新燒錄程序e2rom的數(shù)據(jù)都會(huì)不見的 還有如果沒(méi)有任何程序保護(hù)措施 經(jīng)常的上電都會(huì)誤寫 |
|
| 5樓: | >>參與討論 |
| 作者: zhmd1 于 2006/4/26 14:22:00 發(fā)布:
我的也是, 我在用MEGA8時(shí)遇到下列問(wèn)題,E2PROM中的數(shù)據(jù)經(jīng)常丟失.數(shù)據(jù)有10個(gè)字節(jié) 不知道為什么.下面是程序.同時(shí)在上電初始化時(shí),延時(shí)了30ms后讀E2PROM的. re2p: nop ;E2PROM的數(shù)據(jù)讀出 wait: sbic eecr,1 ;查詢EEWE位,看是否為0,為1表示寫操作正在進(jìn)行中 rjmp wait out eearh,num_bufferh out eearl,num_bufferl in TEMPh,sreg cli sbi eecr,0 in TEMP,eedr out sreg,TEMPh ret we2p: nop ;數(shù)據(jù)寫入E2PROM wait1: sbic eecr,1 ;查詢EEWE位,看是否為0,為1表示寫操作正在進(jìn)行中 rjmp wait1 out eearh,num_bufferh out eearl,num_bufferl out eedr,TEMP in TEMPh,sreg cli sbi eecr,2 sbi eecr,1 nop out sreg,TEMPh nop ret |
|
| 6樓: | >>參與討論 |
| 作者: zhmd1 于 2006/4/27 13:37:00 發(fā)布:
BOD打開了,還丟失 BOD打開了還有,不知道是不是4ms的寫過(guò)程都要關(guān)中斷 |
|
| 7樓: | >>參與討論 |
| 作者: kanprin 于 2006/4/27 16:51:00 發(fā)布:
在手冊(cè)上是說(shuō)在寫數(shù)據(jù)的時(shí)候,要保證中斷不會(huì)在其間發(fā)生。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |