EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 码农 于 2019-4-18 10:19 编辑
$ q4 [/ r, k6 } @* }5 v y* M: K, n6 {* l
DS1302真是麻烦啊,里面的bcd转换我看的头都大了$ t) _2 m( K2 R+ x
# j( y3 {7 M3 W7 z) p) b' ?% A& f
正常不是把用户输出的十进制数据转为BCD码才能被DS1302识别吗<blockquote>/*------------------------------------------------# \& p) g% Z& C7 s- Q$ a. L
. v. s9 n' W" @9 C x* n, T
- J1 \, Z9 e% J: X! R前面数组定义是 }7 ~6 w( h+ t, J
unsigned char time_buf1[8] = {20,15,11,6,20,59,00,5};//空年月日时分秒周; m; e! [4 {2 N4 W
unsigned char time_buf[8] ;
9 Q- H t# T5 x- N$ a2 d& |麻烦大家看一下这个函数吧,这个函数的功能应该就是把十进制的时间改为二进制然后写入DS13022 w) M* c5 v! j" W" [( G9 E
所以注释的BCD码处理应该指的就是十进制转bcd码,可是安装这个算法完全算不出来BCD码,我们取i=1吧,那么就是& c# T7 }; h5 l' J& S
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码啊,还是我里面什么想错了? 0 ^, t7 b7 d+ b9 ~( g
, b# B+ c; r1 e8 k
|