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

用PICkit3怎么操作来先写其内部EEPROM

[复制链接]
5353|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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把。

使用特权

评论回复
5
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是照这样写进去吗?还是有更便捷的办法?

使用特权

评论回复
6
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用法。

使用特权

评论回复
7
moiska| | 2013-9-11 00:33 | 只看该作者
de 伪指令不行?

使用特权

评论回复
8
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);

使用特权

评论回复
9
htx518| | 2013-10-23 16:16 | 只看该作者
对使用宏定义很方便的,__EEPROM_DATA(0xff,0xfd,2,3,4,5,6,7);等等都可以的,但这个一次只能写8个字节,如果多的话依次往下继续上面这个宏定义就行了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

61

帖子

1

粉丝