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

[复制链接]
 楼主| 与时俱进 发表于 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中可以通过。
 楼主| 与时俱进 发表于 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);
yklstudent 发表于 2013-12-17 08:00 | 显示全部楼层
楼主也可以这样定义
const unsigned char eep_dat @ 0xf000 = 0x55;
0xf000具体跟单片机型号有关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1290

帖子

2

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

75

主题

1290

帖子

2

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