|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
请教关于AVR单片机EEPROM掉电数据丢失的问题! |
作者:gsjdan 栏目:单片机 |
请教各位用过AVR单片机的兄弟,我用MEGA103或MEGA128的时候,向EPORM中的某一地址写入一值,然后读出来,显示是正确的,但是我将机重新加电后,好象EEPROM中的数值就丢失,读出的数值为0xFF;我用过ICCAVR读写EEPROM的函数和对EEPROM中的寄存器写数和读数,都出现上面的问题,好象掉电后EEPROM中的数值就丢失似的.EEPROM肯定没有坏,我用的是新的MEGA103. 谢谢!! #include <iom103v.h> #include <macros.h> #include <eeprom.h> void port_init(void) { PORTA = 0xFF; DDRA = 0xFF; PORTB = 0xFF; DDRB = 0xFF; PORTC = 0xFF; PORTD = 0xFF; DDRD = 0xFF; PORTE = 0xFF; DDRE = 0xFF; } void init_devices(void) { CLI(); //disable all interrupts XDIV = 0x00; //XTAL divider port_init(); MCUCR = 0x00; EICR = 0x00; //external interrupts sources EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialised } // void main(void) { unsigned CHAR TEMP=0xAA,i; init_devices(); EEPROMwrite(0x20,TEMP); i=EEPROMread(0x20); PORTA=i; } |
2楼: | >>参与讨论 |
作者: gsjdan 于 2004/3/16 14:54:00 发布:
问题已解决,需要写标志位!谢谢大家! |
3楼: | >>参与讨论 |
作者: jsjsfm 于 2006/6/7 15:14:00 发布:
请问一下,需要写哪个标志位? 如题! 谢谢! |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |