找回密码
 注册
关于网站域名变更的通知
查看: 1004|回复: 2
打印 上一主题 下一主题

时间芯片ds1302 读数据的疑惑

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-3-13 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
程序如下   for循环中 ,是怎么把数据读出来的,比如刚开始i=0,然后value右移一位,右移了最低位不是丢失了吗?这个判断i0口干嘛用?因为在我想来,我觉得应该是先把value最低位读出来,然后再右移的,这样最低位才不会丢失,我的想法对吗?麻烦各位帮我看看啊
2 ~4 c- y* O: @' O; A9 vuchar read_ds1302(uchar add)
8 e  k2 e  o1 M; @# L* \{
) c' \- U* C" H- ]. v* d. Q3 Q        uchar i,value;
: X( D# t' Q# W, P1 U% G        rst=0;
- B# K0 P3 I* N8 q' d        delay(5);
  ^# Z; `5 N6 L$ U- P* E, L        sck=0;
) z, r* x4 @7 R# O! _- I/ [        delay(5);
0 X+ y6 c! U. m3 h$ _& s2 I& L        rst=1;
# P. O  P& T8 X0 u2 Y7 z8 d2 m        delay(5);
8 `! E$ c5 ?' d        write_ds1302_byte(add);/ L  B1 `! g  m1 M$ |$ R) _* K' L
        for(i=0;i<8;i++)
9 p/ C6 B) W' Z' E( F' n2 z$ ~        {& s: H6 q4 O  l$ o. d4 ]* c
                value=value>>1;
* s: ?: c- }8 y+ H5 l; m                sck=0;) G9 r% V. E+ T1 N' s1 ?$ W
                if(i0)6 a6 g6 L/ [/ Q8 L
                value=value|0x80;
* N( c( j5 G5 B; F2 o8 }! F                sck=1;" E$ p* a5 m1 B7 l
        }
% G7 x  g. q$ i' a( Y7 u        rst=0;3 q- T% _0 N+ y- `
        delay(5);1 \" L: C+ S3 {6 o( `, I
        sck=0;& }6 ?' ^7 [3 H) n  k
        delay(5);
# _4 h# y9 R$ e& Z7 i* H( S        sck=1;! p9 W9 R- e0 M7 C) h
        i0=1;6 v9 i8 u. O, N- `
        return value;
" }0 g8 c9 g6 b               
& T0 l  V1 m7 T. d8 \& L}

该用户从未签到

2#
 楼主| 发表于 2013-3-13 21:49 | 只看该作者
。。。。。。怎么没人啊?路过的留个脚印啊

该用户从未签到

3#
发表于 2013-3-13 22:09 | 只看该作者
DS1302先发送是低位,value右移丢掉的最低位是没有用的。判断IO的作用是取DS1302输出的当前bit的值。你单步跟踪调试一下,很简单的程序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-4 10:13 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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