墨逸、 发表于 2015-4-2 19:31:23

求解 为什么PCF8563做的时钟在23:59:59后会跳到23:00:00

过了一分钟,也就是应该显示00:01:00的时候时间才会显示正常
但是日历还是不正常

墨逸、 发表于 2015-4-2 19:32:14

void main()
{
        uchar Time={0x50,0x58,0x22,0x00,0x03,0x00,0x14};//初始化数据
        //51秒,59分,23时,1日,星期四,1月,2015年
        uchar Time_data_read;//PCF8563数据临时数组
        uchar Print_data,i;//打印用临时数组
        LCD_Init();
        LCD_Clear();
        set_8563(Time);
        LCD_Write_String(4,0,"Hellow !");
        DelayMs(1000);
        LCD_Clear();
        LCD_Write_String(0,0,"20");
       
        while(1)
        {
                Read_8563(Time_data_read);
                for(i=0;i<7;i++)
                Time_data_read=Time_data_read/16*10+Time_data_read%16+1;//BCD码转换成16进制
                if(Time_data_read==60)                Time_data_read=0;
                if(Time_data_read==60)                Time_data_read=0;
                if(Time_data_read==24)                Time_data_read=0;
                if(Time_data_read==31)                Time_data_read=1;
                if(Time_data_read==13)                Time_data_read=1;
                if(Time_data_read==100)        Time_data_read=0;
                sprintf(Print_data,"%02d-%02d-%02d",(uint)Time_data_read,(uint)Time_data_read,(uint)Time_data_read);
                LCD_Write_String(2,0,Print_data);
                sprintf(Print_data,"%02d:%02d:%02d",(uint)Time_data_read,(uint)Time_data_read,(uint)Time_data_read);
                LCD_Write_String(2,1,Print_data);
        }
}

墨逸、 发表于 2015-4-2 19:32:48

main函数如上

我有对读取到的值进行判断了啊

墨逸、 发表于 2015-4-2 20:18:27

问题解决了抱歉   是我没仔细看8563的手册

MCUStudent 发表于 2015-4-2 20:46:48

墨逸、 发表于 2015-4-2 20:18
问题解决了抱歉   是我没仔细看8563的手册

既然是让大家帮助解决问题的,虽然大家没有帮到你,也希望楼主把问题的原因及解决的办法贡献出来,帮助那些和你走过一样弯路的朋友,也给论坛做了贡献。你看好不好呢!

墨逸、 发表于 2015-4-4 01:07:19

MCUStudent 发表于 2015-4-2 20:46
既然是让大家帮助解决问题的,虽然大家没有帮到你,也希望楼主把问题的原因及解决的办法贡献出来,帮助那 ...

是这样的,我在BCD码转换成十六进制的时候对其数据进行了加一操作,我以为它是按照计算机数据方式从0开始,59结束的,然后就闹了乌龙,虽然下面有判断,不过似乎没有起作用,不知道为什么

ST_ATMEL_NXP 发表于 2015-6-7 15:15:08

楼主这样的读写方式没有问题吗?我在连续读写的时候,长时间会出现读变成了写数据了,也就是时间被写入0XA3的数据了。
页: [1]
查看完整版本: 求解 为什么PCF8563做的时钟在23:59:59后会跳到23:00:00