wgco 发表于 2013-1-27 15:57:22

万年历,很多天了,现在遇到一个问题一直解决不了

我现在做了一个万年历,很多天了,现在遇到一个问题一直解决不了,就是时间走得很慢,没三秒慢了一秒,还有一个就是加上温度显示的话时间更慢;
求各位大虾帮忙。

5612404 发表于 2013-1-27 17:21:23

什么时钟芯片

大道必成 发表于 2013-1-27 18:49:46

希望楼主能遇到好人

lxa0 发表于 2013-1-27 21:18:12

能不能上个电路图看看啊?

wmsky 发表于 2013-1-27 21:34:29

楼主用的是ds1302, 我也是用这个,用配秒机(超秒机)配过,一个月在15秒内。用来做定时控制器,爽歪歪。

StoneSun 发表于 2013-1-27 21:56:49

差看时钟电路的晶振震荡波形。频率对不对。遇到过电容不匹配时间不准确的问题。

tonyone 发表于 2013-1-27 22:15:51

wmsky 发表于 2013-1-27 21:34 static/image/common/back.gif
楼主用的是ds1302, 我也是用这个,用配秒机(超秒机)配过,一个月在15秒内。用来做定时控制器,爽歪歪。 ...

第一次听说配秒机(超秒机),原子钟??

wmsky 发表于 2013-1-27 22:31:17

tonyone 发表于 2013-1-27 22:15 static/image/common/back.gif
第一次听说配秒机(超秒机),原子钟??

第一次听说配秒机(超秒机),??,
不是原子钟,我是做电子表行业,也就是用32.768khz 晶振。 有专门看 秒的正负偏差的,这样容易理解吧。
最低成本自动校正时间是电波表,一天校正2次吧,国内没发展起来。是最低成本哦。不是什么GPS啊,原子钟啊。

tonyone 发表于 2013-1-27 22:36:55

wmsky 发表于 2013-1-27 22:31 static/image/common/back.gif
第一次听说配秒机(超秒机),??,
不是原子钟,我是做电子表行业,也就是用32.768khz 晶振。 有专门看 ...

谢谢
电波表可以diy吗{:lol:}

wmsky 发表于 2013-1-27 22:40:55

tonyone 发表于 2013-1-27 22:36 static/image/common/back.gif
谢谢
电波表可以diy吗

可以,你知道,编码规则,就Ok,不过有专门的接收IC ,解出编码。在深圳楼顶可以收到日本的信号。你可以搜索下资料。

tonyone 发表于 2013-1-27 23:01:44

wmsky 发表于 2013-1-27 22:40 static/image/common/back.gif
可以,你知道,编码规则,就Ok,不过有专门的接收IC ,解出编码。在深圳楼顶可以收到日本的信号。你可以搜 ...

能不能提供diy的资料呢?

wmsky 发表于 2013-1-27 23:21:06

http://item.taobao.com/item.htm?spm=a230r.1.10.2.D0nEAr&id=5606020106
不好意思贴淘宝了,不是我的,不认识的。我局限于公司保密协议。

wumaoxu 发表于 2013-2-1 16:28:14

问题在这里吧?
/********以下是读取时间函数,负责读取当前的时间,并将读取到的时间转换为10进制数********/
void get_time()
{
uchar sec,min,hour,year,month,day,week;                    //定义秒、分和小时变量
write_ds1302(0x8e,0x00);                  //控制命令,WP=0,允许写操作   
write_ds1302(0x90,0xab);               //涓流充电控制
sec=read_ds1302(0x81);                   //读取秒
min=read_ds1302(0x83);                  //读取分
hour=read_ds1302(0x85);                  //读取时
day=read_ds1302(0x87);                   //读取日
month=read_ds1302(0x89);                  //读取月
week=read_ds1302(0x8b);                  //读取星期
year=read_ds1302(0x8d);                  //读取年
time_data=sec/16*10+sec%16;                 //将读取到的16进制数转化为10进制
time_data=min/16*10+min%16;                 //将读取到的16进制数转化为10进制
time_data=hour/16*10+hour%16;               //将读取到的16进制数转化为10进制
time_data=day/16*10+day%16;                 //将读取到的16进制数转化为10进制
time_data=month/16*10+month%16;                 //将读取到的16进制数转化为10进制
time_data=week/16*10+week%16;               //将读取到的16进制数转化为10进制
time_data=year/16*10+year%16;                 //将读取到的16进制数转化为10进制
}


把上面的
write_ds1302(0x8e,0x00);                  //控制命令,WP=0,允许写操作   
write_ds1302(0x90,0xab);               //涓流充电控制
去掉看看。

migrant 发表于 2013-2-1 16:35:48

",还有一个就是加上温度显示的话时间更慢;"
应该是要优化程序吧,应该是程序运行的时间太长了

severewinner 发表于 2013-2-1 16:51:18

migrant 发表于 2013-2-1 16:35 static/image/common/back.gif
",还有一个就是加上温度显示的话时间更慢;"
应该是要优化程序吧,应该是程序运行的时间太长了 ...

+1 实时性的问题,建议检查程序的执行优先级,在定时中断里查询时间,该能解决该问题。

fwluck 发表于 2013-2-1 16:56:18

http://item.taobao.com/item.htm?spm=a1z10.5.4002-466610344.13.gwKquv&id=14697208896
这个买过,不好调。好象有一word文档,讲解码。
至今没调出来。
页: [1]
查看完整版本: 万年历,很多天了,现在遇到一个问题一直解决不了