极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: singz

用1602和DS3231搭建的可调时钟 ~~新人帖~~标题要长~~

[复制链接]
发表于 2017-3-20 14:15:28 | 显示全部楼层
singz 发表于 2017-3-20 10:50
在保存并退出的 t.min=sminute;下面加上

  rtc.setDOW(SATURDAY);        // 设置星期

用这个库,时间可以设置,日期不行,但是有一次又可以设置日期,挺奇怪的,还是怀疑程序,没用IIC转接板
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 15:01:00 | 显示全部楼层
suoma 发表于 2017-3-20 13:10
提供了,就是用他的库中helloworld例程

接线没问题吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 15:03:06 | 显示全部楼层
suoma 发表于 2017-3-20 14:15
用这个库,时间可以设置,日期不行,但是有一次又可以设置日期,挺奇怪的,还是怀疑程序,没用IIC转接板

能设置时间说明没问题,就用这个库吧,日期设置不了可能是前面日期声明有错误,再查一查
回复 支持 反对

使用道具 举报

发表于 2017-3-20 15:15:15 | 显示全部楼层
singz 发表于 2017-3-20 15:03
能设置时间说明没问题,就用这个库吧,日期设置不了可能是前面日期声明有错误,再查一查

嗯,我再改一改,谢谢你,液晶、时钟接线没问题
回复 支持 反对

使用道具 举报

发表于 2017-3-21 10:11:37 | 显示全部楼层
singz 发表于 2017-3-20 11:03
IIC库正确吗? 我看你发来的文件里用的是液晶库,如果是IDE自带的液晶库应该是不行的,自带的是并行总 ...

保存并退出时间设置按了set键还是分钟位闪烁,没有退出设置状态,我使用复位键保存时间退出,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-21 10:43:32 | 显示全部楼层
本帖最后由 singz 于 2017-3-21 10:48 编辑
suoma 发表于 2017-3-21 10:11
保存并退出时间设置按了set键还是分钟位闪烁,没有退出设置状态,我使用复位键保存时间退出,


闹钟可以删,但是下面这两句清屏和退出的语句要留下,不然没法退出设置状态

/* ~~~~~~~~~~~~~~~~~~~~~~~~~ 退出设置 ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
          if(buttonPress(Set))
            {
            lcd.clear();
            delay(200);
            goto exit;
            }


exit:  ;
回复 支持 反对

使用道具 举报

发表于 2017-3-21 15:12:27 | 显示全部楼层
singz 发表于 2017-3-21 10:43
闹钟可以删,但是下面这两句清屏和退出的语句要留下,不然没法退出设置状态

/* ~~~~~~~~~~~~~~~~~~~ ...
  1. if(buttonPress(Set))
  2.             {
  3.                     t.yr=syear;
  4.                         t.mon=smonth;
  5.                         t.date=sdate;
  6.                         if (AdjP>0)
  7.                       {
  8.                                 t.hr=shour;
  9.                                 t.min=sminute;
  10.                       }
  11.                         Time t(syear, smonth, sdate, shour, sminute, 00, sdow);
  12.                         rtc.time(t);         
  13.             }
复制代码

加在了上面后面,按了set键还是分钟位闪烁,还是没有退出设置状态
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-21 15:44:05 | 显示全部楼层
suoma 发表于 2017-3-21 15:12
加在了上面后面,按了set键还是分钟位闪烁,还是没有退出设置状态

exit:  ;   //这一句要放在设置子程序里最后一个 } 的前面,意思是退出这个子程序
回复 支持 反对

使用道具 举报

发表于 2017-3-21 16:46:09 | 显示全部楼层
singz 发表于 2017-3-21 15:44
exit:  ;   //这一句要放在设置子程序里最后一个 } 的前面,意思是退出这个子程序

exit:  ;  
这个位置我没变,和你程序位置一样,最后一个}前

我在loop()最后加了如下程序,想看是否设置成功
  1. snprintf(buf, sizeof(buf), "%04d-%02d-%02d %02d:%02d:%02d", t.yr, t.mon, t.date,t.hr, t.min, t.sec);
  2.   Serial.println(buf);
  3.   delay(1000);
复制代码

打开串口,显示如下,显然未设置成功,但是再上电后时间又是更新的,不明白

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2017-3-28 09:21:53 | 显示全部楼层
singz 发表于 2017-3-21 15:44
exit:  ;   //这一句要放在设置子程序里最后一个 } 的前面,意思是退出这个子程序

你的程序验证没有问题,帮忙看下99楼的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-28 14:51:00 | 显示全部楼层
suoma 发表于 2017-3-28 09:21
你的程序验证没有问题,帮忙看下99楼的问题

没用过串口监视,但是既然时间是更新过的,说明功能没问题,只是执行没通过串口,具体我也不懂哈
回复 支持 反对

使用道具 举报

发表于 2017-3-28 18:18:02 | 显示全部楼层
singz 发表于 2017-3-28 14:51
没用过串口监视,但是既然时间是更新过的,说明功能没问题,只是执行没通过串口,具体我也不懂哈

你好,今天有了新进展,用串口监视只是为验证按键设置的时间是否写入时钟芯片,今天实现了该功能。
目前是用DS1302和1602,1602通过IIC转接。使用DS1302的第一个库,有两个问题没有解决:
1、年份设置,我程序是“yy-mm-dd HH:mm”显示,按键年增加,但是退出设置状态后显示不对,怀疑数据类型问题;
我的类型如下
  1. void PritimeSet(int syear,int smonth,int sdate,int shour,int sminute)
复制代码


2、按键退出时间设置状态,目前一直无法退出,我只能通过复位退出,时间可以写进时钟芯片。就是按你程序把exit放到最后一个括号前。

用你的程序验证DS3231没有问题,以上问题均不会出现,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 09:56:04 | 显示全部楼层
本帖最后由 singz 于 2017-3-29 10:02 编辑
suoma 发表于 2017-3-28 18:18
你好,今天有了新进展,用串口监视只是为验证按键设置的时间是否写入时钟芯片,今天实现了该功能。
目前 ...



1.  应该是数据类型问题, 其他地方都是 byte 型

2.  goto exit; 和 exit:  ; 都在的话,如果还是退不出来,是不是放错了 } ?  要放到第一个 if 的 { 对应的 } 前,这样才能退出第一个 if
回复 支持 反对

使用道具 举报

发表于 2017-4-4 20:58:44 | 显示全部楼层
请问你用的电阻是多大的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-5 09:00:27 | 显示全部楼层
lun1910 发表于 2017-4-4 20:58
请问你用的电阻是多大的?

37k欧到45k欧
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 07:58 , Processed in 0.056346 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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