打印

为什么支持的eeprom型变量个数这么少?

[复制链接]
1229|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
与时俱进|  楼主 | 2013-12-11 12:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HI-TECH C® for PIC10/12/16 版本 V9.82
程序中定义eeprom数组:eeprom unsigned int ee[40];
当数组个数超过40时就报eeprom空间不足,个数为40时可以通过编译,为什么?
芯片16F690,有256字节eeprom。
沙发
huangxz| | 2013-12-11 14:21 | 只看该作者
可能是因为int用的是四个字节吧

使用特权

评论回复
板凳
yklstudent| | 2013-12-11 20:13 | 只看该作者
是不是可利用的EEPROM空间不足80Byte? 不行就换XC8 或者PICC16-9.83版本 我试过没有问题

使用特权

评论回复
地板
与时俱进|  楼主 | 2013-12-11 20:56 | 只看该作者
huangxz 发表于 2013-12-11 14:21
可能是因为int用的是四个字节吧

不是,int用2字节。最后提示是没有82byte的eeprom空间。同样的程序,在hitech picc9.50中可以通过。

使用特权

评论回复
5
与时俱进|  楼主 | 2013-12-16 21:41 | 只看该作者
用下面这些就可以轻易预定义超过80字节的eeprom而不报错。
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);
__EEPROM_DATA(0,1,2,3,4,5,6,7);

使用特权

评论回复
6
yklstudent| | 2013-12-17 08:00 | 只看该作者
楼主也可以这样定义
const unsigned char eep_dat @ 0xf000 = 0x55;
0xf000具体跟单片机型号有关系

使用特权

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

本版积分规则

75

主题

1290

帖子

2

粉丝