| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 664 人关注过本帖
标题:关于 EPPROM 存储和读取,求指导哪里错了,为什么我只能读到最新存储的数据
只看楼主 加入收藏
sunrain69
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-5-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
关于 EPPROM 存储和读取,求指导哪里错了,为什么我只能读到最新存储的数据
/***********************************************
-----------------保存测量结果----------------
//程序功能:把测量结果存到EEPROM中
           只存储100个数据
************************************************/
 void       result_save(void)
{
   
       if(save_flag1<100)                       //第一扇区数据不满100个数据直接存于第一扇区
            {
              sector_ep(START_ADDR+save_flag1*2,sum,0); //将厚度值保存到数据单元    当y为1时,每次写之前都要擦除扇区
                                                           //当y为0时,保存数据不擦除扇区,应用于厚度值的保存
              ++save_flag1;                                //第一单元测量值个数的标志
              sector_ep(START_ADDR2,save_flag1,1);      //保存第一单元测量值个数的标志
             }
      
             else  if(save_flag1==100)                    //第一扇区已存满100个数据
                  {                  
                     int i;
                      for(i=1;i<100;i++)
                        {
                           if(i==1)
                             {
                              sector_read(START_ADDR+2);        //从第一扇区倒数第二个数开始读
                              sector_ep(START_ADDR1+2,sum,1);   //把第一扇区的数存到第二扇区,写入第一个数据之前先擦除
                              ++save_flag2;                     //第二单元测量值个数的标志
                              sector_ep(START_ADDR3,save_flag2,1);      //保存第二单元测量值个数的标志

                             }
                           else
                             {
                              sector_read(START_ADDR+2*i);               //从第一扇区倒数第二个数开始读
                              sector_ep(START_ADDR1+save_flag2*2,sum,0);   //把第一扇区的数存到第二扇区
                              ++save_flag2;                     //第二单元测量值个数的标志
                              sector_ep(START_ADDR3,save_flag2,1);      //保存第二单元测量值个数的标志

                             }
                        }         
                  }
                if(save_flag2==99)
                {
                 int n;
                 for(n=0;n<=99;n++)
                   {
                      if(n==0)
                      {
                          sector_read(START_ADDR1);               //从第二扇区倒数第一个数开始读
                       sector_ep(START_ADDR+save_flag1*2,sum,1);   //把第二扇区的数存到第一扇区,写入第一个数据之前先擦除扇区
                       ++save_flag1;
                       sector_ep(START_ADDR2,save_flag1,1);      //保存第一单元测量值个数的标志

                      }
                      else
                      {
                        sector_read(START_ADDR1+2*n);               //从第二扇区倒数第以个数开始读
                        sector_ep(START_ADDR+save_flag1*2,sum,0);   //把第二扇区的数存到第一扇区
                        ++save_flag1;
                        sector_ep(START_ADDR2,save_flag1,1);      //保存第一单元测量值个数的标志

                       }
                   }               
                  sector_ep(START_ADDR+200,sum,0);     //第100个数据存到第一扇区
                }                                
              
}
//******数据读取,先读最新存储的数据*********************//
    void  read(void)
     {
                sector_read(START_ADDR+save_flag1*2-k*2);//读取,从最近存储的开始读
                lcdfill(0);                //清屏
                string_display1();      //显示读取数值
                k++;                 //初始化时已设置k=0,
                if(k>save_flag1)    //当按键次数超过存储个数时   
                    {
                      k=0;               //当查询次数超过存储数值时,从开始从新查询
                    }
               }
搜索更多相关主题的帖子: 测量 
2014-05-20 21:41
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:10 
这块不是很懂,飘过

我不是砖家,要努力成为砖家。
2014-05-20 21:44
sunrain69
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-5-20
收藏
得分:0 
不知道是存储出了问题还是读取出的问题,请大家帮忙看一下吧
2014-05-20 22:11
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:10 
这算是单片机的问题吧,帮不了楼主。
2014-05-21 12:35
快速回复:关于 EPPROM 存储和读取,求指导哪里错了,为什么我只能读到最新存储的 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011744 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved