EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 码农 于 2019-4-18 10:19 编辑
7 q8 _5 |( G4 e3 z0 @! F6 T G" p4 `8 |- R0 C# H
DS1302真是麻烦啊,里面的bcd转换我看的头都大了0 W9 D. ]# h/ ~4 T' r- L1 y
$ t7 Z; \" m' f0 a
正常不是把用户输出的十进制数据转为BCD码才能被DS1302识别吗<blockquote>/*------------------------------------------------
3 W* C4 d! f. h0 |
3 ~4 b, i: Q% _/ I- \) E' \* O, e5 r. g7 L$ A8 ?& |
前面数组定义是) Z0 u7 @3 L; h# A' c
unsigned char time_buf1[8] = {20,15,11,6,20,59,00,5};//空年月日时分秒周* j. c! O/ @4 |- }% w B; S+ w4 \+ i
unsigned char time_buf[8] ; ' J( U5 l; v# N. A/ y0 q* Y
麻烦大家看一下这个函数吧,这个函数的功能应该就是把十进制的时间改为二进制然后写入DS1302
4 B& N5 }7 _( r4 x7 x所以注释的BCD码处理应该指的就是十进制转bcd码,可是安装这个算法完全算不出来BCD码,我们取i=1吧,那么就是
. M0 S. `9 V" Y* u- O 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码啊,还是我里面什么想错了?
& {& j, r3 {) Y N
2 n% m2 Q5 R, @/ |0 h |