DS1302用纽扣电池,断电后,可以让时间不丢失,寄存器哪.....
请问下,DS1302要用到纽扣电池,程序里面要怎么设置呢?要操作什么呢?谢谢啦!voidDS1302_Init(void)
{
RST= 0;
SCK= 0;
write_ds1302( 0x8E, 0x00 ); //关写保护
write_ds1302( 0x90, 0xA7 ); //充电(1个二极管 + 8K电阻)
write_ds1302( 0x8E, 0x80 ); //开写保护
if( read_ds1302(0x81) & 0x80 )
{
set_time(&time);
}
还想请问下,设置成24小时制的时候,
write_ds1302(0x84, 0x12) ;就可以哇? //设置1302的初始时间(自动初始化)
void Init_1302(void){//-设置1302的初始时间(2007年1月1日00时00分00秒星期一)
unsigned char f;
if(read_clock(0xc1) != 0xaa){
write_clock(0x8e,0x00);//允许写操作
write_clock(0x8c,0x07);//年
write_clock(0x8a,0x01);//星期
write_clock(0x88,0x01);//月
write_clock(0x86,0x01);//日
write_clock(0x84,0x00);//小时
write_clock(0x82,0x08);//分钟
write_clock(0x80,0x00);//秒
write_clock(0x90,0xa5);//充电
write_clock(0xc0,0xaa);//写入初始化标志RAM(第00个RAM位置)
for(f=0;f<60;f=f+2){//清除闹钟RAM位为0
write_clock(0xc2+f,0x00);
}
write_clock(0x8e,0x80);//禁止写操作
}
}
/**
我用的是杜洋的程序用着还行 s3c2440 发表于 2012-10-25 14:07 static/image/common/back.gif
//设置1302的初始时间(自动初始化)
void Init_1302(void){//-设置1302的初始时间(2007年1月1日00时00分0 ...
谢谢你,我现在做一个项目,最后一个问题就是DS1302断电后,可以继续读出时钟!我想问下,设置24小时制的时候,要怎么设置哇?顺便告诉我一下,谢谢啦! 初始化写入寄存器84h Bit7 = 1 DS1302 如果主电源和电池都断电的话是不会保存时间的,而且写入寄存器的值也会丢失。 lovejp1981 发表于 2012-10-25 14:57 static/image/common/back.gif
初始化写入寄存器84h Bit7 = 1
你好,我在向DS1302中写入时间的时候,写入的是12点,没有对那个位怎么操作,过了12点,用串口调试助手打印出来,到了1点的时候,是13点。说明我向1其写入0~12点是,24小时制的吧! 都13点了 你还不敢确认是24小时制啊 s3c2440 发表于 2012-10-25 14:07 static/image/common/back.gif
//设置1302的初始时间(自动初始化)
void Init_1302(void){//-设置1302的初始时间(2007年1月1日00时00分0 ...
你好,大哥,我现在还是遇到DS1302的问题,我想问下,我DS1302在开发板上面程序是初始化设置好时间后,再在while循环读取时间,然后通过串口调试助手,把时间打印出来了,再延迟1s,循环读时间,再打印,这样是正确的。现在,我在做一个项目,要用到DS1302,我把在开发板上面跑成功的这个程序移植过来,然后加上你告诉我的设置纽扣电池起作用的这个函数。我这个项目里面的DS1302程序现在出现问题了,就是读时间大都正确,就是有时候突然读出一个不正常的日期,经常读出2018年这样的数据,我在写和读DS1302都禁止了中断,我不知道为什么会出现,读DS1302的时间怎么有时候突然会读出一个乱的日期!请问您遇到过么? 听着象通讯受干扰,每回连着读两次,时间(除秒外)一样才接受,1302不带校验是挺讨厌的
页:
[1]