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

时间芯片ds1302 读数据的疑惑

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
程序如下   for循环中 ,是怎么把数据读出来的,比如刚开始i=0,然后value右移一位,右移了最低位不是丢失了吗?这个判断i0口干嘛用?因为在我想来,我觉得应该是先把value最低位读出来,然后再右移的,这样最低位才不会丢失,我的想法对吗?麻烦各位帮我看看啊' [1 h9 i# n& l+ \* r) t
uchar read_ds1302(uchar add)
6 U7 O0 r/ C. C  Z9 @{8 z8 o) M; O% H7 D5 z! O8 }
        uchar i,value;  V3 O1 i1 ]& B* Y3 E2 r1 h
        rst=0;
- w9 ~' H* K/ @  @* e' A# ^        delay(5);8 D& i8 b2 b6 L( q0 I
        sck=0;# i: S2 d4 ^6 [6 u
        delay(5);
( N$ @4 t8 s( g8 x+ w3 `7 f: H        rst=1;
( }& q& T. J- V( u& V0 J5 T# Q( b5 L        delay(5);* [& c; d1 ?' v" ^( s
        write_ds1302_byte(add);0 g4 ]+ {0 s3 m
        for(i=0;i<8;i++)
, w' c6 P6 b. h        {
5 f+ }* {) T: q- m5 J! t' J- \# g                value=value>>1;. [! F4 t$ o4 E5 B; ^! P
                sck=0;
) d7 ]9 }# J4 A+ S. W; M7 g                if(i0)- U  E# p% p; u( Z- M
                value=value|0x80;6 |" v* C( |6 K
                sck=1;  l, H" o- r2 c" r7 Z
        }
/ Y# s1 z# [. b" p0 W        rst=0;
5 K5 O. [8 m- t. |        delay(5);# B* l& A4 J* k& K! q' d0 T9 m
        sck=0;
0 _9 ^" s( _+ O. K2 E5 K. ?5 |$ ~5 W        delay(5);
- |/ U3 e8 W$ m7 }. g        sck=1;0 G. t5 |" H- Z* Q  \9 ~4 a
        i0=1;
* w1 Y; W: C6 O  f  m        return value;. \" Y* W7 r# c7 t6 z# b# H
               
& O  w! P. B( e}

该用户从未签到

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-6-14 12:26 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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