从DS1302读取年寄存器数据,然后判断是否位闰年?但是结果总是是闰年,求大神分析原因
时间:10-02
整理:3721RD
点击:
//下面是部分的代码,读取DS1302的数均正确,但执行decide_year(nian);的返回值均为1;
uchar nian;
uchar BCD_Decimal(uchar bcd) // BCD 转成10进制
{
uchar Decimal;
Decimal=bcd>>4;
return(Decimal=Decimal*10+(bcd&=0x0F));
}
nian=BCD_Decimal(read_1302(0x8d));//读取1302中年寄存器的数值,转化位10进制数
bit decide_year(uchar b)//判断是否为闰年
{
bit a;
a=0;
if(b%400==0)
a=1;
else if ( (b%4==0)&&((b%100)!=0) )
a=1;
else a=0;
return a;
}
uchar nian;
uchar BCD_Decimal(uchar bcd) // BCD 转成10进制
{
uchar Decimal;
Decimal=bcd>>4;
return(Decimal=Decimal*10+(bcd&=0x0F));
}
nian=BCD_Decimal(read_1302(0x8d));//读取1302中年寄存器的数值,转化位10进制数
bit decide_year(uchar b)//判断是否为闰年
{
bit a;
a=0;
if(b%400==0)
a=1;
else if ( (b%4==0)&&((b%100)!=0) )
a=1;
else a=0;
return a;
}