//******************************************************************** // Ver 1.0 // 2021.11.19 1、新建文件。 //******************************************************************** #ifndef __RTC__H #define __RTC__H #include typedef struct{ INT16U year; INT8U month; INT8U day; INT8U hour; INT8U min; INT8U sec; INT16U week; }RTC_TIME_Str; typedef struct{ INT8U alarmhour; INT8U alarmmin; INT8U alarmsec; INT8U alarmweek; }RTC_ALARM_Str; typedef union{ INT32U WORDS; INT16U HALFWORDS[2]; INT8U BYTES[4]; }RTC_BKP0_Str; typedef struct{ RTC_TIME_Str Time; RTC_ALARM_Str AlarmTime; RTC_BKP0_Str Bkp0Value; time_t Timestamp; }RTC_Str; extern RTC_Str RTC_Info; #define RTC_InfoInit() MEM_Fill((INT8U *)&RTC_Info, 0, sizeof(RTC_Str)) #define RTC_Bkp0Value RTC_Info.Bkp0Value.WORDS #define RTC_Bkp0IapFlag RTC_Info.Bkp0Value.HALFWORDS[0] #define RTC_Bkp0IapCnt RTC_Info.Bkp0Value.HALFWORDS[1] //******************************************************************** #define BKP_VAR_INIT 0x7a //BKP初始化后的值 #define BKP_VAR_IAP 0x75 //BKP进入IAP模式的值 //******************************************************************** extern void RTC_Init(void); extern ErrorStatus RTC_SetDateTime(RTC_TIME_Str *pTime) ; extern void RTC_ReadDateTime(RTC_TIME_Str *pTime); extern void RTC_SetAlarmValue(RTC_ALARM_Str *AlarmTime); extern void RTC_AlarmCycle(INT32U tSec); extern uint8_t RTC_CalWeek(RTC_TIME_Str* pTime); extern void RTC_BeiJinTimeToTimestamp(void); extern void RTC_SetBootFlag(INT32U Value); extern INT32U RTC_ReadBootFlag(void); #endif