搜索
bottom↓
回复: 6

帮我看看有什么问题

[复制链接]

出0入0汤圆

发表于 2010-7-23 11:05:04 | 显示全部楼层 |阅读模式
void writeByteEeprom(unsigned char add, unsigned char data)
{
        EEADR = add;
        EEDATA = data;
        EECON1bits.WREN = 1;
        INTCONbits.GIE = 0;//关闭所有中断
        EECON2 = 0x55;
        EECON2 = 0xaa;
        EECON1bits.WR = 1;
        while(1 == EECON1bits.WR);//等待写入完毕
        INTCONbits.GIE = 1;//打开所有中断
        EECON1bits.WREN = 0;
}


写单个字节的E2,我写进去之后,比如我写00地址,结果04地址也写进去相同的了.
哪位大虾帮我看看什么问题?

出0入0汤圆

 楼主| 发表于 2010-7-23 11:13:32 | 显示全部楼层
写比如我要是写04,结果00也跟着改了~~
真崩溃了~

出0入0汤圆

发表于 2010-7-23 11:27:11 | 显示全部楼层
还没遇到过这种情况,你是怎么知道“写单个字节的E2,我写进去之后,比如我写00地址,结果04地址也写进去相同的了”?仿真还是读出来的结果?

出0入0汤圆

 楼主| 发表于 2010-7-23 11:46:40 | 显示全部楼层
我把E2读出来了啊~发现04也变成跟01一样的了!

出0入0汤圆

发表于 2010-7-23 13:12:09 | 显示全部楼层
如果不是读程序出错, 那就是单片机EEPROM坏了, 确保读程序没问题吗?

出0入0汤圆

 楼主| 发表于 2010-7-23 13:30:13 | 显示全部楼层
不会吧??读的好像是好使~~我再试试看!

出0入0汤圆

发表于 2010-7-23 13:33:33 | 显示全部楼层
回复【楼主位】ddwl99
-----------------------------------------------------------------------

uchar Rd_EeProm(uchar Rd_EeAddr)
{
        EEADR = Rd_EeAddr;
        RD=1;
        return EEDATA;
}
void Wr_EeProm(uchar Wr_EeAdd,uchar Wr_EeData)
{
        do
        ;
        while(WR == 1);    //等待上次数据写完
        EEADR = Wr_EeAdd;
        EEDATA = Wr_EeData;
        EEPGD = 0;        //指向数据区
        WREN = 1;
        GIE = 0;
        EECON2 = 0x55;
        EECON2 = 0xaa;
        WR = 1;
        WREN = 0;
        GIE = 1;
}

记得写完最后一个字节如果马上读的话,加上:
do
;
while(WR == 1);    //等待上次数据写完
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-8 18:28

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

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