EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 码农 于 2019-4-18 10:19 编辑 7 }! J6 k2 j# N8 }8 ]5 o w; j2 j
6 g2 S3 g6 ]% e# z! P9 ?9 A* q
DS1302真是麻烦啊,里面的bcd转换我看的头都大了4 k4 ^4 X) b: a" b% p
! j! q* j2 C; ~/ V正常不是把用户输出的十进制数据转为BCD码才能被DS1302识别吗<blockquote>/*------------------------------------------------
1 o/ {3 f; `: j8 i2 N, ]7 G3 y$ _) [4 P0 c
0 D% F. ~0 c/ Y9 K9 j, T0 b5 D
前面数组定义是5 k) K# x: s" `# A8 f
unsigned char time_buf1[8] = {20,15,11,6,20,59,00,5};//空年月日时分秒周4 [ h# Z) b& b6 p- Z5 ^2 s+ d- R
unsigned char time_buf[8] ;
: T" r) A, v1 v* d% ^+ b麻烦大家看一下这个函数吧,这个函数的功能应该就是把十进制的时间改为二进制然后写入DS1302 c* ?& t8 I( N& }$ T+ L/ T
所以注释的BCD码处理应该指的就是十进制转bcd码,可是安装这个算法完全算不出来BCD码,我们取i=1吧,那么就是% b6 |0 A( O: U. L1 ?! Y
tmp=time_buf1[1]/10; //15/10=1=tmp time_buf[1]=time_buf1[1]%10; //15%10=5=time_buf[1] time_buf[1]=time_buf[1]+tmp*16; //5+1*16=21=time_buf[1] 这个21很明显绝不是BCD码啊,还是我里面什么想错了?
, r# L2 Z4 D7 ]" i; C& E: q& @% k5 q0 T! v9 U# A
|