EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 码农 于 2019-4-18 10:19 编辑
( b7 r) y. {& m, d0 O- v# h* k
5 J6 e# w7 V: _( X$ WDS1302真是麻烦啊,里面的bcd转换我看的头都大了
2 z. s8 L! @9 i% m+ O9 J" T9 U: A$ T6 q
正常不是把用户输出的十进制数据转为BCD码才能被DS1302识别吗<blockquote>/*------------------------------------------------7 y5 ]/ B7 C0 h' r7 j% s) i
2 S2 u; z6 H" k- j% g) \/ W3 a2 B% l; T- c" ^& X; N
前面数组定义是 T& F2 M! p$ K. p% X( K- w# \
unsigned char time_buf1[8] = {20,15,11,6,20,59,00,5};//空年月日时分秒周
3 `: L, [+ v1 ` B0 \. uunsigned char time_buf[8] ; 8 {$ s' R: ?5 r
麻烦大家看一下这个函数吧,这个函数的功能应该就是把十进制的时间改为二进制然后写入DS1302
& T2 D4 G% A8 K1 k所以注释的BCD码处理应该指的就是十进制转bcd码,可是安装这个算法完全算不出来BCD码,我们取i=1吧,那么就是
! Z% Q2 g1 G- I9 V0 A u 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码啊,还是我里面什么想错了?
% \. q3 Q( k, f$ }( `$ G. M. C E) ?+ y2 n) C' w: r s
|