恨,DS1302实时钟读出的小时不对!

和同事一起做了个LED的电子钟,用的DS1302实时钟,发现小时不对,23点后居然到了04点。上网搜了一下才知道,是山寨仿冒的产品。

哎。。。

经过试验,把程序改了一下,

if((hour & 0x30) == 0x20)
   {
    WriteDataToDS1302(CMD_CONTROL, 0x00);  //写保护关闭
     WriteDataToDS1302(CMD_HOUR, hour + 0x10);
     WriteDataToDS1302(CMD_CONTROL, 0x80);  //写保护开启
   }
  if(hour & 0x20)
   hour &= ~0x10;

现在好使了。

猜你喜欢

转载自blog.csdn.net/zhxlx/article/details/3847353