打印

DS1302 的 读时序问题

[复制链接]
1641|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gy_eleven|  楼主 | 2013-6-30 23:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下是 DS1302 读时钟或ram 子代码。sclclock sdadataI/0)。  enRST信号。
uchar read(uchar a2)
{
       uchar j,d2=0x00;
       en=0;
       scl=0;
       en=1;
       for(j=0;j<8;j++)     //发送地址
       {
              scl=0;
              sda=(a2 & 0x01);
              a2=a2>>1;
问题1
              scl=1;
       }
       for(j=0;j<8;j++)            //读数据
       {                 
              if(sda==1)                    //在这句执行前SCL还是高电平。
              {d2=d2|0x80;}            //读取数据不是应该是下降沿读取么?但现在高电平直接读取了?
              else                         //读完再产生下降沿? 这样写才能用。
                                               如果先把scl=0 再去判断sda 就不能用。这是为什么?

              {d2=d2&0x7f;}
              scl=0;
              d2=d2>>1;            
              scl=1;
       }
       en=0;
//以下为DS1302复位的稳定时间       没有看到什么资料上有什么DS1302什么复位稳定时间这段代码的啊,但少了这段还不能工作。这段代码是干嘛的?有什么资料上写么?
       scl=0;
       scl=1;
       sda=0;
问题2
       sda=1;
       return d2;
}
您开发板照片:(你可以用qq截屏,粘贴到这里)

相关帖子

沙发
gy_eleven|  楼主 | 2013-7-1 09:03 | 只看该作者
自己顶一个~~~~

使用特权

评论回复
板凳
outstanding| | 2013-8-25 11:40 | 只看该作者
DS1302技术手册上有时序图,可以看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝