[PIC®/AVR®/dsPIC®产品] 用PICkit3怎么操作来先写其内部EEPROM

[复制链接]
 楼主| dgdz2c 发表于 2013-8-1 15:57 | 显示全部楼层 |阅读模式
要求EEPROM先保存一些参数,上电后再读出这些参数。
目前手上只有PICkit3,点击Debugger\Clear Memory\EEPORM,可以打开EEPROM的内容,修改其值后,但不知道怎么烧录到芯片里面去。点击编程后,再点Debugger\Clear Memory\EEPORM,就打不开EEPORM界面了?!(点了没反应,重启MAPLAB也没有用)。
要实现EEPROM先保存数据,一定要用专用的烧录器才可以吗?
cdjzzzz 发表于 2013-8-1 16:19 | 显示全部楼层
楼主,我是在VIEW->EEPROM,里面直接更改,然后直接点击编程,就更改EEPROM了.
 楼主| dgdz2c 发表于 2013-8-1 17:17 | 显示全部楼层
cdjzzzz 发表于 2013-8-1 16:19
楼主,我是在VIEW->EEPROM,里面直接更改,然后直接点击编程,就更改EEPROM了.

cdjzzzz,按你的方法可行,谢谢啦。
但是有一个问题:00这个地址不能写为0,写为1?!有如下提示:
Programming...The following memory regions failed to program correctly:EEData MemoryAddress: 00000000 Expected Value: 00000001 Received Value: 000000ffProgramming failed
试过其它值,除了FF,其它都不能写入,00这个地址不能用这种方式操作?(但是在程序内部可以写00这个地址为任意数据)
其它地址可以设置为任意数据。
yewuyi 发表于 2013-8-2 11:43 | 显示全部楼层
从来都是在CODE中直接预置值到EEPROM,还真没有手工填数值到EEPROM缓冲区后再写操作。

如果你反映的问题为真,也可能是工具的一个小BUG把。
shangwangmj 发表于 2013-8-3 21:40 | 显示全部楼层
yewuyi 发表于 2013-8-2 11:43
从来都是在CODE中直接预置值到EEPROM,还真没有手工填数值到EEPROM缓冲区后再写操作。

如果你反映的问题为 ...

MOVLW XXH
MOVWF EEDATA
BSF EECON1,WREN
BCF INTCON,GIE
BTFSC INTCON,GIE
GOTO $-2
MOVLW 55H
MOVWF EECON2
MOVLW 0AAH
MOVWF EECON2
BSF EECON1,WR

您说的在CODE中直接预置EEPROM是照这样写进去吗?还是有更便捷的办法?
yewuyi 发表于 2013-8-3 21:43 | 显示全部楼层
shangwangmj 发表于 2013-8-3 21:40
MOVLW XXH
MOVWF EEDATA
BSF EECON1,WREN

在C语言中,使用__EEPROM()这个宏。

每个__EEPROM()里面可以写8字节的数,可以写多行,从EEPROM的0X00地址开始一直向下自动排下去。

自己BAIDU这个__EEPROM用法。
moiska 发表于 2013-9-11 00:33 | 显示全部楼层
de 伪指令不行?
htx518 发表于 2013-9-30 13:25 | 显示全部楼层
__EEPROM_DATA(0,1,2,3,4,5,6,7);__EEPROM_DATA(8,9,10,11,12,13,14,16);随便你写,依次增加可以预置256个EEPROM单位。__EEPROM_DATA(0x00,0xff,0xfd,0xed,0xab,0xfc,0x00,0x01);
htx518 发表于 2013-10-23 16:16 | 显示全部楼层
对使用宏定义很方便的,__EEPROM_DATA(0xff,0xfd,2,3,4,5,6,7);等等都可以的,但这个一次只能写8个字节,如果多的话依次往下继续上面这个宏定义就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

61

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部