搜索
bottom↓
回复: 2

求助关于ATMegal16 的EEPROM的写入问题

[复制链接]

出0入0汤圆

发表于 2006-6-8 21:15:34 | 显示全部楼层 |阅读模式
我想用自己写的函数在ATMega16的EEPROM写入数据,发现怎么都写不进去,

开始读与写都不能成功,后来在读的时候我把地址加上0x4000后发现读取正常,

但是无论地址加不加0x4000,都不能写进去。 但是用AVR自带的 eeprom_write_byte( ,)函数一切都正常。



以下是我写EEPROM的code,在程序中没有写Flash的动作,我自能为严格按照spec写的了,研究了两天不得其门。而且我也用遍了网上大侠们提的方法,如中断法,但都不行。



void EEPROM_write(unsigned int uiAddress, unsigned char ucData)

{

        while(EECR & (1<<EEWE));  /* 等待上一次写操作结束 */

           cli(); // 关闭中断

        EEAR = uiAddress;        /* 设置地址和数据寄存器*/

        EEDR = ucData;

        EECR |= (1<<EEMWE);          /* 置位EEMWE */

        EECR |= (1<<EEWE);        /* 置位EEWE 以启动写操作*/

        while(EECR & (1<<EEWE));/等待

        sei();                   //开全局中断

}



请马老师或各位大侠指点一下,最好有现成的code可以给我直接参考,如果有AVR 库里面eeprom_write_byte( ,)的程序那更好了。

谢谢!



Andy Guo

My Email: Andy.Guo@benq.com

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2006-6-16 16:16:25 | 显示全部楼层
Codevision 的example中有eeprom读写的例子:

// EEPROM access example



// CodeVisionAVR C Compiler

// (C) 2000-2002 HP InfoTech S.R.L.

// www.hpinfotech.ro



// Chip: AT90S2313

// Memory Model: TINY

// Data Stack Size: 64 bytes



flash char f[]="This is a test";

#pragma warn-

eeprom char e[16];

#pragma warn+

char r[16];



void main (void)

{

char flash *ptr_to_flash;

char eeprom *ptr_to_eeprom;

char *ptr_to_ram;



// copy the string f from FLASH to

// the string e in EEPROM

ptr_to_flash=f;

ptr_to_eeprom=e;

while (*ptr_to_flash)

      *ptr_to_eeprom++=*ptr_to_flash++;



// copy the string e from EEPROM to

// the string r in RAM

ptr_to_eeprom=e;

ptr_to_ram=r;

while (*ptr_to_eeprom)

      *ptr_to_ram++=*ptr_to_eeprom++;



// stop here

while (1);

}



希望对你有所帮助,:)

出0入0汤圆

发表于 2011-3-20 20:28:58 | 显示全部楼层
我也出现了相同的问题哦, 我是用的atmega128A 16M,用datasheet提供的函数不可以写但可以读,用eeprom.h里面的函数既可以写又可以读,楼主知道什么问题不?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 02:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表