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

时间芯片ds1302 读数据的疑惑

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
程序如下   for循环中 ,是怎么把数据读出来的,比如刚开始i=0,然后value右移一位,右移了最低位不是丢失了吗?这个判断i0口干嘛用?因为在我想来,我觉得应该是先把value最低位读出来,然后再右移的,这样最低位才不会丢失,我的想法对吗?麻烦各位帮我看看啊/ j$ `- r- v, B$ I4 e3 k: `( l
uchar read_ds1302(uchar add)
$ u' B- e/ J4 B, v3 d2 X{
/ k5 d* N! M' C) j8 r6 q7 L3 m  ^7 ]        uchar i,value;
+ {- n7 i" n' Q        rst=0;
* u2 G7 k1 Z+ o. w$ N- m        delay(5);
0 @) f, b' }! y$ k1 i: e        sck=0;! C( |8 v8 D% t" \+ I% e( s9 A% g/ G
        delay(5);' m/ M6 e" b  c$ Q: J3 ~
        rst=1;
5 ~. c: g0 i6 {9 z! q7 C) K% J& ~/ F        delay(5);
$ k- i' {: Q- e2 z6 W$ D9 }, E        write_ds1302_byte(add);
: w2 g1 a9 f/ K) L% v% C  U        for(i=0;i<8;i++)
! B% U1 G: e; m6 I- Q  g        {$ s: y3 E4 A6 D" S: G& _
                value=value>>1;0 v" x7 i. _0 \! r
                sck=0;
; g/ R, r3 l& v/ q1 C                if(i0)$ d6 f; j: J7 O0 z3 }
                value=value|0x80;) y' G5 x, [4 s  \" I, R1 g- q
                sck=1;
& z2 L3 `3 h, ?2 E        }
1 P4 t" c( \- h' \% G& a2 d; `        rst=0;
! _. D% d. T1 B$ \; l, V        delay(5);, m& r+ Z7 l1 z5 F% L2 u6 j
        sck=0;
5 z2 Z* E1 o3 b! A5 g8 ?1 N        delay(5);1 G; A# \$ ^/ S$ s- r6 a5 h
        sck=1;7 @* h# T, `/ L" [
        i0=1;0 u/ W6 W+ S% m7 M- x5 n* a
        return value;
4 H/ R, L8 o) T5 t8 t                  y5 k1 `* C( @7 {
}

该用户从未签到

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-27 21:38 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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