MS-DTU/Anjiehui7_TTS_ST_V2.4_LOCAL/User/rtc_wakeup.h

93 lines
2.7 KiB
C
Raw Permalink Normal View History

2025-04-03 14:18:58 +08:00
/*
*********************************************************************************************************
* 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
#include "type.h"
#pragma pack(push, 1)
// <20><><EFBFBD><EFBFBD><E1B9B9>NuvotonоƬ<D0BE><C6AC><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD>
typedef struct {
uint32_t u32Year; /*!< Year value */
uint32_t u32Month; /*!< Month value */
uint32_t u32Day; /*!< Day value */
uint32_t u32DayOfWeek; /*!< Day of week value */
uint32_t u32Hour; /*!< Hour value */
uint32_t u32Minute; /*!< Minute value */
uint32_t u32Second; /*!< Second value */
uint32_t u32TimeScale; /*!< 12-Hour, 24-Hour */
uint32_t u32AmPm; /*!< Only Time Scale select 12-hr used */
} S_RTC_TIME_DATA_T;
#define RTC_YEAR2000 2000 /*!< RTC Reference */
#define RTC_CLOCK_12 0 /*!< RTC 12 Hour */
#define RTC_CLOCK_24 1 /*!< RTC 24 Hour */
#define RTC_SUNDAY ((uint32_t) 0x00000000) /*!< Day of week is sunday */
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽΪNuvotonоƬ<D0BE><C6AC>ʽ
void RTC_GetDateAndTime(S_RTC_TIME_DATA_T *sRTC);
#pragma pack(pop)
// RTC<54><43>ʼʱ<CABC><EFBFBD>̶<EFBFBD>Ϊ2016-01-01 00:00:00
#define INITIAL_YEAR 2016
// <20><><EFBFBD><EFBFBD><E5B9A4>ģʽ
#define WORK_MODE_PROTECT 0 // <20><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>ģʽ
#define WORK_MODE_CHARGE 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾģʽ
#define WORK_MODE_NORMAL 2 // <20><><EFBFBD><EFBFBD>ģʽ
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD>־
extern uint8_t bat_veryLow;
// <20><><EFBFBD>߱<EFBFBD>ʶ
extern volatile uint8_t Wakeup_Sleeping;
// <20>Ƿ<EFBFBD>˯<EFBFBD><CBAF>ģʽ
extern volatile uint8_t Wakeup_SleepMode;
// ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>INITIAL_YEAR<41><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GPS<50><53>λ<EFBFBD><CEBB>GPRS<52><53><EFBFBD>ӻ<EFBFBD>վ<EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD>ã<EFBFBD>
extern volatile uint32_t RTC_offsetSeconds;
void Wakeup_Init();
void Wakeup_Open();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ģʽ
uint8_t Wakeup_GetWorkMode();
// <20><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>ģʽ
void Wakeup_SetWorkMode();
// <20><><EFBFBD><EFBFBD>ij<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
uint16_t get_month_days(uint16_t year, uint8_t month);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>ʼ<EABFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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);
// <20><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>ʱ<EFBFBD><CAB1>
void Wakeup_SetAlarm(uint8_t charging);
void Wakeup_SetAlarm_B();
// <20><><EFBFBD><EFBFBD>INITIAL_YEAR<41><52>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Wakeup_CalcUTCTime(uint32_t totalSeconds, S_RTC_TIME_DATA_T *pRTC);
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
void Wakeup_Powerdown();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD>Ϩ<EFBFBD><CFA8><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѣ<EFBFBD>
void Wakeup_SleepDown();
// <20><><EFBFBD><EFBFBD><E7BBBD><EFBFBD>ж<EFBFBD>
void Vcc_Power_Handler(void);
#endif