大哈欠E 发表于 2013-7-28 16:56:52

关于ds1302时序的问题。

ds1302读时序时 是时钟下降沿之后才能读数吗 怎么我看有的人先把clk=1 然后用if()读取 再把clk=0 拉低 我这样写就不行 如下程序1是错误的

uchar read_Byte()
{
uchar dat=0x00,i;
for(i=0;i<8;i++)
{
           dat=dat>>1;
        DS1302_CLK=1;
        if(DS1302_IO)
        dat|=0x80;
        DS1302_CLK=0;
}
   DS1302_RST=0;
   DS1302_CLK=0;
   return(dat);
}

这样写才正确
uchar read_Byte()
{
uchar dat=0x00,i;
for(i=0;i<8;i++)
{
           dat=dat>>1;
        DS1302_CLK=1;
        DS1302_CLK=0;
    if(DS1302_IO)
        dat|=0x80;


   }
   DS1302_RST=0;
   DS1302_CLK=0;
   return(dat);
}

还有写时序图是先拉低clk=0 准备要写的数据 然后 clk=1, 我可不可以这样(1)准备要写的数据 (2)clk=0(3)clk=1 ?

时序图到底是怎样看的 怎样一个原理?小生是一个正努力进步的菜鸟 请大神指教。

大哈欠E 发表于 2013-7-28 17:06:16

上升沿采样 下降沿锁存 这句话怎样理解 采样针对输入写 锁存是读?
页: [1]
查看完整版本: 关于ds1302时序的问题。