fm31256时钟芯片的奇怪问题
在电路中使用到FM31256的时钟芯片,在上电后,设置了时间和日期,当年、月或小时的数据设置为<10时,将数据写入到芯片后,断电后再读出此数据是正确的,但当年、月或小时的数据设置为>或=10时,将数据写入到芯片后,断电后,再重新上电读出此数据后,就显示为0了。但如果不断电,一直运行下去,数据显示是正常的。此问题不知是什么原因造成的?请大家给分析一下。
其读出函数如下:
void readTime(void)
{
WriteReg(FLAGS,0x01); //允许读操作
Time0 = ReadReg(YEAR);
Time1 = ReadReg(MOUNTH);
Time2 = ReadReg(DAY);
Time3 = ReadReg(DATE);
Time4 = ReadReg(HOUR);
Time5 = ReadReg(MINUTE);
Time6 = ReadReg(SECOND);
WriteReg(FLAGS,0x00);
Time0=((Time0&0x70)>>4)*10 + (Time0&0x0F);
Time1=((Time1&0x70)>>4)*10 + (Time1&0x0F);
Time2=((Time2&0x70)>>4)*10 + (Time2&0x0F);
Time3=((Time3&0x70)>>4)*10 + (Time3&0x0F);
Time4=((Time4&0x70)>>4)*10 + (Time4&0x0F);
Time5=((Time5&0x70)>>4)*10 + (Time5&0x0F);
Time6=((Time6&0x70)>>4)*10 + (Time6&0x0F);
delay_nms(10);
}
提问者:chexiaohuo
地点:-
浏览次数:2485
提问时间:08-06 10:54
我有更好的答案