3053|5

54

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

定义地址变量的问题 [复制链接]


就是定义一个地址变量,以一个地址为起始地址然后随着存储数据的增加而增加地址,等到下次用的时候不能从起始地址开始而是要从上次用到的地址后面开始使用,请问这个地址变量应该怎样定义好呢?初学者,对于这样定义很不了解,请各位大虾多多帮忙!

最新回复

单独用一个单元存储次数不可以? 放在ROM的开头或者结尾, 初始化时读出来, 写的时候更新这个值. 需要考虑寿命和数据安全性的问题.       详情 回复 发表于 2008-9-4 17:20
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
使用绝对地址指针。
之后再操作这个指针即可。。

int *p;
p = (int *)0x00001;

p++;
*p = 你的数据;
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
但是我要用到从基地址到最后的地址的所有数据,这样怎么实现?最后的*p 只是最后的那个值啊
while
{
  address=0x10;
  ......
  for(i=0;i<4;i++)      
   {
    ......
   address++;
   }
} 这个for循环可能会执行N次,就会不断是进入while使address为0X10,而我想让其address一直往上加不要重复等于0X10,请问该怎么定义呢?
我在.H里定义EXTERN volatile int   xdata address;  不知道这样可以不
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 
address在while之外赋值不就行了?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
但是我要保证在重新上电的时候接着上次的地址继续存储,即使是放在while外面重新上电的时候还是会执行到 address=0x10;  
  想的是把地址的值存在eeprom里面,重新上电后将其读出来继续往上加,这就是有点不怎么明白那么初始的地址改在哪里定义,怎么定义呢?我试着写了段但发现总是返回到初始的地址来执行

address=0x10;
Byte_Read2464(temp.i,&address); 从EEPROM的temp.i地址读出地址来存在address 里
  for(i=0;i <4;i++)      
  {
   .....
   address++;
  }
Byte_Write2464( temp.i,address);再把这个地址写到eeprom的temp.i地址里去

这里的初始address不知道改放在哪好?重新上电后又从0x10开始的。头痛啊!请大虾指点!
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
单独用一个单元存储次数不可以? 放在ROM的开头或者结尾, 初始化时读出来, 写的时候更新这个值. 需要考虑寿命和数据安全性的问题.     
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表