suoma 发表于 2016-11-22 11:06:41

关于DS1302我使用纽扣电池供电,arduino控制,第一次程序中设定时间运行,中间断电上电,,程序还是从程序设置时间的地方执行,这样时间又相当于返回初始状态了,不能自动记忆

suoma 发表于 2016-11-22 11:14:40

你好,我想一次设置后,后面再上电还是正确的时间,不是开始设置的时间,已使用纽扣电池,该怎么做?

suoma 发表于 2016-12-21 18:26:57


验证无问题,如下程序else部分,不是明白
//以逗号分隔分解comdata的字符串,分解结果变成转换成数字到numdata[]数组
for(int i = 0; i < comdata.length() ; i++)
      {
            if(comdata == ',' || comdata == 0x10 ||

comdata == 0x13)
            {
                j++;
            }
            else
            {
                numdata = numdata * 10 + (comdata -

'0');
            }
      }
假设输入2016,12,09,09,36,40,5,开始j=0,则第一次循环numdata=2,第二次循环numdata=0,至程序检测到,号前,numdata=6,检测到,号后,numdata=numdata*10+1,numdata是多少?
感觉这样分析不对?

另外我将时间写入SD卡存储有问题,一通过串口设置时间就会输出乱了,您帮忙看一下
http://www.geek-workshop.com/thread-27995-1-1.html

suoma 发表于 2017-2-16 16:23:12

弘毅 发表于 2012-4-1 17:19
新版的。。。这个还没研究,1.0改动太大不好用,所以我们大部分还在用0022,0023

0022、0023是在1.0之前?我以为0022是0.2版本?

suoma 发表于 2017-2-16 16:29:05

lionelg 发表于 2012-4-18 23:38
用这个库,改了改原版的代码,结果总是报错,能帮忙看看什么问题么?刚开始研究,比较小白,谢谢。
我的 ...

#include <stdio.h>
#include <string.h>
#include <DS1302.h>

uint8_t CE_PIN   = 5;
uint8_t IO_PIN   = 6;
uint8_t SCLK_PIN = 7;


char buf;
int numdata ={0}, j = 0, mark = 0;
/* 创建 DS1302 对象 */
DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);


void print_time()
{
   /* 从 DS1302 获取当前时间 */
    Time t = rtc.time();
    snprintf(buf, sizeof(buf), "%02d:%02d:%02d", t.hr, t.min, t.sec);
    Serial.println(buf);
}


void setup()
{
    Serial.begin(9600);
    rtc.write_protect(false);
    rtc.halt(false);
}

void loop()
{
    print_time();
    delay(1000);
}
给你修改了

suoma 发表于 2017-2-16 16:40:01

thomas 发表于 2012-5-1 02:26
用这个段代码刷一下看看行不行,如果不行,换下附件的库试试。

怎么没有loop()

Fon 发表于 2017-3-23 16:20:30

时间可以正常走,但在串口上怎么无法修改时间,是什么原因? 求大神指教。。。:'(:'(:'(:'(:'(:'(

UNOR3 发表于 2017-3-28 21:43:54

请问,哪些版本的IDE可以用?我怕不兼容

WeJame 发表于 2017-7-10 20:18:11

为什么我的不能调整时间呢?而且串口输出的时间也是固定没变,求助

Gax 发表于 2017-8-23 21:17:42

我输入2017,8,23,21,05,50,4,为什么给我调到2043了呢

zhengju 发表于 2017-9-14 10:25:36

教程看了好几天,才来评论,真的是对不住了

天之苍狼 发表于 2017-10-8 15:45:08

我在测试的时候,无法通过串口修改!!请问问题在什么地方呢?
You inputed : 2011,11,17,11,22,40,5
Sunday 2001-01-03 01:00:00
Sunday 2001-01-03 01:00:01
Sunday 2001-01-03 01:00:00
Sunday 2001-01-03 01:00:41
Sunday 2001-01-03 01:00:00

mmmao 发表于 2018-1-19 09:34:24

你好楼主,我在做一个早上5点定时驱动电机的时候用到了DS1302,本来想直接用arduino内部程序计时,但是好像不精确,所以想到用时钟模块,但是在电脑串口能输出时间,但是我无法将时间提出出来进行IF判断,(单个提取不出来,整个时间字符串IF判断进过实验发现不行)来进行我的电机驱动程序,我尝试过改库文件,由于技术不佳没有成功,您有办法吗,我仅需将,秒,分,时,三个数据提取出来。

w01218 发表于 2018-2-9 17:30:10

zwayu 发表于 2015-12-6 22:24
**** 作者被禁止或删除 内容自动屏蔽 ****

太感谢了,翻了很多帖子

MWD--文化易人 发表于 2018-3-4 18:31:02


顶,希望多做些适合我们这些新手的。,对我这样的硬件小白非常有帮助
页: 1 2 3 4 5 6 7 8 9 [10] 11
查看完整版本: Arduino学习笔记A8 - Arduino 连接 DS1302时钟模块