mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Thu Sep 06 13:40:20 2018 +0100
Revision:
187:0387e8f68319
Parent:
165:e614a9f1c9e2
mbed-dev library. Release version 163

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