|
发表于 2021-1-16 14:55:23
|
显示全部楼层
为什么我用rx8310,将时间调为2021 年 12月31号 23点59分,一分钟后会变成2021 年 12月32号 0点0分
我是直接读的
void rdtime()
{ u8 rtcdata[8];
u8 i,n,m;
i2cstart();
i2cbw(0x64);
i2cbw(0x10);
i2cstop();
i2cstart();
i2cbw(0x65);
for(i=6;i>0;i--)
{ rtcdata[i]=i2cbr();
mack();}
rtcdata[0]=i2cbr();
mnak();
i2cstop();
for(i=0;i<3;i++) //年月日转换成HEX
{ n=rtcdata[i]/16;
m=rtcdata[i]%16;
rtcdata[i]=n*10+m;}
for(i=4;i<7;i++) //时分秒转换成HEX
{ n=rtcdata[i]/16;
m=rtcdata[i]%16;
rtcdata[i]=n*10+m;}
//处理星期的数据格式
n=0;
m=rtcdata[3];
for(i=0;i<7;i++)
{ if(m&0x01) break;
n++;
m=(m>>1);}
rtcdata[3]=n;
rtcdata[7]=0x00;
write_dgus_vp(RTC,(u8*)&rtcdata[0],4);
//写入DGUS变量空间
} |
|