/* ********************************************************************************************************* * IAR Development Kits * on the * * M451 * * Filename : rtc_wakeup.h * Version : V1.00 * Programmer(s) : Qian Xianghong ********************************************************************************************************* */ #ifndef USER_RTC_WAKEUP_PRESENT #define USER_RTC_WAKEUP_PRESENT // RTC初始时间:固定为2016-01-01 00:00:00 #define INITIAL_YEAR 2016 // 定义工作模式 #define WORK_MODE_PROTECT 0 // 电池保护模式 #define WORK_MODE_CHARGE 1 // 充电提示模式 #define WORK_MODE_NORMAL 2 // 正常模式 // 电量极低标志 extern uint8_t bat_veryLow; // 休眠标识 extern volatile uint8_t Wakeup_Sleeping; // 实际启动时间和INITIAL_YEAR相差的秒数(当GPS定位或GPRS连接基站以后设置) extern volatile uint32_t RTC_offsetSeconds; void Wakeup_Init(); void Wakeup_Open(); // 读取工作模式 uint8_t Wakeup_GetWorkMode(); // 设置工作模式 void Wakeup_SetWorkMode(); // 计算某月的天数 uint16_t get_month_days(uint16_t year, uint8_t month); // 计算从某年开始以来经过的秒数 uint32_t Calc_SecondsFromYear(uint16_t startYear, uint16_t year, uint8_t mon, uint8_t day, uint8_t hour, uint8_t min, uint8_t sec); // 设定下次闹钟唤醒时间 void Wakeup_SetAlarm(uint8_t charging); // 将从INITIAL_YEAR开始的描述,转换成年月日 void Wakeup_CalcUTCTime(uint32_t totalSeconds, S_RTC_TIME_DATA_T *pRTC); // 检查是否进入掉电模式 void Wakeup_Powerdown(); #endif