首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在EEPROM中保存数组

在EEPROM中保存数组
EN

Stack Overflow用户
提问于 2015-06-08 13:15:31
回答 1查看 553关注 0票数 1

我有一个vectorx8,我想将它的值保存在XMEGA的EEPROM中,因为下面是我所做的工作:

代码语言:javascript
复制
............................
    int16_t  vec1[8]; 
    int16_t  vec2[8]; 
    int16_t  vec3[8];
    int i =  0, j =1; 
    for ( i =0 ; i<8; i++){ // ini 
       vec1[i] = 23500; 
       vec2[i] = 20000;
       vec3[i] = 20000;
    }


for ( i =0; i<8 ; i++) {
 eeprom_update_word (( uint16_t *)j++, vec1[i]);
 eeprom_update_word (( uint16_t *)j++, vec2[i]);
 eeprom_update_word (( uint16_t *)j++, vec3[i]);
}

现在,当我尝试使用以下所保存的值时:.

代码语言:javascript
复制
int16_t tempX[8];
int j  =2 ;
for ( i = 0 ; i < NUMBEROFSENSORS ; i++ ){

        tempX[i] = (int16_t) eeprom_read_word(j);
        j=  j+3;  // reading only vec1 
        printf(" j  read Value is : %d  \n",(int16_t)tempX[i]);
    }

我得到的是-13158而不是23500,所以我的问题是我在这里做错了什么?

把K转换成一个点,我得到这个输出:

代码语言:javascript
复制
read Value is : 2627 

读取值是: 2714读值是: 23450读值是:-3584读值是: 31744读值是: 11008。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-08 13:21:11

j定义为uint16_t * j。然后++操作将适当地增加它与2而不是1。你将不需要铸造:eeprom_update_word (j++, vec1[i])

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30710159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档