打印

再次请教DS1302的问题--有源代码

[复制链接]
1573|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
救火车| | 2008-12-9 19:03 | 只看该作者

不看你的程序了,读时间的时候操作2次吧。

以前也遇到过这个问题,23:59以后,程序不是0点,还是偶尔发现的这个现象,当时着急项目,读的时候操作两次,就把这个问题避免了。 

使用特权

评论回复
板凳
xhtxzxw| | 2008-12-10 00:15 | 只看该作者

嘿嘿

俺和火车有同样的经历!!!
在程序里,凡是读1302的时间日期寄存器,连续写两条一样的读语句.呵呵

使用特权

评论回复
地板
ky_21ic|  楼主 | 2008-12-11 22:45 | 只看该作者

回三楼

现在找打什么原因了吗???

使用特权

评论回复
5
xhtxzxw| | 2008-12-11 22:57 | 只看该作者

嘿嘿

没有,就一直这么用着呢!

使用特权

评论回复
6
ky_21ic|  楼主 | 2008-12-12 08:19 | 只看该作者

还是不行啊。。。

ReadTime();我也写了两次了,怎么还是不行啊???
极度郁闷啊!!!!!!!!!!!!!!!

使用特权

评论回复
7
救火车| | 2008-12-12 08:45 | 只看该作者

呵呵。看来3楼和我一样懒啊。

楼主,你在两次读取之间加一个延时, 1秒的吧。  具体的我还记得不太清楚了。你可以试试。。。

使用特权

评论回复
8
ky_21ic|  楼主 | 2008-12-12 09:14 | 只看该作者

回七楼

还是不行啊。。。。。
我怀疑是程序的问题,可能是16进制与10进制,数字与字符之间的问题???????????
哎,实在是不知道怎么办了!!!!!!!

使用特权

评论回复
9
gavin_he| | 2008-12-12 09:55 | 只看该作者

不要使劲读,改成0.5S读一次, 试一下看看

使用特权

评论回复
10
奇门遁甲| | 2008-12-12 11:08 | 只看该作者

re

void displaypulsenum(int num)
有问题吧
keil c51整型变量长度才16位,何来shiwan
读不要那么频繁,
我用如下方法减少读的频率

void ReadTime()
{
    static uchar second_old=0;     //秒变化再读
       uchar i,addr;          
       
       if(second_old==Read(0x81))          //秒没有变化,不需要继续读
               return;
      do{
            addr = 0x81;
              for(i=0;i<7;i++){        
                  Time1=Read(addr);
                   addr+=2;
              }
     }while(Time1[0]!=Read(0x81))          //读的过程,秒也发生了变化,重新读所有需要的时间值

    second_old=Time1[0];               //保存新的秒值

}

使用特权

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

本版积分规则

65

主题

211

帖子

1

粉丝