请教PIC18F25K22的几个问题?

[复制链接]
 楼主| ljie1 发表于 2013-5-20 16:15 | 显示全部楼层 |阅读模式
请教PIC18F25K22的ANSEL、CCP3COM、CCP4COM不能写,是为什么?另请教告知EEPROM在芯片中起始的地址,谢谢!
兰天白云 发表于 2013-5-20 16:27 | 显示全部楼层


从图中看不到CCP3COM,应该是CCP3CON

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| ljie1 发表于 2013-5-20 16:28 | 显示全部楼层
对,是我写错了,谢谢!
 楼主| ljie1 发表于 2013-5-20 16:32 | 显示全部楼层
请教PIC18F25K22的ANSEL、CCP3CON、CCP4CON不能写,是为什么?另请教告知EEPROM在芯片中的物理地址,谢谢!
兰天白云 发表于 2013-5-20 16:36 | 显示全部楼层
EEPROM是名副其实的EEPROM,具有100万次擦写周期,与STC等不同,STC是把FLASH中挖一块出来作为EEPROM,所以STC的eeprom有个起始地址(很大),而PIC是从00开始的,就像你使用外部的24C01一样。PIC的程序存储器和数据存储器是分开的,而STC是一起的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
兰天白云 发表于 2013-5-20 16:42 | 显示全部楼层
要写ANSEL、CCP3CON、CCP4CON这些寄存器,必须要有相应的配置
jiemnij 发表于 2013-5-20 17:00 | 显示全部楼层
0-0xff

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yewuyi 发表于 2013-5-20 17:18 | 显示全部楼层
PIC内置EEPROM是一块独立的存储区,寻址地址都是从0x00开始。

关于寄存器不能写问题,只要该型号芯片有这个寄存器,并且你的寄存器名称正确,则不能写的原因只能是你“不会写”。

 楼主| ljie1 发表于 2013-5-20 17:24 | 显示全部楼层
谢谢版主和jiemnij,可能是我没表达好,通常为了事先在EEPROM存入一些开机时要调入的参数,而用如下的方法:
                ORG                        0XF000                 
;特殊的程序空间起始地址
;编程器能识别此地址作为EEPROM 数据区的起始地址
                DE         0XFF,0XE5,0X97,0X01,0X00,0X00,0X00,0X00       
                DE         0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00
;EEPROM 地址单元[0]=FE, [1]=E5, [2]=97, [3]=01
以上的0XF000是PIC16F1936 EEPROM在芯片上的起始地址
yewuyi 发表于 2013-5-20 17:37 | 显示全部楼层
ORG似乎只能作用于FLASH地址的把,向EEPROM中预先存入数值,这个需要查查MPLAB的ASM编译器有无相关的宏指令了。
yewuyi 发表于 2013-5-20 17:44 | 显示全部楼层
可以参考一下PICC下面的同样操作的库函数内容:
#define __EEPROM_DATA(a, b, c, d, e, f, g, h) \
                         asm("\tpsect eeprom_data,class=EEDATA,delta=2,space=2"); \
                         asm("\tdb\t" ___mkstr(a) "," ___mkstr(b) "," ___mkstr(c) "," ___mkstr(d) "," \
                                      ___mkstr(e) "," ___mkstr(f) "," ___mkstr(g) "," ___mkstr(h))
 楼主| ljie1 发表于 2013-5-20 17:55 | 显示全部楼层
好的,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

1

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