打印
[PIC®/AVR®/dsPIC®产品]

请教pic18f4620单片机数据写入内部EEPROM的问题

[复制链接]
875|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我写了一个把一个字节写入到内部EEPROM的程序,但是我硬件仿真的时候,内部EEPROM相应的地址上不显示我写入的字节,但是我用软件仿真的时候,内部EEPROM相应的地址上就显示我写入的字节,请教大家是怎么一回事,在此谢谢大家了,部分程序如下
  EEADRH = 0x00;         //EEPROM 地址的高位
    EEADR = 0x00;         //EEPROM 地址的底位
    EEDATA = 0x18;         //要写入的数据
    EECON1bits.EEPGD = 0;   //访问EEPROM存储器
    EECON1bits.CFGS = 0;    //访问闪存程序存储器或者EEPROM存储器
    EECON1bits.WREN = 1;    //允许对闪存程序器或者EEPROM存储器写周期
    INTCONbits.GIE = 0;     //禁止中断
    EECON2 = 0x55;          //必须的序列
    EECON2 = 0xAA;          //必须的序列
    EECON1bits.WR = 1;      //启动写周期
    INTCONbits.GIE = 1;     //使能中断
    while(!PIR2bits.EEIF);  //写完成后,EEPROM中断标志位EEIF被置1
    PIR2bits.EEIF = 0;      //EEIF必须用软件清0
    EECON1bits.WREN = 0;

使用特权

评论回复
评论
宸心尽向紫烟来 2019-9-3 11:06 回复TA
我想问问大家和配置位的某项设置有关吗? 
沙发
meeagle| | 2019-9-2 23:44 | 只看该作者
写完查询下,不对就再写

使用特权

评论回复
评论
meeagle 2019-9-3 18:12 回复TA
@宸心尽向紫烟来 :写完马上再读那个位,然后和你要写的比较一下是不是一样 
宸心尽向紫烟来 2019-9-3 08:54 回复TA
谢谢,那请教一下我该如何查询写没写进去呢 
板凳
宸心尽向紫烟来|  楼主 | 2019-9-3 11:39 | 只看该作者
有没有大神帮帮我,我这指令完全是按照数据手册上写的,应该是无误的,可就是用kit3硬件调试时,EEPROM相应的地址没有数据显示,请大家把所有想到的原因给我说有喜爱,小弟在此感激不尽

使用特权

评论回复
地板
北极风| | 2019-9-3 14:19 | 只看该作者
硬件仿真时都EEPROM好像滞后很多。想要知道写入的对不对,写后在读出来看看。

使用特权

评论回复
评论
宸心尽向紫烟来 2019-9-3 15:30 回复TA
好的,谢谢,有时间试试 
5
CoolSilicon| | 2019-9-4 09:35 | 只看该作者
注意EEPROM有个写入时间, 你可以看DataSheet电气特性eeprom章节, 大概5ms的样子...

使用特权

评论回复
评论
宸心尽向紫烟来 2019-9-16 19:43 回复TA
我明白了,谢谢你 
6
cdyyabc| | 2019-9-11 11:59 | 只看该作者
硬件仿真,IDE的EEPROM窗口并不会实时更新的,只能把芯片read回来,才会刷新

使用特权

评论回复
评论
宸心尽向紫烟来 2019-9-16 19:42 回复TA
好了,谢谢你 
7
奔波儿熊| | 2019-9-11 14:24 | 只看该作者
EE Data Memory 不会自己刷新,需要点击该窗口左上的Read, 才能显示出来.(注: 如果是在debug模式下, Read按钮是灰色的,说明这个器件不支持Debug-Reads, 那就退出debug模式,让MCU自己运行,然后点击Read按钮)

使用特权

评论回复
评论
宸心尽向紫烟来 2019-9-16 19:41 回复TA
可以了,太感谢你了,你对我的帮助太大了,谢谢您 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

87

帖子

0

粉丝