📄 rtc_eeprom.c.bak
字号:
#include "iic.h"
//////////////////////////////////////////////////////////////////////////
//RTC
void RTC_FirstInit()
{
XBYTE[RTC_BASE+CtrlRegB]=0x80;//SET
//XX:00:00
XBYTE[RTC_BASE+RegSeconds]=0x00;
XBYTE[RTC_BASE+RegSeconds_Alarm]=0x00;
XBYTE[RTC_BASE+RegMinutes]=0x00;
XBYTE[RTC_BASE+RegMinutes_Alarm]=0x00;
XBYTE[RTC_BASE+RegHours]=0x00;
XBYTE[RTC_BASE+RegHours_Alarm]=0xff;
XBYTE[RTC_BASE+RegDay]=SYS_BEGIN_DAY;
XBYTE[RTC_BASE+RegDate]=SYS_BEGIN_DATE;
XBYTE[RTC_BASE+RegMonth]=SYS_BEGIN_MONTH;
XBYTE[RTC_BASE+RegYear]=SYS_BEGIN_YEAR;
XBYTE[RTC_BASE+RegCentury]=20;
temp=XBYTE[RTC_BASE+CtrlRegC];//clear interrupts
XBYTE[RTC_BASE+CtrlRegB]=0x37;//AIE+UIE+DM+24+DSE
XBYTE[RTC_BASE+CtrlRegA]=0x20;//begin the oscilators
}
void RTC_GeneralInit()
{
temp=XBYTE[RTC_BASE+CtrlRegC];//clear interrupts
XBYTE[RTC_BASE+CtrlRegB]=0x37;//AIE+UIE+DM+24+DSE
}
//////////////////////////////////////////////////////////////////////////
//EEPROM
void EPR_Write(unsigned int addr,unsigned char dat)
{
unsigned int xdata lgtemp;
//锁定不可写
addr+=EEPROM_BASE;
XBYTE[addr]=dat;
lgtemp=1000;
while (lgtemp)
{
temp=XBYTE[addr];
if(temp==dat)
break;
lgtemp-=1;
}
}
unsigned char EPR_Read(unsigned int addr)
{
unsigned char xdata dat;
addr+=EEPROM_BASE;
dat=XBYTE[addr];
return dat;
}
void EPR_Page_0()
{
//缓冲页面
EEPROM_PAGE = 0;
EPRChangeFlag=1;
}
void EPR_Page_1()
{
EEPROM_PAGE = 1;
}
void EPR_Reset()
{//重新恢复EEPROM
unsigned int xdata i,k;
EPR_Page_0();
for(i=0;i<13*2;i++)
{//一共26个相组
for(k=0;k<7*8;k++)
EPR_Write(i*PHASE_GROUP_LEN+k,DefaultPhaseGroup[k]);
}
k=0;
for(i=0x0fff;i>ADDR_LOW_END;i--)
{
EPR_Write(i,DefaultSetting[k]);
k++;
}
EPR_Page_1();
for(i=0;i<13*2;i++)
{//一共26个相组
for(k=0;k<7*8;k++)
EPR_Write(i*PHASE_GROUP_LEN+k,DefaultPhaseGroup[k]);
}
k=0;
for(i=0x0fff;i>ADDR_LOW_END;i--)
{
EPR_Write(i,DefaultSetting[k]);
k++;
}
EPRChangeFlag=0;
}
void EPR_CopyPage()
{
unsigned int xdata i;
unsigned char xdata k1,k2;
for(i=0;i<13*2*PHASE_GROUP_LEN;i++)
{
EPR_Page_0();
k1=EPR_Read(i);
EPR_Page_1();
k2=EPR_Read(i);
if(k2!=k1)
EPR_Write(i,k1);
}
for(i=0x0fff;i>ADDR_LOW_END;i--)
EPRChangeFlag=0;
}
//////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -