最近在写一个电子钟的程序,想把开发板上的功能都用上,写IIC的时候遇到了点问题。故贴出部分代码求教。
void write_time()
{
write(0x00,hour);
delay(3);
write(0x01,minute);
delay(3);
write(0x02,second);
}
void delay(unsigned int xms)
{
unsigned int i,j;
for (i=xms; i>0; i--)
for (j=40; j>0; j--);
}
write_time函数的功能是把当前时间写进24c02,问题在于每写一个数据,要延时delay(3),如果把delay(3)换成delay(2)的话,中间写的那次数据就会丢失,就是分钟没法写进去,小时和秒可以写进。想问下为什么写一次数据要等那么久才可以写下一次,读数据就没有这个问题,
void write_time()
{
write(0x00,hour);
delay(3);
write(0x01,minute);
delay(3);
write(0x02,second);
}
void delay(unsigned int xms)
{
unsigned int i,j;
for (i=xms; i>0; i--)
for (j=40; j>0; j--);
}
write_time函数的功能是把当前时间写进24c02,问题在于每写一个数据,要延时delay(3),如果把delay(3)换成delay(2)的话,中间写的那次数据就会丢失,就是分钟没法写进去,小时和秒可以写进。想问下为什么写一次数据要等那么久才可以写下一次,读数据就没有这个问题,