void set_time(uint8 *timedata)
{
uint8 i, tmp;
for (i=0; i<7; i++) // 转化为BCD格式
{
tmp = timedata[i] / 10;
timedata[i] = timedata[i] % 10;
timedata[i] = timedata[i] + tmp*16;
}
clear_ds1302_WP();
reset_ds1302();
RST = 1;
write_ds1302_byte(DS1302_W_ADDR); // 控制字为0xBE,设定多字节传送方式:写
for (i=0; i<7; i++)
{
write_ds1302_byte(timedata[i]);
delay(10);
}
write_ds1302_byte(0);
SDA = 0;
RST = 0;
set_ds1302_WP();
}
写时钟数据,写7次,RST置零前,要加上write_ds1302_byte(0);,不加这句的话就写不进去
|