搜索
bottom↓
回复: 15

MPLAB X IDE + xc8 不能用EEPROM_READ和EEPROM_WRITE读写数据,求解决...

[复制链接]

出0入0汤圆

发表于 2016-3-31 14:43:11 | 显示全部楼层 |阅读模式
MPLAB IDE v8.90+PICC可以调用EEPROM_READ(0)和EEPROM_WRITE(0,0)两个函数进行数据的读写。最近把程序移到MPLAB X IDE v3.20+xc8编译运行就发现数据不能写进EEPROM了,不知道这是什么问题。是XC8不支持那两个函数了么?还是我配置的问题?有谁遇到这个问题没,有什么解决方法一起探讨一下

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2016-3-31 17:37:21 | 显示全部楼层
应该是XC8不支持者两个函数,应该是有另外的操作方法,XC16是直接定义一个在EEPROM里面的变量(永久变量)就可以操作了

出0入0汤圆

发表于 2016-3-31 17:38:52 | 显示全部楼层
直接使用EEPROM_READ和EEPROM_WRITE在某些事会有问题的
可以是用以下两个函数来代替,这两个函数也是编译器自带的。
extern void eeprom_write(unsigned char addr, unsigned char value);
extern unsigned char eeprom_read(unsigned char addr);

出0入0汤圆

发表于 2016-3-31 18:40:21 来自手机 | 显示全部楼层
eeant.net 发表于 2016-3-31 17:38
直接使用EEPROM_READ和EEPROM_WRITE在某些事会有问题的
可以是用以下两个函数来代替,这两个函数也是编译器 ...

这两个函数在哪里的,谢谢

出0入0汤圆

 楼主| 发表于 2016-3-31 22:39:42 | 显示全部楼层
lu976046395 发表于 2016-3-31 17:37
应该是XC8不支持者两个函数,应该是有另外的操作方法,XC16是直接定义一个在EEPROM里面的变量(永久变量) ...

不知道是否支持,但是调用了这两个函数它也不会报错的。不知道有什么另外的操作方法,不会要自己从写函数了吧?那样的话就没有PICC那样方便了

出0入0汤圆

 楼主| 发表于 2016-3-31 22:42:03 | 显示全部楼层
eeant.net 发表于 2016-3-31 17:38
直接使用EEPROM_READ和EEPROM_WRITE在某些事会有问题的
可以是用以下两个函数来代替,这两个函数也是编译器 ...

谢谢!我找过XC8里面相关的头文件了,没发现这两个函数。我先试试吧

出0入0汤圆

 楼主| 发表于 2016-3-31 22:52:14 | 显示全部楼层
eeant.net 发表于 2016-3-31 17:38
直接使用EEPROM_READ和EEPROM_WRITE在某些事会有问题的
可以是用以下两个函数来代替,这两个函数也是编译器 ...

刚刚试了你说的方法,但是一编译就出现错误了。如图

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2016-3-31 23:12:10 | 显示全部楼层
ersha4877 发表于 2016-3-31 18:40
这两个函数在哪里的,谢谢

在include目录下的eeprom_routines.h

出0入0汤圆

发表于 2016-3-31 23:12:49 | 显示全部楼层
yanzhiwei 发表于 2016-3-31 22:42
谢谢!我找过XC8里面相关的头文件了,没发现这两个函数。我先试试吧

include目录下的eeprom_routines.h

出0入0汤圆

发表于 2016-4-1 08:17:05 | 显示全部楼层
eeant.net 发表于 2016-3-31 23:12
在include目录下的eeprom_routines.h

感谢,不过这个是内部EEPROM ,不知那里可以有MSSP I2C的程序,谢谢

出0入0汤圆

 楼主| 发表于 2016-4-1 13:19:26 | 显示全部楼层
eeant.net 发表于 2016-3-31 23:12
在include目录下的eeprom_routines.h

谢谢,我试过了,还是会提示7楼图片所示的错误。我已经把相应的头文件都包涵进去了,现在都搞不懂什么状况了

出0入0汤圆

发表于 2016-4-5 22:05:41 | 显示全部楼层
yanzhiwei 发表于 2016-3-31 22:39
不知道是否支持,但是调用了这两个函数它也不会报错的。不知道有什么另外的操作方法,不会要自己从写函数 ...

persistent
persistent 属性指定不应在启动时初始化或清零变量。带persistent 属性的变量
可用于存储在器件复位后仍然有效的状态信息。
int last_mode __attribute__ ((persistent));
这是《MPLAB® XC16 C 编译器 用户指南里面》的变量属性进行限定即可,不知道XC8是否有这样的操作,现在解决了吗?

出0入0汤圆

 楼主| 发表于 2016-4-7 00:34:24 | 显示全部楼层
lu976046395 发表于 2016-4-5 22:05
persistent
persistent 属性指定不应在启动时初始化或清零变量。带persistent 属性的变量
可用于存储在器 ...

谢谢啦。这几天忙别的了,这个问题还没解决,明天用你说的方法试试。

出0入0汤圆

发表于 2016-4-11 16:43:57 来自手机 | 显示全部楼层
XC8支持这两个涵数的!自动包含头文件的!

出0入0汤圆

 楼主| 发表于 2016-4-13 10:05:42 | 显示全部楼层
pangbin4 发表于 2016-4-11 16:43
XC8支持这两个涵数的!自动包含头文件的!

试过了,调用后就是无法保存数据,之前用PICC9.5的时候就可以

出0入0汤圆

 楼主| 发表于 2016-4-13 10:08:42 | 显示全部楼层
lu976046395 发表于 2016-4-5 22:05
persistent
persistent 属性指定不应在启动时初始化或清零变量。带persistent 属性的变量
可用于存储在器 ...

还没解决,用了你介绍的方法也不能保存,不知道是不是我哪里设置不对,以前用PICC都可以,现在只是把以前的程序移植到这边来而已。太郁闷了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-2 19:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表