Frederick Huang / mbed-STM32L452

Dependents:   STM32L452_Nucleo_ticker

Fork of mbed-dev by mbed official

Committer:
AnnaBridge
Date:
Fri May 26 12:39:01 2017 +0100
Revision:
165:e614a9f1c9e2
This updates the lib to the mbed lib v 143

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 165:e614a9f1c9e2 1 /**
AnnaBridge 165:e614a9f1c9e2 2 ******************************************************************************
AnnaBridge 165:e614a9f1c9e2 3 * @file stm32f1xx_ll_rtc.h
AnnaBridge 165:e614a9f1c9e2 4 * @author MCD Application Team
AnnaBridge 165:e614a9f1c9e2 5 * @version V1.1.0
AnnaBridge 165:e614a9f1c9e2 6 * @date 14-April-2017
AnnaBridge 165:e614a9f1c9e2 7 * @brief Header file of RTC LL module.
AnnaBridge 165:e614a9f1c9e2 8 ******************************************************************************
AnnaBridge 165:e614a9f1c9e2 9 * @attention
AnnaBridge 165:e614a9f1c9e2 10 *
AnnaBridge 165:e614a9f1c9e2 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 165:e614a9f1c9e2 12 *
AnnaBridge 165:e614a9f1c9e2 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 165:e614a9f1c9e2 14 * are permitted provided that the following conditions are met:
AnnaBridge 165:e614a9f1c9e2 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 165:e614a9f1c9e2 16 * this list of conditions and the following disclaimer.
AnnaBridge 165:e614a9f1c9e2 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 165:e614a9f1c9e2 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 165:e614a9f1c9e2 19 * and/or other materials provided with the distribution.
AnnaBridge 165:e614a9f1c9e2 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 165:e614a9f1c9e2 21 * may be used to endorse or promote products derived from this software
AnnaBridge 165:e614a9f1c9e2 22 * without specific prior written permission.
AnnaBridge 165:e614a9f1c9e2 23 *
AnnaBridge 165:e614a9f1c9e2 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 165:e614a9f1c9e2 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 165:e614a9f1c9e2 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 165:e614a9f1c9e2 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 165:e614a9f1c9e2 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 165:e614a9f1c9e2 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 165:e614a9f1c9e2 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 165:e614a9f1c9e2 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 165:e614a9f1c9e2 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 165:e614a9f1c9e2 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 165:e614a9f1c9e2 34 *
AnnaBridge 165:e614a9f1c9e2 35 ******************************************************************************
AnnaBridge 165:e614a9f1c9e2 36 */
AnnaBridge 165:e614a9f1c9e2 37
AnnaBridge 165:e614a9f1c9e2 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 39 #ifndef __STM32F1xx_LL_RTC_H
AnnaBridge 165:e614a9f1c9e2 40 #define __STM32F1xx_LL_RTC_H
AnnaBridge 165:e614a9f1c9e2 41
AnnaBridge 165:e614a9f1c9e2 42 #ifdef __cplusplus
AnnaBridge 165:e614a9f1c9e2 43 extern "C" {
AnnaBridge 165:e614a9f1c9e2 44 #endif
AnnaBridge 165:e614a9f1c9e2 45
AnnaBridge 165:e614a9f1c9e2 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 47 #include "stm32f1xx.h"
AnnaBridge 165:e614a9f1c9e2 48
AnnaBridge 165:e614a9f1c9e2 49 /** @addtogroup STM32F1xx_LL_Driver
AnnaBridge 165:e614a9f1c9e2 50 * @{
AnnaBridge 165:e614a9f1c9e2 51 */
AnnaBridge 165:e614a9f1c9e2 52
AnnaBridge 165:e614a9f1c9e2 53 #if defined(RTC)
AnnaBridge 165:e614a9f1c9e2 54
AnnaBridge 165:e614a9f1c9e2 55 /** @defgroup RTC_LL RTC
AnnaBridge 165:e614a9f1c9e2 56 * @{
AnnaBridge 165:e614a9f1c9e2 57 */
AnnaBridge 165:e614a9f1c9e2 58
AnnaBridge 165:e614a9f1c9e2 59 /* Private types -------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 60 /* Private variables ---------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 61 /* Private constants ---------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 62
AnnaBridge 165:e614a9f1c9e2 63 /* Private macros ------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 64 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 165:e614a9f1c9e2 65 /** @defgroup RTC_LL_Private_Macros RTC Private Macros
AnnaBridge 165:e614a9f1c9e2 66 * @{
AnnaBridge 165:e614a9f1c9e2 67 */
AnnaBridge 165:e614a9f1c9e2 68 /**
AnnaBridge 165:e614a9f1c9e2 69 * @}
AnnaBridge 165:e614a9f1c9e2 70 */
AnnaBridge 165:e614a9f1c9e2 71 #endif /*USE_FULL_LL_DRIVER*/
AnnaBridge 165:e614a9f1c9e2 72
AnnaBridge 165:e614a9f1c9e2 73 /* Exported types ------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 74 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 165:e614a9f1c9e2 75 /** @defgroup RTC_LL_ES_INIT RTC Exported Init structure
AnnaBridge 165:e614a9f1c9e2 76 * @{
AnnaBridge 165:e614a9f1c9e2 77 */
AnnaBridge 165:e614a9f1c9e2 78
AnnaBridge 165:e614a9f1c9e2 79 /**
AnnaBridge 165:e614a9f1c9e2 80 * @brief RTC Init structures definition
AnnaBridge 165:e614a9f1c9e2 81 */
AnnaBridge 165:e614a9f1c9e2 82 typedef struct
AnnaBridge 165:e614a9f1c9e2 83 {
AnnaBridge 165:e614a9f1c9e2 84 uint32_t AsynchPrescaler; /*!< Specifies the RTC Asynchronous Predivider value.
AnnaBridge 165:e614a9f1c9e2 85 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFFFF
AnnaBridge 165:e614a9f1c9e2 86
AnnaBridge 165:e614a9f1c9e2 87 This feature can be modified afterwards using unitary function
AnnaBridge 165:e614a9f1c9e2 88 @ref LL_RTC_SetAsynchPrescaler(). */
AnnaBridge 165:e614a9f1c9e2 89
AnnaBridge 165:e614a9f1c9e2 90 uint32_t OutPutSource; /*!< Specifies which signal will be routed to the RTC Tamper pin.
AnnaBridge 165:e614a9f1c9e2 91 This parameter can be a value of @ref LL_RTC_Output_Source
AnnaBridge 165:e614a9f1c9e2 92
AnnaBridge 165:e614a9f1c9e2 93 This feature can be modified afterwards using unitary function
AnnaBridge 165:e614a9f1c9e2 94 @ref LL_RTC_SetOutputSource(). */
AnnaBridge 165:e614a9f1c9e2 95
AnnaBridge 165:e614a9f1c9e2 96 } LL_RTC_InitTypeDef;
AnnaBridge 165:e614a9f1c9e2 97
AnnaBridge 165:e614a9f1c9e2 98 /**
AnnaBridge 165:e614a9f1c9e2 99 * @brief RTC Time structure definition
AnnaBridge 165:e614a9f1c9e2 100 */
AnnaBridge 165:e614a9f1c9e2 101 typedef struct
AnnaBridge 165:e614a9f1c9e2 102 {
AnnaBridge 165:e614a9f1c9e2 103 uint8_t Hours; /*!< Specifies the RTC Time Hours.
AnnaBridge 165:e614a9f1c9e2 104 This parameter must be a number between Min_Data = 0 and Max_Data = 23 */
AnnaBridge 165:e614a9f1c9e2 105
AnnaBridge 165:e614a9f1c9e2 106 uint8_t Minutes; /*!< Specifies the RTC Time Minutes.
AnnaBridge 165:e614a9f1c9e2 107 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
AnnaBridge 165:e614a9f1c9e2 108
AnnaBridge 165:e614a9f1c9e2 109 uint8_t Seconds; /*!< Specifies the RTC Time Seconds.
AnnaBridge 165:e614a9f1c9e2 110 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
AnnaBridge 165:e614a9f1c9e2 111 } LL_RTC_TimeTypeDef;
AnnaBridge 165:e614a9f1c9e2 112
AnnaBridge 165:e614a9f1c9e2 113
AnnaBridge 165:e614a9f1c9e2 114 /**
AnnaBridge 165:e614a9f1c9e2 115 * @brief RTC Alarm structure definition
AnnaBridge 165:e614a9f1c9e2 116 */
AnnaBridge 165:e614a9f1c9e2 117 typedef struct
AnnaBridge 165:e614a9f1c9e2 118 {
AnnaBridge 165:e614a9f1c9e2 119 LL_RTC_TimeTypeDef AlarmTime; /*!< Specifies the RTC Alarm Time members. */
AnnaBridge 165:e614a9f1c9e2 120
AnnaBridge 165:e614a9f1c9e2 121 } LL_RTC_AlarmTypeDef;
AnnaBridge 165:e614a9f1c9e2 122
AnnaBridge 165:e614a9f1c9e2 123 /**
AnnaBridge 165:e614a9f1c9e2 124 * @}
AnnaBridge 165:e614a9f1c9e2 125 */
AnnaBridge 165:e614a9f1c9e2 126 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 165:e614a9f1c9e2 127
AnnaBridge 165:e614a9f1c9e2 128 /* Exported constants --------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 129 /** @defgroup RTC_LL_Exported_Constants RTC Exported Constants
AnnaBridge 165:e614a9f1c9e2 130 * @{
AnnaBridge 165:e614a9f1c9e2 131 */
AnnaBridge 165:e614a9f1c9e2 132
AnnaBridge 165:e614a9f1c9e2 133 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 165:e614a9f1c9e2 134 /** @defgroup RTC_LL_EC_FORMAT FORMAT
AnnaBridge 165:e614a9f1c9e2 135 * @{
AnnaBridge 165:e614a9f1c9e2 136 */
AnnaBridge 165:e614a9f1c9e2 137 #define LL_RTC_FORMAT_BIN (0x000000000U) /*!< Binary data format */
AnnaBridge 165:e614a9f1c9e2 138 #define LL_RTC_FORMAT_BCD (0x000000001U) /*!< BCD data format */
AnnaBridge 165:e614a9f1c9e2 139 /**
AnnaBridge 165:e614a9f1c9e2 140 * @}
AnnaBridge 165:e614a9f1c9e2 141 */
AnnaBridge 165:e614a9f1c9e2 142 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 165:e614a9f1c9e2 143
AnnaBridge 165:e614a9f1c9e2 144 /** @defgroup RTC_LL_EC_BKP BACKUP
AnnaBridge 165:e614a9f1c9e2 145 * @{
AnnaBridge 165:e614a9f1c9e2 146 */
AnnaBridge 165:e614a9f1c9e2 147 #if RTC_BKP_NUMBER > 0
AnnaBridge 165:e614a9f1c9e2 148 #define LL_RTC_BKP_DR1 (0x00000001U)
AnnaBridge 165:e614a9f1c9e2 149 #define LL_RTC_BKP_DR2 (0x00000002U)
AnnaBridge 165:e614a9f1c9e2 150 #define LL_RTC_BKP_DR3 (0x00000003U)
AnnaBridge 165:e614a9f1c9e2 151 #define LL_RTC_BKP_DR4 (0x00000004U)
AnnaBridge 165:e614a9f1c9e2 152 #define LL_RTC_BKP_DR5 (0x00000005U)
AnnaBridge 165:e614a9f1c9e2 153 #define LL_RTC_BKP_DR6 (0x00000006U)
AnnaBridge 165:e614a9f1c9e2 154 #define LL_RTC_BKP_DR7 (0x00000007U)
AnnaBridge 165:e614a9f1c9e2 155 #define LL_RTC_BKP_DR8 (0x00000008U)
AnnaBridge 165:e614a9f1c9e2 156 #define LL_RTC_BKP_DR9 (0x00000009U)
AnnaBridge 165:e614a9f1c9e2 157 #define LL_RTC_BKP_DR10 (0x0000000AU)
AnnaBridge 165:e614a9f1c9e2 158 #endif /* RTC_BKP_NUMBER > 0 */
AnnaBridge 165:e614a9f1c9e2 159 #if RTC_BKP_NUMBER > 10
AnnaBridge 165:e614a9f1c9e2 160 #define LL_RTC_BKP_DR11 (0x0000000BU)
AnnaBridge 165:e614a9f1c9e2 161 #define LL_RTC_BKP_DR12 (0x0000000CU)
AnnaBridge 165:e614a9f1c9e2 162 #define LL_RTC_BKP_DR13 (0x0000000DU)
AnnaBridge 165:e614a9f1c9e2 163 #define LL_RTC_BKP_DR14 (0x0000000EU)
AnnaBridge 165:e614a9f1c9e2 164 #define LL_RTC_BKP_DR15 (0x0000000FU)
AnnaBridge 165:e614a9f1c9e2 165 #define LL_RTC_BKP_DR16 (0x00000010U)
AnnaBridge 165:e614a9f1c9e2 166 #define LL_RTC_BKP_DR17 (0x00000011U)
AnnaBridge 165:e614a9f1c9e2 167 #define LL_RTC_BKP_DR18 (0x00000012U)
AnnaBridge 165:e614a9f1c9e2 168 #define LL_RTC_BKP_DR19 (0x00000013U)
AnnaBridge 165:e614a9f1c9e2 169 #define LL_RTC_BKP_DR20 (0x00000014U)
AnnaBridge 165:e614a9f1c9e2 170 #define LL_RTC_BKP_DR21 (0x00000015U)
AnnaBridge 165:e614a9f1c9e2 171 #define LL_RTC_BKP_DR22 (0x00000016U)
AnnaBridge 165:e614a9f1c9e2 172 #define LL_RTC_BKP_DR23 (0x00000017U)
AnnaBridge 165:e614a9f1c9e2 173 #define LL_RTC_BKP_DR24 (0x00000018U)
AnnaBridge 165:e614a9f1c9e2 174 #define LL_RTC_BKP_DR25 (0x00000019U)
AnnaBridge 165:e614a9f1c9e2 175 #define LL_RTC_BKP_DR26 (0x0000001AU)
AnnaBridge 165:e614a9f1c9e2 176 #define LL_RTC_BKP_DR27 (0x0000001BU)
AnnaBridge 165:e614a9f1c9e2 177 #define LL_RTC_BKP_DR28 (0x0000001CU)
AnnaBridge 165:e614a9f1c9e2 178 #define LL_RTC_BKP_DR29 (0x0000001DU)
AnnaBridge 165:e614a9f1c9e2 179 #define LL_RTC_BKP_DR30 (0x0000001EU)
AnnaBridge 165:e614a9f1c9e2 180 #define LL_RTC_BKP_DR31 (0x0000001FU)
AnnaBridge 165:e614a9f1c9e2 181 #define LL_RTC_BKP_DR32 (0x00000020U)
AnnaBridge 165:e614a9f1c9e2 182 #define LL_RTC_BKP_DR33 (0x00000021U)
AnnaBridge 165:e614a9f1c9e2 183 #define LL_RTC_BKP_DR34 (0x00000022U)
AnnaBridge 165:e614a9f1c9e2 184 #define LL_RTC_BKP_DR35 (0x00000023U)
AnnaBridge 165:e614a9f1c9e2 185 #define LL_RTC_BKP_DR36 (0x00000024U)
AnnaBridge 165:e614a9f1c9e2 186 #define LL_RTC_BKP_DR37 (0x00000025U)
AnnaBridge 165:e614a9f1c9e2 187 #define LL_RTC_BKP_DR38 (0x00000026U)
AnnaBridge 165:e614a9f1c9e2 188 #define LL_RTC_BKP_DR39 (0x00000027U)
AnnaBridge 165:e614a9f1c9e2 189 #define LL_RTC_BKP_DR40 (0x00000028U)
AnnaBridge 165:e614a9f1c9e2 190 #define LL_RTC_BKP_DR41 (0x00000029U)
AnnaBridge 165:e614a9f1c9e2 191 #define LL_RTC_BKP_DR42 (0x0000002AU)
AnnaBridge 165:e614a9f1c9e2 192 #endif /* RTC_BKP_NUMBER > 10 */
AnnaBridge 165:e614a9f1c9e2 193
AnnaBridge 165:e614a9f1c9e2 194 /**
AnnaBridge 165:e614a9f1c9e2 195 * @}
AnnaBridge 165:e614a9f1c9e2 196 */
AnnaBridge 165:e614a9f1c9e2 197
AnnaBridge 165:e614a9f1c9e2 198 /** @defgroup RTC_LL_EC_TAMPLEVEL Tamper Active Level
AnnaBridge 165:e614a9f1c9e2 199 * @{
AnnaBridge 165:e614a9f1c9e2 200 */
AnnaBridge 165:e614a9f1c9e2 201 #define LL_RTC_TAMPER_ACTIVELEVEL_LOW BKP_CR_TPAL /*!< A high level on the TAMPER pin resets all data backup registers (if TPE bit is set) */
AnnaBridge 165:e614a9f1c9e2 202 #define LL_RTC_TAMPER_ACTIVELEVEL_HIGH (0x00000000U) /*!< A low level on the TAMPER pin resets all data backup registers (if TPE bit is set) */
AnnaBridge 165:e614a9f1c9e2 203
AnnaBridge 165:e614a9f1c9e2 204 /**
AnnaBridge 165:e614a9f1c9e2 205 * @}
AnnaBridge 165:e614a9f1c9e2 206 */
AnnaBridge 165:e614a9f1c9e2 207
AnnaBridge 165:e614a9f1c9e2 208 /** @defgroup LL_RTC_Output_Source Clock Source to output on the Tamper Pin
AnnaBridge 165:e614a9f1c9e2 209 * @{
AnnaBridge 165:e614a9f1c9e2 210 */
AnnaBridge 165:e614a9f1c9e2 211 #define LL_RTC_CALIB_OUTPUT_NONE (0x00000000U) /*!< Calibration output disabled */
AnnaBridge 165:e614a9f1c9e2 212 #define LL_RTC_CALIB_OUTPUT_RTCCLOCK BKP_RTCCR_CCO /*!< Calibration output is RTC Clock with a frequency divided by 64 on the TAMPER Pin */
AnnaBridge 165:e614a9f1c9e2 213 #define LL_RTC_CALIB_OUTPUT_ALARM BKP_RTCCR_ASOE /*!< Calibration output is Alarm pulse signal on the TAMPER pin */
AnnaBridge 165:e614a9f1c9e2 214 #define LL_RTC_CALIB_OUTPUT_SECOND (BKP_RTCCR_ASOS | BKP_RTCCR_ASOE) /*!< Calibration output is Second pulse signal on the TAMPER pin*/
AnnaBridge 165:e614a9f1c9e2 215 /**
AnnaBridge 165:e614a9f1c9e2 216 * @}
AnnaBridge 165:e614a9f1c9e2 217 */
AnnaBridge 165:e614a9f1c9e2 218
AnnaBridge 165:e614a9f1c9e2 219 /**
AnnaBridge 165:e614a9f1c9e2 220 * @}
AnnaBridge 165:e614a9f1c9e2 221 */
AnnaBridge 165:e614a9f1c9e2 222
AnnaBridge 165:e614a9f1c9e2 223 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 224 /** @defgroup RTC_LL_Exported_Macros RTC Exported Macros
AnnaBridge 165:e614a9f1c9e2 225 * @{
AnnaBridge 165:e614a9f1c9e2 226 */
AnnaBridge 165:e614a9f1c9e2 227
AnnaBridge 165:e614a9f1c9e2 228 /** @defgroup RTC_LL_EM_WRITE_READ Common Write and read registers Macros
AnnaBridge 165:e614a9f1c9e2 229 * @{
AnnaBridge 165:e614a9f1c9e2 230 */
AnnaBridge 165:e614a9f1c9e2 231
AnnaBridge 165:e614a9f1c9e2 232 /**
AnnaBridge 165:e614a9f1c9e2 233 * @brief Write a value in RTC register
AnnaBridge 165:e614a9f1c9e2 234 * @param __INSTANCE__ RTC Instance
AnnaBridge 165:e614a9f1c9e2 235 * @param __REG__ Register to be written
AnnaBridge 165:e614a9f1c9e2 236 * @param __VALUE__ Value to be written in the register
AnnaBridge 165:e614a9f1c9e2 237 * @retval None
AnnaBridge 165:e614a9f1c9e2 238 */
AnnaBridge 165:e614a9f1c9e2 239 #define LL_RTC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 165:e614a9f1c9e2 240
AnnaBridge 165:e614a9f1c9e2 241 /**
AnnaBridge 165:e614a9f1c9e2 242 * @brief Read a value in RTC register
AnnaBridge 165:e614a9f1c9e2 243 * @param __INSTANCE__ RTC Instance
AnnaBridge 165:e614a9f1c9e2 244 * @param __REG__ Register to be read
AnnaBridge 165:e614a9f1c9e2 245 * @retval Register value
AnnaBridge 165:e614a9f1c9e2 246 */
AnnaBridge 165:e614a9f1c9e2 247 #define LL_RTC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 165:e614a9f1c9e2 248 /**
AnnaBridge 165:e614a9f1c9e2 249 * @}
AnnaBridge 165:e614a9f1c9e2 250 */
AnnaBridge 165:e614a9f1c9e2 251
AnnaBridge 165:e614a9f1c9e2 252 /** @defgroup RTC_LL_EM_Convert Convert helper Macros
AnnaBridge 165:e614a9f1c9e2 253 * @{
AnnaBridge 165:e614a9f1c9e2 254 */
AnnaBridge 165:e614a9f1c9e2 255
AnnaBridge 165:e614a9f1c9e2 256 /**
AnnaBridge 165:e614a9f1c9e2 257 * @brief Helper macro to convert a value from 2 digit decimal format to BCD format
AnnaBridge 165:e614a9f1c9e2 258 * @param __VALUE__ Byte to be converted
AnnaBridge 165:e614a9f1c9e2 259 * @retval Converted byte
AnnaBridge 165:e614a9f1c9e2 260 */
AnnaBridge 165:e614a9f1c9e2 261 #define __LL_RTC_CONVERT_BIN2BCD(__VALUE__) (uint8_t)((((__VALUE__) / 10U) << 4U) | ((__VALUE__) % 10U))
AnnaBridge 165:e614a9f1c9e2 262
AnnaBridge 165:e614a9f1c9e2 263 /**
AnnaBridge 165:e614a9f1c9e2 264 * @brief Helper macro to convert a value from BCD format to 2 digit decimal format
AnnaBridge 165:e614a9f1c9e2 265 * @param __VALUE__ BCD value to be converted
AnnaBridge 165:e614a9f1c9e2 266 * @retval Converted byte
AnnaBridge 165:e614a9f1c9e2 267 */
AnnaBridge 165:e614a9f1c9e2 268 #define __LL_RTC_CONVERT_BCD2BIN(__VALUE__) (uint8_t)(((uint8_t)((__VALUE__) & (uint8_t)0xF0U) >> (uint8_t)0x4U) * 10U + ((__VALUE__) & (uint8_t)0x0FU))
AnnaBridge 165:e614a9f1c9e2 269
AnnaBridge 165:e614a9f1c9e2 270 /**
AnnaBridge 165:e614a9f1c9e2 271 * @}
AnnaBridge 165:e614a9f1c9e2 272 */
AnnaBridge 165:e614a9f1c9e2 273
AnnaBridge 165:e614a9f1c9e2 274 /**
AnnaBridge 165:e614a9f1c9e2 275 * @}
AnnaBridge 165:e614a9f1c9e2 276 */
AnnaBridge 165:e614a9f1c9e2 277
AnnaBridge 165:e614a9f1c9e2 278 /* Exported functions --------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 279 /** @defgroup RTC_LL_Exported_Functions RTC Exported Functions
AnnaBridge 165:e614a9f1c9e2 280 * @{
AnnaBridge 165:e614a9f1c9e2 281 */
AnnaBridge 165:e614a9f1c9e2 282
AnnaBridge 165:e614a9f1c9e2 283 /** @defgroup RTC_LL_EF_Configuration Configuration
AnnaBridge 165:e614a9f1c9e2 284 * @{
AnnaBridge 165:e614a9f1c9e2 285 */
AnnaBridge 165:e614a9f1c9e2 286
AnnaBridge 165:e614a9f1c9e2 287 /**
AnnaBridge 165:e614a9f1c9e2 288 * @brief Set Asynchronous prescaler factor
AnnaBridge 165:e614a9f1c9e2 289 * @rmtoll PRLH PRL LL_RTC_SetAsynchPrescaler\n
AnnaBridge 165:e614a9f1c9e2 290 * @rmtoll PRLL PRL LL_RTC_SetAsynchPrescaler\n
AnnaBridge 165:e614a9f1c9e2 291 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 292 * @param AsynchPrescaler Value between Min_Data = 0 and Max_Data = 0xFFFFF
AnnaBridge 165:e614a9f1c9e2 293 * @retval None
AnnaBridge 165:e614a9f1c9e2 294 */
AnnaBridge 165:e614a9f1c9e2 295 __STATIC_INLINE void LL_RTC_SetAsynchPrescaler(RTC_TypeDef *RTCx, uint32_t AsynchPrescaler)
AnnaBridge 165:e614a9f1c9e2 296 {
AnnaBridge 165:e614a9f1c9e2 297 MODIFY_REG(RTCx->PRLH, RTC_PRLH_PRL, (AsynchPrescaler >> 16));
AnnaBridge 165:e614a9f1c9e2 298 MODIFY_REG(RTCx->PRLL, RTC_PRLL_PRL, (AsynchPrescaler & RTC_PRLL_PRL));
AnnaBridge 165:e614a9f1c9e2 299 }
AnnaBridge 165:e614a9f1c9e2 300
AnnaBridge 165:e614a9f1c9e2 301 /**
AnnaBridge 165:e614a9f1c9e2 302 * @brief Get Asynchronous prescaler factor
AnnaBridge 165:e614a9f1c9e2 303 * @rmtoll DIVH DIV LL_RTC_GetDivider\n
AnnaBridge 165:e614a9f1c9e2 304 * @rmtoll DIVL DIV LL_RTC_GetDivider\n
AnnaBridge 165:e614a9f1c9e2 305 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 306 * @retval Value between Min_Data = 0 and Max_Data = 0xFFFFF
AnnaBridge 165:e614a9f1c9e2 307 */
AnnaBridge 165:e614a9f1c9e2 308 __STATIC_INLINE uint32_t LL_RTC_GetDivider(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 309 {
AnnaBridge 165:e614a9f1c9e2 310 register uint16_t Highprescaler = 0 , Lowprescaler = 0;
AnnaBridge 165:e614a9f1c9e2 311 Highprescaler = READ_REG(RTCx->DIVH & RTC_DIVH_RTC_DIV);
AnnaBridge 165:e614a9f1c9e2 312 Lowprescaler = READ_REG(RTCx->DIVL & RTC_DIVL_RTC_DIV);
AnnaBridge 165:e614a9f1c9e2 313
AnnaBridge 165:e614a9f1c9e2 314 return (((uint32_t) Highprescaler << 16U) | Lowprescaler);
AnnaBridge 165:e614a9f1c9e2 315 }
AnnaBridge 165:e614a9f1c9e2 316
AnnaBridge 165:e614a9f1c9e2 317 /**
AnnaBridge 165:e614a9f1c9e2 318 * @brief Set Output Source
AnnaBridge 165:e614a9f1c9e2 319 * @rmtoll RTCCR CCO LL_RTC_SetOutputSource
AnnaBridge 165:e614a9f1c9e2 320 * @rmtoll RTCCR ASOE LL_RTC_SetOutputSource
AnnaBridge 165:e614a9f1c9e2 321 * @rmtoll RTCCR ASOS LL_RTC_SetOutputSource
AnnaBridge 165:e614a9f1c9e2 322 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 323 * @param OutputSource This parameter can be one of the following values:
AnnaBridge 165:e614a9f1c9e2 324 * @arg @ref LL_RTC_CALIB_OUTPUT_NONE
AnnaBridge 165:e614a9f1c9e2 325 * @arg @ref LL_RTC_CALIB_OUTPUT_RTCCLOCK
AnnaBridge 165:e614a9f1c9e2 326 * @arg @ref LL_RTC_CALIB_OUTPUT_ALARM
AnnaBridge 165:e614a9f1c9e2 327 * @arg @ref LL_RTC_CALIB_OUTPUT_SECOND
AnnaBridge 165:e614a9f1c9e2 328 * @retval None
AnnaBridge 165:e614a9f1c9e2 329 */
AnnaBridge 165:e614a9f1c9e2 330 __STATIC_INLINE void LL_RTC_SetOutputSource(BKP_TypeDef *BKPx, uint32_t OutputSource)
AnnaBridge 165:e614a9f1c9e2 331 {
AnnaBridge 165:e614a9f1c9e2 332 MODIFY_REG(BKPx->RTCCR, (BKP_RTCCR_CCO | BKP_RTCCR_ASOE | BKP_RTCCR_ASOS), OutputSource);
AnnaBridge 165:e614a9f1c9e2 333 }
AnnaBridge 165:e614a9f1c9e2 334
AnnaBridge 165:e614a9f1c9e2 335 /**
AnnaBridge 165:e614a9f1c9e2 336 * @brief Get Output Source
AnnaBridge 165:e614a9f1c9e2 337 * @rmtoll RTCCR CCO LL_RTC_GetOutPutSource
AnnaBridge 165:e614a9f1c9e2 338 * @rmtoll RTCCR ASOE LL_RTC_GetOutPutSource
AnnaBridge 165:e614a9f1c9e2 339 * @rmtoll RTCCR ASOS LL_RTC_GetOutPutSource
AnnaBridge 165:e614a9f1c9e2 340 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 341 * @retval Returned value can be one of the following values:
AnnaBridge 165:e614a9f1c9e2 342 * @arg @ref LL_RTC_CALIB_OUTPUT_NONE
AnnaBridge 165:e614a9f1c9e2 343 * @arg @ref LL_RTC_CALIB_OUTPUT_RTCCLOCK
AnnaBridge 165:e614a9f1c9e2 344 * @arg @ref LL_RTC_CALIB_OUTPUT_ALARM
AnnaBridge 165:e614a9f1c9e2 345 * @arg @ref LL_RTC_CALIB_OUTPUT_SECOND
AnnaBridge 165:e614a9f1c9e2 346 */
AnnaBridge 165:e614a9f1c9e2 347 __STATIC_INLINE uint32_t LL_RTC_GetOutPutSource(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 348 {
AnnaBridge 165:e614a9f1c9e2 349 return (uint32_t)(READ_BIT(BKPx->RTCCR, (BKP_RTCCR_CCO | BKP_RTCCR_ASOE | BKP_RTCCR_ASOS)));
AnnaBridge 165:e614a9f1c9e2 350 }
AnnaBridge 165:e614a9f1c9e2 351
AnnaBridge 165:e614a9f1c9e2 352 /**
AnnaBridge 165:e614a9f1c9e2 353 * @brief Enable the write protection for RTC registers.
AnnaBridge 165:e614a9f1c9e2 354 * @rmtoll CRL CNF LL_RTC_EnableWriteProtection
AnnaBridge 165:e614a9f1c9e2 355 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 356 * @retval None
AnnaBridge 165:e614a9f1c9e2 357 */
AnnaBridge 165:e614a9f1c9e2 358 __STATIC_INLINE void LL_RTC_EnableWriteProtection(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 359 {
AnnaBridge 165:e614a9f1c9e2 360 CLEAR_BIT(RTCx->CRL, RTC_CRL_CNF);
AnnaBridge 165:e614a9f1c9e2 361 }
AnnaBridge 165:e614a9f1c9e2 362
AnnaBridge 165:e614a9f1c9e2 363 /**
AnnaBridge 165:e614a9f1c9e2 364 * @brief Disable the write protection for RTC registers.
AnnaBridge 165:e614a9f1c9e2 365 * @rmtoll CRL RTC_CRL_CNF LL_RTC_DisableWriteProtection
AnnaBridge 165:e614a9f1c9e2 366 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 367 * @retval None
AnnaBridge 165:e614a9f1c9e2 368 */
AnnaBridge 165:e614a9f1c9e2 369 __STATIC_INLINE void LL_RTC_DisableWriteProtection(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 370 {
AnnaBridge 165:e614a9f1c9e2 371 SET_BIT(RTCx->CRL, RTC_CRL_CNF);
AnnaBridge 165:e614a9f1c9e2 372 }
AnnaBridge 165:e614a9f1c9e2 373
AnnaBridge 165:e614a9f1c9e2 374 /**
AnnaBridge 165:e614a9f1c9e2 375 * @}
AnnaBridge 165:e614a9f1c9e2 376 */
AnnaBridge 165:e614a9f1c9e2 377
AnnaBridge 165:e614a9f1c9e2 378 /** @defgroup RTC_LL_EF_Time Time
AnnaBridge 165:e614a9f1c9e2 379 * @{
AnnaBridge 165:e614a9f1c9e2 380 */
AnnaBridge 165:e614a9f1c9e2 381
AnnaBridge 165:e614a9f1c9e2 382 /**
AnnaBridge 165:e614a9f1c9e2 383 * @brief Set time counter in BCD format
AnnaBridge 165:e614a9f1c9e2 384 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 385 * @note It can be written in initialization mode only (@ref LL_RTC_EnterInitMode function)
AnnaBridge 165:e614a9f1c9e2 386 * @rmtoll CNTH CNT LL_RTC_TIME_Set\n
AnnaBridge 165:e614a9f1c9e2 387 * CNTL CNT LL_RTC_TIME_Set\n
AnnaBridge 165:e614a9f1c9e2 388 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 389 * @param TimeCounter Value between Min_Data=0x00 and Max_Data=0xFFFFF
AnnaBridge 165:e614a9f1c9e2 390 * @retval None
AnnaBridge 165:e614a9f1c9e2 391 */
AnnaBridge 165:e614a9f1c9e2 392 __STATIC_INLINE void LL_RTC_TIME_Set(RTC_TypeDef *RTCx, uint32_t TimeCounter)
AnnaBridge 165:e614a9f1c9e2 393 {
AnnaBridge 165:e614a9f1c9e2 394 /* Set RTC COUNTER MSB word */
AnnaBridge 165:e614a9f1c9e2 395 WRITE_REG(RTCx->CNTH, (TimeCounter >> 16U));
AnnaBridge 165:e614a9f1c9e2 396 /* Set RTC COUNTER LSB word */
AnnaBridge 165:e614a9f1c9e2 397 WRITE_REG(RTCx->CNTL, (TimeCounter & RTC_CNTL_RTC_CNT));
AnnaBridge 165:e614a9f1c9e2 398 }
AnnaBridge 165:e614a9f1c9e2 399
AnnaBridge 165:e614a9f1c9e2 400 /**
AnnaBridge 165:e614a9f1c9e2 401 * @brief Get time counter in BCD format
AnnaBridge 165:e614a9f1c9e2 402 * @rmtoll CNTH CNT LL_RTC_TIME_Get\n
AnnaBridge 165:e614a9f1c9e2 403 * CNTL CNT LL_RTC_TIME_Get\n
AnnaBridge 165:e614a9f1c9e2 404 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 405 * @retval Value between Min_Data = 0 and Max_Data = 0xFFFFF
AnnaBridge 165:e614a9f1c9e2 406 */
AnnaBridge 165:e614a9f1c9e2 407 __STATIC_INLINE uint32_t LL_RTC_TIME_Get(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 408 {
AnnaBridge 165:e614a9f1c9e2 409 register uint16_t high = 0, low = 0;
AnnaBridge 165:e614a9f1c9e2 410
AnnaBridge 165:e614a9f1c9e2 411 high = READ_REG(RTCx->CNTH & RTC_CNTH_RTC_CNT);
AnnaBridge 165:e614a9f1c9e2 412 low = READ_REG(RTCx->CNTL & RTC_CNTL_RTC_CNT);
AnnaBridge 165:e614a9f1c9e2 413 return ((uint32_t)(((uint32_t) high << 16U) | low));
AnnaBridge 165:e614a9f1c9e2 414 }
AnnaBridge 165:e614a9f1c9e2 415
AnnaBridge 165:e614a9f1c9e2 416 /**
AnnaBridge 165:e614a9f1c9e2 417 * @}
AnnaBridge 165:e614a9f1c9e2 418 */
AnnaBridge 165:e614a9f1c9e2 419
AnnaBridge 165:e614a9f1c9e2 420 /** @defgroup RTC_LL_EF_ALARM ALARM
AnnaBridge 165:e614a9f1c9e2 421 * @{
AnnaBridge 165:e614a9f1c9e2 422 */
AnnaBridge 165:e614a9f1c9e2 423
AnnaBridge 165:e614a9f1c9e2 424 /**
AnnaBridge 165:e614a9f1c9e2 425 * @brief Set Alarm Counter
AnnaBridge 165:e614a9f1c9e2 426 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 427 * @rmtoll ALRH ALR LL_RTC_ALARM_Set\n
AnnaBridge 165:e614a9f1c9e2 428 * @rmtoll ALRL ALR LL_RTC_ALARM_Set\n
AnnaBridge 165:e614a9f1c9e2 429 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 430 * @param AlarmCounter Value between Min_Data=0x00 and Max_Data=0xFFFFF
AnnaBridge 165:e614a9f1c9e2 431 * @retval None
AnnaBridge 165:e614a9f1c9e2 432 */
AnnaBridge 165:e614a9f1c9e2 433 __STATIC_INLINE void LL_RTC_ALARM_Set(RTC_TypeDef *RTCx, uint32_t AlarmCounter)
AnnaBridge 165:e614a9f1c9e2 434 {
AnnaBridge 165:e614a9f1c9e2 435 /* Set RTC COUNTER MSB word */
AnnaBridge 165:e614a9f1c9e2 436 WRITE_REG(RTCx->ALRH, (AlarmCounter >> 16));
AnnaBridge 165:e614a9f1c9e2 437 /* Set RTC COUNTER LSB word */
AnnaBridge 165:e614a9f1c9e2 438 WRITE_REG(RTCx->ALRL, (AlarmCounter & RTC_ALRL_RTC_ALR));
AnnaBridge 165:e614a9f1c9e2 439 }
AnnaBridge 165:e614a9f1c9e2 440
AnnaBridge 165:e614a9f1c9e2 441 /**
AnnaBridge 165:e614a9f1c9e2 442 * @brief Get Alarm Counter
AnnaBridge 165:e614a9f1c9e2 443 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 444 * @rmtoll ALRH ALR LL_RTC_ALARM_Get\n
AnnaBridge 165:e614a9f1c9e2 445 * @rmtoll ALRL ALR LL_RTC_ALARM_Get\n
AnnaBridge 165:e614a9f1c9e2 446 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 447 * @retval None
AnnaBridge 165:e614a9f1c9e2 448 */
AnnaBridge 165:e614a9f1c9e2 449 __STATIC_INLINE uint32_t LL_RTC_ALARM_Get(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 450 {
AnnaBridge 165:e614a9f1c9e2 451 register uint16_t high = 0, low = 0;
AnnaBridge 165:e614a9f1c9e2 452
AnnaBridge 165:e614a9f1c9e2 453 high = READ_REG(RTCx->ALRH & RTC_ALRH_RTC_ALR);
AnnaBridge 165:e614a9f1c9e2 454 low = READ_REG(RTCx->ALRL & RTC_ALRL_RTC_ALR);
AnnaBridge 165:e614a9f1c9e2 455
AnnaBridge 165:e614a9f1c9e2 456 return (((uint32_t) high << 16U) | low);
AnnaBridge 165:e614a9f1c9e2 457 }
AnnaBridge 165:e614a9f1c9e2 458
AnnaBridge 165:e614a9f1c9e2 459 /**
AnnaBridge 165:e614a9f1c9e2 460 * @}
AnnaBridge 165:e614a9f1c9e2 461 */
AnnaBridge 165:e614a9f1c9e2 462
AnnaBridge 165:e614a9f1c9e2 463 /** @defgroup RTC_LL_EF_Tamper Tamper
AnnaBridge 165:e614a9f1c9e2 464 * @{
AnnaBridge 165:e614a9f1c9e2 465 */
AnnaBridge 165:e614a9f1c9e2 466
AnnaBridge 165:e614a9f1c9e2 467 /**
AnnaBridge 165:e614a9f1c9e2 468 * @brief Enable RTC_TAMPx input detection
AnnaBridge 165:e614a9f1c9e2 469 * @rmtoll CR TPE LL_RTC_TAMPER_Enable\n
AnnaBridge 165:e614a9f1c9e2 470 * @retval None
AnnaBridge 165:e614a9f1c9e2 471 */
AnnaBridge 165:e614a9f1c9e2 472 __STATIC_INLINE void LL_RTC_TAMPER_Enable(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 473 {
AnnaBridge 165:e614a9f1c9e2 474 SET_BIT(BKPx->CR, BKP_CR_TPE);
AnnaBridge 165:e614a9f1c9e2 475 }
AnnaBridge 165:e614a9f1c9e2 476
AnnaBridge 165:e614a9f1c9e2 477 /**
AnnaBridge 165:e614a9f1c9e2 478 * @brief Disable RTC_TAMPx Tamper
AnnaBridge 165:e614a9f1c9e2 479 * @rmtoll CR TPE LL_RTC_TAMPER_Disable\n
AnnaBridge 165:e614a9f1c9e2 480 * @retval None
AnnaBridge 165:e614a9f1c9e2 481 */
AnnaBridge 165:e614a9f1c9e2 482 __STATIC_INLINE void LL_RTC_TAMPER_Disable(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 483 {
AnnaBridge 165:e614a9f1c9e2 484 CLEAR_BIT(BKP->CR, BKP_CR_TPE);
AnnaBridge 165:e614a9f1c9e2 485 }
AnnaBridge 165:e614a9f1c9e2 486
AnnaBridge 165:e614a9f1c9e2 487 /**
AnnaBridge 165:e614a9f1c9e2 488 * @brief Enable Active level for Tamper input
AnnaBridge 165:e614a9f1c9e2 489 * @rmtoll CR TPAL LL_RTC_TAMPER_SetActiveLevel\n
AnnaBridge 165:e614a9f1c9e2 490 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 491 * @param Tamper This parameter can be a combination of the following values:
AnnaBridge 165:e614a9f1c9e2 492 * @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_LOW
AnnaBridge 165:e614a9f1c9e2 493 * @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_HIGH
AnnaBridge 165:e614a9f1c9e2 494 * @retval None
AnnaBridge 165:e614a9f1c9e2 495 */
AnnaBridge 165:e614a9f1c9e2 496 __STATIC_INLINE void LL_RTC_TAMPER_SetActiveLevel(BKP_TypeDef *BKPx, uint32_t Tamper)
AnnaBridge 165:e614a9f1c9e2 497 {
AnnaBridge 165:e614a9f1c9e2 498 MODIFY_REG(BKPx->CR, BKP_CR_TPAL, Tamper);
AnnaBridge 165:e614a9f1c9e2 499 }
AnnaBridge 165:e614a9f1c9e2 500
AnnaBridge 165:e614a9f1c9e2 501 /**
AnnaBridge 165:e614a9f1c9e2 502 * @brief Disable Active level for Tamper input
AnnaBridge 165:e614a9f1c9e2 503 * @rmtoll CR TPAL LL_RTC_TAMPER_SetActiveLevel\n
AnnaBridge 165:e614a9f1c9e2 504 * @retval None
AnnaBridge 165:e614a9f1c9e2 505 */
AnnaBridge 165:e614a9f1c9e2 506 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetActiveLevel(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 507 {
AnnaBridge 165:e614a9f1c9e2 508 return (uint32_t)(READ_BIT(BKPx->CR, BKP_CR_TPAL));
AnnaBridge 165:e614a9f1c9e2 509 }
AnnaBridge 165:e614a9f1c9e2 510
AnnaBridge 165:e614a9f1c9e2 511 /**
AnnaBridge 165:e614a9f1c9e2 512 * @}
AnnaBridge 165:e614a9f1c9e2 513 */
AnnaBridge 165:e614a9f1c9e2 514
AnnaBridge 165:e614a9f1c9e2 515 /** @defgroup RTC_LL_EF_Backup_Registers Backup_Registers
AnnaBridge 165:e614a9f1c9e2 516 * @{
AnnaBridge 165:e614a9f1c9e2 517 */
AnnaBridge 165:e614a9f1c9e2 518
AnnaBridge 165:e614a9f1c9e2 519 /**
AnnaBridge 165:e614a9f1c9e2 520 * @brief Writes a data in a specified RTC Backup data register.
AnnaBridge 165:e614a9f1c9e2 521 * @rmtoll BKPDR DR LL_RTC_BKP_SetRegister
AnnaBridge 165:e614a9f1c9e2 522 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 523 * @param BackupRegister This parameter can be one of the following values:
AnnaBridge 165:e614a9f1c9e2 524 * @arg @ref LL_RTC_BKP_DR1
AnnaBridge 165:e614a9f1c9e2 525 * @arg @ref LL_RTC_BKP_DR2
AnnaBridge 165:e614a9f1c9e2 526 * @arg @ref LL_RTC_BKP_DR3
AnnaBridge 165:e614a9f1c9e2 527 * @arg @ref LL_RTC_BKP_DR4
AnnaBridge 165:e614a9f1c9e2 528 * @arg @ref LL_RTC_BKP_DR5
AnnaBridge 165:e614a9f1c9e2 529 * @arg @ref LL_RTC_BKP_DR6
AnnaBridge 165:e614a9f1c9e2 530 * @arg @ref LL_RTC_BKP_DR7
AnnaBridge 165:e614a9f1c9e2 531 * @arg @ref LL_RTC_BKP_DR8
AnnaBridge 165:e614a9f1c9e2 532 * @arg @ref LL_RTC_BKP_DR9
AnnaBridge 165:e614a9f1c9e2 533 * @arg @ref LL_RTC_BKP_DR10
AnnaBridge 165:e614a9f1c9e2 534 * @arg @ref LL_RTC_BKP_DR11 (*)
AnnaBridge 165:e614a9f1c9e2 535 * @arg @ref LL_RTC_BKP_DR12 (*)
AnnaBridge 165:e614a9f1c9e2 536 * @arg @ref LL_RTC_BKP_DR13 (*)
AnnaBridge 165:e614a9f1c9e2 537 * @arg @ref LL_RTC_BKP_DR14 (*)
AnnaBridge 165:e614a9f1c9e2 538 * @arg @ref LL_RTC_BKP_DR15 (*)
AnnaBridge 165:e614a9f1c9e2 539 * @arg @ref LL_RTC_BKP_DR16 (*)
AnnaBridge 165:e614a9f1c9e2 540 * @arg @ref LL_RTC_BKP_DR17 (*)
AnnaBridge 165:e614a9f1c9e2 541 * @arg @ref LL_RTC_BKP_DR18 (*)
AnnaBridge 165:e614a9f1c9e2 542 * @arg @ref LL_RTC_BKP_DR19 (*)
AnnaBridge 165:e614a9f1c9e2 543 * @arg @ref LL_RTC_BKP_DR20 (*)
AnnaBridge 165:e614a9f1c9e2 544 * @arg @ref LL_RTC_BKP_DR21 (*)
AnnaBridge 165:e614a9f1c9e2 545 * @arg @ref LL_RTC_BKP_DR22 (*)
AnnaBridge 165:e614a9f1c9e2 546 * @arg @ref LL_RTC_BKP_DR23 (*)
AnnaBridge 165:e614a9f1c9e2 547 * @arg @ref LL_RTC_BKP_DR24 (*)
AnnaBridge 165:e614a9f1c9e2 548 * @arg @ref LL_RTC_BKP_DR25 (*)
AnnaBridge 165:e614a9f1c9e2 549 * @arg @ref LL_RTC_BKP_DR26 (*)
AnnaBridge 165:e614a9f1c9e2 550 * @arg @ref LL_RTC_BKP_DR27 (*)
AnnaBridge 165:e614a9f1c9e2 551 * @arg @ref LL_RTC_BKP_DR28 (*)
AnnaBridge 165:e614a9f1c9e2 552 * @arg @ref LL_RTC_BKP_DR29 (*)
AnnaBridge 165:e614a9f1c9e2 553 * @arg @ref LL_RTC_BKP_DR30 (*)
AnnaBridge 165:e614a9f1c9e2 554 * @arg @ref LL_RTC_BKP_DR31 (*)
AnnaBridge 165:e614a9f1c9e2 555 * @arg @ref LL_RTC_BKP_DR32 (*)
AnnaBridge 165:e614a9f1c9e2 556 * @arg @ref LL_RTC_BKP_DR33 (*)
AnnaBridge 165:e614a9f1c9e2 557 * @arg @ref LL_RTC_BKP_DR34 (*)
AnnaBridge 165:e614a9f1c9e2 558 * @arg @ref LL_RTC_BKP_DR35 (*)
AnnaBridge 165:e614a9f1c9e2 559 * @arg @ref LL_RTC_BKP_DR36 (*)
AnnaBridge 165:e614a9f1c9e2 560 * @arg @ref LL_RTC_BKP_DR37 (*)
AnnaBridge 165:e614a9f1c9e2 561 * @arg @ref LL_RTC_BKP_DR38 (*)
AnnaBridge 165:e614a9f1c9e2 562 * @arg @ref LL_RTC_BKP_DR39 (*)
AnnaBridge 165:e614a9f1c9e2 563 * @arg @ref LL_RTC_BKP_DR40 (*)
AnnaBridge 165:e614a9f1c9e2 564 * @arg @ref LL_RTC_BKP_DR41 (*)
AnnaBridge 165:e614a9f1c9e2 565 * @arg @ref LL_RTC_BKP_DR42 (*)
AnnaBridge 165:e614a9f1c9e2 566 * (*) value not defined in all devices.
AnnaBridge 165:e614a9f1c9e2 567 * @param Data Value between Min_Data=0x00 and Max_Data=0xFFFFFFFF
AnnaBridge 165:e614a9f1c9e2 568 * @retval None
AnnaBridge 165:e614a9f1c9e2 569 */
AnnaBridge 165:e614a9f1c9e2 570 __STATIC_INLINE void LL_RTC_BKP_SetRegister(BKP_TypeDef *BKPx, uint32_t BackupRegister, uint32_t Data)
AnnaBridge 165:e614a9f1c9e2 571 {
AnnaBridge 165:e614a9f1c9e2 572 register uint32_t tmp = 0U;
AnnaBridge 165:e614a9f1c9e2 573
AnnaBridge 165:e614a9f1c9e2 574 tmp = (uint32_t)BKP_BASE;
AnnaBridge 165:e614a9f1c9e2 575 tmp += (BackupRegister * 4U);
AnnaBridge 165:e614a9f1c9e2 576
AnnaBridge 165:e614a9f1c9e2 577 /* Write the specified register */
AnnaBridge 165:e614a9f1c9e2 578 *(__IO uint32_t *)tmp = (uint32_t)Data;
AnnaBridge 165:e614a9f1c9e2 579 }
AnnaBridge 165:e614a9f1c9e2 580
AnnaBridge 165:e614a9f1c9e2 581 /**
AnnaBridge 165:e614a9f1c9e2 582 * @brief Reads data from the specified RTC Backup data Register.
AnnaBridge 165:e614a9f1c9e2 583 * @rmtoll BKPDR DR LL_RTC_BKP_GetRegister
AnnaBridge 165:e614a9f1c9e2 584 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 585 * @param BackupRegister This parameter can be one of the following values:
AnnaBridge 165:e614a9f1c9e2 586 * @arg @ref LL_RTC_BKP_DR1
AnnaBridge 165:e614a9f1c9e2 587 * @arg @ref LL_RTC_BKP_DR2
AnnaBridge 165:e614a9f1c9e2 588 * @arg @ref LL_RTC_BKP_DR3
AnnaBridge 165:e614a9f1c9e2 589 * @arg @ref LL_RTC_BKP_DR4
AnnaBridge 165:e614a9f1c9e2 590 * @arg @ref LL_RTC_BKP_DR5
AnnaBridge 165:e614a9f1c9e2 591 * @arg @ref LL_RTC_BKP_DR6
AnnaBridge 165:e614a9f1c9e2 592 * @arg @ref LL_RTC_BKP_DR7
AnnaBridge 165:e614a9f1c9e2 593 * @arg @ref LL_RTC_BKP_DR8
AnnaBridge 165:e614a9f1c9e2 594 * @arg @ref LL_RTC_BKP_DR9
AnnaBridge 165:e614a9f1c9e2 595 * @arg @ref LL_RTC_BKP_DR10
AnnaBridge 165:e614a9f1c9e2 596 * @arg @ref LL_RTC_BKP_DR11 (*)
AnnaBridge 165:e614a9f1c9e2 597 * @arg @ref LL_RTC_BKP_DR12 (*)
AnnaBridge 165:e614a9f1c9e2 598 * @arg @ref LL_RTC_BKP_DR13 (*)
AnnaBridge 165:e614a9f1c9e2 599 * @arg @ref LL_RTC_BKP_DR14 (*)
AnnaBridge 165:e614a9f1c9e2 600 * @arg @ref LL_RTC_BKP_DR15 (*)
AnnaBridge 165:e614a9f1c9e2 601 * @arg @ref LL_RTC_BKP_DR16 (*)
AnnaBridge 165:e614a9f1c9e2 602 * @arg @ref LL_RTC_BKP_DR17 (*)
AnnaBridge 165:e614a9f1c9e2 603 * @arg @ref LL_RTC_BKP_DR18 (*)
AnnaBridge 165:e614a9f1c9e2 604 * @arg @ref LL_RTC_BKP_DR19 (*)
AnnaBridge 165:e614a9f1c9e2 605 * @arg @ref LL_RTC_BKP_DR20 (*)
AnnaBridge 165:e614a9f1c9e2 606 * @arg @ref LL_RTC_BKP_DR21 (*)
AnnaBridge 165:e614a9f1c9e2 607 * @arg @ref LL_RTC_BKP_DR22 (*)
AnnaBridge 165:e614a9f1c9e2 608 * @arg @ref LL_RTC_BKP_DR23 (*)
AnnaBridge 165:e614a9f1c9e2 609 * @arg @ref LL_RTC_BKP_DR24 (*)
AnnaBridge 165:e614a9f1c9e2 610 * @arg @ref LL_RTC_BKP_DR25 (*)
AnnaBridge 165:e614a9f1c9e2 611 * @arg @ref LL_RTC_BKP_DR26 (*)
AnnaBridge 165:e614a9f1c9e2 612 * @arg @ref LL_RTC_BKP_DR27 (*)
AnnaBridge 165:e614a9f1c9e2 613 * @arg @ref LL_RTC_BKP_DR28 (*)
AnnaBridge 165:e614a9f1c9e2 614 * @arg @ref LL_RTC_BKP_DR29 (*)
AnnaBridge 165:e614a9f1c9e2 615 * @arg @ref LL_RTC_BKP_DR30 (*)
AnnaBridge 165:e614a9f1c9e2 616 * @arg @ref LL_RTC_BKP_DR31 (*)
AnnaBridge 165:e614a9f1c9e2 617 * @arg @ref LL_RTC_BKP_DR32 (*)
AnnaBridge 165:e614a9f1c9e2 618 * @arg @ref LL_RTC_BKP_DR33 (*)
AnnaBridge 165:e614a9f1c9e2 619 * @arg @ref LL_RTC_BKP_DR34 (*)
AnnaBridge 165:e614a9f1c9e2 620 * @arg @ref LL_RTC_BKP_DR35 (*)
AnnaBridge 165:e614a9f1c9e2 621 * @arg @ref LL_RTC_BKP_DR36 (*)
AnnaBridge 165:e614a9f1c9e2 622 * @arg @ref LL_RTC_BKP_DR37 (*)
AnnaBridge 165:e614a9f1c9e2 623 * @arg @ref LL_RTC_BKP_DR38 (*)
AnnaBridge 165:e614a9f1c9e2 624 * @arg @ref LL_RTC_BKP_DR39 (*)
AnnaBridge 165:e614a9f1c9e2 625 * @arg @ref LL_RTC_BKP_DR40 (*)
AnnaBridge 165:e614a9f1c9e2 626 * @arg @ref LL_RTC_BKP_DR41 (*)
AnnaBridge 165:e614a9f1c9e2 627 * @arg @ref LL_RTC_BKP_DR42 (*)
AnnaBridge 165:e614a9f1c9e2 628 * @retval Value between Min_Data=0x00 and Max_Data=0xFFFFFFFF
AnnaBridge 165:e614a9f1c9e2 629 */
AnnaBridge 165:e614a9f1c9e2 630 __STATIC_INLINE uint32_t LL_RTC_BKP_GetRegister(BKP_TypeDef *BKPx, uint32_t BackupRegister)
AnnaBridge 165:e614a9f1c9e2 631 {
AnnaBridge 165:e614a9f1c9e2 632 register uint32_t tmp = 0U;
AnnaBridge 165:e614a9f1c9e2 633
AnnaBridge 165:e614a9f1c9e2 634 tmp = (uint32_t)BKP_BASE;
AnnaBridge 165:e614a9f1c9e2 635 tmp += (BackupRegister * 4U);
AnnaBridge 165:e614a9f1c9e2 636
AnnaBridge 165:e614a9f1c9e2 637 /* Read the specified register */
AnnaBridge 165:e614a9f1c9e2 638 return ((*(__IO uint32_t *)tmp) & BKP_DR1_D);
AnnaBridge 165:e614a9f1c9e2 639 }
AnnaBridge 165:e614a9f1c9e2 640
AnnaBridge 165:e614a9f1c9e2 641 /**
AnnaBridge 165:e614a9f1c9e2 642 * @}
AnnaBridge 165:e614a9f1c9e2 643 */
AnnaBridge 165:e614a9f1c9e2 644
AnnaBridge 165:e614a9f1c9e2 645 /** @defgroup RTC_LL_EF_Calibration Calibration
AnnaBridge 165:e614a9f1c9e2 646 * @{
AnnaBridge 165:e614a9f1c9e2 647 */
AnnaBridge 165:e614a9f1c9e2 648
AnnaBridge 165:e614a9f1c9e2 649 /**
AnnaBridge 165:e614a9f1c9e2 650 * @brief Set the coarse digital calibration
AnnaBridge 165:e614a9f1c9e2 651 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 652 * @note It can be written in initialization mode only (@ref LL_RTC_EnterInitMode function)
AnnaBridge 165:e614a9f1c9e2 653 * @rmtoll RTCCR CAL LL_RTC_CAL_SetCoarseDigital\n
AnnaBridge 165:e614a9f1c9e2 654 * @param BKPx RTC Instance
AnnaBridge 165:e614a9f1c9e2 655 * @param Value value of coarse calibration expressed in ppm (coded on 5 bits)
AnnaBridge 165:e614a9f1c9e2 656 * @note This Calibration value should be between 0 and 121 when using positive sign with a 4-ppm step.
AnnaBridge 165:e614a9f1c9e2 657 * @retval None
AnnaBridge 165:e614a9f1c9e2 658 */
AnnaBridge 165:e614a9f1c9e2 659 __STATIC_INLINE void LL_RTC_CAL_SetCoarseDigital(BKP_TypeDef* BKPx, uint32_t Value)
AnnaBridge 165:e614a9f1c9e2 660 {
AnnaBridge 165:e614a9f1c9e2 661 MODIFY_REG(BKPx->RTCCR,BKP_RTCCR_CAL, Value);
AnnaBridge 165:e614a9f1c9e2 662 }
AnnaBridge 165:e614a9f1c9e2 663
AnnaBridge 165:e614a9f1c9e2 664 /**
AnnaBridge 165:e614a9f1c9e2 665 * @brief Get the coarse digital calibration value
AnnaBridge 165:e614a9f1c9e2 666 * @rmtoll RTCCR CAL LL_RTC_CAL_SetCoarseDigital\n
AnnaBridge 165:e614a9f1c9e2 667 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 668 * @retval value of coarse calibration expressed in ppm (coded on 5 bits)
AnnaBridge 165:e614a9f1c9e2 669 */
AnnaBridge 165:e614a9f1c9e2 670 __STATIC_INLINE uint32_t LL_RTC_CAL_GetCoarseDigital(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 671 {
AnnaBridge 165:e614a9f1c9e2 672 return (uint32_t)(READ_BIT(BKPx->RTCCR, BKP_RTCCR_CAL));
AnnaBridge 165:e614a9f1c9e2 673 }
AnnaBridge 165:e614a9f1c9e2 674 /**
AnnaBridge 165:e614a9f1c9e2 675 * @}
AnnaBridge 165:e614a9f1c9e2 676 */
AnnaBridge 165:e614a9f1c9e2 677
AnnaBridge 165:e614a9f1c9e2 678 /** @defgroup RTC_LL_EF_FLAG_Management FLAG_Management
AnnaBridge 165:e614a9f1c9e2 679 * @{
AnnaBridge 165:e614a9f1c9e2 680 */
AnnaBridge 165:e614a9f1c9e2 681
AnnaBridge 165:e614a9f1c9e2 682 /**
AnnaBridge 165:e614a9f1c9e2 683 * @brief Get RTC_TAMPI Interruption detection flag
AnnaBridge 165:e614a9f1c9e2 684 * @rmtoll CSR TIF LL_RTC_IsActiveFlag_TAMPI
AnnaBridge 165:e614a9f1c9e2 685 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 686 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 687 */
AnnaBridge 165:e614a9f1c9e2 688 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMPI(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 689 {
AnnaBridge 165:e614a9f1c9e2 690 return (READ_BIT(BKPx->CSR, BKP_CSR_TIF) == (BKP_CSR_TIF));
AnnaBridge 165:e614a9f1c9e2 691 }
AnnaBridge 165:e614a9f1c9e2 692
AnnaBridge 165:e614a9f1c9e2 693 /**
AnnaBridge 165:e614a9f1c9e2 694 * @brief Clear RTC_TAMP Interruption detection flag
AnnaBridge 165:e614a9f1c9e2 695 * @rmtoll CSR CTI LL_RTC_ClearFlag_TAMPI
AnnaBridge 165:e614a9f1c9e2 696 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 697 * @retval None
AnnaBridge 165:e614a9f1c9e2 698 */
AnnaBridge 165:e614a9f1c9e2 699 __STATIC_INLINE void LL_RTC_ClearFlag_TAMPI(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 700 {
AnnaBridge 165:e614a9f1c9e2 701 SET_BIT(BKPx->CSR, BKP_CSR_CTI);
AnnaBridge 165:e614a9f1c9e2 702 }
AnnaBridge 165:e614a9f1c9e2 703
AnnaBridge 165:e614a9f1c9e2 704 /**
AnnaBridge 165:e614a9f1c9e2 705 * @brief Get RTC_TAMPE Event detection flag
AnnaBridge 165:e614a9f1c9e2 706 * @rmtoll CSR TEF LL_RTC_IsActiveFlag_TAMPE
AnnaBridge 165:e614a9f1c9e2 707 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 708 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 709 */
AnnaBridge 165:e614a9f1c9e2 710 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMPE(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 711 {
AnnaBridge 165:e614a9f1c9e2 712 return (READ_BIT(BKPx->CSR, BKP_CSR_TEF) == (BKP_CSR_TEF));
AnnaBridge 165:e614a9f1c9e2 713 }
AnnaBridge 165:e614a9f1c9e2 714
AnnaBridge 165:e614a9f1c9e2 715 /**
AnnaBridge 165:e614a9f1c9e2 716 * @brief Clear RTC_TAMPE Even detection flag
AnnaBridge 165:e614a9f1c9e2 717 * @rmtoll CSR CTE LL_RTC_ClearFlag_TAMPE
AnnaBridge 165:e614a9f1c9e2 718 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 719 * @retval None
AnnaBridge 165:e614a9f1c9e2 720 */
AnnaBridge 165:e614a9f1c9e2 721 __STATIC_INLINE void LL_RTC_ClearFlag_TAMPE(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 722 {
AnnaBridge 165:e614a9f1c9e2 723 SET_BIT(BKPx->CSR, BKP_CSR_CTE);
AnnaBridge 165:e614a9f1c9e2 724 }
AnnaBridge 165:e614a9f1c9e2 725
AnnaBridge 165:e614a9f1c9e2 726 /**
AnnaBridge 165:e614a9f1c9e2 727 * @brief Get Alarm flag
AnnaBridge 165:e614a9f1c9e2 728 * @rmtoll CRL ALRF LL_RTC_IsActiveFlag_ALR
AnnaBridge 165:e614a9f1c9e2 729 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 730 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 731 */
AnnaBridge 165:e614a9f1c9e2 732 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALR(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 733 {
AnnaBridge 165:e614a9f1c9e2 734 return (READ_BIT(RTCx->CRL, RTC_CRL_ALRF) == (RTC_CRL_ALRF));
AnnaBridge 165:e614a9f1c9e2 735 }
AnnaBridge 165:e614a9f1c9e2 736
AnnaBridge 165:e614a9f1c9e2 737 /**
AnnaBridge 165:e614a9f1c9e2 738 * @brief Clear Alarm flag
AnnaBridge 165:e614a9f1c9e2 739 * @rmtoll CRL ALRF LL_RTC_ClearFlag_ALR
AnnaBridge 165:e614a9f1c9e2 740 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 741 * @retval None
AnnaBridge 165:e614a9f1c9e2 742 */
AnnaBridge 165:e614a9f1c9e2 743 __STATIC_INLINE void LL_RTC_ClearFlag_ALR(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 744 {
AnnaBridge 165:e614a9f1c9e2 745 CLEAR_BIT(RTCx->CRL, RTC_CRL_ALRF);
AnnaBridge 165:e614a9f1c9e2 746 }
AnnaBridge 165:e614a9f1c9e2 747
AnnaBridge 165:e614a9f1c9e2 748 /**
AnnaBridge 165:e614a9f1c9e2 749 * @brief Get Registers synchronization flag
AnnaBridge 165:e614a9f1c9e2 750 * @rmtoll CRL RSF LL_RTC_IsActiveFlag_RS
AnnaBridge 165:e614a9f1c9e2 751 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 752 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 753 */
AnnaBridge 165:e614a9f1c9e2 754 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 755 {
AnnaBridge 165:e614a9f1c9e2 756 return (READ_BIT(RTCx->CRL, RTC_CRL_RSF) == (RTC_CRL_RSF));
AnnaBridge 165:e614a9f1c9e2 757 }
AnnaBridge 165:e614a9f1c9e2 758
AnnaBridge 165:e614a9f1c9e2 759 /**
AnnaBridge 165:e614a9f1c9e2 760 * @brief Clear Registers synchronization flag
AnnaBridge 165:e614a9f1c9e2 761 * @rmtoll CRL RSF LL_RTC_ClearFlag_RS
AnnaBridge 165:e614a9f1c9e2 762 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 763 * @retval None
AnnaBridge 165:e614a9f1c9e2 764 */
AnnaBridge 165:e614a9f1c9e2 765 __STATIC_INLINE void LL_RTC_ClearFlag_RS(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 766 {
AnnaBridge 165:e614a9f1c9e2 767 CLEAR_BIT(RTCx->CRL, RTC_CRL_RSF);
AnnaBridge 165:e614a9f1c9e2 768 }
AnnaBridge 165:e614a9f1c9e2 769
AnnaBridge 165:e614a9f1c9e2 770 /**
AnnaBridge 165:e614a9f1c9e2 771 * @brief Get Registers OverFlow flag
AnnaBridge 165:e614a9f1c9e2 772 * @rmtoll CRL OWF LL_RTC_IsActiveFlag_OW
AnnaBridge 165:e614a9f1c9e2 773 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 774 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 775 */
AnnaBridge 165:e614a9f1c9e2 776 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_OW(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 777 {
AnnaBridge 165:e614a9f1c9e2 778 return (READ_BIT(RTCx->CRL, RTC_CRL_OWF) == (RTC_CRL_OWF));
AnnaBridge 165:e614a9f1c9e2 779 }
AnnaBridge 165:e614a9f1c9e2 780
AnnaBridge 165:e614a9f1c9e2 781 /**
AnnaBridge 165:e614a9f1c9e2 782 * @brief Clear Registers OverFlow flag
AnnaBridge 165:e614a9f1c9e2 783 * @rmtoll CRL OWF LL_RTC_ClearFlag_OW
AnnaBridge 165:e614a9f1c9e2 784 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 785 * @retval None
AnnaBridge 165:e614a9f1c9e2 786 */
AnnaBridge 165:e614a9f1c9e2 787 __STATIC_INLINE void LL_RTC_ClearFlag_OW(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 788 {
AnnaBridge 165:e614a9f1c9e2 789 CLEAR_BIT(RTCx->CRL, RTC_CRL_OWF);
AnnaBridge 165:e614a9f1c9e2 790 }
AnnaBridge 165:e614a9f1c9e2 791
AnnaBridge 165:e614a9f1c9e2 792 /**
AnnaBridge 165:e614a9f1c9e2 793 * @brief Get Registers synchronization flag
AnnaBridge 165:e614a9f1c9e2 794 * @rmtoll CRL SECF LL_RTC_IsActiveFlag_SEC
AnnaBridge 165:e614a9f1c9e2 795 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 796 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 797 */
AnnaBridge 165:e614a9f1c9e2 798 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SEC(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 799 {
AnnaBridge 165:e614a9f1c9e2 800 return (READ_BIT(RTCx->CRL, RTC_CRL_SECF) == (RTC_CRL_SECF));
AnnaBridge 165:e614a9f1c9e2 801 }
AnnaBridge 165:e614a9f1c9e2 802
AnnaBridge 165:e614a9f1c9e2 803 /**
AnnaBridge 165:e614a9f1c9e2 804 * @brief Clear Registers synchronization flag
AnnaBridge 165:e614a9f1c9e2 805 * @rmtoll CRL SECF LL_RTC_ClearFlag_SEC
AnnaBridge 165:e614a9f1c9e2 806 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 807 * @retval None
AnnaBridge 165:e614a9f1c9e2 808 */
AnnaBridge 165:e614a9f1c9e2 809 __STATIC_INLINE void LL_RTC_ClearFlag_SEC(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 810 {
AnnaBridge 165:e614a9f1c9e2 811 CLEAR_BIT(RTCx->CRL, RTC_CRL_SECF);
AnnaBridge 165:e614a9f1c9e2 812 }
AnnaBridge 165:e614a9f1c9e2 813
AnnaBridge 165:e614a9f1c9e2 814 /**
AnnaBridge 165:e614a9f1c9e2 815 * @brief Get RTC Operation OFF status flag
AnnaBridge 165:e614a9f1c9e2 816 * @rmtoll CRL RTOFF LL_RTC_IsActiveFlag_RTOF
AnnaBridge 165:e614a9f1c9e2 817 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 818 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 819 */
AnnaBridge 165:e614a9f1c9e2 820 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RTOF(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 821 {
AnnaBridge 165:e614a9f1c9e2 822 return (READ_BIT(RTCx->CRL, RTC_CRL_RTOFF) == (RTC_CRL_RTOFF));
AnnaBridge 165:e614a9f1c9e2 823 }
AnnaBridge 165:e614a9f1c9e2 824
AnnaBridge 165:e614a9f1c9e2 825 /**
AnnaBridge 165:e614a9f1c9e2 826 * @}
AnnaBridge 165:e614a9f1c9e2 827 */
AnnaBridge 165:e614a9f1c9e2 828
AnnaBridge 165:e614a9f1c9e2 829 /** @defgroup RTC_LL_EF_IT_Management IT_Management
AnnaBridge 165:e614a9f1c9e2 830 * @{
AnnaBridge 165:e614a9f1c9e2 831 */
AnnaBridge 165:e614a9f1c9e2 832
AnnaBridge 165:e614a9f1c9e2 833 /**
AnnaBridge 165:e614a9f1c9e2 834 * @brief Enable Alarm interrupt
AnnaBridge 165:e614a9f1c9e2 835 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 836 * @rmtoll CRH ALRIE LL_RTC_EnableIT_ALR
AnnaBridge 165:e614a9f1c9e2 837 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 838 * @retval None
AnnaBridge 165:e614a9f1c9e2 839 */
AnnaBridge 165:e614a9f1c9e2 840 __STATIC_INLINE void LL_RTC_EnableIT_ALR(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 841 {
AnnaBridge 165:e614a9f1c9e2 842 SET_BIT(RTCx->CRH, RTC_CRH_ALRIE);
AnnaBridge 165:e614a9f1c9e2 843 }
AnnaBridge 165:e614a9f1c9e2 844
AnnaBridge 165:e614a9f1c9e2 845 /**
AnnaBridge 165:e614a9f1c9e2 846 * @brief Disable Alarm interrupt
AnnaBridge 165:e614a9f1c9e2 847 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 848 * @rmtoll CRH ALRIE LL_RTC_DisableIT_ALR
AnnaBridge 165:e614a9f1c9e2 849 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 850 * @retval None
AnnaBridge 165:e614a9f1c9e2 851 */
AnnaBridge 165:e614a9f1c9e2 852 __STATIC_INLINE void LL_RTC_DisableIT_ALR(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 853 {
AnnaBridge 165:e614a9f1c9e2 854 CLEAR_BIT(RTCx->CRH, RTC_CRH_ALRIE);
AnnaBridge 165:e614a9f1c9e2 855 }
AnnaBridge 165:e614a9f1c9e2 856
AnnaBridge 165:e614a9f1c9e2 857 /**
AnnaBridge 165:e614a9f1c9e2 858 * @brief Check if Alarm interrupt is enabled or not
AnnaBridge 165:e614a9f1c9e2 859 * @rmtoll CRH ALRIE LL_RTC_IsEnabledIT_ALR
AnnaBridge 165:e614a9f1c9e2 860 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 861 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 862 */
AnnaBridge 165:e614a9f1c9e2 863 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALR(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 864 {
AnnaBridge 165:e614a9f1c9e2 865 return (READ_BIT(RTCx->CRH, RTC_CRH_ALRIE) == (RTC_CRH_ALRIE));
AnnaBridge 165:e614a9f1c9e2 866 }
AnnaBridge 165:e614a9f1c9e2 867
AnnaBridge 165:e614a9f1c9e2 868 /**
AnnaBridge 165:e614a9f1c9e2 869 * @brief Enable Second Interrupt interrupt
AnnaBridge 165:e614a9f1c9e2 870 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 871 * @rmtoll CRH SECIE LL_RTC_EnableIT_SEC
AnnaBridge 165:e614a9f1c9e2 872 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 873 * @retval None
AnnaBridge 165:e614a9f1c9e2 874 */
AnnaBridge 165:e614a9f1c9e2 875 __STATIC_INLINE void LL_RTC_EnableIT_SEC(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 876 {
AnnaBridge 165:e614a9f1c9e2 877 SET_BIT(RTCx->CRH, RTC_CRH_SECIE);
AnnaBridge 165:e614a9f1c9e2 878 }
AnnaBridge 165:e614a9f1c9e2 879
AnnaBridge 165:e614a9f1c9e2 880 /**
AnnaBridge 165:e614a9f1c9e2 881 * @brief Disable Second interrupt
AnnaBridge 165:e614a9f1c9e2 882 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 883 * @rmtoll CRH SECIE LL_RTC_DisableIT_SEC
AnnaBridge 165:e614a9f1c9e2 884 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 885 * @retval None
AnnaBridge 165:e614a9f1c9e2 886 */
AnnaBridge 165:e614a9f1c9e2 887 __STATIC_INLINE void LL_RTC_DisableIT_SEC(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 888 {
AnnaBridge 165:e614a9f1c9e2 889 CLEAR_BIT(RTCx->CRH, RTC_CRH_SECIE);
AnnaBridge 165:e614a9f1c9e2 890 }
AnnaBridge 165:e614a9f1c9e2 891
AnnaBridge 165:e614a9f1c9e2 892 /**
AnnaBridge 165:e614a9f1c9e2 893 * @brief Check if Second interrupt is enabled or not
AnnaBridge 165:e614a9f1c9e2 894 * @rmtoll CRH SECIE LL_RTC_IsEnabledIT_SEC
AnnaBridge 165:e614a9f1c9e2 895 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 896 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 897 */
AnnaBridge 165:e614a9f1c9e2 898 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_SEC(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 899 {
AnnaBridge 165:e614a9f1c9e2 900 return (READ_BIT(RTCx->CRH, RTC_CRH_SECIE) == (RTC_CRH_SECIE));
AnnaBridge 165:e614a9f1c9e2 901 }
AnnaBridge 165:e614a9f1c9e2 902
AnnaBridge 165:e614a9f1c9e2 903 /**
AnnaBridge 165:e614a9f1c9e2 904 * @brief Enable OverFlow interrupt
AnnaBridge 165:e614a9f1c9e2 905 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 906 * @rmtoll CRH OWIE LL_RTC_EnableIT_OW
AnnaBridge 165:e614a9f1c9e2 907 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 908 * @retval None
AnnaBridge 165:e614a9f1c9e2 909 */
AnnaBridge 165:e614a9f1c9e2 910 __STATIC_INLINE void LL_RTC_EnableIT_OW(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 911 {
AnnaBridge 165:e614a9f1c9e2 912 SET_BIT(RTCx->CRH, RTC_CRH_OWIE);
AnnaBridge 165:e614a9f1c9e2 913 }
AnnaBridge 165:e614a9f1c9e2 914
AnnaBridge 165:e614a9f1c9e2 915 /**
AnnaBridge 165:e614a9f1c9e2 916 * @brief Disable OverFlow interrupt
AnnaBridge 165:e614a9f1c9e2 917 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 165:e614a9f1c9e2 918 * @rmtoll CRH OWIE LL_RTC_DisableIT_OW
AnnaBridge 165:e614a9f1c9e2 919 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 920 * @retval None
AnnaBridge 165:e614a9f1c9e2 921 */
AnnaBridge 165:e614a9f1c9e2 922 __STATIC_INLINE void LL_RTC_DisableIT_OW(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 923 {
AnnaBridge 165:e614a9f1c9e2 924 CLEAR_BIT(RTCx->CRH, RTC_CRH_OWIE);
AnnaBridge 165:e614a9f1c9e2 925 }
AnnaBridge 165:e614a9f1c9e2 926
AnnaBridge 165:e614a9f1c9e2 927 /**
AnnaBridge 165:e614a9f1c9e2 928 * @brief Check if OverFlow interrupt is enabled or not
AnnaBridge 165:e614a9f1c9e2 929 * @rmtoll CRH OWIE LL_RTC_IsEnabledIT_OW
AnnaBridge 165:e614a9f1c9e2 930 * @param RTCx RTC Instance
AnnaBridge 165:e614a9f1c9e2 931 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 932 */
AnnaBridge 165:e614a9f1c9e2 933 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_OW(RTC_TypeDef *RTCx)
AnnaBridge 165:e614a9f1c9e2 934 {
AnnaBridge 165:e614a9f1c9e2 935 return (READ_BIT(RTCx->CRH, RTC_CRH_OWIE) == (RTC_CRH_OWIE));
AnnaBridge 165:e614a9f1c9e2 936 }
AnnaBridge 165:e614a9f1c9e2 937
AnnaBridge 165:e614a9f1c9e2 938 /**
AnnaBridge 165:e614a9f1c9e2 939 * @brief Enable Tamper interrupt
AnnaBridge 165:e614a9f1c9e2 940 * @rmtoll CSR TPIE LL_RTC_EnableIT_TAMP
AnnaBridge 165:e614a9f1c9e2 941 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 942 * @retval None
AnnaBridge 165:e614a9f1c9e2 943 */
AnnaBridge 165:e614a9f1c9e2 944 __STATIC_INLINE void LL_RTC_EnableIT_TAMP(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 945 {
AnnaBridge 165:e614a9f1c9e2 946 SET_BIT(BKPx->CSR,BKP_CSR_TPIE);
AnnaBridge 165:e614a9f1c9e2 947 }
AnnaBridge 165:e614a9f1c9e2 948
AnnaBridge 165:e614a9f1c9e2 949 /**
AnnaBridge 165:e614a9f1c9e2 950 * @brief Disable Tamper interrupt
AnnaBridge 165:e614a9f1c9e2 951 * @rmtoll CSR TPIE LL_RTC_EnableIT_TAMP
AnnaBridge 165:e614a9f1c9e2 952 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 953 * @retval None
AnnaBridge 165:e614a9f1c9e2 954 */
AnnaBridge 165:e614a9f1c9e2 955 __STATIC_INLINE void LL_RTC_DisableIT_TAMP(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 956 {
AnnaBridge 165:e614a9f1c9e2 957 CLEAR_BIT(BKPx->CSR,BKP_CSR_TPIE);
AnnaBridge 165:e614a9f1c9e2 958 }
AnnaBridge 165:e614a9f1c9e2 959
AnnaBridge 165:e614a9f1c9e2 960 /**
AnnaBridge 165:e614a9f1c9e2 961 * @brief Check if all the TAMPER interrupts are enabled or not
AnnaBridge 165:e614a9f1c9e2 962 * @rmtoll CSR TPIE LL_RTC_IsEnabledIT_TAMP
AnnaBridge 165:e614a9f1c9e2 963 * @param BKPx BKP Instance
AnnaBridge 165:e614a9f1c9e2 964 * @retval State of bit (1 or 0).
AnnaBridge 165:e614a9f1c9e2 965 */
AnnaBridge 165:e614a9f1c9e2 966 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP(BKP_TypeDef *BKPx)
AnnaBridge 165:e614a9f1c9e2 967 {
AnnaBridge 165:e614a9f1c9e2 968 return (READ_BIT(BKPx->CSR,BKP_CSR_TPIE) == BKP_CSR_TPIE);
AnnaBridge 165:e614a9f1c9e2 969 }
AnnaBridge 165:e614a9f1c9e2 970 /**
AnnaBridge 165:e614a9f1c9e2 971 * @}
AnnaBridge 165:e614a9f1c9e2 972 */
AnnaBridge 165:e614a9f1c9e2 973
AnnaBridge 165:e614a9f1c9e2 974 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 165:e614a9f1c9e2 975 /** @defgroup RTC_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 165:e614a9f1c9e2 976 * @{
AnnaBridge 165:e614a9f1c9e2 977 */
AnnaBridge 165:e614a9f1c9e2 978
AnnaBridge 165:e614a9f1c9e2 979 ErrorStatus LL_RTC_DeInit(RTC_TypeDef *RTCx);
AnnaBridge 165:e614a9f1c9e2 980 ErrorStatus LL_RTC_Init(RTC_TypeDef *RTCx, LL_RTC_InitTypeDef *RTC_InitStruct);
AnnaBridge 165:e614a9f1c9e2 981 void LL_RTC_StructInit(LL_RTC_InitTypeDef *RTC_InitStruct);
AnnaBridge 165:e614a9f1c9e2 982 ErrorStatus LL_RTC_TIME_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_TimeTypeDef *RTC_TimeStruct);
AnnaBridge 165:e614a9f1c9e2 983 void LL_RTC_TIME_StructInit(LL_RTC_TimeTypeDef *RTC_TimeStruct);
AnnaBridge 165:e614a9f1c9e2 984 ErrorStatus LL_RTC_ALARM_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
AnnaBridge 165:e614a9f1c9e2 985 void LL_RTC_ALARM_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
AnnaBridge 165:e614a9f1c9e2 986 ErrorStatus LL_RTC_EnterInitMode(RTC_TypeDef *RTCx);
AnnaBridge 165:e614a9f1c9e2 987 ErrorStatus LL_RTC_ExitInitMode(RTC_TypeDef *RTCx);
AnnaBridge 165:e614a9f1c9e2 988 ErrorStatus LL_RTC_WaitForSynchro(RTC_TypeDef *RTCx);
AnnaBridge 165:e614a9f1c9e2 989 ErrorStatus LL_RTC_TIME_SetCounter(RTC_TypeDef *RTCx, uint32_t TimeCounter);
AnnaBridge 165:e614a9f1c9e2 990 ErrorStatus LL_RTC_ALARM_SetCounter(RTC_TypeDef *RTCx, uint32_t AlarmCounter);
AnnaBridge 165:e614a9f1c9e2 991
AnnaBridge 165:e614a9f1c9e2 992 /**
AnnaBridge 165:e614a9f1c9e2 993 * @}
AnnaBridge 165:e614a9f1c9e2 994 */
AnnaBridge 165:e614a9f1c9e2 995 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 165:e614a9f1c9e2 996
AnnaBridge 165:e614a9f1c9e2 997 /**
AnnaBridge 165:e614a9f1c9e2 998 * @}
AnnaBridge 165:e614a9f1c9e2 999 */
AnnaBridge 165:e614a9f1c9e2 1000
AnnaBridge 165:e614a9f1c9e2 1001 /**
AnnaBridge 165:e614a9f1c9e2 1002 * @}
AnnaBridge 165:e614a9f1c9e2 1003 */
AnnaBridge 165:e614a9f1c9e2 1004
AnnaBridge 165:e614a9f1c9e2 1005 /**
AnnaBridge 165:e614a9f1c9e2 1006 * @}
AnnaBridge 165:e614a9f1c9e2 1007 */
AnnaBridge 165:e614a9f1c9e2 1008
AnnaBridge 165:e614a9f1c9e2 1009 #endif /* defined(RTC) */
AnnaBridge 165:e614a9f1c9e2 1010
AnnaBridge 165:e614a9f1c9e2 1011 /**
AnnaBridge 165:e614a9f1c9e2 1012 * @}
AnnaBridge 165:e614a9f1c9e2 1013 */
AnnaBridge 165:e614a9f1c9e2 1014
AnnaBridge 165:e614a9f1c9e2 1015 #ifdef __cplusplus
AnnaBridge 165:e614a9f1c9e2 1016 }
AnnaBridge 165:e614a9f1c9e2 1017 #endif
AnnaBridge 165:e614a9f1c9e2 1018
AnnaBridge 165:e614a9f1c9e2 1019 #endif /* __STM32F1xx_LL_RTC_H */
AnnaBridge 165:e614a9f1c9e2 1020
AnnaBridge 165:e614a9f1c9e2 1021 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/