DS1302 偶数秒读取不对,奇数是对的。

2019-08-21 12:28发布

本帖最后由 未知1908 于 2017-3-23 11:31 编辑

调试1302遇到问题,DS1302 偶数秒读取不对,奇数是对的。而且偶尔会乱跳。硬件解法是
晶振接了20P的电容,没有接上拉电阻(DATA脚接了上拉电阻现象还是一样的)
程序用的是这个坛友的
http://www.openedv.com/forum.php ... 80&highlight=DS1302
第一次写入并读取的时间                  读取到错误的偶数秒并且日也错了                   读到奇数的秒,是显示对的,
%HM)HSD8%}E0Y@G{P7Y01%N.png `FKU3}UXV)NG(}C345%SKMR.png (UCFJGK`{UVNC8VM2Z(Q4HX.png
我怀疑是读取的时序不对导致了偶数不对,        DS1302_IO_IN();
        for (i = 0; i < 8; i ++)
        {
                temp = temp >> 1;
                if(DS1302_DATA_IN)
                        temp |= 0x80;
                else
                        temp &= 0x7F;
                DS1302_SCK = 1;   //2úéúê±&#214;ó
                delay_us(10);
                DS1302_SCK = 0;
        }
        DS1302_RST = 0;      //í£&#214;1DS1302×ü&#207;&#223;
        return temp;
}
遇到的问题就是这样,有这方面经验的朋友请指导一下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
LuoBen
1楼-- · 2019-08-22 06:31
未知1908 发表于 2017-4-12 08:35
应该要先写入时间再读取吧,我目前实验是可以的,但是偶尔会时间会重置,需要重新写入才行。有时间我再搞 ...

恩,这个问题已搞定,不过又出现一个新问题,见下一楼
LuoBen
2楼-- · 2019-08-22 09:29
时间戳的记录会出现错误
未知1908
3楼-- · 2019-08-22 12:30
 精彩回答 2  元偷偷看……
LuoBen
4楼-- · 2019-08-22 16:00
未知1908 发表于 2017-4-14 14:55
之前的问题你是怎么解决的??现在的这个问题我感觉是要加上拉电阻,因为时间没有重置,只是偶尔有错读, ...

第一次把“DS1302_Write_Time();”这句话打开,编译下载,自定义初试时间,单片机不要断电。然后把“DS1302_Write_Time();”这句话屏蔽掉,编译下载,这样能实现单片机重新上电时间不重置的问题。
再说我的问题,我用的是DS1302的模块,请问在什么地方加上上拉电阻?
未知1908
5楼-- · 2019-08-22 20:01
LuoBen 发表于 2017-4-14 16:09
第一次把“DS1302_Write_Time();”这句话打开,编译下载,自定义初试时间,单片机不要断电。然后把“DS13 ...

与单片机连接的线上加上拉电阻10K,就是一端接IO口一端接3.3V
MZWPP130501
6楼-- · 2019-08-23 01:17
未知1908 发表于 2017-4-12 08:35
都是FF的话就先检查一下硬件吧

一周热门 更多>