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

时间芯片ds1302 读数据的疑惑

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
程序如下   for循环中 ,是怎么把数据读出来的,比如刚开始i=0,然后value右移一位,右移了最低位不是丢失了吗?这个判断i0口干嘛用?因为在我想来,我觉得应该是先把value最低位读出来,然后再右移的,这样最低位才不会丢失,我的想法对吗?麻烦各位帮我看看啊& r; r8 f# U, a9 O
uchar read_ds1302(uchar add)2 S6 e! O# E5 U+ K4 \9 r- A4 u, l
{' h( a- {/ \# }" e% w
        uchar i,value;" C; X: K9 S& S& {# ?! M! x0 J. E7 A
        rst=0;
$ d  w' p. r. z2 p6 ~; O$ y        delay(5);
0 k$ ]: e; n& m1 W4 g5 d        sck=0;
3 e9 o4 T0 A" n# b3 l4 N/ M9 }5 I. Y        delay(5);
5 P' S$ _8 r3 u        rst=1;
+ g1 F  y; Q# r; T/ _7 W        delay(5);! H# M1 R1 [/ ?; L9 L
        write_ds1302_byte(add);& v5 c  k6 s* H+ P; M
        for(i=0;i<8;i++): {7 p6 K% J% s+ t: y
        {
6 L3 N6 n' D% G! M                value=value>>1;! A# I+ }, e6 h9 j" _6 s
                sck=0;
3 g2 F' x% E9 n. h                if(i0)
) n# p' Z/ [) Q. y+ u, o0 ]                value=value|0x80;& S# ?, z& p! |+ i1 N
                sck=1;
, U. v# z+ J& A) n0 ^        }: m7 l3 m7 D0 u: {. e
        rst=0;/ M. z, x; A8 M1 d4 p  q3 L
        delay(5);3 U/ P1 P& A- b* `5 e1 e
        sck=0;" _- D& Z* k" H) E* l
        delay(5);. @7 j( k$ Y4 e/ G7 T
        sck=1;
8 Z4 L" E/ J* J: i! P        i0=1;' ]; `) t3 F( b. Z9 J- j
        return value;9 R* u; P0 Q3 U
               
" x* [3 V3 z( f, F}

该用户从未签到

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-8-20 10:37 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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