关于RX8025t的问题
用8025T做一个时钟,IIC是模拟的,现在有个问题,读写都可以,但是读出的第一个数据不是秒,而是分钟,整体往后串了一个数据,非常不解,查了很多遍程序都没发现问题,请大家帮忙看看,哪里出问题了呢?
bit v_W8025_all(unsigned int sub_addr,unsigned char *s,unsigned char no) //写入
{
uchar i;
bit flag=1;
start(); /*发送启动信号*/
sendbyte(0x64); /*发送SLA+W*///0x64
if(ACK_flagr==0)
flag=0;
sendbyte(sub_addr); //0x01
if(ACK_flagr==0)
flag=0;
for(i=0;i<no;i++)
{
sendbyte(*s);
if(ACK_flagr==0)flag=0;
s++;
}
stop();
return (flag);
}
bit v_Get8025(unsigned int sub_addr,unsigned char *s,unsigned char no) //读数
{
uchar i;
bit flag=1;
start();
sendbyte(0x65);//0x65
if(ACK_flagr==0)
flag=0;
sendbyte(sub_addr);//0x04//快速模式读取
if(ACK_flagr==0)
flag=0;
for(i=0;i<no-1;i++)
{
*s=recbyte();
ackr();
s++;
}
*s= recbyte();
noackr();
stop();
return(flag);
}
bit init_8025(void) //初始化,24小时制
{
bit flag=1;
start();
sendbyte(0x64); /*发送SLA+W*/
if(ACK_flagr==0)
flag=0;
sendbyte(0xe0);//第一个控制寄存器,设置为24进制
if(ACK_flagr==0)
flag=0;
sendbyte(0x20);
if(ACK_flagr==0)
flag=0;
stop();
return (flag);
}