Nano102_112 Series BSP  V3.03.002
The Board Support Package for Nano102_112 Series
rtc.h
Go to the documentation of this file.
1 /**************************************************************************/
12 #ifndef __RTC_H__
13 #define __RTC_H__
14 
15 #ifdef __cplusplus
16 extern "C"
17 {
18 #endif
19 
20 
35 #define RTC_INIT_KEY 0xA5EB1357
36 #define RTC_WRITE_KEY 0xA965
38 #define RTC_WAIT_COUNT 0xFFFFFFFF
40 #define RTC_YEAR2000 2000
41 #define RTC_FCR_REFERENCE 32761
43 #define RTC_CLOCK_12 0
44 #define RTC_CLOCK_24 1
46 #define RTC_AM 1
47 #define RTC_PM 2
49 #define RTC_TICK_1_SEC ((uint32_t) 0x00000000)
50 #define RTC_TICK_1_2_SEC ((uint32_t) 0x00000001)
51 #define RTC_TICK_1_4_SEC ((uint32_t) 0x00000002)
52 #define RTC_TICK_1_8_SEC ((uint32_t) 0x00000003)
53 #define RTC_TICK_1_16_SEC ((uint32_t) 0x00000004)
54 #define RTC_TICK_1_32_SEC ((uint32_t) 0x00000005)
55 #define RTC_TICK_1_64_SEC ((uint32_t) 0x00000006)
56 #define RTC_TICK_1_128_SEC ((uint32_t) 0x00000007)
58 #define RTC_SUNDAY ((uint32_t) 0x00000000)
59 #define RTC_MONDAY ((uint32_t) 0x00000001)
60 #define RTC_TUESDAY ((uint32_t) 0x00000002)
61 #define RTC_WEDNESDAY ((uint32_t) 0x00000003)
62 #define RTC_THURSDAY ((uint32_t) 0x00000004)
63 #define RTC_FRIDAY ((uint32_t) 0x00000005)
64 #define RTC_SATURDAY ((uint32_t) 0x00000006)
67 #define RTC_SNOOPER_RISING 0
68 #define RTC_SNOOPER_FALLING 1
71  /* end of group NANO1X2_RTC_EXPORTED_CONSTANTS */
72 
73 
81 typedef struct {
82  uint32_t u32Year;
83  uint32_t u32Month;
84  uint32_t u32Day;
85  uint32_t u32DayOfWeek;
86  uint32_t u32Hour;
87  uint32_t u32Minute;
88  uint32_t u32Second;
89  uint32_t u32TimeScale;
90  uint32_t u32AmPm;
92  /* end of group NANO1X2_RTC_EXPORTED_STRUCTS */
94 
95 
109 #define RTC_READ_SPARE_REGISTER(u32RegNum) (RTC->SPR[u32RegNum])
110 
120 #define RTC_WRITE_SPARE_REGISTER(u32RegNum, u32RegValue) (RTC->SPR[u32RegNum] = u32RegValue)
121 
131 #define RTC_IS_LEAP_YEAR() ((RTC->LIR & (RTC_LIR_LIR_Msk))?1:0)
132 
141 #define RTC_CLEAR_ALARM_INT_FLAG() (RTC->RIIR = RTC_RIIR_AIF_Msk)
142 
151 #define RTC_CLEAR_TICK_INT_FLAG() (RTC->RIIR = RTC_RIIR_TIF_Msk)
152 
161 #define RTC_GET_ALARM_INT_FLAG() ((RTC->RIIR & RTC_RIIR_AIF_Msk) >> RTC_RIIR_AIF_Pos)
162 
171 #define RTC_CLEAR_TAMPER_FLAG(u32PinNum) (RTC->RIIR = RTC_RIIR_SNOOPIF_Msk)
172 
181 #define RTC_GET_TICK_INT_FLAG() ((RTC->RIIR & RTC_RIIR_TIF_Msk) >> RTC_RIIR_TIF_Pos)
182 
192 #define RTC_GET_TAMPER_FLAG() ( (RTC->RIIR & RTC_RIIR_SNOOPIF_Msk) >> RTC_RIIR_SNOOPIF_Pos)
193 
202 #define RTC_ENABLE_TICK_WAKEUP() (RTC->TTR |= RTC_TTR_TWKE_Msk);
203 
212 #define RTC_DISABLE_TICK_WAKEUP() (RTC->TTR &= ~RTC_TTR_TWKE_Msk);
213 
214 
215 void RTC_Open(S_RTC_TIME_DATA_T *sPt);
216 void RTC_Close(void);
217 void RTC_32KCalibration(int32_t i32FrequencyX100);
218 void RTC_SetTickPeriod(uint32_t u32TickSelection);
219 void RTC_EnableInt(uint32_t u32IntFlagMask);
220 void RTC_DisableInt(uint32_t u32IntFlagMask);
221 uint32_t RTC_GetDayOfWeek(void);
222 void RTC_DisableTamperDetection(void);
223 void RTC_EnableTamperDetection(uint32_t u32PinCondition);
224 void RTC_SetAlarmTime(uint32_t u32Hour, uint32_t u32Minute, uint32_t u32Second, uint32_t u32TimeMode, uint32_t u32AmPm);
225 void RTC_SetAlarmDate(uint32_t u32Year, uint32_t u32Month, uint32_t u32Day);
226 void RTC_SetTime(uint32_t u32Hour, uint32_t u32Minute, uint32_t u32Second, uint32_t u32TimeMode, uint32_t u32AmPm);
227 void RTC_SetDate(uint32_t u32Year, uint32_t u32Month, uint32_t u32Day, uint32_t u32DayOfWeek);
232 
233 
234  /* end of group NANO1X2_RTC_EXPORTED_FUNCTIONS */
236 
237  /* end of group NANO1X2_RTC_Driver */
239  /* end of group NANO1X2_Device_Driver */
241 
242 
243 #ifdef __cplusplus
244 }
245 #endif
246 
247 #endif /* __RTC_H__ */
248 
249 
250 /*** (C) COPYRIGHT 2014 Nuvoton Technology Corp. ***/
251 
void RTC_GetAlarmDateAndTime(S_RTC_TIME_DATA_T *sPt)
Read alarm date/time from RTC setting.
Definition: rtc.c:286
void RTC_SetDate(uint32_t u32Year, uint32_t u32Month, uint32_t u32Day, uint32_t u32DayOfWeek)
This function is used to update date to RTC.
Definition: rtc.c:528
void RTC_EnableTamperDetection(uint32_t u32PinCondition)
This function is used to: .
Definition: rtc.c:689
void RTC_DisableInt(uint32_t u32IntFlagMask)
The function is used to disable specified interrupt.
Definition: rtc.c:790
uint32_t u32Hour
Definition: rtc.h:86
uint32_t u32Year
Definition: rtc.h:82
void RTC_SetTickPeriod(uint32_t u32TickSelection)
The function is used to set time tick period for periodic time tick Interrupt.
Definition: rtc.c:752
void RTC_SetAlarmTime(uint32_t u32Hour, uint32_t u32Minute, uint32_t u32Second, uint32_t u32TimeMode, uint32_t u32AmPm)
This function is used to set alarm date to RTC.
Definition: rtc.c:643
void RTC_SetDateAndTime(S_RTC_TIME_DATA_T *sPt)
This function is used to update date/time to RTC.
Definition: rtc.c:389
void RTC_SetTime(uint32_t u32Hour, uint32_t u32Minute, uint32_t u32Second, uint32_t u32TimeMode, uint32_t u32AmPm)
This function is used to update time to RTC.
Definition: rtc.c:564
uint32_t u32Minute
Definition: rtc.h:87
uint32_t u32AmPm
Definition: rtc.h:90
void RTC_GetDateAndTime(S_RTC_TIME_DATA_T *sPt)
Read current date/time from RTC setting.
Definition: rtc.c:193
void RTC_SetAlarmDateAndTime(S_RTC_TIME_DATA_T *sPt)
This function is used to set alarm date/time to RTC.
Definition: rtc.c:461
void RTC_32KCalibration(int32_t i32FrequencyX100)
Set Frequency Compensation Data.
Definition: rtc.c:58
void RTC_DisableTamperDetection(void)
This function is used to disable tamper detection function.
Definition: rtc.c:712
void RTC_Close(void)
Disable RTC clock.
Definition: rtc.c:821
RTC define Time Data Struct.
Definition: rtc.h:81
uint32_t u32Day
Definition: rtc.h:84
uint32_t u32DayOfWeek
Definition: rtc.h:85
uint32_t RTC_GetDayOfWeek(void)
This function is used to get day of week.
Definition: rtc.c:728
void RTC_SetAlarmDate(uint32_t u32Year, uint32_t u32Month, uint32_t u32Day)
This function is used to set alarm date to RTC.
Definition: rtc.c:609
void RTC_Open(S_RTC_TIME_DATA_T *sPt)
This function is used to: .
Definition: rtc.c:101
uint32_t u32Month
Definition: rtc.h:83
void RTC_EnableInt(uint32_t u32IntFlagMask)
The function is used to enable specified interrupt.
Definition: rtc.c:771
uint32_t u32Second
Definition: rtc.h:88
uint32_t u32TimeScale
Definition: rtc.h:89