11 #ifndef __MG32L003_RTC_H 12 #define __MG32L003_RTC_H 134 #define RTC_HOURFORMAT_24 RTC_CR_FMT 135 #define RTC_HOURFORMAT_12 0x00000000U 136 #define IS_RTC_HOUR_FORMAT(FORMAT) (((FORMAT) == RTC_HOURFORMAT_12) || \ 137 ((FORMAT) == RTC_HOURFORMAT_24)) 145 #define IS_RTC_HOUR12(HOUR) (((HOUR) > 0) && ((HOUR) <= 12)) 146 #define IS_RTC_HOUR24(HOUR) ((HOUR) <= 23) 147 #define IS_RTC_MINUTES(MINUTES) ((MINUTES) <= 59) 148 #define IS_RTC_SECONDS(SECONDS) ((SECONDS) <= 59) 156 #define RTC_H12_AM ((uint8_t)0x00) 157 #define RTC_H12_PM ((uint8_t)0x01) 158 #define IS_RTC_H12(PM) (((PM) == RTC_H12_AM) || ((PM) == RTC_H12_PM)) 166 #define IS_RTC_YEAR(YEAR) ((YEAR) <= 99) 175 #define RTC_Month_January ((uint8_t)0x01) 176 #define RTC_Month_February ((uint8_t)0x02) 177 #define RTC_Month_March ((uint8_t)0x03) 178 #define RTC_Month_April ((uint8_t)0x04) 179 #define RTC_Month_May ((uint8_t)0x05) 180 #define RTC_Month_June ((uint8_t)0x06) 181 #define RTC_Month_July ((uint8_t)0x07) 182 #define RTC_Month_August ((uint8_t)0x08) 183 #define RTC_Month_September ((uint8_t)0x09) 184 #define RTC_Month_October ((uint8_t)0x10) 185 #define RTC_Month_November ((uint8_t)0x11) 186 #define RTC_Month_December ((uint8_t)0x12) 187 #define IS_RTC_MONTH(MONTH) (((MONTH) >= 1) && ((MONTH) <= 12)) 188 #define IS_RTC_DATE(DATE) (((DATE) >= 1) && ((DATE) <= 31)) 189 #define IS_RTC_CEN(CEN) ((CEN) <= 1) 197 #define RTC_Weekday_Monday ((uint8_t)0x00) 198 #define RTC_Weekday_Tuesday ((uint8_t)0x01) 199 #define RTC_Weekday_Wednesday ((uint8_t)0x02) 200 #define RTC_Weekday_Thursday ((uint8_t)0x03) 201 #define RTC_Weekday_Friday ((uint8_t)0x04) 202 #define RTC_Weekday_Saturday ((uint8_t)0x05) 203 #define RTC_Weekday_Sunday ((uint8_t)0x06) 204 #define IS_RTC_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_Weekday_Monday) || \ 205 ((WEEKDAY) == RTC_Weekday_Tuesday) || \ 206 ((WEEKDAY) == RTC_Weekday_Wednesday) || \ 207 ((WEEKDAY) == RTC_Weekday_Thursday) || \ 208 ((WEEKDAY) == RTC_Weekday_Friday) || \ 209 ((WEEKDAY) == RTC_Weekday_Saturday) || \ 210 ((WEEKDAY) == RTC_Weekday_Sunday)) 218 #define RTC_Format_BIN ((uint32_t)0x000000000) 219 #define RTC_Format_BCD ((uint32_t)0x000000001) 220 #define IS_RTC_FORMAT(FORMAT) (((FORMAT) == RTC_Format_BIN) || ((FORMAT) == RTC_Format_BCD)) 229 #define RTC_CLOCK_LSE (0x00UL << RTC_CLKCR_RTCCKSEL_Pos) 230 #define RTC_CLOCK_LSI (0x01UL << RTC_CLKCR_RTCCKSEL_Pos) 231 #define RTC_CLOCK_HSE (0x02UL << RTC_CLKCR_RTCCKSEL_Pos) 232 #define IS_RTC_CLK_SOURCE(CLK) (((CLK) == RTC_CLOCK_LSE) || \ 233 ((CLK) == RTC_CLOCK_LSI) || \ 234 ((CLK) == RTC_CLOCK_HSE)) 242 #define IS_RTC_HSE_DIV(DIV) (((DIV) <= 0x7F)) 250 #define RTC_IT_ALR2 ((uint32_t)0x00000020) 251 #define RTC_IT_ALR1 ((uint32_t)0x00000010) 253 #define IS_RTC_CONFIG_IT(IT) (((IT) != (uint32_t)RESET) && (((IT)&0xFFFFFFCF) == (uint32_t)RESET)) 254 #define IS_RTC_GET_IT(IT) (((IT) == RTC_IT_ALR1) || ((IT) == RTC_IT_ALR1)) 255 #define IS_RTC_CLEAR_IT(IT) (((IT) != (uint32_t)RESET) && (((IT)&0xFFFFFFCF) == (uint32_t)RESET)) 263 #define RTC_ALARM_1 0x00U 264 #define RTC_ALARM_2 0x01U 272 #define RTC_CLK_SOURCE_LSE (0x00000000) 273 #define RTC_CLK_SOURCE_LSI (0x00010000) 274 #define RTC_CLK_SOURCE_HSEDIV (0x00020000) 282 #define RTC_ALARM2_CLOSE ((uint8_t)0x00) 283 #define RTC_ALARM2_1S ((uint8_t)0x01) 284 #define RTC_ALARM2_1P2S ((uint8_t)0x02) 285 #define RTC_ALARM2_1P4S ((uint8_t)0x03) 286 #define RTC_ALARM2_1P8S ((uint8_t)0x04) 287 #define RTC_ALARM2_1P16S ((uint8_t)0x05) 288 #define RTC_ALARM2_1P32S ((uint8_t)0x06) 289 #define RTC_ALARM2_1P64S ((uint8_t)0x07) 290 #define RTC_ALARM2_1P128S ((uint8_t)0x08) 291 #define RTC_ALARM2_10S ((uint8_t)0x09) 292 #define RTC_ALARM2_30S ((uint8_t)0x0A) 293 #define RTC_ALARM2_1M ((uint8_t)0x0B) 294 #define RTC_ALARM2_30M ((uint8_t)0x0C) 295 #define RTC_ALARM2_60M ((uint8_t)0x0D) 296 #define RTC_ALARM2_12H ((uint8_t)0x0E) 297 #define RTC_ALARM2_24H ((uint8_t)0x0F) 298 #define IS_RTC_ALARM_2_PERIOD(PERIOD) (((PERIOD) == RTC_ALARM2_CLOSE) || \ 299 ((PERIOD) == RTC_ALARM2_1S) || \ 300 ((PERIOD) == RTC_ALARM2_1P2S) || \ 301 ((PERIOD) == RTC_ALARM2_1P4S) || \ 302 ((PERIOD) == RTC_ALARM2_1P8S) || \ 303 ((PERIOD) == RTC_ALARM2_1P16S) || \ 304 ((PERIOD) == RTC_ALARM2_1P32S) || \ 305 ((PERIOD) == RTC_ALARM2_1P64S) || \ 306 ((PERIOD) == RTC_ALARM2_1P128S) || \ 307 ((PERIOD) == RTC_ALARM2_10S) || \ 308 ((PERIOD) == RTC_ALARM2_10S) || \ 309 ((PERIOD) == RTC_ALARM2_1M) || \ 310 ((PERIOD) == RTC_ALARM2_30M) || \ 311 ((PERIOD) == RTC_ALARM2_60M) || \ 312 ((PERIOD) == RTC_ALARM2_12H) || \ 313 ((PERIOD) == RTC_ALARM2_24H)) 321 #define RTC_FLAG_ALR2F RTC_ISR_ALM2_F 322 #define RTC_FLAG_ALR1F RTC_ISR_ALM1_F 323 #define RTC_FLAG_RSF RTC_ISR_RSF 324 #define RTC_FLAG_WAITF RTC_ISR_WAITF 325 #define RTC_FLAG_WAIT RTC_ISR_WAIT 326 #define IS_RTC_GET_FLAG(FLAG) (((FLAG) == RTC_FLAG_ALR2F) || \ 327 ((FLAG) == RTC_FLAG_ALR1F) || \ 328 ((FLAG) == RTC_FLAG_RSF) || \ 329 ((FLAG) == RTC_FLAG_WAITF) || \ 330 ((FLAG) == RTC_FLAG_WAIT)) 338 #define RTC_CalibPeriod_60sec ((uint32_t)0x00000000) 339 #define RTC_CalibPeriod_30sec ((uint32_t)0x00000100) 340 #define RTC_CalibPeriod_15sec ((uint32_t)0x00000200) 341 #define RTC_CalibPeriod_6sec ((uint32_t)0x00000300) 342 #define IS_RTC_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_CalibPeriod_60sec) || \ 343 ((PERIOD) == RTC_CalibPeriod_30sec) || \ 344 ((PERIOD) == RTC_CalibPeriod_15sec) || \ 345 ((PERIOD) == RTC_CalibPeriod_6sec)) 353 #define IS_RTC_CALIB_MINUS(VALUE) ((VALUE) <= 0x0000007F) 388 ErrorStatus RTC_AlarmCmd(uint32_t RTC_Alarm, FunctionalState NewState);
395 void RTC_CalibConfig(uint32_t RTC_CalibPeriod, uint32_t RTC_CalibMinusPulsesValue);
398 void RTC_ITConfig(uint32_t RTC_IT, FunctionalState NewState);
399 ITStatus RTC_GetITStatus(uint32_t RTC_IT);
uint8_t RTC_Cen
Definition: mg32l003_rtc.h:68
uint8_t RTC_Seconds
Definition: mg32l003_rtc.h:44
ErrorStatus RTC_WaitForSynchro(void)
Waits until the RTC Time and Date registers (RTC_TR and RTC_DR) are synchronized with RTC APB clock.
Definition: mg32l003_rtc.c:204
uint32_t Seconds_Enable
Definition: mg32l003_rtc.h:91
uint32_t Sen_Enable
Definition: mg32l003_rtc.h:85
uint32_t RTC_HourFormat
Definition: mg32l003_rtc.h:110
void RTC_BypassShadowCmd(FunctionalState NewState)
Enables or Disables the Bypass Shadow feature.
Definition: mg32l003_rtc.c:247
void RTC_GetAlarm1(uint32_t RTC_Format, RTC_AlarmTypeDef *RTC_AlarmStruct)
Get the RTC Alarm value and masks.
Definition: mg32l003_rtc.c:763
ErrorStatus RTC_Init(RTC_InitTypeDef *RTC_InitStruct)
Initializes the RTC registers according to the specified parameters in RTC_InitStruct.
Definition: mg32l003_rtc.c:60
RTC_AlarmEnableTypeDef Alarm_Enable
Definition: mg32l003_rtc.h:100
RTC_DateTypeDef RTC_AlarmDate
Definition: mg32l003_rtc.h:101
void RTC_ITConfig(uint32_t RTC_IT, FunctionalState NewState)
Enables or disables the specified RTC interrupts.
Definition: mg32l003_rtc.c:958
uint8_t RTC_H12
Definition: mg32l003_rtc.h:47
ErrorStatus RTC_EnterInitMode(void)
Enters the RTC Initialization mode.
Definition: mg32l003_rtc.c:143
RTC Date structure definition.
Definition: mg32l003_rtc.h:54
uint32_t RTC_Year
Definition: mg32l003_rtc.h:56
RTC_InitTypeDef InitStruct
Definition: mg32l003_rtc.h:121
uint32_t Hours_Enable
Definition: mg32l003_rtc.h:87
void RTC_ExitInitMode(void)
Exits the RTC Initialization mode.
Definition: mg32l003_rtc.c:188
uint32_t Date_Enable
Definition: mg32l003_rtc.h:81
uint8_t RTC_Date
Definition: mg32l003_rtc.h:62
uint8_t RTC_Minutes
Definition: mg32l003_rtc.h:41
ErrorStatus RTC_SetTime(uint32_t RTC_Format, RTC_TimeTypeDef *RTC_TimeStruct)
Set the RTC current time.
Definition: mg32l003_rtc.c:283
void RTC_GetTime(uint32_t RTC_Format, RTC_TimeTypeDef *RTC_TimeStruct)
Get the RTC current Time.
Definition: mg32l003_rtc.c:405
uint8_t RTC_WeekDay
Definition: mg32l003_rtc.h:65
uint32_t Minutes_Enable
Definition: mg32l003_rtc.h:89
RTC_TimeTypeDef RTC_AlarmTime
Definition: mg32l003_rtc.h:102
RTC Time structure definition.
Definition: mg32l003_rtc.h:34
uint32_t WeekDay_Enable
Definition: mg32l003_rtc.h:83
uint32_t Year_Enable
Definition: mg32l003_rtc.h:77
void RTC_SetAlarm1(uint32_t RTC_Format, RTC_AlarmTypeDef *RTC_AlarmStruct)
Set the specified RTC Alarm1.
Definition: mg32l003_rtc.c:616
RTC ALARM Enable structure definition.
Definition: mg32l003_rtc.h:75
void RTC_DateStructInit(RTC_DateTypeDef *RTC_DateStruct)
Fills each RTC_DateStruct member with its default value (Monday, January 01 xx00).
Definition: mg32l003_rtc.c:554
ErrorStatus RTC_SetDate(uint32_t RTC_Format, RTC_DateTypeDef *RTC_DateStruct)
Set the RTC current date.
Definition: mg32l003_rtc.c:452
RTC_DateTypeDef DateToUpdate
Definition: mg32l003_rtc.h:122
uint8_t RTC_Month
Definition: mg32l003_rtc.h:59
void RTC_1HZ_Config(FunctionalState NewState)
Deactive the specified 1HZ out.
Definition: mg32l003_rtc.c:870
void RTC_Alarm1Cmd(FunctionalState NewState)
Enables or disables the specified RTC Alarm.
Definition: mg32l003_rtc.c:817
void RTC_CalibConfig(uint32_t RTC_CalibPeriod, uint32_t RTC_CalibMinusPulsesValue)
Configures the Calibration Settings.
Definition: mg32l003_rtc.c:898
void RTC_SetALARM2Period(uint32_t Period)
Set the specified RTC Alarm2.
Definition: mg32l003_rtc.c:847
void RTC_TimeStructInit(RTC_TimeTypeDef *RTC_TimeStruct)
Fills each RTC_TimeStruct member with its default value (Time = 00h:00min:00sec).
Definition: mg32l003_rtc.c:386
Time Handle Structure definition.
Definition: mg32l003_rtc.h:119
void RTC_GetDate(uint32_t RTC_Format, RTC_DateTypeDef *RTC_DateStruct)
Get the RTC current date.
Definition: mg32l003_rtc.c:574
void RTC_ClearITPendingBit(uint32_t RTC_IT)
Clears the RTC's interrupt pending bits.
Definition: mg32l003_rtc.c:990
void RTC_WriteProtectionCmd(FunctionalState NewState)
Enables or disables the RTC registers write protection.
Definition: mg32l003_rtc.c:116
uint32_t Month_Enable
Definition: mg32l003_rtc.h:79
uint8_t RTC_Hours
Definition: mg32l003_rtc.h:36
RTC Init structures definition.
Definition: mg32l003_rtc.h:108
RTC Alarm structure definition.
Definition: mg32l003_rtc.h:98