Microchip
直播中

李明聪

7年用户 1110经验值
私信 关注
[问答]

怎么使用间接寻址的EEPROM读取?

处理器=pic16f18854,MPLABX版本4.05,MPASM版本5.76,XC8不适用,我正在编写一个汇编程序,它需要从F060-F0FF中搜索一大块EEPROM内存以找到某些字节模式。k是访问顺序存储的许多字节的最有效的方法。当我使用下面的代码间接访问F060时,我收到0x20。然而,当我使用普通方法:设置NVMADRH、NVMADRL和NVMCON1,RD时,我得到0xFF,这正是我所期望的EEPROM的这个块没有被编程的。[/code]clrf TestNo;首先查找所有到达EEcheckEEnext的“00”字节:incf TestNo,fEEcheck:movlw 0x60;开始地址lo movwf FSR0;movlw 0x70;EEprom映射到0x7000x70FF(FSR访问仅限)!!!!参见数据表EEc1中的“数据EEPROM存储器”:movf INDF0,w;读取间接BANK0 movwf LocB movlw 0x60;读取地址60h调用EEpromRD;我的“标准”读取例程用于比较nop;这里设置的断点[/代码]显然,我遗漏了一些东西,但是数据表在如果EEPROM被映射到0x7000并且程序存储器从0x000到0x000FFF,是地址足以告诉芯片我想读EEPROM?有没有人能理解它的工作原理,或者能给我指明一个更好的文档的方向。配置位设置如下:/code;Configuration for ICD;CONFIG1;振荡器;u config 0x17FE_u CONFIG1,_FEXTOSC_ECM&_RSTOSC_EXT1X&_CL关断和放大器_CSWEN_OFF&断开&FCMEN_OFF;CONFIG2;监督监监监;配置0x3DFF_CON_CONFI_CONFI_CONFIG2;配置0x3DFF_CON_CON_CON_CONFIFIG2,_MCLRE_ON&_开&_PWRTE_OFF&LPBORV_开&BORV_HI&ZCD_OF;amp;ZCD_OFF&PP_PP_PP_S1WAY_接通&STWAY_接通;ST接通;ST接通;ST接通;ST接通;ST接通;ST接通;STVREN_ON;CONFIG3;Windowd看门狗;u config 0x3F9F_u CONFIG3,_WDTCPS_WDTCPS_31和amp;WDTE_OFF&WDTCWS_WDTCWS_7和amp;WDTCWS_7以及_WDTCWS_7以及_WDTCWS_7&_WDTCWS_7以及_WDTCWS_WDTCWS_7和amp_WDTCWS_WDTCWS_7&_WDTCCS_SCCCS_SC;CONFIG4;存储器;配置0x0x00X0FFF_CONFIF_CONFIF_CONFIFIFIF_CONFIFIFIF_CONFIF_CONFIG_CONFIG_CONFIG_CONFIG_CONFIG_CONFIG_CONFI_CP_OFF&_CPD_OFF/code提前感谢……

回帖(6)

李涛

2020-3-20 09:49:27
不同的记忆。间接寻址只在ram中工作。使用SFR访问eeprom内存。我使用的最后一个8位具有eeprom内存的芯片具有以下功能:char eeprom_read(char Address);void eeprom_write(char Address,char Data);
举报

贺若龙

2020-3-20 10:00:49
谢谢你,炖肉——看来我正在尝试做不可能的事,这不会是第一次露齿一笑:我的勘误表版本有点旧,没有那个。
举报

吴键洪

2020-3-20 10:15:06
...在增强型中频芯片中不是这样。如果高字节是从0x00到0x1F,则访问普通RAM。如果从0x20到0x29,则访问相同的RAM,重新组织为“线性模式”。0x29到0x6F未定义。0x70访问EEPROM0x80到0xFF访问FLASH。我不能下载用于此的勘误表。现在PIC(MC网站报道“文档数据当前不可用。”),但是我猜它说EEPROM访问在这个PIC中不起作用。编辑:好的,MC网站刚刚恢复。勘误表说“A1”芯片有这个bug:
举报

李涛

2020-3-20 10:29:27
在pdf:10.4.3NVMREG写到EEPROMeprom地址+0xF000NVMADRH=0xF0,NVMADRL=用于读/写的eeprom地址以及3.5.3节中解释了:地址0x7000-0x70FFFSRxH=0x70,FSRxL=0到0xFF Looks足够简单。我用了8位ASM已经有一段时间了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分