和同事一起做了个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;
现在好使了。