TEL:0755-32882616   公司简介 - 委托交易 - 收费标准 - 汇款方式 - 联系我们 - 免责申明 - 站点地图

设为桌面图标 | 设为首页 | 加入收藏夹 | IC型号

   当前位置: IC37首页 > 博士 > 热帖推荐

关于DS1302读取时的奇怪现象,高手来解释一下.


用户名:jinyitong
注册时间:2011/7/9 18:54:00
楼主  发布时间:2013/3/13 16:07:41    点击率:1291

关于DS1302读取时的奇怪现象,高手来解释一下.

我读的DS1302的数据有个奇怪的现象

秒对

分错

时对

日错

月对

周错

年对

下一次读时

秒 错

分 对

时 错

日 对

月 错

周 对

年 错

下一次读取

又反过来

源程序如下:

void Read_1302_Time()

{

uchar i;

uchar idata ucCurtime[7];

uchar idata uc[7];

uchar ucAddr = 0x81;

for (i=0; i<7; i++)

{

ucCurtime[i] = R1302(ucAddr);/*格式为: 秒 分 时 日 月 星期 年 */

uc[i] = R1302(ucAddr);//这里加了一句测试用的语句

ucAddr += 2;

}

Time_1302.u8_Second= BcdToHex(ucCurtime[0]);

Time_1302.u8_Minute= BcdToHex(ucCurtime[1]);

Time_1302.u8_Hour = BcdToHex(ucCurtime[2]);

Date_1302.u8_day = BcdToHex(ucCurtime[3]);

Date_1302.u8_month = BcdToHex(ucCurtime[4]);

Date_1302.u8_week = BcdToHex(ucCurtime[5]);

Date_1302.u8_year = BcdToHex(ucCurtime[6]);

}

在第10行的地方,加了一句uc[i] = R1302(ucAddr);(uc[i]是没用的数组)

后,可以实现,读出准确数据。

但是,系统初始化时,有时会出错,正好反过来了,

也就是uc[i] = R1302(ucAddr);(uc[i]里全是有用的数据,ucCurtime[i]里成乱码了)

为什么?

纠结了两天了,急需解决啊。


用户名:xh0123456xh
注册时间:2011/7/12 14:27:00
1楼  发布时间:2013/3/13 16:07:42
不用纠结,考虑下我们的时钟芯片SD2068,性价比高,而且有专门的技术支持
热门型号:
TOP234G TP8302AP TPA3008D2 TPA6020A2RGWR TPC8107A TPS2044BDR TPS28225DRBR TPS3306-18DGK TPS3813K33DBVT TPS62420DRCT