EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 码农 于 2019-4-18 10:19 编辑
: y! | a" j( R# s, h8 I& h9 K" d3 q0 B* b
DS1302真是麻烦啊,里面的bcd转换我看的头都大了
3 ]* s& z3 ~0 _+ k) x8 C% ~4 ?6 y: B5 F+ X& q+ i6 L6 j* T
正常不是把用户输出的十进制数据转为BCD码才能被DS1302识别吗<blockquote>/*------------------------------------------------1 ^3 Z j+ G7 W. v- a7 r7 H
: I( A$ D G4 U3 V9 d/ b3 F: I
" [) V1 _+ w2 | R' n, l* E/ E$ t. y
前面数组定义是
$ g3 S8 r! A* ^unsigned char time_buf1[8] = {20,15,11,6,20,59,00,5};//空年月日时分秒周
* ~3 t6 Z' C# C) g& sunsigned char time_buf[8] ;
+ k& j# y0 f& Q麻烦大家看一下这个函数吧,这个函数的功能应该就是把十进制的时间改为二进制然后写入DS13029 d# y3 e& t7 \: d9 C
所以注释的BCD码处理应该指的就是十进制转bcd码,可是安装这个算法完全算不出来BCD码,我们取i=1吧,那么就是1 W- z4 l m5 Q: c8 H. ?5 n
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码啊,还是我里面什么想错了?
# y6 c0 Y" Q$ P- L" _. f z/ `
2 c' i6 |% b0 V |