eeprom断电后数据出错

2019-07-15 23:25发布

帮忙看下我的主函数,其他函数都测试过,没问题,那到底差了什么东西,我在30秒内断电后再上电,为什么GP2就变成0了,我要在30秒之内不管断几次电GP2都输出1,30秒后才为0,并关掉定时器,我用的是PIC12f683,求高手
void main()
{
  init();      //配置时钟和GPIO
  timer1_Init();
  ISR_Timer1();
  if(read_e2prom(20)!=0)  //避免第一次上电读出的sec出错
  {
     write_e2prom(20,0);
     h.hour=0;              //初始值为0
  }
  else
  {
        sec=read_e2prom(10);     //读取EEPROM中的数据
        //min=read_e2prom(11);
   // h.t[0]=read_e2prom(12);   
    //h.t[1]=read_e2prom(13);
  }
  while(1)
  {
           if(sec>30)
           {  
             TMR1ON=0;
             GP2=0;     
           }
           else
           {
                  GP2=1;
             write_e2prom(10,sec);
             //write_e2prom(11,min);
             //write_e2prom(12,h.t[0]);
            // write_e2prom(13,h.t[1]);
           }
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。