RTC中断碰到的一个小问题

来源:互联网 发布:btcc挖矿软件 编辑:程序博客网 时间:2024/05/14 23:49

前段时间写RTC程序时,碰到时间不准的问题。后经过经理提醒,才发现错误所在。现贴代码如下

 if(gSysCurrTime.Sec<60)
      gSysCurrTime.Sec++;
 else
    {
       gSysCurrTime.Sec = 0;
       if(gSysCurrTime.Min<60)
       gSysCurrTime.Min++;
          else
           {
           gSysCurrTime.Min = 0;
           if(gSysCurrTime.Hour<23)
            gSysCurrTime.Hour++;
           else
             {
              gSysCurrTime.Hour = 0;
             }
          }
 }

刚开始没发现问题。后来发现程序跑时时间不对,才发现每次时间多了一秒,0~60,现修改如下

 sysCurTime.Second++;
  if(sysCurTime.Second > 59)
  {
    sysCurTime.Second = 0;
    sysCurTime.Minute++;
    if(sysCurTime.Minute > 59)
    {
      sysCurTime.Minute = 0;
      sysCurTime.Hour++;
      if(sysCurTime.Hour > 23)
      {
        sysCurTime.Hour = 0;
      }
    }
  }