微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 从DS1302读取年寄存器数据,然后判断是否位闰年?但是结果总是是闰年,求大神分析原因

从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;
}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top