标题:
这个时间数据转成BCD码的函数我没搞懂
[打印本页]
作者:
bubaijun
时间:
2021-6-1 14:10
标题:
这个时间数据转成BCD码的函数我没搞懂
void Set(uchar sel,uchar sel_1)
{
uchar address,time;
uchar max,min;
if(sel==1) {address=0x84; max=23;min=0;} //小时
if(sel==2) {address=0x82; max=59;min=0;} //分钟
if(sel==3) {address=0x88; max=12;min=1;} //月
if(sel==4) {address=0x86; max=31;min=1;} //日
if(sel==5) {address=0x8a; max=7;min=1;} //星期
time=R1302(address+1)/16*10+R1302(address+1)%16; //变成BCD码
if (sel_1==1) time++; else time--;
if(time>max) time=min;
if(time<min) time=max;
W1302(0x8e,0x00);
W1302(address,time/10*16+time%10);
W1302(0x8e,0x80);
}
就是变成BCD码那一行的R1302,我用keil4跑的时候总显示错误
作者:
daemondong
时间:
2021-6-1 17:12
time=R1302(address+1)/16*10+R1302(address+1)%16; 应该是BCD码变成16进制。
作者:
小牢头
时间:
2021-6-1 17:13
试下先读到一个变量,之后再处理
作者:
glinfei
时间:
2021-6-1 20:01
time=R1302(address+1)/16*10+R1302(address+1)%16; 应该是BCD码转十进制。
不知道R302返回的是什么类型的数?应该也是uchar的吧?如果是稍微改一下,执行会快点:
address=R1302(address+1);
time=address>>4*10+address&0x0F;
作者:
she_chen
时间:
2021-6-1 23:01
看了看,这个函数是BCD码转十进制
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1