fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
nameless129
Date:
Mon May 16 16:50:30 2016 +0000
Revision:
129:2e517c56bcfb
Parent:
113:b3775bf36a83
PWM Fix:Duty 0%??H???????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 /**
bogdanm 0:9b334a45a8ff 2 ******************************************************************************
bogdanm 0:9b334a45a8ff 3 * @file stm32l0xx_hal_rtc_ex.h
bogdanm 0:9b334a45a8ff 4 * @author MCD Application Team
mbed_official 113:b3775bf36a83 5 * @version V1.5.0
mbed_official 113:b3775bf36a83 6 * @date 8-January-2016
bogdanm 0:9b334a45a8ff 7 * @brief Header file of RTC HAL Extended module.
bogdanm 0:9b334a45a8ff 8 ******************************************************************************
bogdanm 0:9b334a45a8ff 9 * @attention
bogdanm 0:9b334a45a8ff 10 *
mbed_official 113:b3775bf36a83 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
bogdanm 0:9b334a45a8ff 12 *
bogdanm 0:9b334a45a8ff 13 * Redistribution and use in source and binary forms, with or without modification,
bogdanm 0:9b334a45a8ff 14 * are permitted provided that the following conditions are met:
bogdanm 0:9b334a45a8ff 15 * 1. Redistributions of source code must retain the above copyright notice,
bogdanm 0:9b334a45a8ff 16 * this list of conditions and the following disclaimer.
bogdanm 0:9b334a45a8ff 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
bogdanm 0:9b334a45a8ff 18 * this list of conditions and the following disclaimer in the documentation
bogdanm 0:9b334a45a8ff 19 * and/or other materials provided with the distribution.
bogdanm 0:9b334a45a8ff 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bogdanm 0:9b334a45a8ff 21 * may be used to endorse or promote products derived from this software
bogdanm 0:9b334a45a8ff 22 * without specific prior written permission.
bogdanm 0:9b334a45a8ff 23 *
bogdanm 0:9b334a45a8ff 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bogdanm 0:9b334a45a8ff 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bogdanm 0:9b334a45a8ff 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bogdanm 0:9b334a45a8ff 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bogdanm 0:9b334a45a8ff 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bogdanm 0:9b334a45a8ff 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bogdanm 0:9b334a45a8ff 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bogdanm 0:9b334a45a8ff 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bogdanm 0:9b334a45a8ff 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bogdanm 0:9b334a45a8ff 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bogdanm 0:9b334a45a8ff 34 *
bogdanm 0:9b334a45a8ff 35 ******************************************************************************
bogdanm 0:9b334a45a8ff 36 */
bogdanm 0:9b334a45a8ff 37
bogdanm 0:9b334a45a8ff 38 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 0:9b334a45a8ff 39 #ifndef __STM32L0xx_HAL_RTC_EX_H
bogdanm 0:9b334a45a8ff 40 #define __STM32L0xx_HAL_RTC_EX_H
bogdanm 0:9b334a45a8ff 41
bogdanm 0:9b334a45a8ff 42 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 43 extern "C" {
bogdanm 0:9b334a45a8ff 44 #endif
bogdanm 0:9b334a45a8ff 45
bogdanm 0:9b334a45a8ff 46 /* Includes ------------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 47 #include "stm32l0xx_hal_def.h"
bogdanm 0:9b334a45a8ff 48
bogdanm 0:9b334a45a8ff 49 /** @addtogroup STM32L0xx_HAL_Driver
bogdanm 0:9b334a45a8ff 50 * @{
bogdanm 0:9b334a45a8ff 51 */
bogdanm 0:9b334a45a8ff 52
bogdanm 0:9b334a45a8ff 53 /** @defgroup RTCEx RTCEx
bogdanm 0:9b334a45a8ff 54 * @{
bogdanm 0:9b334a45a8ff 55 */
bogdanm 0:9b334a45a8ff 56
bogdanm 0:9b334a45a8ff 57 /* Exported types ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 58
mbed_official 113:b3775bf36a83 59 /** @defgroup RTCEx_Exported_Types RTCEx Exported Types
bogdanm 0:9b334a45a8ff 60 * @{
bogdanm 0:9b334a45a8ff 61 */
bogdanm 0:9b334a45a8ff 62
bogdanm 0:9b334a45a8ff 63 /**
bogdanm 0:9b334a45a8ff 64 * @brief RTC Tamper structure definition
bogdanm 0:9b334a45a8ff 65 */
bogdanm 0:9b334a45a8ff 66 typedef struct
bogdanm 0:9b334a45a8ff 67 {
bogdanm 0:9b334a45a8ff 68 uint32_t Tamper; /*!< Specifies the Tamper Pin.
bogdanm 0:9b334a45a8ff 69 This parameter can be a value of @ref RTCEx_Tamper_Pins_Definitions */
bogdanm 0:9b334a45a8ff 70
bogdanm 0:9b334a45a8ff 71 uint32_t Interrupt; /*!< Specifies the Tamper Interrupt.
bogdanm 0:9b334a45a8ff 72 This parameter can be a value of @ref RTCEx_Tamper_Interrupt_Definitions */
bogdanm 0:9b334a45a8ff 73
bogdanm 0:9b334a45a8ff 74 uint32_t Trigger; /*!< Specifies the Tamper Trigger.
bogdanm 0:9b334a45a8ff 75 This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */
bogdanm 0:9b334a45a8ff 76
bogdanm 0:9b334a45a8ff 77 uint32_t NoErase; /*!< Specifies the Tamper no erase mode.
bogdanm 0:9b334a45a8ff 78 This parameter can be a value of @ref RTCEx_Tamper_EraseBackUp_Definitions */
bogdanm 0:9b334a45a8ff 79
bogdanm 0:9b334a45a8ff 80 uint32_t MaskFlag; /*!< Specifies the Tamper Flag masking.
bogdanm 0:9b334a45a8ff 81 This parameter can be a value of @ref RTCEx_Tamper_MaskFlag_Definitions */
bogdanm 0:9b334a45a8ff 82
bogdanm 0:9b334a45a8ff 83 uint32_t Filter; /*!< Specifies the RTC Filter Tamper.
bogdanm 0:9b334a45a8ff 84 This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */
bogdanm 0:9b334a45a8ff 85
bogdanm 0:9b334a45a8ff 86 uint32_t SamplingFrequency; /*!< Specifies the sampling frequency.
bogdanm 0:9b334a45a8ff 87 This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */
bogdanm 0:9b334a45a8ff 88
bogdanm 0:9b334a45a8ff 89 uint32_t PrechargeDuration; /*!< Specifies the Precharge Duration .
bogdanm 0:9b334a45a8ff 90 This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */
bogdanm 0:9b334a45a8ff 91
bogdanm 0:9b334a45a8ff 92 uint32_t TamperPullUp; /*!< Specifies the Tamper PullUp .
bogdanm 0:9b334a45a8ff 93 This parameter can be a value of @ref RTCEx_Tamper_Pull_UP_Definitions */
bogdanm 0:9b334a45a8ff 94
bogdanm 0:9b334a45a8ff 95 uint32_t TimeStampOnTamperDetection; /*!< Specifies the TimeStampOnTamperDetection.
bogdanm 0:9b334a45a8ff 96 This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
bogdanm 0:9b334a45a8ff 97 }RTC_TamperTypeDef;
bogdanm 0:9b334a45a8ff 98 /**
bogdanm 0:9b334a45a8ff 99 * @}
bogdanm 0:9b334a45a8ff 100 */
bogdanm 0:9b334a45a8ff 101
bogdanm 0:9b334a45a8ff 102 /* Exported constants --------------------------------------------------------*/
mbed_official 113:b3775bf36a83 103 /** @defgroup RTCEx_Exported_Constants RTCEx Exported Constants
bogdanm 0:9b334a45a8ff 104 * @{
bogdanm 0:9b334a45a8ff 105 */
bogdanm 0:9b334a45a8ff 106
mbed_official 113:b3775bf36a83 107 /** @defgroup RTCEx_Output_selection_Definitions RTCEx Output Selection Definition
bogdanm 0:9b334a45a8ff 108 * @{
bogdanm 0:9b334a45a8ff 109 */
mbed_official 113:b3775bf36a83 110 #define RTC_OUTPUT_DISABLE ((uint32_t)0x00000000)
mbed_official 113:b3775bf36a83 111 #define RTC_OUTPUT_ALARMA ((uint32_t)RTC_CR_OSEL_0)
mbed_official 113:b3775bf36a83 112 #define RTC_OUTPUT_ALARMB ((uint32_t)RTC_CR_OSEL_1)
mbed_official 113:b3775bf36a83 113 #define RTC_OUTPUT_WAKEUP ((uint32_t)RTC_CR_OSEL)
mbed_official 113:b3775bf36a83 114
bogdanm 0:9b334a45a8ff 115 /**
bogdanm 0:9b334a45a8ff 116 * @}
bogdanm 0:9b334a45a8ff 117 */
mbed_official 113:b3775bf36a83 118
mbed_official 113:b3775bf36a83 119 /** @defgroup RTCEx_Backup_Registers_Definitions RTCEx Backup Registers Definition
bogdanm 0:9b334a45a8ff 120 * @{
bogdanm 0:9b334a45a8ff 121 */
bogdanm 0:9b334a45a8ff 122 #define RTC_BKP_DR0 ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 123 #define RTC_BKP_DR1 ((uint32_t)0x00000001)
bogdanm 0:9b334a45a8ff 124 #define RTC_BKP_DR2 ((uint32_t)0x00000002)
bogdanm 0:9b334a45a8ff 125 #define RTC_BKP_DR3 ((uint32_t)0x00000003)
bogdanm 0:9b334a45a8ff 126 #define RTC_BKP_DR4 ((uint32_t)0x00000004)
bogdanm 0:9b334a45a8ff 127 /**
bogdanm 0:9b334a45a8ff 128 * @}
bogdanm 0:9b334a45a8ff 129 */
bogdanm 0:9b334a45a8ff 130
bogdanm 0:9b334a45a8ff 131
mbed_official 113:b3775bf36a83 132 /** @defgroup RTCEx_Time_Stamp_Edges_definitions RTCEx Time Stamp Edges definition
bogdanm 0:9b334a45a8ff 133 * @{
bogdanm 0:9b334a45a8ff 134 */
bogdanm 0:9b334a45a8ff 135 #define RTC_TIMESTAMPEDGE_RISING ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 136 #define RTC_TIMESTAMPEDGE_FALLING RTC_CR_TSEDGE
bogdanm 0:9b334a45a8ff 137
mbed_official 113:b3775bf36a83 138 /**
mbed_official 113:b3775bf36a83 139 * @}
mbed_official 113:b3775bf36a83 140 */
mbed_official 113:b3775bf36a83 141
mbed_official 113:b3775bf36a83 142 /** @defgroup RTCEx_TimeStamp_Pin_Selections RTCEx TimeStamp Pin Selection
mbed_official 113:b3775bf36a83 143 * @{
mbed_official 113:b3775bf36a83 144 */
mbed_official 113:b3775bf36a83 145 #define RTC_TIMESTAMPPIN_DEFAULT ((uint32_t)0x00000000)
mbed_official 113:b3775bf36a83 146
bogdanm 0:9b334a45a8ff 147 /**
bogdanm 0:9b334a45a8ff 148 * @}
bogdanm 0:9b334a45a8ff 149 */
bogdanm 0:9b334a45a8ff 150
mbed_official 113:b3775bf36a83 151
mbed_official 113:b3775bf36a83 152 /** @defgroup RTCEx_Tamper_Pins_Definitions RTCEx Tamper Pins Definition
bogdanm 0:9b334a45a8ff 153 * @{
bogdanm 0:9b334a45a8ff 154 */
mbed_official 113:b3775bf36a83 155 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 156 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx) ||\
mbed_official 113:b3775bf36a83 157 defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 158 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 159 defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 113:b3775bf36a83 160
mbed_official 113:b3775bf36a83 161 #define RTC_TAMPER_1 RTC_TAMPCR_TAMP1E
bogdanm 0:9b334a45a8ff 162
mbed_official 113:b3775bf36a83 163 #endif /* (STM32L063xx) || (STM32L062xx) || (STM32L061xx) ||
mbed_official 113:b3775bf36a83 164 * (STM32L053xx) || (STM32L052xx) || (STM32L051xx) ||
mbed_official 113:b3775bf36a83 165 * (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 166 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) ||
mbed_official 113:b3775bf36a83 167 * (STM32L031xx) || (STM32L041xx)
mbed_official 113:b3775bf36a83 168 */
mbed_official 113:b3775bf36a83 169
bogdanm 0:9b334a45a8ff 170 #define RTC_TAMPER_2 RTC_TAMPCR_TAMP2E
bogdanm 0:9b334a45a8ff 171
bogdanm 0:9b334a45a8ff 172 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 173 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 174 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 175
bogdanm 0:9b334a45a8ff 176 #define RTC_TAMPER_3 RTC_TAMPCR_TAMP3E
bogdanm 0:9b334a45a8ff 177
bogdanm 0:9b334a45a8ff 178 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 179 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 180 * (STM32L011xx) || (STM32L021xx)
bogdanm 0:9b334a45a8ff 181 */
bogdanm 0:9b334a45a8ff 182
bogdanm 0:9b334a45a8ff 183 /**
bogdanm 0:9b334a45a8ff 184 * @}
bogdanm 0:9b334a45a8ff 185 */
bogdanm 0:9b334a45a8ff 186
bogdanm 0:9b334a45a8ff 187
mbed_official 113:b3775bf36a83 188 /** @defgroup RTCEx_Tamper_Interrupt_Definitions RTCEx Tamper Interrupt Definitions
bogdanm 0:9b334a45a8ff 189 * @{
bogdanm 0:9b334a45a8ff 190 */
mbed_official 113:b3775bf36a83 191 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 192 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx) ||\
mbed_official 113:b3775bf36a83 193 defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 194 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 195 defined (STM32L031xx) || defined (STM32L041xx)
bogdanm 0:9b334a45a8ff 196
bogdanm 0:9b334a45a8ff 197 #define RTC_TAMPER1_INTERRUPT RTC_TAMPCR_TAMP1IE
bogdanm 0:9b334a45a8ff 198
mbed_official 113:b3775bf36a83 199 #endif /* (STM32L063xx) || (STM32L062xx) || (STM32L061xx) ||
mbed_official 113:b3775bf36a83 200 * (STM32L053xx) || (STM32L052xx) || (STM32L051xx) ||
mbed_official 113:b3775bf36a83 201 * (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 202 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) ||
mbed_official 113:b3775bf36a83 203 * (STM32L031xx) || (STM32L041xx)
mbed_official 113:b3775bf36a83 204 */
mbed_official 113:b3775bf36a83 205
mbed_official 113:b3775bf36a83 206 #define RTC_TAMPER2_INTERRUPT RTC_TAMPCR_TAMP2IE
bogdanm 0:9b334a45a8ff 207 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 208 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 209 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 210
bogdanm 0:9b334a45a8ff 211 #define RTC_TAMPER3_INTERRUPT RTC_TAMPCR_TAMP3IE
bogdanm 0:9b334a45a8ff 212
bogdanm 0:9b334a45a8ff 213 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 214 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 215 * (STM32L011xx) || (STM32L021xx)
bogdanm 0:9b334a45a8ff 216 */
mbed_official 113:b3775bf36a83 217 #define RTC_ALL_TAMPER_INTERRUPT RTC_TAMPCR_TAMPIE
mbed_official 113:b3775bf36a83 218 /**
mbed_official 113:b3775bf36a83 219 * @}
mbed_official 113:b3775bf36a83 220 */
mbed_official 113:b3775bf36a83 221
mbed_official 113:b3775bf36a83 222 /** @defgroup RTCEx_Tamper_Trigger_Definitions RTCEx Tamper Trigger Definitions
mbed_official 113:b3775bf36a83 223 * @{
mbed_official 113:b3775bf36a83 224 */
mbed_official 113:b3775bf36a83 225 #define RTC_TAMPERTRIGGER_RISINGEDGE ((uint32_t)0x00000000)
mbed_official 113:b3775bf36a83 226 #define RTC_TAMPERTRIGGER_FALLINGEDGE ((uint32_t)0x00000002)
mbed_official 113:b3775bf36a83 227 #define RTC_TAMPERTRIGGER_LOWLEVEL RTC_TAMPERTRIGGER_RISINGEDGE
mbed_official 113:b3775bf36a83 228 #define RTC_TAMPERTRIGGER_HIGHLEVEL RTC_TAMPERTRIGGER_FALLINGEDGE
bogdanm 0:9b334a45a8ff 229
bogdanm 0:9b334a45a8ff 230 /**
bogdanm 0:9b334a45a8ff 231 * @}
bogdanm 0:9b334a45a8ff 232 */
bogdanm 0:9b334a45a8ff 233
mbed_official 113:b3775bf36a83 234 /** @defgroup RTCEx_Tamper_EraseBackUp_Definitions RTCEx Tamper EraseBackUp Definitions
mbed_official 113:b3775bf36a83 235 * @{
mbed_official 113:b3775bf36a83 236 */
mbed_official 113:b3775bf36a83 237 #define RTC_TAMPER_ERASE_BACKUP_ENABLE ((uint32_t)0x00000000)
mbed_official 113:b3775bf36a83 238 #define RTC_TAMPER_ERASE_BACKUP_DISABLE ((uint32_t)0x00020000)
bogdanm 0:9b334a45a8ff 239 /**
bogdanm 0:9b334a45a8ff 240 * @}
bogdanm 0:9b334a45a8ff 241 */
bogdanm 0:9b334a45a8ff 242
mbed_official 113:b3775bf36a83 243 /** @defgroup RTCEx_Tamper_MaskFlag_Definitions RTCEx Tamper MaskFlag Definitions
mbed_official 113:b3775bf36a83 244 * @{
mbed_official 113:b3775bf36a83 245 */
mbed_official 113:b3775bf36a83 246 #define RTC_TAMPERMASK_FLAG_DISABLE ((uint32_t)0x00000000)
mbed_official 113:b3775bf36a83 247 #define RTC_TAMPERMASK_FLAG_ENABLE ((uint32_t)0x00040000)
bogdanm 0:9b334a45a8ff 248
bogdanm 0:9b334a45a8ff 249 /**
bogdanm 0:9b334a45a8ff 250 * @}
bogdanm 0:9b334a45a8ff 251 */
bogdanm 0:9b334a45a8ff 252
mbed_official 113:b3775bf36a83 253 /** @defgroup RTCEx_Tamper_Filter_Definitions RTCEx Tamper Filter Definitions
bogdanm 0:9b334a45a8ff 254 * @{
bogdanm 0:9b334a45a8ff 255 */
bogdanm 0:9b334a45a8ff 256 #define RTC_TAMPERFILTER_DISABLE ((uint32_t)0x00000000) /*!< Tamper filter is disabled */
bogdanm 0:9b334a45a8ff 257
bogdanm 0:9b334a45a8ff 258 #define RTC_TAMPERFILTER_2SAMPLE RTC_TAMPCR_TAMPFLT_0 /*!< Tamper is activated after 2
bogdanm 0:9b334a45a8ff 259 consecutive samples at the active level */
bogdanm 0:9b334a45a8ff 260 #define RTC_TAMPERFILTER_4SAMPLE RTC_TAMPCR_TAMPFLT_1 /*!< Tamper is activated after 4
bogdanm 0:9b334a45a8ff 261 consecutive samples at the active level */
bogdanm 0:9b334a45a8ff 262 #define RTC_TAMPERFILTER_8SAMPLE RTC_TAMPCR_TAMPFLT /*!< Tamper is activated after 8
bogdanm 0:9b334a45a8ff 263 consecutive samples at the active leve. */
bogdanm 0:9b334a45a8ff 264
bogdanm 0:9b334a45a8ff 265 /**
bogdanm 0:9b334a45a8ff 266 * @}
bogdanm 0:9b334a45a8ff 267 */
bogdanm 0:9b334a45a8ff 268
mbed_official 113:b3775bf36a83 269 /** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTCEx Tamper Sampling Frequencies Definitions
bogdanm 0:9b334a45a8ff 270 * @{
bogdanm 0:9b334a45a8ff 271 */
bogdanm 0:9b334a45a8ff 272 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 ((uint32_t)0x00000000) /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 273 with a frequency = RTCCLK / 32768 */
bogdanm 0:9b334a45a8ff 274 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 RTC_TAMPCR_TAMPFREQ_0 /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 275 with a frequency = RTCCLK / 16384 */
bogdanm 0:9b334a45a8ff 276 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 RTC_TAMPCR_TAMPFREQ_1 /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 277 with a frequency = RTCCLK / 8192 */
bogdanm 0:9b334a45a8ff 278 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_1)) /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 279 with a frequency = RTCCLK / 4096 */
bogdanm 0:9b334a45a8ff 280 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 RTC_TAMPCR_TAMPFREQ_2 /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 281 with a frequency = RTCCLK / 2048 */
bogdanm 0:9b334a45a8ff 282 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_2)) /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 283 with a frequency = RTCCLK / 1024 */
bogdanm 0:9b334a45a8ff 284 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_1 | RTC_TAMPCR_TAMPFREQ_2)) /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 285 with a frequency = RTCCLK / 512 */
bogdanm 0:9b334a45a8ff 286 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_1 | \
bogdanm 0:9b334a45a8ff 287 RTC_TAMPCR_TAMPFREQ_2)) /*!< Each of the tamper inputs are sampled
bogdanm 0:9b334a45a8ff 288 with a frequency = RTCCLK / 256 */
bogdanm 0:9b334a45a8ff 289
bogdanm 0:9b334a45a8ff 290 /**
bogdanm 0:9b334a45a8ff 291 * @}
bogdanm 0:9b334a45a8ff 292 */
bogdanm 0:9b334a45a8ff 293
mbed_official 113:b3775bf36a83 294 /** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTCEx Tamper Pin Precharge Duration Definitions
bogdanm 0:9b334a45a8ff 295 * @{
bogdanm 0:9b334a45a8ff 296 */
bogdanm 0:9b334a45a8ff 297 #define RTC_TAMPERPRECHARGEDURATION_1RTCCLK ((uint32_t)0x00000000) /*!< Tamper pins are pre-charged before
bogdanm 0:9b334a45a8ff 298 sampling during 1 RTCCLK cycle */
bogdanm 0:9b334a45a8ff 299 #define RTC_TAMPERPRECHARGEDURATION_2RTCCLK RTC_TAMPCR_TAMPPRCH_0 /*!< Tamper pins are pre-charged before
bogdanm 0:9b334a45a8ff 300 sampling during 2 RTCCLK cycles */
bogdanm 0:9b334a45a8ff 301 #define RTC_TAMPERPRECHARGEDURATION_4RTCCLK RTC_TAMPCR_TAMPPRCH_1 /*!< Tamper pins are pre-charged before
bogdanm 0:9b334a45a8ff 302 sampling during 4 RTCCLK cycles */
bogdanm 0:9b334a45a8ff 303 #define RTC_TAMPERPRECHARGEDURATION_8RTCCLK ((uint32_t)(RTC_TAMPCR_TAMPPRCH_0 | RTC_TAMPCR_TAMPPRCH_1)) /*!< Tamper pins are pre-charged before
bogdanm 0:9b334a45a8ff 304 sampling during 8 RTCCLK cycles */
bogdanm 0:9b334a45a8ff 305
bogdanm 0:9b334a45a8ff 306 /**
bogdanm 0:9b334a45a8ff 307 * @}
bogdanm 0:9b334a45a8ff 308 */
bogdanm 0:9b334a45a8ff 309
mbed_official 113:b3775bf36a83 310 /** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTCEx Tamper TimeStampOnTamperDetection Definitions
bogdanm 0:9b334a45a8ff 311 * @{
bogdanm 0:9b334a45a8ff 312 */
bogdanm 0:9b334a45a8ff 313 #define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE RTC_TAMPCR_TAMPTS /*!< TimeStamp on Tamper Detection event saved */
bogdanm 0:9b334a45a8ff 314 #define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE ((uint32_t)0x00000000) /*!< TimeStamp on Tamper Detection event is not saved */
bogdanm 0:9b334a45a8ff 315
bogdanm 0:9b334a45a8ff 316 /**
bogdanm 0:9b334a45a8ff 317 * @}
bogdanm 0:9b334a45a8ff 318 */
bogdanm 0:9b334a45a8ff 319
mbed_official 113:b3775bf36a83 320 /** @defgroup RTCEx_Tamper_Pull_UP_Definitions RTCEx Tamper Pull UP Definitions
bogdanm 0:9b334a45a8ff 321 * @{
bogdanm 0:9b334a45a8ff 322 */
bogdanm 0:9b334a45a8ff 323 #define RTC_TAMPER_PULLUP_ENABLE ((uint32_t)0x00000000) /*!< Tamper pins are pre-charged before sampling */
bogdanm 0:9b334a45a8ff 324 #define RTC_TAMPER_PULLUP_DISABLE RTC_TAMPCR_TAMPPUDIS /*!< Tamper pins pre-charge is disabled */
bogdanm 0:9b334a45a8ff 325
bogdanm 0:9b334a45a8ff 326 /**
bogdanm 0:9b334a45a8ff 327 * @}
bogdanm 0:9b334a45a8ff 328 */
bogdanm 0:9b334a45a8ff 329
mbed_official 113:b3775bf36a83 330 /** @defgroup RTCEx_Wakeup_Timer_Definitions RTCEx Wakeup Timer Definitions
bogdanm 0:9b334a45a8ff 331 * @{
bogdanm 0:9b334a45a8ff 332 */
bogdanm 0:9b334a45a8ff 333 #define RTC_WAKEUPCLOCK_RTCCLK_DIV16 ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 334 #define RTC_WAKEUPCLOCK_RTCCLK_DIV8 RTC_CR_WUCKSEL_0
bogdanm 0:9b334a45a8ff 335 #define RTC_WAKEUPCLOCK_RTCCLK_DIV4 RTC_CR_WUCKSEL_1
bogdanm 0:9b334a45a8ff 336 #define RTC_WAKEUPCLOCK_RTCCLK_DIV2 ((uint32_t) (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1))
bogdanm 0:9b334a45a8ff 337 #define RTC_WAKEUPCLOCK_CK_SPRE_16BITS RTC_CR_WUCKSEL_2
bogdanm 0:9b334a45a8ff 338 #define RTC_WAKEUPCLOCK_CK_SPRE_17BITS ((uint32_t) (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2))
bogdanm 0:9b334a45a8ff 339 /**
bogdanm 0:9b334a45a8ff 340 * @}
bogdanm 0:9b334a45a8ff 341 */
bogdanm 0:9b334a45a8ff 342
mbed_official 113:b3775bf36a83 343 /** @defgroup RTCEx_Smooth_calib_period_Definitions RTCEx Smooth calib period Definitions
bogdanm 0:9b334a45a8ff 344 * @{
bogdanm 0:9b334a45a8ff 345 */
mbed_official 113:b3775bf36a83 346 #define RTC_SMOOTHCALIB_PERIOD_32SEC ((uint32_t)0x00000000) /*!< If RTCCLK = 32768 Hz, Smooth calibation
mbed_official 113:b3775bf36a83 347 period is 32s, else 2exp20 RTCCLK pulses */
mbed_official 113:b3775bf36a83 348 #define RTC_SMOOTHCALIB_PERIOD_16SEC RTC_CALR_CALW16 /*!< If RTCCLK = 32768 Hz, Smooth calibation
mbed_official 113:b3775bf36a83 349 period is 16s, else 2exp19 RTCCLK pulses */
mbed_official 113:b3775bf36a83 350 #define RTC_SMOOTHCALIB_PERIOD_8SEC RTC_CALR_CALW8 /*!< If RTCCLK = 32768 Hz, Smooth calibation
mbed_official 113:b3775bf36a83 351 period is 8s, else 2exp18 RTCCLK pulses */
bogdanm 0:9b334a45a8ff 352
bogdanm 0:9b334a45a8ff 353 /**
bogdanm 0:9b334a45a8ff 354 * @}
bogdanm 0:9b334a45a8ff 355 */
bogdanm 0:9b334a45a8ff 356
mbed_official 113:b3775bf36a83 357 /** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTCEx Smooth calib Plus pulses Definitions
bogdanm 0:9b334a45a8ff 358 * @{
bogdanm 0:9b334a45a8ff 359 */
mbed_official 113:b3775bf36a83 360 #define RTC_SMOOTHCALIB_PLUSPULSES_SET RTC_CALR_CALP /*!< The number of RTCCLK pulses added
mbed_official 113:b3775bf36a83 361 during a X -second window = Y - CALM[8:0]
mbed_official 113:b3775bf36a83 362 with Y = 512, 256, 128 when X = 32, 16, 8 */
mbed_official 113:b3775bf36a83 363 #define RTC_SMOOTHCALIB_PLUSPULSES_RESET ((uint32_t)0x00000000) /*!< The number of RTCCLK pulses subbstited
mbed_official 113:b3775bf36a83 364 during a 32-second window = CALM[8:0] */
mbed_official 113:b3775bf36a83 365
bogdanm 0:9b334a45a8ff 366 /**
bogdanm 0:9b334a45a8ff 367 * @}
bogdanm 0:9b334a45a8ff 368 */
mbed_official 113:b3775bf36a83 369 /** @defgroup RTCEx_Calib_Output_selection_Definitions RTCEx Calib Output selection Definitions
bogdanm 0:9b334a45a8ff 370 * @{
bogdanm 0:9b334a45a8ff 371 */
bogdanm 0:9b334a45a8ff 372 #define RTC_CALIBOUTPUT_512HZ ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 373 #define RTC_CALIBOUTPUT_1HZ RTC_CR_COSEL
bogdanm 0:9b334a45a8ff 374
mbed_official 113:b3775bf36a83 375 /**
mbed_official 113:b3775bf36a83 376 * @}
mbed_official 113:b3775bf36a83 377 */
mbed_official 113:b3775bf36a83 378
mbed_official 113:b3775bf36a83 379
mbed_official 113:b3775bf36a83 380 /** @defgroup RTCEx_Add_1_Second_Parameter_Definition RTCEx Add 1 Second Parameter Definitions
mbed_official 113:b3775bf36a83 381 * @{
mbed_official 113:b3775bf36a83 382 */
mbed_official 113:b3775bf36a83 383 #define RTC_SHIFTADD1S_RESET ((uint32_t)0x00000000)
mbed_official 113:b3775bf36a83 384 #define RTC_SHIFTADD1S_SET RTC_SHIFTR_ADD1S
bogdanm 0:9b334a45a8ff 385 /**
bogdanm 0:9b334a45a8ff 386 * @}
bogdanm 0:9b334a45a8ff 387 */
bogdanm 0:9b334a45a8ff 388
mbed_official 113:b3775bf36a83 389 /** @defgroup RTCEx_Interrupts_Definitions RTCEx Interrupts Definitions
mbed_official 113:b3775bf36a83 390 * @{
mbed_official 113:b3775bf36a83 391 */
mbed_official 113:b3775bf36a83 392 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 393 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 394 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 395
mbed_official 113:b3775bf36a83 396 #define RTC_IT_TAMP3 ((uint32_t)RTC_TAMPCR_TAMP3IE)
mbed_official 113:b3775bf36a83 397
mbed_official 113:b3775bf36a83 398 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 399 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 400 * (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 401 */
mbed_official 113:b3775bf36a83 402 /**
mbed_official 113:b3775bf36a83 403 * @}
mbed_official 113:b3775bf36a83 404 */
mbed_official 113:b3775bf36a83 405
mbed_official 113:b3775bf36a83 406 /** @defgroup RTCEx_Flags_Definitions RTCEx Flags Definitions
mbed_official 113:b3775bf36a83 407 * @{
mbed_official 113:b3775bf36a83 408 */
mbed_official 113:b3775bf36a83 409 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 410 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 411 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 412
mbed_official 113:b3775bf36a83 413 #define RTC_FLAG_TAMP3F ((uint32_t)RTC_ISR_TAMP3F)
mbed_official 113:b3775bf36a83 414
mbed_official 113:b3775bf36a83 415 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 416 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 417 * (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 418 */
mbed_official 113:b3775bf36a83 419 /**
mbed_official 113:b3775bf36a83 420 * @}
mbed_official 113:b3775bf36a83 421 */
mbed_official 113:b3775bf36a83 422
bogdanm 0:9b334a45a8ff 423 /**
bogdanm 0:9b334a45a8ff 424 * @}
bogdanm 0:9b334a45a8ff 425 */
bogdanm 0:9b334a45a8ff 426
mbed_official 113:b3775bf36a83 427 /* Exported macros -----------------------------------------------------------*/
mbed_official 113:b3775bf36a83 428 /** @defgroup RTCEx_Exported_Macros RTCEx Exported Macros
bogdanm 0:9b334a45a8ff 429 * @{
bogdanm 0:9b334a45a8ff 430 */
bogdanm 0:9b334a45a8ff 431
mbed_official 113:b3775bf36a83 432 /* ---------------------------------WAKEUPTIMER---------------------------------*/
mbed_official 113:b3775bf36a83 433 /** @defgroup RTCEx_WakeUp_Timer RTC WakeUp Timer
mbed_official 113:b3775bf36a83 434 * @{
mbed_official 113:b3775bf36a83 435 */
bogdanm 0:9b334a45a8ff 436 /**
bogdanm 0:9b334a45a8ff 437 * @brief Enable the RTC WakeUp Timer peripheral.
bogdanm 0:9b334a45a8ff 438 * @param __HANDLE__: specifies the RTC handle.
bogdanm 0:9b334a45a8ff 439 * @retval None
bogdanm 0:9b334a45a8ff 440 */
bogdanm 0:9b334a45a8ff 441 #define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
bogdanm 0:9b334a45a8ff 442
bogdanm 0:9b334a45a8ff 443 /**
bogdanm 0:9b334a45a8ff 444 * @brief Disable the RTC WakeUp Timer peripheral.
bogdanm 0:9b334a45a8ff 445 * @param __HANDLE__: specifies the RTC handle.
bogdanm 0:9b334a45a8ff 446 * @retval None
bogdanm 0:9b334a45a8ff 447 */
bogdanm 0:9b334a45a8ff 448 #define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
bogdanm 0:9b334a45a8ff 449
bogdanm 0:9b334a45a8ff 450 /**
bogdanm 0:9b334a45a8ff 451 * @brief Enable the RTC WakeUpTimer interrupt.
bogdanm 0:9b334a45a8ff 452 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 453 * @param __INTERRUPT__: specifies the RTC WakeUpTimer interrupt sources to be enabled.
bogdanm 0:9b334a45a8ff 454 * This parameter can be:
mbed_official 113:b3775bf36a83 455 * @arg RTC_IT_WUT: WakeUpTimer interrupt
bogdanm 0:9b334a45a8ff 456 * @retval None
bogdanm 0:9b334a45a8ff 457 */
bogdanm 0:9b334a45a8ff 458 #define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
bogdanm 0:9b334a45a8ff 459
bogdanm 0:9b334a45a8ff 460 /**
bogdanm 0:9b334a45a8ff 461 * @brief Disable the RTC WakeUpTimer interrupt.
bogdanm 0:9b334a45a8ff 462 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 463 * @param __INTERRUPT__: specifies the RTC WakeUpTimer interrupt sources to be disabled.
bogdanm 0:9b334a45a8ff 464 * This parameter can be:
mbed_official 113:b3775bf36a83 465 * @arg RTC_IT_WUT: WakeUpTimer interrupt
bogdanm 0:9b334a45a8ff 466 * @retval None
bogdanm 0:9b334a45a8ff 467 */
bogdanm 0:9b334a45a8ff 468 #define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
bogdanm 0:9b334a45a8ff 469
bogdanm 0:9b334a45a8ff 470 /**
mbed_official 113:b3775bf36a83 471 * @brief Check whether the specified RTC WakeUpTimer interrupt has occurred or not.
bogdanm 0:9b334a45a8ff 472 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 473 * @param __INTERRUPT__: specifies the RTC WakeUpTimer interrupt to check.
bogdanm 0:9b334a45a8ff 474 * This parameter can be:
mbed_official 113:b3775bf36a83 475 * @arg RTC_IT_WUT: WakeUpTimer interrupt
bogdanm 0:9b334a45a8ff 476 * @retval None
bogdanm 0:9b334a45a8ff 477 */
mbed_official 113:b3775bf36a83 478 #define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4)) != RESET) ? SET : RESET)
bogdanm 0:9b334a45a8ff 479
bogdanm 0:9b334a45a8ff 480 /**
mbed_official 113:b3775bf36a83 481 * @brief Check whether the specified RTC Wake Up timer interrupt has been enabled or not.
bogdanm 0:9b334a45a8ff 482 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 483 * @param __INTERRUPT__: specifies the RTC Wake Up timer interrupt sources to check.
bogdanm 0:9b334a45a8ff 484 * This parameter can be:
mbed_official 113:b3775bf36a83 485 * @arg RTC_IT_WUT: WakeUpTimer interrupt
bogdanm 0:9b334a45a8ff 486 * @retval None
bogdanm 0:9b334a45a8ff 487 */
mbed_official 113:b3775bf36a83 488 #define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
bogdanm 0:9b334a45a8ff 489
bogdanm 0:9b334a45a8ff 490 /**
bogdanm 0:9b334a45a8ff 491 * @brief Get the selected RTC WakeUpTimer's flag status.
bogdanm 0:9b334a45a8ff 492 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 493 * @param __FLAG__: specifies the RTC WakeUpTimer Flag is pending or not.
bogdanm 0:9b334a45a8ff 494 * This parameter can be:
bogdanm 0:9b334a45a8ff 495 * @arg RTC_FLAG_WUTF
bogdanm 0:9b334a45a8ff 496 * @arg RTC_FLAG_WUTWF
bogdanm 0:9b334a45a8ff 497 * @retval None
bogdanm 0:9b334a45a8ff 498 */
mbed_official 113:b3775bf36a83 499 #define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
bogdanm 0:9b334a45a8ff 500
bogdanm 0:9b334a45a8ff 501 /**
bogdanm 0:9b334a45a8ff 502 * @brief Clear the RTC Wake Up timer's pending flags.
bogdanm 0:9b334a45a8ff 503 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 504 * @param __FLAG__: specifies the RTC WakeUpTimer Flag to clear.
bogdanm 0:9b334a45a8ff 505 * This parameter can be:
bogdanm 0:9b334a45a8ff 506 * @arg RTC_FLAG_WUTF
bogdanm 0:9b334a45a8ff 507 * @retval None
bogdanm 0:9b334a45a8ff 508 */
mbed_official 113:b3775bf36a83 509 #define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
bogdanm 0:9b334a45a8ff 510
bogdanm 0:9b334a45a8ff 511 /* WAKE-UP TIMER EXTI */
bogdanm 0:9b334a45a8ff 512 /* ------------------ */
bogdanm 0:9b334a45a8ff 513 /**
bogdanm 0:9b334a45a8ff 514 * @brief Enable interrupt on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 515 * @retval None
bogdanm 0:9b334a45a8ff 516 */
bogdanm 0:9b334a45a8ff 517 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
bogdanm 0:9b334a45a8ff 518
bogdanm 0:9b334a45a8ff 519 /**
bogdanm 0:9b334a45a8ff 520 * @brief Disable interrupt on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 521 * @retval None
bogdanm 0:9b334a45a8ff 522 */
bogdanm 0:9b334a45a8ff 523 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
bogdanm 0:9b334a45a8ff 524
bogdanm 0:9b334a45a8ff 525 /**
bogdanm 0:9b334a45a8ff 526 * @brief Enable event on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 527 * @retval None.
bogdanm 0:9b334a45a8ff 528 */
bogdanm 0:9b334a45a8ff 529 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
bogdanm 0:9b334a45a8ff 530
bogdanm 0:9b334a45a8ff 531 /**
bogdanm 0:9b334a45a8ff 532 * @brief Disable event on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 533 * @retval None.
bogdanm 0:9b334a45a8ff 534 */
bogdanm 0:9b334a45a8ff 535 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
bogdanm 0:9b334a45a8ff 536
bogdanm 0:9b334a45a8ff 537 /**
bogdanm 0:9b334a45a8ff 538 * @brief Enable falling edge trigger on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 539 * @retval None.
bogdanm 0:9b334a45a8ff 540 */
bogdanm 0:9b334a45a8ff 541 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
bogdanm 0:9b334a45a8ff 542
bogdanm 0:9b334a45a8ff 543 /**
bogdanm 0:9b334a45a8ff 544 * @brief Disable falling edge trigger on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 545 * @retval None.
bogdanm 0:9b334a45a8ff 546 */
bogdanm 0:9b334a45a8ff 547 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
bogdanm 0:9b334a45a8ff 548
bogdanm 0:9b334a45a8ff 549 /**
bogdanm 0:9b334a45a8ff 550 * @brief Enable rising edge trigger on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 551 * @retval None.
bogdanm 0:9b334a45a8ff 552 */
bogdanm 0:9b334a45a8ff 553 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
bogdanm 0:9b334a45a8ff 554
bogdanm 0:9b334a45a8ff 555 /**
bogdanm 0:9b334a45a8ff 556 * @brief Disable rising edge trigger on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 557 * @retval None.
bogdanm 0:9b334a45a8ff 558 */
bogdanm 0:9b334a45a8ff 559 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
bogdanm 0:9b334a45a8ff 560
bogdanm 0:9b334a45a8ff 561 /**
bogdanm 0:9b334a45a8ff 562 * @brief Enable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 563 * @retval None.
bogdanm 0:9b334a45a8ff 564 */
mbed_official 113:b3775bf36a83 565 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do { __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE(); } while(0);
bogdanm 0:9b334a45a8ff 566
bogdanm 0:9b334a45a8ff 567 /**
bogdanm 0:9b334a45a8ff 568 * @brief Disable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 569 * This parameter can be:
bogdanm 0:9b334a45a8ff 570 * @retval None.
bogdanm 0:9b334a45a8ff 571 */
mbed_official 113:b3775bf36a83 572 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do { __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();__HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE(); } while(0);
bogdanm 0:9b334a45a8ff 573
bogdanm 0:9b334a45a8ff 574 /**
bogdanm 0:9b334a45a8ff 575 * @brief Check whether the RTC WakeUp Timer associated Exti line interrupt flag is set or not.
bogdanm 0:9b334a45a8ff 576 * @retval Line Status.
bogdanm 0:9b334a45a8ff 577 */
bogdanm 0:9b334a45a8ff 578 #define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
bogdanm 0:9b334a45a8ff 579
bogdanm 0:9b334a45a8ff 580 /**
bogdanm 0:9b334a45a8ff 581 * @brief Clear the RTC WakeUp Timer associated Exti line flag.
bogdanm 0:9b334a45a8ff 582 * @retval None.
bogdanm 0:9b334a45a8ff 583 */
bogdanm 0:9b334a45a8ff 584 #define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
bogdanm 0:9b334a45a8ff 585
bogdanm 0:9b334a45a8ff 586 /**
bogdanm 0:9b334a45a8ff 587 * @brief Generate a Software interrupt on the RTC WakeUp Timer associated Exti line.
bogdanm 0:9b334a45a8ff 588 * @retval None.
bogdanm 0:9b334a45a8ff 589 */
bogdanm 0:9b334a45a8ff 590 #define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
mbed_official 113:b3775bf36a83 591 /**
mbed_official 113:b3775bf36a83 592 * @}
mbed_official 113:b3775bf36a83 593 */
mbed_official 113:b3775bf36a83 594
mbed_official 113:b3775bf36a83 595 /* ---------------------------------TIMESTAMP---------------------------------*/
mbed_official 113:b3775bf36a83 596 /** @defgroup RTCEx_Timestamp RTC Timestamp
mbed_official 113:b3775bf36a83 597 * @{
mbed_official 113:b3775bf36a83 598 */
mbed_official 113:b3775bf36a83 599 /**
mbed_official 113:b3775bf36a83 600 * @brief Enable the RTC TimeStamp peripheral.
mbed_official 113:b3775bf36a83 601 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 602 * @retval None
mbed_official 113:b3775bf36a83 603 */
mbed_official 113:b3775bf36a83 604 #define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
mbed_official 113:b3775bf36a83 605
mbed_official 113:b3775bf36a83 606 /**
mbed_official 113:b3775bf36a83 607 * @brief Disable the RTC TimeStamp peripheral.
mbed_official 113:b3775bf36a83 608 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 609 * @retval None
mbed_official 113:b3775bf36a83 610 */
mbed_official 113:b3775bf36a83 611 #define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
mbed_official 113:b3775bf36a83 612
mbed_official 113:b3775bf36a83 613 /**
mbed_official 113:b3775bf36a83 614 * @brief Enable the RTC TimeStamp interrupt.
mbed_official 113:b3775bf36a83 615 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 616 * @param __INTERRUPT__: specifies the RTC TimeStamp interrupt source to be enabled.
mbed_official 113:b3775bf36a83 617 * This parameter can be:
mbed_official 113:b3775bf36a83 618 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 113:b3775bf36a83 619 * @retval None
mbed_official 113:b3775bf36a83 620 */
mbed_official 113:b3775bf36a83 621 #define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
mbed_official 113:b3775bf36a83 622
mbed_official 113:b3775bf36a83 623 /**
mbed_official 113:b3775bf36a83 624 * @brief Disable the RTC TimeStamp interrupt.
mbed_official 113:b3775bf36a83 625 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 626 * @param __INTERRUPT__: specifies the RTC TimeStamp interrupt source to be disabled.
mbed_official 113:b3775bf36a83 627 * This parameter can be:
mbed_official 113:b3775bf36a83 628 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 113:b3775bf36a83 629 * @retval None
mbed_official 113:b3775bf36a83 630 */
mbed_official 113:b3775bf36a83 631 #define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
mbed_official 113:b3775bf36a83 632
mbed_official 113:b3775bf36a83 633 /**
mbed_official 113:b3775bf36a83 634 * @brief Check whether the specified RTC TimeStamp interrupt has occurred or not.
mbed_official 113:b3775bf36a83 635 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 636 * @param __INTERRUPT__: specifies the RTC TimeStamp interrupt to check.
mbed_official 113:b3775bf36a83 637 * This parameter can be:
mbed_official 113:b3775bf36a83 638 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 113:b3775bf36a83 639 * @retval None
mbed_official 113:b3775bf36a83 640 */
mbed_official 113:b3775bf36a83 641 #define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 642
mbed_official 113:b3775bf36a83 643 /**
mbed_official 113:b3775bf36a83 644 * @brief Check whether the specified RTC Time Stamp interrupt has been enabled or not.
mbed_official 113:b3775bf36a83 645 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 646 * @param __INTERRUPT__: specifies the RTC Time Stamp interrupt source to check.
mbed_official 113:b3775bf36a83 647 * This parameter can be:
mbed_official 113:b3775bf36a83 648 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 113:b3775bf36a83 649 * @retval None
mbed_official 113:b3775bf36a83 650 */
mbed_official 113:b3775bf36a83 651 #define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 652
mbed_official 113:b3775bf36a83 653 /**
mbed_official 113:b3775bf36a83 654 * @brief Get the selected RTC TimeStamp's flag status.
mbed_official 113:b3775bf36a83 655 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 656 * @param __FLAG__: specifies the RTC TimeStamp Flag is pending or not.
mbed_official 113:b3775bf36a83 657 * This parameter can be:
mbed_official 113:b3775bf36a83 658 * @arg RTC_FLAG_TSF
mbed_official 113:b3775bf36a83 659 * @arg RTC_FLAG_TSOVF
mbed_official 113:b3775bf36a83 660 * @retval None
mbed_official 113:b3775bf36a83 661 */
mbed_official 113:b3775bf36a83 662 #define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 663
mbed_official 113:b3775bf36a83 664 /**
mbed_official 113:b3775bf36a83 665 * @brief Clear the RTC Time Stamp's pending flags.
mbed_official 113:b3775bf36a83 666 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 667 * @param __FLAG__: specifies the RTC Alarm Flag to clear.
mbed_official 113:b3775bf36a83 668 * This parameter can be:
mbed_official 113:b3775bf36a83 669 * @arg RTC_FLAG_TSF
mbed_official 113:b3775bf36a83 670 * @retval None
mbed_official 113:b3775bf36a83 671 */
mbed_official 113:b3775bf36a83 672 #define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 113:b3775bf36a83 673
mbed_official 113:b3775bf36a83 674 /**
mbed_official 113:b3775bf36a83 675 * @}
mbed_official 113:b3775bf36a83 676 */
mbed_official 113:b3775bf36a83 677
mbed_official 113:b3775bf36a83 678 /* ---------------------------------TAMPER------------------------------------*/
mbed_official 113:b3775bf36a83 679 /** @defgroup RTCEx_Tamper RTC Tamper
mbed_official 113:b3775bf36a83 680 * @{
mbed_official 113:b3775bf36a83 681 */
mbed_official 113:b3775bf36a83 682
mbed_official 113:b3775bf36a83 683 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 684 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx) ||\
mbed_official 113:b3775bf36a83 685 defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 686 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 687 defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 113:b3775bf36a83 688 /**
mbed_official 113:b3775bf36a83 689 * @brief Enable the RTC Tamper1 input detection.
mbed_official 113:b3775bf36a83 690 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 691 * @retval None
mbed_official 113:b3775bf36a83 692 */
mbed_official 113:b3775bf36a83 693 #define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP1E))
mbed_official 113:b3775bf36a83 694
mbed_official 113:b3775bf36a83 695 /**
mbed_official 113:b3775bf36a83 696 * @brief Disable the RTC Tamper1 input detection.
mbed_official 113:b3775bf36a83 697 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 698 * @retval None
mbed_official 113:b3775bf36a83 699 */
mbed_official 113:b3775bf36a83 700 #define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP1E))
mbed_official 113:b3775bf36a83 701
mbed_official 113:b3775bf36a83 702 #endif /* (STM32L063xx) || (STM32L062xx) || (STM32L061xx) ||
mbed_official 113:b3775bf36a83 703 * (STM32L053xx) || (STM32L052xx) || (STM32L051xx) ||
mbed_official 113:b3775bf36a83 704 * (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 705 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) ||
mbed_official 113:b3775bf36a83 706 * (STM32L031xx) || (STM32L041xx)
mbed_official 113:b3775bf36a83 707 */
mbed_official 113:b3775bf36a83 708
mbed_official 113:b3775bf36a83 709 /**
mbed_official 113:b3775bf36a83 710 * @brief Enable the RTC Tamper2 input detection.
mbed_official 113:b3775bf36a83 711 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 712 * @retval None
mbed_official 113:b3775bf36a83 713 */
mbed_official 113:b3775bf36a83 714 #define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP2E))
mbed_official 113:b3775bf36a83 715
mbed_official 113:b3775bf36a83 716 /**
mbed_official 113:b3775bf36a83 717 * @brief Disable the RTC Tamper2 input detection.
mbed_official 113:b3775bf36a83 718 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 719 * @retval None
mbed_official 113:b3775bf36a83 720 */
mbed_official 113:b3775bf36a83 721 #define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP2E))
mbed_official 113:b3775bf36a83 722
mbed_official 113:b3775bf36a83 723
mbed_official 113:b3775bf36a83 724 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 725 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 726 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 727
mbed_official 113:b3775bf36a83 728 /**
mbed_official 113:b3775bf36a83 729 * @brief Enable the RTC Tamper3 input detection.
mbed_official 113:b3775bf36a83 730 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 731 * @retval None
mbed_official 113:b3775bf36a83 732 */
mbed_official 113:b3775bf36a83 733 #define __HAL_RTC_TAMPER3_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP3E))
mbed_official 113:b3775bf36a83 734
mbed_official 113:b3775bf36a83 735 /**
mbed_official 113:b3775bf36a83 736 * @brief Disable the RTC Tamper3 input detection.
mbed_official 113:b3775bf36a83 737 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 738 * @retval None
mbed_official 113:b3775bf36a83 739 */
mbed_official 113:b3775bf36a83 740 #define __HAL_RTC_TAMPER3_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP3E))
mbed_official 113:b3775bf36a83 741
mbed_official 113:b3775bf36a83 742 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 743 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 744 * (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 745 */
bogdanm 0:9b334a45a8ff 746
bogdanm 0:9b334a45a8ff 747
mbed_official 113:b3775bf36a83 748 /**************************************************************************************************/
mbed_official 113:b3775bf36a83 749
mbed_official 113:b3775bf36a83 750 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 751 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx)
mbed_official 113:b3775bf36a83 752
mbed_official 113:b3775bf36a83 753 /**
mbed_official 113:b3775bf36a83 754 * @brief Enable the RTC Tamper interrupt.
mbed_official 113:b3775bf36a83 755 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 756 * @param __INTERRUPT__: specifies the RTC Tamper interrupt sources to be enabled.
mbed_official 113:b3775bf36a83 757 * This parameter can be any combination of the following values:
mbed_official 113:b3775bf36a83 758 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 759 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 760 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 761 * @retval None
mbed_official 113:b3775bf36a83 762 */
mbed_official 113:b3775bf36a83 763 #define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR |= (__INTERRUPT__))
mbed_official 113:b3775bf36a83 764
mbed_official 113:b3775bf36a83 765 /**
mbed_official 113:b3775bf36a83 766 * @brief Disable the RTC Tamper interrupt.
mbed_official 113:b3775bf36a83 767 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 768 * @param __INTERRUPT__: specifies the RTC Tamper interrupt sources to be disabled.
mbed_official 113:b3775bf36a83 769 * This parameter can be any combination of the following values:
mbed_official 113:b3775bf36a83 770 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 771 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 772 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 773 * @retval None
mbed_official 113:b3775bf36a83 774 */
mbed_official 113:b3775bf36a83 775 #define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR &= ~(__INTERRUPT__))
mbed_official 113:b3775bf36a83 776
mbed_official 113:b3775bf36a83 777 #elif defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 778 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 779 defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 113:b3775bf36a83 780
mbed_official 113:b3775bf36a83 781 /**
mbed_official 113:b3775bf36a83 782 * @brief Enable the RTC Tamper interrupt.
mbed_official 113:b3775bf36a83 783 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 784 * @param __INTERRUPT__: specifies the RTC Tamper interrupt sources to be enabled.
mbed_official 113:b3775bf36a83 785 * This parameter can be any combination of the following values:
mbed_official 113:b3775bf36a83 786 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 787 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 788 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 789 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 790 * @retval None
mbed_official 113:b3775bf36a83 791 */
mbed_official 113:b3775bf36a83 792 #define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR |= (__INTERRUPT__))
mbed_official 113:b3775bf36a83 793
mbed_official 113:b3775bf36a83 794 /**
mbed_official 113:b3775bf36a83 795 * @brief Disable the RTC Tamper interrupt.
mbed_official 113:b3775bf36a83 796 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 797 * @param __INTERRUPT__: specifies the RTC Tamper interrupt sources to be disabled.
mbed_official 113:b3775bf36a83 798 * This parameter can be any combination of the following values:
mbed_official 113:b3775bf36a83 799 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 800 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 801 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 802 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 803 * @retval None
mbed_official 113:b3775bf36a83 804 */
mbed_official 113:b3775bf36a83 805 #define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR &= ~(__INTERRUPT__))
mbed_official 113:b3775bf36a83 806
mbed_official 113:b3775bf36a83 807 #elif defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 808
mbed_official 113:b3775bf36a83 809 /**
mbed_official 113:b3775bf36a83 810 * @brief Enable the RTC Tamper interrupt.
mbed_official 113:b3775bf36a83 811 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 812 * @param __INTERRUPT__: specifies the RTC Tamper interrupt sources to be enabled.
mbed_official 113:b3775bf36a83 813 * This parameter can be any combination of the following values:
mbed_official 113:b3775bf36a83 814 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 815 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 816 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 817 * @retval None
mbed_official 113:b3775bf36a83 818 */
mbed_official 113:b3775bf36a83 819 #define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR |= (__INTERRUPT__))
mbed_official 113:b3775bf36a83 820
mbed_official 113:b3775bf36a83 821 /**
mbed_official 113:b3775bf36a83 822 * @brief Disable the RTC Tamper interrupt.
mbed_official 113:b3775bf36a83 823 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 824 * @param __INTERRUPT__: specifies the RTC Tamper interrupt sources to be disabled.
mbed_official 113:b3775bf36a83 825 * This parameter can be any combination of the following values:
mbed_official 113:b3775bf36a83 826 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 827 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 828 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 829 * @retval None
mbed_official 113:b3775bf36a83 830 */
mbed_official 113:b3775bf36a83 831 #define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR &= ~(__INTERRUPT__))
mbed_official 113:b3775bf36a83 832
mbed_official 113:b3775bf36a83 833 #endif /* (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 834 */
mbed_official 113:b3775bf36a83 835
mbed_official 113:b3775bf36a83 836 /**************************************************************************************************/
mbed_official 113:b3775bf36a83 837
mbed_official 113:b3775bf36a83 838 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 839 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx)
mbed_official 113:b3775bf36a83 840
mbed_official 113:b3775bf36a83 841 /**
mbed_official 113:b3775bf36a83 842 * @brief Check whether the specified RTC Tamper interrupt has occurred or not.
mbed_official 113:b3775bf36a83 843 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 844 * @param __INTERRUPT__: specifies the RTC Tamper interrupt to check.
mbed_official 113:b3775bf36a83 845 * This parameter can be:
mbed_official 113:b3775bf36a83 846 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 847 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 848 * @retval None
mbed_official 113:b3775bf36a83 849 */
mbed_official 113:b3775bf36a83 850 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) == RTC_IT_TAMP1) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 3)) != RESET) ? SET : RESET) : \
mbed_official 113:b3775bf36a83 851 ((__INTERRUPT__) == RTC_IT_TAMP2) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 5)) != RESET) ? SET : RESET))
mbed_official 113:b3775bf36a83 852
mbed_official 113:b3775bf36a83 853 #elif defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 854 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 855 defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 113:b3775bf36a83 856
mbed_official 113:b3775bf36a83 857 /**
mbed_official 113:b3775bf36a83 858 * @brief Check whether the specified RTC Tamper interrupt has occurred or not.
mbed_official 113:b3775bf36a83 859 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 860 * @param __INTERRUPT__: specifies the RTC Tamper interrupt to check.
mbed_official 113:b3775bf36a83 861 * This parameter can be:
mbed_official 113:b3775bf36a83 862 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 863 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 864 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 865 * @retval None
mbed_official 113:b3775bf36a83 866 */
mbed_official 113:b3775bf36a83 867 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) == RTC_IT_TAMP1) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 3)) != RESET) ? SET : RESET) : \
mbed_official 113:b3775bf36a83 868 ((__INTERRUPT__) == RTC_IT_TAMP2) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 5)) != RESET) ? SET : RESET) : \
mbed_official 113:b3775bf36a83 869 ((__INTERRUPT__) == RTC_IT_TAMP3) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 7)) != RESET) ? SET : RESET))
mbed_official 113:b3775bf36a83 870
mbed_official 113:b3775bf36a83 871 #elif defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 872
mbed_official 113:b3775bf36a83 873 /**
mbed_official 113:b3775bf36a83 874 * @brief Check whether the specified RTC Tamper interrupt has occurred or not.
mbed_official 113:b3775bf36a83 875 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 876 * @param __INTERRUPT__: specifies the RTC Tamper interrupt to check.
mbed_official 113:b3775bf36a83 877 * This parameter can be:
mbed_official 113:b3775bf36a83 878 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 879 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 880 * @retval None
mbed_official 113:b3775bf36a83 881 */
mbed_official 113:b3775bf36a83 882 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) == RTC_IT_TAMP2) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 5)) != RESET) ? SET : RESET) : \
mbed_official 113:b3775bf36a83 883 ((__INTERRUPT__) == RTC_IT_TAMP3) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 7)) != RESET) ? SET : RESET))
mbed_official 113:b3775bf36a83 884
mbed_official 113:b3775bf36a83 885
mbed_official 113:b3775bf36a83 886 #endif /* (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 887 */
mbed_official 113:b3775bf36a83 888
mbed_official 113:b3775bf36a83 889 /**************************************************************************************************/
mbed_official 113:b3775bf36a83 890
mbed_official 113:b3775bf36a83 891 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 892 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx)
mbed_official 113:b3775bf36a83 893
mbed_official 113:b3775bf36a83 894 /**
mbed_official 113:b3775bf36a83 895 * @brief Check whether the specified RTC Tamper interrupt has been enabled or not.
mbed_official 113:b3775bf36a83 896 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 897 * @param __INTERRUPT__: specifies the RTC Tamper interrupt source to check.
mbed_official 113:b3775bf36a83 898 * This parameter can be:
mbed_official 113:b3775bf36a83 899 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 900 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 901 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 902 * @retval None
mbed_official 113:b3775bf36a83 903 */
mbed_official 113:b3775bf36a83 904 #define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAMPCR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 905
mbed_official 113:b3775bf36a83 906
mbed_official 113:b3775bf36a83 907 /**
mbed_official 113:b3775bf36a83 908 * @brief Get the selected RTC Tamper's flag status.
mbed_official 113:b3775bf36a83 909 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 910 * @param __FLAG__: specifies the RTC Tamper Flag is pending or not.
mbed_official 113:b3775bf36a83 911 * This parameter can be:
mbed_official 113:b3775bf36a83 912 * @arg RTC_FLAG_TAMP1F: Tamper1 flag
mbed_official 113:b3775bf36a83 913 * @arg RTC_FLAG_TAMP2F: Tamper2 flag
mbed_official 113:b3775bf36a83 914 * @retval None
mbed_official 113:b3775bf36a83 915 */
mbed_official 113:b3775bf36a83 916 #define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 917
mbed_official 113:b3775bf36a83 918 /**
mbed_official 113:b3775bf36a83 919 * @brief Clear the RTC Tamper's pending flags.
mbed_official 113:b3775bf36a83 920 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 921 * @param __FLAG__: specifies the RTC Tamper Flag to clear.
mbed_official 113:b3775bf36a83 922 * This parameter can be:
mbed_official 113:b3775bf36a83 923 * @arg RTC_FLAG_TAMP1F: Tamper1 flag
mbed_official 113:b3775bf36a83 924 * @arg RTC_FLAG_TAMP2F: Tamper2 flag
mbed_official 113:b3775bf36a83 925 * @retval None
mbed_official 113:b3775bf36a83 926 */
mbed_official 113:b3775bf36a83 927 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 113:b3775bf36a83 928
mbed_official 113:b3775bf36a83 929
mbed_official 113:b3775bf36a83 930 #elif defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 931 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 932 defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 113:b3775bf36a83 933
mbed_official 113:b3775bf36a83 934 /**
mbed_official 113:b3775bf36a83 935 * @brief Check whether the specified RTC Tamper interrupt has been enabled or not.
mbed_official 113:b3775bf36a83 936 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 937 * @param __INTERRUPT__: specifies the RTC Tamper interrupt source to check.
mbed_official 113:b3775bf36a83 938 * This parameter can be:
mbed_official 113:b3775bf36a83 939 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 940 * @arg RTC_IT_TAMP1: Tamper1 interrupt
mbed_official 113:b3775bf36a83 941 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 942 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 943 * @retval None
mbed_official 113:b3775bf36a83 944 */
mbed_official 113:b3775bf36a83 945 #define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAMPCR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 946
mbed_official 113:b3775bf36a83 947
mbed_official 113:b3775bf36a83 948 /**
mbed_official 113:b3775bf36a83 949 * @brief Get the selected RTC Tamper's flag status.
mbed_official 113:b3775bf36a83 950 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 951 * @param __FLAG__: specifies the RTC Tamper Flag is pending or not.
mbed_official 113:b3775bf36a83 952 * This parameter can be:
mbed_official 113:b3775bf36a83 953 * @arg RTC_FLAG_TAMP1F: Tamper1 flag
mbed_official 113:b3775bf36a83 954 * @arg RTC_FLAG_TAMP2F: Tamper2 flag
mbed_official 113:b3775bf36a83 955 * @arg RTC_FLAG_TAMP3F: Tamper3 flag
mbed_official 113:b3775bf36a83 956 * @retval None
mbed_official 113:b3775bf36a83 957 */
mbed_official 113:b3775bf36a83 958 #define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 959
mbed_official 113:b3775bf36a83 960 /**
mbed_official 113:b3775bf36a83 961 * @brief Clear the RTC Tamper's pending flags.
mbed_official 113:b3775bf36a83 962 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 963 * @param __FLAG__: specifies the RTC Tamper Flag to clear.
mbed_official 113:b3775bf36a83 964 * This parameter can be:
mbed_official 113:b3775bf36a83 965 * @arg RTC_FLAG_TAMP1F: Tamper1 flag
mbed_official 113:b3775bf36a83 966 * @arg RTC_FLAG_TAMP2F: Tamper2 flag
mbed_official 113:b3775bf36a83 967 * @arg RTC_FLAG_TAMP3F: Tamper3 flag
mbed_official 113:b3775bf36a83 968 * @retval None
mbed_official 113:b3775bf36a83 969 */
mbed_official 113:b3775bf36a83 970 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 113:b3775bf36a83 971
mbed_official 113:b3775bf36a83 972 #elif defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 973
mbed_official 113:b3775bf36a83 974 /**
mbed_official 113:b3775bf36a83 975 * @brief Check whether the specified RTC Tamper interrupt has been enabled or not.
mbed_official 113:b3775bf36a83 976 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 977 * @param __INTERRUPT__: specifies the RTC Tamper interrupt source to check.
mbed_official 113:b3775bf36a83 978 * This parameter can be:
mbed_official 113:b3775bf36a83 979 * @arg RTC_IT_TAMP: All tampers interrupts
mbed_official 113:b3775bf36a83 980 * @arg RTC_IT_TAMP2: Tamper2 interrupt
mbed_official 113:b3775bf36a83 981 * @arg RTC_IT_TAMP3: Tamper3 interrupt
mbed_official 113:b3775bf36a83 982 * @retval None
mbed_official 113:b3775bf36a83 983 */
mbed_official 113:b3775bf36a83 984 #define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAMPCR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 985
mbed_official 113:b3775bf36a83 986
mbed_official 113:b3775bf36a83 987 /**
mbed_official 113:b3775bf36a83 988 * @brief Get the selected RTC Tamper's flag status.
mbed_official 113:b3775bf36a83 989 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 990 * @param __FLAG__: specifies the RTC Tamper Flag is pending or not.
mbed_official 113:b3775bf36a83 991 * This parameter can be:
mbed_official 113:b3775bf36a83 992 * @arg RTC_FLAG_TAMP2F: Tamper2 flag
mbed_official 113:b3775bf36a83 993 * @arg RTC_FLAG_TAMP3F: Tamper3 flag
mbed_official 113:b3775bf36a83 994 * @retval None
mbed_official 113:b3775bf36a83 995 */
mbed_official 113:b3775bf36a83 996 #define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
mbed_official 113:b3775bf36a83 997
mbed_official 113:b3775bf36a83 998 /**
mbed_official 113:b3775bf36a83 999 * @brief Clear the RTC Tamper's pending flags.
mbed_official 113:b3775bf36a83 1000 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 1001 * @param __FLAG__: specifies the RTC Tamper Flag to clear.
mbed_official 113:b3775bf36a83 1002 * This parameter can be:
mbed_official 113:b3775bf36a83 1003 * @arg RTC_FLAG_TAMP2F: Tamper2 flag
mbed_official 113:b3775bf36a83 1004 * @arg RTC_FLAG_TAMP3F: Tamper3 flag
mbed_official 113:b3775bf36a83 1005 * @retval None
mbed_official 113:b3775bf36a83 1006 */
mbed_official 113:b3775bf36a83 1007 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 113:b3775bf36a83 1008
mbed_official 113:b3775bf36a83 1009 #endif /* (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 1010 */
mbed_official 113:b3775bf36a83 1011
mbed_official 113:b3775bf36a83 1012
mbed_official 113:b3775bf36a83 1013 /**************************************************************************************************/
mbed_official 113:b3775bf36a83 1014
mbed_official 113:b3775bf36a83 1015 /**
mbed_official 113:b3775bf36a83 1016 * @}
mbed_official 113:b3775bf36a83 1017 */
mbed_official 113:b3775bf36a83 1018
mbed_official 113:b3775bf36a83 1019 /* --------------------------TAMPER/TIMESTAMP---------------------------------*/
mbed_official 113:b3775bf36a83 1020 /** @defgroup RTCEx_Tamper_Timestamp EXTI RTC Tamper Timestamp EXTI
mbed_official 113:b3775bf36a83 1021 * @{
mbed_official 113:b3775bf36a83 1022 */
mbed_official 113:b3775bf36a83 1023
bogdanm 0:9b334a45a8ff 1024 /* TAMPER TIMESTAMP EXTI */
bogdanm 0:9b334a45a8ff 1025 /* --------------------- */
bogdanm 0:9b334a45a8ff 1026 /**
bogdanm 0:9b334a45a8ff 1027 * @brief Enable interrupt on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1028 * @retval None
bogdanm 0:9b334a45a8ff 1029 */
bogdanm 0:9b334a45a8ff 1030 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
bogdanm 0:9b334a45a8ff 1031
bogdanm 0:9b334a45a8ff 1032 /**
bogdanm 0:9b334a45a8ff 1033 * @brief Disable interrupt on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1034 * @retval None
bogdanm 0:9b334a45a8ff 1035 */
bogdanm 0:9b334a45a8ff 1036 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
bogdanm 0:9b334a45a8ff 1037
bogdanm 0:9b334a45a8ff 1038 /**
bogdanm 0:9b334a45a8ff 1039 * @brief Enable event on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1040 * @retval None.
bogdanm 0:9b334a45a8ff 1041 */
bogdanm 0:9b334a45a8ff 1042 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
bogdanm 0:9b334a45a8ff 1043
bogdanm 0:9b334a45a8ff 1044 /**
bogdanm 0:9b334a45a8ff 1045 * @brief Disable event on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1046 * @retval None.
bogdanm 0:9b334a45a8ff 1047 */
bogdanm 0:9b334a45a8ff 1048 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
bogdanm 0:9b334a45a8ff 1049
bogdanm 0:9b334a45a8ff 1050 /**
bogdanm 0:9b334a45a8ff 1051 * @brief Enable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1052 * @retval None.
bogdanm 0:9b334a45a8ff 1053 */
bogdanm 0:9b334a45a8ff 1054 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
bogdanm 0:9b334a45a8ff 1055
bogdanm 0:9b334a45a8ff 1056 /**
bogdanm 0:9b334a45a8ff 1057 * @brief Disable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1058 * @retval None.
bogdanm 0:9b334a45a8ff 1059 */
bogdanm 0:9b334a45a8ff 1060 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
bogdanm 0:9b334a45a8ff 1061
bogdanm 0:9b334a45a8ff 1062 /**
bogdanm 0:9b334a45a8ff 1063 * @brief Enable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1064 * @retval None.
bogdanm 0:9b334a45a8ff 1065 */
bogdanm 0:9b334a45a8ff 1066 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
bogdanm 0:9b334a45a8ff 1067
bogdanm 0:9b334a45a8ff 1068 /**
bogdanm 0:9b334a45a8ff 1069 * @brief Disable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1070 * @retval None.
bogdanm 0:9b334a45a8ff 1071 */
bogdanm 0:9b334a45a8ff 1072 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
bogdanm 0:9b334a45a8ff 1073
bogdanm 0:9b334a45a8ff 1074 /**
bogdanm 0:9b334a45a8ff 1075 * @brief Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1076 * @retval None.
bogdanm 0:9b334a45a8ff 1077 */
mbed_official 113:b3775bf36a83 1078 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do { __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();__HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE(); } while(0);
bogdanm 0:9b334a45a8ff 1079
bogdanm 0:9b334a45a8ff 1080 /**
bogdanm 0:9b334a45a8ff 1081 * @brief Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
bogdanm 0:9b334a45a8ff 1082 * This parameter can be:
bogdanm 0:9b334a45a8ff 1083 * @retval None.
bogdanm 0:9b334a45a8ff 1084 */
mbed_official 113:b3775bf36a83 1085 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do { __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE();__HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE(); } while(0);
bogdanm 0:9b334a45a8ff 1086
bogdanm 0:9b334a45a8ff 1087 /**
bogdanm 0:9b334a45a8ff 1088 * @brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not.
bogdanm 0:9b334a45a8ff 1089 * @retval Line Status.
bogdanm 0:9b334a45a8ff 1090 */
mbed_official 113:b3775bf36a83 1091 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
bogdanm 0:9b334a45a8ff 1092
bogdanm 0:9b334a45a8ff 1093 /**
bogdanm 0:9b334a45a8ff 1094 * @brief Clear the RTC Tamper and Timestamp associated Exti line flag.
bogdanm 0:9b334a45a8ff 1095 * @retval None.
bogdanm 0:9b334a45a8ff 1096 */
bogdanm 0:9b334a45a8ff 1097 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
bogdanm 0:9b334a45a8ff 1098
bogdanm 0:9b334a45a8ff 1099 /**
bogdanm 0:9b334a45a8ff 1100 * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated Exti line
bogdanm 0:9b334a45a8ff 1101 * @retval None.
bogdanm 0:9b334a45a8ff 1102 */
bogdanm 0:9b334a45a8ff 1103 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
mbed_official 113:b3775bf36a83 1104 /**
mbed_official 113:b3775bf36a83 1105 * @}
mbed_official 113:b3775bf36a83 1106 */
bogdanm 0:9b334a45a8ff 1107
mbed_official 113:b3775bf36a83 1108 /* ------------------------------Calibration----------------------------------*/
mbed_official 113:b3775bf36a83 1109 /** @defgroup RTCEx_Calibration RTC Calibration
mbed_official 113:b3775bf36a83 1110 * @{
mbed_official 113:b3775bf36a83 1111 */
mbed_official 113:b3775bf36a83 1112
mbed_official 113:b3775bf36a83 1113 /**
mbed_official 113:b3775bf36a83 1114 * @brief Enable the RTC calibration output.
mbed_official 113:b3775bf36a83 1115 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 1116 * @retval None
mbed_official 113:b3775bf36a83 1117 */
mbed_official 113:b3775bf36a83 1118 #define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
mbed_official 113:b3775bf36a83 1119
mbed_official 113:b3775bf36a83 1120 /**
mbed_official 113:b3775bf36a83 1121 * @brief Disable the calibration output.
mbed_official 113:b3775bf36a83 1122 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 1123 * @retval None
mbed_official 113:b3775bf36a83 1124 */
mbed_official 113:b3775bf36a83 1125 #define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
mbed_official 113:b3775bf36a83 1126
mbed_official 113:b3775bf36a83 1127 /**
mbed_official 113:b3775bf36a83 1128 * @brief Enable the clock reference detection.
mbed_official 113:b3775bf36a83 1129 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 1130 * @retval None
mbed_official 113:b3775bf36a83 1131 */
mbed_official 113:b3775bf36a83 1132 #define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
mbed_official 113:b3775bf36a83 1133
mbed_official 113:b3775bf36a83 1134 /**
mbed_official 113:b3775bf36a83 1135 * @brief Disable the clock reference detection.
mbed_official 113:b3775bf36a83 1136 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 1137 * @retval None
mbed_official 113:b3775bf36a83 1138 */
mbed_official 113:b3775bf36a83 1139 #define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
mbed_official 113:b3775bf36a83 1140
mbed_official 113:b3775bf36a83 1141 /**
mbed_official 113:b3775bf36a83 1142 * @brief Get the selected RTC shift operation's flag status.
mbed_official 113:b3775bf36a83 1143 * @param __HANDLE__: specifies the RTC handle.
mbed_official 113:b3775bf36a83 1144 * @param __FLAG__: specifies the RTC shift operation Flag is pending or not.
mbed_official 113:b3775bf36a83 1145 * This parameter can be:
mbed_official 113:b3775bf36a83 1146 * @arg RTC_FLAG_SHPF
mbed_official 113:b3775bf36a83 1147 * @retval None
mbed_official 113:b3775bf36a83 1148 */
mbed_official 113:b3775bf36a83 1149 #define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
mbed_official 113:b3775bf36a83 1150 /**
mbed_official 113:b3775bf36a83 1151 * @}
mbed_official 113:b3775bf36a83 1152 */
bogdanm 0:9b334a45a8ff 1153
bogdanm 0:9b334a45a8ff 1154 /**
bogdanm 0:9b334a45a8ff 1155 * @}
bogdanm 0:9b334a45a8ff 1156 */
bogdanm 0:9b334a45a8ff 1157
bogdanm 0:9b334a45a8ff 1158 /* Exported functions --------------------------------------------------------*/
mbed_official 113:b3775bf36a83 1159 /** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
bogdanm 0:9b334a45a8ff 1160 * @{
bogdanm 0:9b334a45a8ff 1161 */
bogdanm 0:9b334a45a8ff 1162
mbed_official 113:b3775bf36a83 1163 /* RTC TimeStamp and Tamper functions *****************************************/
bogdanm 0:9b334a45a8ff 1164 /** @defgroup RTCEx_Exported_Functions_Group1 Extended RTC TimeStamp and Tamper functions
bogdanm 0:9b334a45a8ff 1165 * @{
bogdanm 0:9b334a45a8ff 1166 */
bogdanm 0:9b334a45a8ff 1167
bogdanm 0:9b334a45a8ff 1168 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
bogdanm 0:9b334a45a8ff 1169 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
bogdanm 0:9b334a45a8ff 1170 HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1171 HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
bogdanm 0:9b334a45a8ff 1172
bogdanm 0:9b334a45a8ff 1173 HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
bogdanm 0:9b334a45a8ff 1174 HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
bogdanm 0:9b334a45a8ff 1175 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
bogdanm 0:9b334a45a8ff 1176 void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1177
bogdanm 0:9b334a45a8ff 1178 void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1179 void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1180
bogdanm 0:9b334a45a8ff 1181 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 1182 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 1183 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
bogdanm 0:9b334a45a8ff 1184
bogdanm 0:9b334a45a8ff 1185 void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1186
bogdanm 0:9b334a45a8ff 1187 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 1188 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 1189 * (STM32L011xx) || (STM32L021xx)
bogdanm 0:9b334a45a8ff 1190 */
bogdanm 0:9b334a45a8ff 1191
bogdanm 0:9b334a45a8ff 1192 void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1193 HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
bogdanm 0:9b334a45a8ff 1194 HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
bogdanm 0:9b334a45a8ff 1195 HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
bogdanm 0:9b334a45a8ff 1196
bogdanm 0:9b334a45a8ff 1197 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 1198 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 1199 defined (STM32L031xx) || defined (STM32L041xx) || defined (STM32L011xx) || defined (STM32L021xx)
bogdanm 0:9b334a45a8ff 1200
bogdanm 0:9b334a45a8ff 1201 HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
bogdanm 0:9b334a45a8ff 1202
bogdanm 0:9b334a45a8ff 1203 #endif /* (STM32L083xx) || (STM32L082xx) || (STM32L081xx) ||
mbed_official 113:b3775bf36a83 1204 * (STM32L073xx) || (STM32L072xx) || (STM32L071xx) || (STM32L031xx) || (STM32L041xx) ||
mbed_official 113:b3775bf36a83 1205 * (STM32L011xx) || (STM32L021xx)
bogdanm 0:9b334a45a8ff 1206 */
bogdanm 0:9b334a45a8ff 1207
bogdanm 0:9b334a45a8ff 1208 /**
bogdanm 0:9b334a45a8ff 1209 * @}
bogdanm 0:9b334a45a8ff 1210 */
bogdanm 0:9b334a45a8ff 1211
mbed_official 113:b3775bf36a83 1212 /* RTC Wake-up functions ******************************************************/
bogdanm 0:9b334a45a8ff 1213 /** @defgroup RTCEx_Exported_Functions_Group2 Extended RTC Wake-up functions
bogdanm 0:9b334a45a8ff 1214 * @{
bogdanm 0:9b334a45a8ff 1215 */
bogdanm 0:9b334a45a8ff 1216
bogdanm 0:9b334a45a8ff 1217 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
bogdanm 0:9b334a45a8ff 1218 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
mbed_official 113:b3775bf36a83 1219 uint32_t HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
mbed_official 113:b3775bf36a83 1220 uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1221 void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1222 void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1223 HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
bogdanm 0:9b334a45a8ff 1224 /**
bogdanm 0:9b334a45a8ff 1225 * @}
bogdanm 0:9b334a45a8ff 1226 */
bogdanm 0:9b334a45a8ff 1227
mbed_official 113:b3775bf36a83 1228 /* Extended Control functions ************************************************/
bogdanm 0:9b334a45a8ff 1229 /** @defgroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions
bogdanm 0:9b334a45a8ff 1230 * @{
bogdanm 0:9b334a45a8ff 1231 */
bogdanm 0:9b334a45a8ff 1232
bogdanm 0:9b334a45a8ff 1233 void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
bogdanm 0:9b334a45a8ff 1234 uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
bogdanm 0:9b334a45a8ff 1235
mbed_official 113:b3775bf36a83 1236 HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
bogdanm 0:9b334a45a8ff 1237 HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
bogdanm 0:9b334a45a8ff 1238 HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
bogdanm 0:9b334a45a8ff 1239 HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1240 HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1241 HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1242 HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1243 HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1244 /**
bogdanm 0:9b334a45a8ff 1245 * @}
bogdanm 0:9b334a45a8ff 1246 */
bogdanm 0:9b334a45a8ff 1247
bogdanm 0:9b334a45a8ff 1248 /* Extended RTC features functions *******************************************/
bogdanm 0:9b334a45a8ff 1249 /** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions
bogdanm 0:9b334a45a8ff 1250 * @{
bogdanm 0:9b334a45a8ff 1251 */
bogdanm 0:9b334a45a8ff 1252 void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
bogdanm 0:9b334a45a8ff 1253 HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 113:b3775bf36a83 1254 /**
mbed_official 113:b3775bf36a83 1255 * @}
mbed_official 113:b3775bf36a83 1256 */
mbed_official 113:b3775bf36a83 1257
mbed_official 113:b3775bf36a83 1258 /**
mbed_official 113:b3775bf36a83 1259 * @}
mbed_official 113:b3775bf36a83 1260 */
mbed_official 113:b3775bf36a83 1261
mbed_official 113:b3775bf36a83 1262 /* Private types -------------------------------------------------------------*/
mbed_official 113:b3775bf36a83 1263 /* Private variables ---------------------------------------------------------*/
mbed_official 113:b3775bf36a83 1264 /* Private constants ---------------------------------------------------------*/
mbed_official 113:b3775bf36a83 1265 /** @defgroup RTCEx_Private_Constants RTCEx Private Constants
mbed_official 113:b3775bf36a83 1266 * @{
mbed_official 113:b3775bf36a83 1267 */
mbed_official 113:b3775bf36a83 1268
mbed_official 113:b3775bf36a83 1269 /* Masks Definition */
mbed_official 113:b3775bf36a83 1270
mbed_official 113:b3775bf36a83 1271 #if defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
mbed_official 113:b3775bf36a83 1272 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx)
mbed_official 113:b3775bf36a83 1273
mbed_official 113:b3775bf36a83 1274 #define RTC_FLAGS_MASK ((uint32_t) (RTC_FLAG_RECALPF | RTC_FLAG_TAMP2F | RTC_FLAG_TAMP1F| \
mbed_official 113:b3775bf36a83 1275 RTC_FLAG_TSOVF | RTC_FLAG_TSF | RTC_FLAG_WUTF | \
mbed_official 113:b3775bf36a83 1276 RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | \
mbed_official 113:b3775bf36a83 1277 RTC_FLAG_INITF | RTC_FLAG_RSF | RTC_FLAG_INITS | \
mbed_official 113:b3775bf36a83 1278 RTC_FLAG_SHPF | RTC_FLAG_WUTWF |RTC_FLAG_ALRBWF | \
mbed_official 113:b3775bf36a83 1279 RTC_FLAG_ALRAWF))
mbed_official 113:b3775bf36a83 1280
mbed_official 113:b3775bf36a83 1281 #define RTC_TAMPCR_TAMPXE ((uint32_t) (RTC_TAMPCR_TAMP2E | RTC_TAMPCR_TAMP1E))
mbed_official 113:b3775bf36a83 1282 #define RTC_TAMPCR_TAMPXIE ((uint32_t) (RTC_TAMPER1_INTERRUPT | RTC_TAMPER2_INTERRUPT | \
mbed_official 113:b3775bf36a83 1283 RTC_ALL_TAMPER_INTERRUPT))
mbed_official 113:b3775bf36a83 1284
mbed_official 113:b3775bf36a83 1285 #elif defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
mbed_official 113:b3775bf36a83 1286 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx) || \
mbed_official 113:b3775bf36a83 1287 defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 113:b3775bf36a83 1288
mbed_official 113:b3775bf36a83 1289 #define RTC_FLAGS_MASK ((uint32_t) (RTC_FLAG_RECALPF | RTC_FLAG_TAMP3F | RTC_FLAG_TAMP2F | \
mbed_official 113:b3775bf36a83 1290 RTC_FLAG_TAMP1F| RTC_FLAG_TSOVF | RTC_FLAG_TSF | \
mbed_official 113:b3775bf36a83 1291 RTC_FLAG_WUTF | RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | \
mbed_official 113:b3775bf36a83 1292 RTC_FLAG_INITF | RTC_FLAG_RSF | \
mbed_official 113:b3775bf36a83 1293 RTC_FLAG_INITS | RTC_FLAG_SHPF | RTC_FLAG_WUTWF | \
mbed_official 113:b3775bf36a83 1294 RTC_FLAG_ALRBWF | RTC_FLAG_ALRAWF))
mbed_official 113:b3775bf36a83 1295
mbed_official 113:b3775bf36a83 1296 #define RTC_TAMPCR_TAMPXE ((uint32_t) (RTC_TAMPCR_TAMP3E | RTC_TAMPCR_TAMP2E | RTC_TAMPCR_TAMP1E))
mbed_official 113:b3775bf36a83 1297 #define RTC_TAMPCR_TAMPXIE ((uint32_t) (RTC_TAMPER1_INTERRUPT | RTC_TAMPER2_INTERRUPT | \
mbed_official 113:b3775bf36a83 1298 RTC_TAMPER3_INTERRUPT | RTC_ALL_TAMPER_INTERRUPT))
mbed_official 113:b3775bf36a83 1299
mbed_official 113:b3775bf36a83 1300 #elif defined (STM32L011xx) || defined (STM32L021xx)
mbed_official 113:b3775bf36a83 1301
mbed_official 113:b3775bf36a83 1302 #define RTC_FLAGS_MASK ((uint32_t) (RTC_FLAG_RECALPF | RTC_FLAG_TAMP3F | RTC_FLAG_TAMP2F | \
mbed_official 113:b3775bf36a83 1303 RTC_FLAG_TSOVF | RTC_FLAG_TSF | \
mbed_official 113:b3775bf36a83 1304 RTC_FLAG_WUTF | RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | \
mbed_official 113:b3775bf36a83 1305 RTC_FLAG_INITF | RTC_FLAG_RSF | \
mbed_official 113:b3775bf36a83 1306 RTC_FLAG_INITS | RTC_FLAG_SHPF | RTC_FLAG_WUTWF | \
mbed_official 113:b3775bf36a83 1307 RTC_FLAG_ALRBWF | RTC_FLAG_ALRAWF))
mbed_official 113:b3775bf36a83 1308
mbed_official 113:b3775bf36a83 1309 #define RTC_TAMPCR_TAMPXE ((uint32_t) (RTC_TAMPCR_TAMP3E | RTC_TAMPCR_TAMP2E))
mbed_official 113:b3775bf36a83 1310 #define RTC_TAMPCR_TAMPXIE ((uint32_t) (RTC_TAMPER2_INTERRUPT | \
mbed_official 113:b3775bf36a83 1311 RTC_TAMPER3_INTERRUPT | RTC_ALL_TAMPER_INTERRUPT))
mbed_official 113:b3775bf36a83 1312 #endif /* (STM32L011xx) || (STM32L021xx)
mbed_official 113:b3775bf36a83 1313 */
mbed_official 113:b3775bf36a83 1314
mbed_official 113:b3775bf36a83 1315 #define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT ((uint32_t)EXTI_IMR_IM19) /*!< External interrupt line 19 Connected to the RTC Tamper and Time Stamp events */
mbed_official 113:b3775bf36a83 1316 #define RTC_EXTI_LINE_WAKEUPTIMER_EVENT ((uint32_t)EXTI_IMR_IM20) /*!< External interrupt line 20 Connected to the RTC Wakeup event */
mbed_official 113:b3775bf36a83 1317
mbed_official 113:b3775bf36a83 1318 /**
mbed_official 113:b3775bf36a83 1319 * @}
mbed_official 113:b3775bf36a83 1320 */
mbed_official 113:b3775bf36a83 1321
mbed_official 113:b3775bf36a83 1322 /* Private macros ------------------------------------------------------------*/
mbed_official 113:b3775bf36a83 1323 /** @defgroup RTCEx_Private_Macros RTCEx Private Macros
mbed_official 113:b3775bf36a83 1324 * @{
mbed_official 113:b3775bf36a83 1325 */
mbed_official 113:b3775bf36a83 1326
mbed_official 113:b3775bf36a83 1327 /** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters
mbed_official 113:b3775bf36a83 1328 * @{
mbed_official 113:b3775bf36a83 1329 */
mbed_official 113:b3775bf36a83 1330
mbed_official 113:b3775bf36a83 1331 #define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \
mbed_official 113:b3775bf36a83 1332 ((OUTPUT) == RTC_OUTPUT_ALARMA) || \
mbed_official 113:b3775bf36a83 1333 ((OUTPUT) == RTC_OUTPUT_ALARMB) || \
mbed_official 113:b3775bf36a83 1334 ((OUTPUT) == RTC_OUTPUT_WAKEUP))
mbed_official 113:b3775bf36a83 1335
mbed_official 113:b3775bf36a83 1336 #define IS_RTC_BKP(BKP) ((BKP) < (uint32_t) RTC_BKP_NUMBER)
mbed_official 113:b3775bf36a83 1337
mbed_official 113:b3775bf36a83 1338 #define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
mbed_official 113:b3775bf36a83 1339 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
mbed_official 113:b3775bf36a83 1340
mbed_official 113:b3775bf36a83 1341 #define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)(0xFFFFFFFF ^ RTC_TAMPCR_TAMPXE))) == 0x00) && ((TAMPER) != (uint32_t)RESET))
mbed_official 113:b3775bf36a83 1342
mbed_official 113:b3775bf36a83 1343 #define IS_RTC_TAMPER_INTERRUPT(INTERRUPT) ((((INTERRUPT) & (uint32_t)(0xFFFFFFFF ^ RTC_TAMPCR_TAMPXIE)) == 0x00) && ((INTERRUPT) != (uint32_t)RESET))
mbed_official 113:b3775bf36a83 1344
mbed_official 113:b3775bf36a83 1345 #define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT))
mbed_official 113:b3775bf36a83 1346
mbed_official 113:b3775bf36a83 1347 #define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
mbed_official 113:b3775bf36a83 1348 ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
mbed_official 113:b3775bf36a83 1349 ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) || \
mbed_official 113:b3775bf36a83 1350 ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))
mbed_official 113:b3775bf36a83 1351
mbed_official 113:b3775bf36a83 1352 #define IS_RTC_TAMPER_ERASE_MODE(MODE) (((MODE) == RTC_TAMPER_ERASE_BACKUP_ENABLE) || \
mbed_official 113:b3775bf36a83 1353 ((MODE) == RTC_TAMPER_ERASE_BACKUP_DISABLE))
mbed_official 113:b3775bf36a83 1354
mbed_official 113:b3775bf36a83 1355 #define IS_RTC_TAMPER_MASKFLAG_STATE(STATE) (((STATE) == RTC_TAMPERMASK_FLAG_ENABLE) || \
mbed_official 113:b3775bf36a83 1356 ((STATE) == RTC_TAMPERMASK_FLAG_DISABLE))
mbed_official 113:b3775bf36a83 1357
mbed_official 113:b3775bf36a83 1358 #define IS_RTC_TAMPER_FILTER(FILTER) (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \
mbed_official 113:b3775bf36a83 1359 ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \
mbed_official 113:b3775bf36a83 1360 ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \
mbed_official 113:b3775bf36a83 1361 ((FILTER) == RTC_TAMPERFILTER_8SAMPLE))
mbed_official 113:b3775bf36a83 1362
mbed_official 113:b3775bf36a83 1363 #define IS_RTC_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
mbed_official 113:b3775bf36a83 1364 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
mbed_official 113:b3775bf36a83 1365 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
mbed_official 113:b3775bf36a83 1366 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \
mbed_official 113:b3775bf36a83 1367 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \
mbed_official 113:b3775bf36a83 1368 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
mbed_official 113:b3775bf36a83 1369 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512) || \
mbed_official 113:b3775bf36a83 1370 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
mbed_official 113:b3775bf36a83 1371
mbed_official 113:b3775bf36a83 1372 #define IS_RTC_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
mbed_official 113:b3775bf36a83 1373 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
mbed_official 113:b3775bf36a83 1374 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
mbed_official 113:b3775bf36a83 1375 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
mbed_official 113:b3775bf36a83 1376
mbed_official 113:b3775bf36a83 1377 #define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
mbed_official 113:b3775bf36a83 1378 ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
mbed_official 113:b3775bf36a83 1379
mbed_official 113:b3775bf36a83 1380 #define IS_RTC_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \
mbed_official 113:b3775bf36a83 1381 ((STATE) == RTC_TAMPER_PULLUP_DISABLE))
mbed_official 113:b3775bf36a83 1382
mbed_official 113:b3775bf36a83 1383 #define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \
mbed_official 113:b3775bf36a83 1384 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8) || \
mbed_official 113:b3775bf36a83 1385 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4) || \
mbed_official 113:b3775bf36a83 1386 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2) || \
mbed_official 113:b3775bf36a83 1387 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
mbed_official 113:b3775bf36a83 1388 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
mbed_official 113:b3775bf36a83 1389
mbed_official 113:b3775bf36a83 1390 #define IS_RTC_WAKEUP_COUNTER(COUNTER) ((COUNTER) <= RTC_WUTR_WUT)
mbed_official 113:b3775bf36a83 1391
mbed_official 113:b3775bf36a83 1392 #define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
mbed_official 113:b3775bf36a83 1393 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
mbed_official 113:b3775bf36a83 1394 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
mbed_official 113:b3775bf36a83 1395
mbed_official 113:b3775bf36a83 1396 #define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
mbed_official 113:b3775bf36a83 1397 ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
mbed_official 113:b3775bf36a83 1398
mbed_official 113:b3775bf36a83 1399
mbed_official 113:b3775bf36a83 1400 /** @defgroup RTCEx_Smooth_calib_Minus_pulses_Definitions RTCEx Smooth calib Minus pulses Definitions
mbed_official 113:b3775bf36a83 1401 * @{
mbed_official 113:b3775bf36a83 1402 */
mbed_official 113:b3775bf36a83 1403 #define IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= RTC_CALR_CALM)
mbed_official 113:b3775bf36a83 1404 /**
mbed_official 113:b3775bf36a83 1405 * @}
mbed_official 113:b3775bf36a83 1406 */
mbed_official 113:b3775bf36a83 1407
mbed_official 113:b3775bf36a83 1408
mbed_official 113:b3775bf36a83 1409 #define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
mbed_official 113:b3775bf36a83 1410 ((SEL) == RTC_SHIFTADD1S_SET))
mbed_official 113:b3775bf36a83 1411
mbed_official 113:b3775bf36a83 1412
mbed_official 113:b3775bf36a83 1413
mbed_official 113:b3775bf36a83 1414 /** @defgroup RTCEx_Substract_Fraction_Of_Second_Value RTCEx Substract Fraction Of Second Value
mbed_official 113:b3775bf36a83 1415 * @{
mbed_official 113:b3775bf36a83 1416 */
mbed_official 113:b3775bf36a83 1417 #define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= RTC_SHIFTR_SUBFS)
mbed_official 113:b3775bf36a83 1418 /**
mbed_official 113:b3775bf36a83 1419 * @}
mbed_official 113:b3775bf36a83 1420 */
mbed_official 113:b3775bf36a83 1421 #define IS_RTC_CALIB_OUTPUT(OUTPUT) (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
mbed_official 113:b3775bf36a83 1422 ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
bogdanm 0:9b334a45a8ff 1423
bogdanm 0:9b334a45a8ff 1424 /**
bogdanm 0:9b334a45a8ff 1425 * @}
bogdanm 0:9b334a45a8ff 1426 */
bogdanm 0:9b334a45a8ff 1427
bogdanm 0:9b334a45a8ff 1428 /**
bogdanm 0:9b334a45a8ff 1429 * @}
bogdanm 0:9b334a45a8ff 1430 */
bogdanm 0:9b334a45a8ff 1431
mbed_official 113:b3775bf36a83 1432
mbed_official 113:b3775bf36a83 1433
bogdanm 0:9b334a45a8ff 1434 /**
bogdanm 0:9b334a45a8ff 1435 * @}
bogdanm 0:9b334a45a8ff 1436 */
bogdanm 0:9b334a45a8ff 1437
bogdanm 0:9b334a45a8ff 1438 /**
bogdanm 0:9b334a45a8ff 1439 * @}
bogdanm 0:9b334a45a8ff 1440 */
bogdanm 0:9b334a45a8ff 1441
bogdanm 0:9b334a45a8ff 1442 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 1443 }
bogdanm 0:9b334a45a8ff 1444 #endif
bogdanm 0:9b334a45a8ff 1445
bogdanm 0:9b334a45a8ff 1446 #endif /* __STM32L0xx_HAL_RTC_EX_H */
bogdanm 0:9b334a45a8ff 1447
bogdanm 0:9b334a45a8ff 1448 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
bogdanm 0:9b334a45a8ff 1449