| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668 |
- /**
- ******************************************************************************
- * @file py32f0xx_ll_rtc.h
- * @author MCU Application Team
- * @brief Header file of RTC LL module.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2023 Puya Semiconductor Co.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by Puya under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2016 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __PY32F0xx_LL_RTC_H
- #define __PY32F0xx_LL_RTC_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "py32f0xx.h"
- /** @addtogroup PY32F0xx_LL_Driver
- * @{
- */
- #if defined(RTC)
- /** @defgroup RTC_LL RTC
- * @{
- */
- /* Private types -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- /* Private constants ---------------------------------------------------------*/
- /* Private macros ------------------------------------------------------------*/
- #if defined(USE_FULL_LL_DRIVER)
- /** @defgroup RTC_LL_Private_Macros RTC Private Macros
- * @{
- */
- /**
- * @}
- */
- #endif /*USE_FULL_LL_DRIVER*/
- /* Exported types ------------------------------------------------------------*/
- #if defined(USE_FULL_LL_DRIVER)
- /** @defgroup RTC_LL_ES_INIT RTC Exported Init structure
- * @{
- */
- /**
- * @brief RTC Init structures definition
- */
- typedef struct
- {
- uint32_t AsynchPrescaler; /*!< Specifies the RTC Asynchronous Predivider value.
- This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFFFF
- This feature can be modified afterwards using unitary function
- @ref LL_RTC_SetAsynchPrescaler(). */
- uint32_t OutPutSource; /*!< Specifies which signal will be routed to the RTC Tamper pin.
- This parameter can be a value of @ref LL_RTC_Output_Source
- This feature can be modified afterwards using unitary function
- @ref LL_RTC_SetOutputSource(). */
- } LL_RTC_InitTypeDef;
- /**
- * @brief RTC Time structure definition
- */
- typedef struct
- {
- uint8_t Hours; /*!< Specifies the RTC Time Hours.
- This parameter must be a number between Min_Data = 0 and Max_Data = 23 */
- uint8_t Minutes; /*!< Specifies the RTC Time Minutes.
- This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
- uint8_t Seconds; /*!< Specifies the RTC Time Seconds.
- This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
- } LL_RTC_TimeTypeDef;
- /**
- * @brief RTC Alarm structure definition
- */
- typedef struct
- {
- LL_RTC_TimeTypeDef AlarmTime; /*!< Specifies the RTC Alarm Time members. */
- } LL_RTC_AlarmTypeDef;
- /**
- * @}
- */
- #endif /* USE_FULL_LL_DRIVER */
- /* Exported constants --------------------------------------------------------*/
- /** @defgroup RTC_LL_Exported_Constants RTC Exported Constants
- * @{
- */
- #if defined(USE_FULL_LL_DRIVER)
- /** @defgroup RTC_LL_EC_FORMAT FORMAT
- * @{
- */
- #define LL_RTC_FORMAT_BIN (0x000000000U) /*!< Binary data format */
- #define LL_RTC_FORMAT_BCD (0x000000001U) /*!< BCD data format */
- /**
- * @}
- */
- #endif /* USE_FULL_LL_DRIVER */
- /** @defgroup LL_RTC_Output_Source Clock Source to output on the Tamper Pin
- * @{
- */
- #define LL_RTC_CALIB_OUTPUT_NONE (0x00000000U) /*!< Calibration output disabled */
- #define LL_RTC_CALIB_OUTPUT_RTCCLOCK BKP_RTCCR_CCO /*!< Calibration output is RTC Clock with a frequency divided by 64 on the TAMPER Pin */
- #define LL_RTC_CALIB_OUTPUT_ALARM BKP_RTCCR_ASOE /*!< Calibration output is Alarm pulse signal on the TAMPER pin */
- #define LL_RTC_CALIB_OUTPUT_SECOND (BKP_RTCCR_ASOS | BKP_RTCCR_ASOE) /*!< Calibration output is Second pulse signal on the TAMPER pin*/
- /**
- * @}
- */
- /**
- * @}
- */
- /* Exported macro ------------------------------------------------------------*/
- /** @defgroup RTC_LL_Exported_Macros RTC Exported Macros
- * @{
- */
- /** @defgroup RTC_LL_EM_WRITE_READ Common Write and read registers Macros
- * @{
- */
- /**
- * @brief Write a value in RTC register
- * @param __INSTANCE__ RTC Instance
- * @param __REG__ Register to be written
- * @param __VALUE__ Value to be written in the register
- * @retval None
- */
- #define LL_RTC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
- /**
- * @brief Read a value in RTC register
- * @param __INSTANCE__ RTC Instance
- * @param __REG__ Register to be read
- * @retval Register value
- */
- #define LL_RTC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
- /**
- * @}
- */
- /** @defgroup RTC_LL_EM_Convert Convert helper Macros
- * @{
- */
- /**
- * @brief Helper macro to convert a value from 2 digit decimal format to BCD format
- * @param __VALUE__ Byte to be converted
- * @retval Converted byte
- */
- #define __LL_RTC_CONVERT_BIN2BCD(__VALUE__) (uint8_t)((((__VALUE__) / 10U) << 4U) | ((__VALUE__) % 10U))
- /**
- * @brief Helper macro to convert a value from BCD format to 2 digit decimal format
- * @param __VALUE__ BCD value to be converted
- * @retval Converted byte
- */
- #define __LL_RTC_CONVERT_BCD2BIN(__VALUE__) (uint8_t)(((uint8_t)((__VALUE__) & (uint8_t)0xF0U) >> (uint8_t)0x4U) * 10U + ((__VALUE__) & (uint8_t)0x0FU))
- /**
- * @}
- */
- /**
- * @}
- */
- /* Exported functions --------------------------------------------------------*/
- /** @defgroup RTC_LL_Exported_Functions RTC Exported Functions
- * @{
- */
- /** @defgroup RTC_LL_EF_Configuration Configuration
- * @{
- */
- /**
- * @brief Set Asynchronous prescaler factor
- * @rmtoll PRLH PRL LL_RTC_SetAsynchPrescaler\n
- * @rmtoll PRLL PRL LL_RTC_SetAsynchPrescaler\n
- * @param RTCx RTC Instance
- * @param AsynchPrescaler Value between Min_Data = 0 and Max_Data = 0xFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_SetAsynchPrescaler(RTC_TypeDef *RTCx, uint32_t AsynchPrescaler)
- {
- MODIFY_REG(RTCx->PRLH, RTC_PRLH_PRL, (AsynchPrescaler >> 16));
- MODIFY_REG(RTCx->PRLL, RTC_PRLL_PRL, (AsynchPrescaler & RTC_PRLL_PRL));
- }
- /**
- * @brief Get Asynchronous prescaler factor
- * @rmtoll DIVH DIV LL_RTC_GetDivider\n
- * @rmtoll DIVL DIV LL_RTC_GetDivider\n
- * @param RTCx RTC Instance
- * @retval Value between Min_Data = 0 and Max_Data = 0xFFFFF
- */
- __STATIC_INLINE uint32_t LL_RTC_GetDivider(RTC_TypeDef *RTCx)
- {
- register uint16_t Highprescaler = 0, Lowprescaler = 0;
- Highprescaler = READ_REG(RTCx->DIVH & RTC_DIVH_RTC_DIV);
- Lowprescaler = READ_REG(RTCx->DIVL & RTC_DIVL_RTC_DIV);
- return (((uint32_t) Highprescaler << 16U) | Lowprescaler);
- }
- /**
- * @brief Set Output Source
- * @rmtoll RTCCR CCO LL_RTC_SetOutputSource
- * @rmtoll RTCCR ASOE LL_RTC_SetOutputSource
- * @rmtoll RTCCR ASOS LL_RTC_SetOutputSource
- * @param RTCx RTC Instance
- * @param OutputSource This parameter can be one of the following values:
- * @arg @ref LL_RTC_CALIB_OUTPUT_NONE
- * @arg @ref LL_RTC_CALIB_OUTPUT_RTCCLOCK
- * @arg @ref LL_RTC_CALIB_OUTPUT_ALARM
- * @arg @ref LL_RTC_CALIB_OUTPUT_SECOND
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_SetOutputSource(RTC_TypeDef *RTCx, uint32_t OutputSource)
- {
- MODIFY_REG(RTCx->BKP_RTCCR, (BKP_RTCCR_CCO | BKP_RTCCR_ASOE | BKP_RTCCR_ASOS), OutputSource);
- }
- /**
- * @brief Get Output Source
- * @rmtoll RTCCR CCO LL_RTC_GetOutPutSource
- * @rmtoll RTCCR ASOE LL_RTC_GetOutPutSource
- * @rmtoll RTCCR ASOS LL_RTC_GetOutPutSource
- * @param RTCx RTC Instance
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_RTC_CALIB_OUTPUT_NONE
- * @arg @ref LL_RTC_CALIB_OUTPUT_RTCCLOCK
- * @arg @ref LL_RTC_CALIB_OUTPUT_ALARM
- * @arg @ref LL_RTC_CALIB_OUTPUT_SECOND
- */
- __STATIC_INLINE uint32_t LL_RTC_GetOutPutSource(RTC_TypeDef *RTCx)
- {
- return (uint32_t)(READ_BIT(RTCx->BKP_RTCCR, (BKP_RTCCR_CCO | BKP_RTCCR_ASOE | BKP_RTCCR_ASOS)));
- }
- /**
- * @brief Enable the write protection for RTC registers.
- * @rmtoll CRL CNF LL_RTC_EnableWriteProtection
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_EnableWriteProtection(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRL, RTC_CRL_CNF);
- }
- /**
- * @brief Disable the write protection for RTC registers.
- * @rmtoll CRL RTC_CRL_CNF LL_RTC_DisableWriteProtection
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_DisableWriteProtection(RTC_TypeDef *RTCx)
- {
- SET_BIT(RTCx->CRL, RTC_CRL_CNF);
- }
- /**
- * @}
- */
- /** @defgroup RTC_LL_EF_Time Time
- * @{
- */
- /**
- * @brief Set time counter in BCD format
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @note It can be written in initialization mode only (@ref LL_RTC_EnterInitMode function)
- * @rmtoll CNTH CNT LL_RTC_TIME_Set\n
- * CNTL CNT LL_RTC_TIME_Set\n
- * @param RTCx RTC Instance
- * @param TimeCounter Value between Min_Data=0x00 and Max_Data=0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_TIME_Set(RTC_TypeDef *RTCx, uint32_t TimeCounter)
- {
- /* Set RTC COUNTER MSB word */
- WRITE_REG(RTCx->CNTH, (TimeCounter >> 16U));
- /* Set RTC COUNTER LSB word */
- WRITE_REG(RTCx->CNTL, (TimeCounter & RTC_CNTL_RTC_CNT));
- }
- /**
- * @brief Get time counter in BCD format
- * @rmtoll CNTH CNT LL_RTC_TIME_Get\n
- * CNTL CNT LL_RTC_TIME_Get\n
- * @param RTCx RTC Instance
- * @retval Value between Min_Data = 0 and Max_Data = 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_RTC_TIME_Get(RTC_TypeDef *RTCx)
- {
- register uint16_t high = 0, low = 0;
- high = READ_REG(RTCx->CNTH & RTC_CNTH_RTC_CNT);
- low = READ_REG(RTCx->CNTL & RTC_CNTL_RTC_CNT);
- return ((uint32_t)(((uint32_t) high << 16U) | low));
- }
- /**
- * @}
- */
- /** @defgroup RTC_LL_EF_ALARM ALARM
- * @{
- */
- /**
- * @brief Set Alarm Counter
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll ALRH ALR LL_RTC_ALARM_Set\n
- * @rmtoll ALRL ALR LL_RTC_ALARM_Set\n
- * @param RTCx RTC Instance
- * @param AlarmCounter Value between Min_Data=0x00 and Max_Data=0xFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_ALARM_Set(RTC_TypeDef *RTCx, uint32_t AlarmCounter)
- {
- /* Set RTC COUNTER MSB word */
- WRITE_REG(RTCx->ALRH, (AlarmCounter >> 16));
- /* Set RTC COUNTER LSB word */
- WRITE_REG(RTCx->ALRL, (AlarmCounter & RTC_ALRL_RTC_ALR));
- }
- /** @defgroup RTC_LL_EF_Calibration Calibration
- * @{
- */
- /**
- * @brief Set the coarse digital calibration
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @note It can be written in initialization mode only (@ref LL_RTC_EnterInitMode function)
- * @rmtoll RTCCR CAL LL_RTC_CAL_SetCoarseDigital\n
- * @param RTCx RTC Instance
- * @param Value value of coarse calibration expressed in ppm
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_CAL_SetCoarseDigital(RTC_TypeDef *RTCx, uint32_t Value)
- {
- MODIFY_REG(RTCx->BKP_RTCCR, BKP_RTCCR_CAL, Value);
- }
- /**
- * @brief Get the coarse digital calibration value
- * @rmtoll RTCCR CAL LL_RTC_CAL_SetCoarseDigital\n
- * @param RTCx RTC Instance
- * @retval value of coarse calibration expressed in ppm
- */
- __STATIC_INLINE uint32_t LL_RTC_CAL_GetCoarseDigital(RTC_TypeDef *RTCx)
- {
- return (uint32_t)(READ_BIT(RTCx->BKP_RTCCR, BKP_RTCCR_CAL));
- }
- /**
- * @}
- */
- /** @defgroup RTC_LL_EF_FLAG_Management FLAG Management
- * @{
- */
- /**
- * @brief Get Alarm flag
- * @rmtoll CRL ALRF LL_RTC_IsActiveFlag_ALR
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALR(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRL, RTC_CRL_ALRF) == (RTC_CRL_ALRF));
- }
- /**
- * @brief Clear Alarm flag
- * @rmtoll CRL ALRF LL_RTC_ClearFlag_ALR
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_ClearFlag_ALR(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRL, RTC_CRL_ALRF);
- }
- /**
- * @brief Get Registers synchronization flag
- * @rmtoll CRL RSF LL_RTC_IsActiveFlag_RS
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRL, RTC_CRL_RSF) == (RTC_CRL_RSF));
- }
- /**
- * @brief Clear Registers synchronization flag
- * @rmtoll CRL RSF LL_RTC_ClearFlag_RS
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_ClearFlag_RS(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRL, RTC_CRL_RSF);
- }
- /**
- * @brief Get Registers OverFlow flag
- * @rmtoll CRL OWF LL_RTC_IsActiveFlag_OW
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_OW(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRL, RTC_CRL_OWF) == (RTC_CRL_OWF));
- }
- /**
- * @brief Clear Registers OverFlow flag
- * @rmtoll CRL OWF LL_RTC_ClearFlag_OW
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_ClearFlag_OW(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRL, RTC_CRL_OWF);
- }
- /**
- * @brief Get Registers synchronization flag
- * @rmtoll CRL SECF LL_RTC_IsActiveFlag_SEC
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SEC(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRL, RTC_CRL_SECF) == (RTC_CRL_SECF));
- }
- /**
- * @brief Clear Registers synchronization flag
- * @rmtoll CRL SECF LL_RTC_ClearFlag_SEC
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_ClearFlag_SEC(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRL, RTC_CRL_SECF);
- }
- /**
- * @brief Get RTC Operation OFF status flag
- * @rmtoll CRL RTOFF LL_RTC_IsActiveFlag_RTOF
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RTOF(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRL, RTC_CRL_RTOFF) == (RTC_CRL_RTOFF));
- }
- /**
- * @}
- */
- /** @defgroup RTC_LL_EF_IT_Management IT Management
- * @{
- */
- /**
- * @brief Enable Alarm interrupt
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll CRH ALRIE LL_RTC_EnableIT_ALR
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_EnableIT_ALR(RTC_TypeDef *RTCx)
- {
- SET_BIT(RTCx->CRH, RTC_CRH_ALRIE);
- }
- /**
- * @brief Disable Alarm interrupt
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll CRH ALRIE LL_RTC_DisableIT_ALR
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_DisableIT_ALR(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRH, RTC_CRH_ALRIE);
- }
- /**
- * @brief Check if Alarm interrupt is enabled or not
- * @rmtoll CRH ALRIE LL_RTC_IsEnabledIT_ALR
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALR(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRH, RTC_CRH_ALRIE) == (RTC_CRH_ALRIE));
- }
- /**
- * @brief Enable Second Interrupt interrupt
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll CRH SECIE LL_RTC_EnableIT_SEC
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_EnableIT_SEC(RTC_TypeDef *RTCx)
- {
- SET_BIT(RTCx->CRH, RTC_CRH_SECIE);
- }
- /**
- * @brief Disable Second interrupt
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll CRH SECIE LL_RTC_DisableIT_SEC
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_DisableIT_SEC(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRH, RTC_CRH_SECIE);
- }
- /**
- * @brief Check if Second interrupt is enabled or not
- * @rmtoll CRH SECIE LL_RTC_IsEnabledIT_SEC
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_SEC(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRH, RTC_CRH_SECIE) == (RTC_CRH_SECIE));
- }
- /**
- * @brief Enable OverFlow interrupt
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll CRH OWIE LL_RTC_EnableIT_OW
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_EnableIT_OW(RTC_TypeDef *RTCx)
- {
- SET_BIT(RTCx->CRH, RTC_CRH_OWIE);
- }
- /**
- * @brief Disable OverFlow interrupt
- * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
- * @rmtoll CRH OWIE LL_RTC_DisableIT_OW
- * @param RTCx RTC Instance
- * @retval None
- */
- __STATIC_INLINE void LL_RTC_DisableIT_OW(RTC_TypeDef *RTCx)
- {
- CLEAR_BIT(RTCx->CRH, RTC_CRH_OWIE);
- }
- /**
- * @brief Check if OverFlow interrupt is enabled or not
- * @rmtoll CRH OWIE LL_RTC_IsEnabledIT_OW
- * @param RTCx RTC Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_OW(RTC_TypeDef *RTCx)
- {
- return (READ_BIT(RTCx->CRH, RTC_CRH_OWIE) == (RTC_CRH_OWIE));
- }
- /**
- * @}
- */
- #if defined(USE_FULL_LL_DRIVER)
- /** @defgroup RTC_LL_EF_Init Initialization and de-initialization functions
- * @{
- */
- ErrorStatus LL_RTC_DeInit(RTC_TypeDef *RTCx);
- ErrorStatus LL_RTC_Init(RTC_TypeDef *RTCx, LL_RTC_InitTypeDef *RTC_InitStruct);
- void LL_RTC_StructInit(LL_RTC_InitTypeDef *RTC_InitStruct);
- ErrorStatus LL_RTC_TIME_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_TimeTypeDef *RTC_TimeStruct);
- void LL_RTC_TIME_StructInit(LL_RTC_TimeTypeDef *RTC_TimeStruct);
- ErrorStatus LL_RTC_ALARM_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
- void LL_RTC_ALARM_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
- ErrorStatus LL_RTC_EnterInitMode(RTC_TypeDef *RTCx);
- ErrorStatus LL_RTC_ExitInitMode(RTC_TypeDef *RTCx);
- ErrorStatus LL_RTC_WaitForSynchro(RTC_TypeDef *RTCx);
- ErrorStatus LL_RTC_TIME_SetCounter(RTC_TypeDef *RTCx, uint32_t TimeCounter);
- ErrorStatus LL_RTC_ALARM_SetCounter(RTC_TypeDef *RTCx, uint32_t AlarmCounter);
- /**
- * @}
- */
- #endif /* USE_FULL_LL_DRIVER */
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- #endif /* defined(RTC) */
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __PY32F0xx_LL_RTC_H */
- /************************ (C) COPYRIGHT Puya *****END OF FILE****/
|