RTC时钟几乎是现在单片机的标配,特别在做物联网相关的项目的时候,这个功能几乎是必需品,现总结几个常用的函数;
1、RTC与BDC码的转换
/********************************************************************
*@函数名:bsp_BCD_Check
*@功 能:检查BCD码格式
*@形 参:bcd 需要检验的 BCD 码
*@返回值:-1 不合格 0 属于BCD码
*@备 注:NULL
********************************************************************/
int bsp_BCD_Check(uint8_t bcd)
{
uint8_t byte;
byte = bcd&0X0F;
if(byte > 9) return -1;
byte = (bcd>>4)&0X0F;
if(byte > 9) return -1;
return 0;
}
/********************************************************************
*@函数名:bsp_BCDToHex
*@功 能:将BCD转换成HEX码
*@形 参:bcd 需要转换的 BCD 码
*@返回值:转换后的十六进制码
*@备 注:NULL
********************************************************************/
uint8_t bsp_BCDToHex(uint8_t bcd)
{
uint8_t byte;
byte = (bcd>>4)*10+(bcd&0X0F);
return byte;
}
/********************************************************************
*@函数名:bsp_BCDToHex
*@功 能:将HEX换成BCD码
*@形 参:hex 需要转换的 HEX 码
*@返回值:转换后的BCD码
*@备 注:NULL
********************************************************************/
uint8_t bsp_HexToBCD(uint8_t hex)
{
uint8_t byte;
byte &