📄 setdata.c
字号:
#include "SetData.h"
#include "hardware.h"
//****************BCD到BIN转换***************开始**********
//****************************
// BCD码转数据型
//****************************
uint8 BCDtoBIN(uint8 c)
{
uint8 tmp;
tmp=c&(0x0F);
c&=(0x70);
c>>=4;
c*=10;
c+=tmp;
return c;
}
//****************************
// 数据型转BCD码
//****************************
uint8 BINtoBCD(uint8 c)
{
uint8 tmp;
c%=100;
tmp=c;
c/=10;
tmp%=10;
c<<=4;
c+=tmp;
c&=0x7F;
return c;
}
//****************BCD到BIN转换***************结束**********
//*********************读取和设置DS1302数据*************开始
//************************
// 获得时间数据函数
//************************
void gettime_date()
{
uint8 i;
uint8 tmp[3];
uint8 tmpasc;
for(i=0;i<3;i++) //获得DS1302数据
{
cli();
tmpasc=twi_read_byte(i,0);
sei();
tmp[i]=BCDtoBIN(tmpasc);
}
FRAME_BUF[0][5]=ASCIItab[tmp[2]/10]; //时
FRAME_BUF[0][6]=ASCIItab[tmp[2]%10];
FRAME_BUF[0][8]=ASCIItab[tmp[1]/10]; //分
FRAME_BUF[0][9]=ASCIItab[tmp[1]%10];
FRAME_BUF[0][11]=ASCIItab[tmp[0]/10]; //秒
FRAME_BUF[0][12]=ASCIItab[tmp[0]%10];
}
//************************
// 设置时间数据函数
//************************
void settime_date()
{
uint8 i;
uint8 tmp[7];
if(framecheck())
{
for(i=0;i<7;i++) //待修改位置
{
tmp[i]=BINtoBCD(RX_BUF[i+2]);
cli();
twi_write_byte(i,tmp[i],0);
sei();
}
}
}
//*********************读取和设置DS1302数据*************结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -