找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1715|回复: 24
收起左侧

调整DS1302的时间

[复制链接]
ID:965189 发表于 2023-1-16 22:01 | 显示全部楼层 |阅读模式
为什么我调整DS1302的时间不立即更新,要断电重启才显示更新的值。
回复

使用道具 举报

ID:94031 发表于 2023-1-17 20:53 | 显示全部楼层
这和你的程序有关。
回复

使用道具 举报

ID:965189 发表于 2023-1-17 22:43 | 显示全部楼层
问题已经解决。
回复

使用道具 举报

ID:332444 发表于 2023-1-25 12:13 | 显示全部楼层
以下是我的写入和更新代码,能写入就没问题,如果没写入,检查看是否释放了写保护,我这代码是十进制直接转16进制后写入分钟增1和秒钟清零的。
用时测试.png
回复

使用道具 举报

ID:965189 发表于 2023-1-25 12:47 | 显示全部楼层
我使用的是矩阵键盘,直接输入数字。经过不懈努力。可以直接输入设置值了。谢谢你的回复。
回复

使用道具 举报

ID:332444 发表于 2023-1-26 06:10 | 显示全部楼层
君工创 发表于 2023-1-25 12:47
我使用的是矩阵键盘,直接输入数字。经过不懈努力。可以直接输入设置值了。谢谢你的回复。

道理都一样,矩阵看是怎样的写法,是每位还是整体分钟就有2种不同了,我这里写了每秒步进的简单处理的逻辑代码,暂时只写了分钟调节的荔枝,当然还可以进一步处理进制逻辑。 用时测试.png

回复

使用道具 举报

ID:824490 发表于 2023-1-26 10:48 | 显示全部楼层
没有代码,不好说,可能你的代码就是要重启也不好说。
回复

使用道具 举报

ID:965189 发表于 2023-1-26 12:21 | 显示全部楼层
我目前的输入方法是直接输入年月日时分秒数值,比如要输入25,直接按数值键②、⑤、确认。就可以输入年月日的对应位置。
回复

使用道具 举报

ID:824490 发表于 2023-1-26 17:39 | 显示全部楼层
这是我的代码,你参考 一下:
   if(!key1)           //时加量键
        {
          Delay20ms();
          if(!key1)
          {
           while(!key1);
           beep_on(200);
           hour=RTC_read_ram(0x85); //读小时值
           hour=hour/16*10+hour%16;        //BCD转10进制
           if(++hour>23)hour=0;           //增量溢出则置0
           t_bcd=hour/10<<4|hour%10        ;  //10进制转BCD
           RTC_write_data(0x8e,0x00);  //1302写使能
           RTC_write_data(0x84,t_bcd); //写入新小时值
           RTC_write_data(0x8e,0x80);  //1302写失能
           key_time_out=5;
          }
        }
回复

使用道具 举报

ID:1034262 发表于 2023-1-26 18:04 | 显示全部楼层
程序问题。
回复

使用道具 举报

ID:332444 发表于 2023-1-26 20:15 | 显示全部楼层
君工创 发表于 2023-1-26 12:21
我目前的输入方法是直接输入年月日时分秒数值,比如要输入25,直接按数值键②、⑤、确认。就可以输入年月日 ...

那就是按分钟整体写入的,写年月天星期则要注意写一个返回阳历年月的天数函数做比较否则有可能天数出错或人工看日历无误输入。
回复

使用道具 举报

ID:965189 发表于 2023-1-26 21:08 | 显示全部楼层
xianfajushi 发表于 2023-1-26 20:15
那就是按分钟整体写入的,写年月天星期则要注意写一个返回阳历年月的天数函数做比较否则有可能天数出错或 ...

我增加防溢出就可以避免输入过大数目了。比如小时不超24,分钟不超60,日不超31等等,谢谢你的提醒。
回复

使用道具 举报

ID:965189 发表于 2023-1-26 21:35 | 显示全部楼层
名字不是重点 发表于 2023-1-26 17:39
这是我的代码,你参考 一下:
   if(!key1)           //时加量键
        {

我用矩阵键盘数字键,使用整体数值输入。谢谢你。
回复

使用道具 举报

ID:332444 发表于 2023-1-27 08:50 | 显示全部楼层
君工创 发表于 2023-1-26 21:08
我增加防溢出就可以避免输入过大数目了。比如小时不超24,分钟不超60,日不超31等等,谢谢你的提醒。

好说,我有现成的年的月的天数函数和计算星期的函数https://blog.csdn.net/xianfajush ... 1001.2014.3001.5502
回复

使用道具 举报

ID:401564 发表于 2023-1-29 20:50 | 显示全部楼层
用了几年有DS1302
以前公司有晶振机,可以调好,一年能控制在5分的误差以内
公司倒闭之后,就换DS3231了,再加一个GPS自动授时,简单省事,什么都不用管
什么键盘遥控按键的,什么都不要
回复

使用道具 举报

ID:965189 发表于 2023-1-29 21:33 | 显示全部楼层
Y_G_G 发表于 2023-1-29 20:50
用了几年有DS1302
以前公司有晶振机,可以调好,一年能控制在5分的误差以内
公司倒闭之后,就换DS3231了,再 ...

我认为你这方案是实时时钟的最高级别了。
回复

使用道具 举报

ID:824490 发表于 2023-1-29 22:00 | 显示全部楼层
Y_G_G 发表于 2023-1-29 20:50
用了几年有DS1302
以前公司有晶振机,可以调好,一年能控制在5分的误差以内
公司倒闭之后,就换DS3231了,再 ...

本来就是啊,做为数码时钟产品,不管是一年调一次还是一个月调一次,都是次品。能不调校的产品才是好产品。
话说回来,年误差在秒级的就可以了,民用品又不是神州18的工程。
有点矛盾啊~
回复

使用道具 举报

ID:401564 发表于 2023-1-30 09:23 | 显示全部楼层
名字不是重点 发表于 2023-1-29 22:00
本来就是啊,做为数码时钟产品,不管是一年调一次还是一个月调一次,都是次品。能不调校的产品才是好产品 ...

1302作为时钟,本身就是低端产品用的,一两个月调节一次是正常的
之前打卡用的纸卡钟,里面用的就是1302,基本是一个月调节一次
回复

使用道具 举报

ID:88256 发表于 2023-1-30 11:16 | 显示全部楼层
君工创 发表于 2023-1-29 21:33
我认为你这方案是实时时钟的最高级别了。

用ESP8266或者ESP32,十分钟网络对时一次,只要有网络,连RTC和备用电池都不要
回复

使用道具 举报

ID:725922 发表于 2023-2-1 15:49 | 显示全部楼层
我做的1302时钟越走越快,一两个月就快10分钟了。。
回复

使用道具 举报

ID:21212 发表于 2023-2-1 16:46 | 显示全部楼层
wdmcp 发表于 2023-2-1 15:49
我做的1302时钟越走越快,一两个月就快10分钟了。。

算好,每天减多少秒
回复

使用道具 举报

ID:965189 发表于 2023-2-1 21:36 | 显示全部楼层
wdmcp 发表于 2023-2-1 15:49
我做的1302时钟越走越快,一两个月就快10分钟了。。

统计多少天快多少秒,平均每天多少秒,之后每天自动减除即可。
回复

使用道具 举报

ID:824490 发表于 2023-2-2 01:45 | 显示全部楼层
wdmcp 发表于 2023-2-1 15:49
我做的1302时钟越走越快,一两个月就快10分钟了。。

32768的2个电容加大点就慢下来了。具体要多少,试一下就知道了
回复

使用道具 举报

ID:725922 发表于 2023-2-3 10:20 | 显示全部楼层
名字不是重点 发表于 2023-2-2 01:45
32768的2个电容加大点就慢下来了。具体要多少,试一下就知道了

哦哦,再改进一下。
回复

使用道具 举报

ID:725922 发表于 2023-2-3 10:21 | 显示全部楼层
君工创 发表于 2023-2-1 21:36
统计多少天快多少秒,平均每天多少秒,之后每天自动减除即可。

嗯,这也是一个方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表