added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
144:ef7eb2e8f9f7
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file stm32f2xx_hal_rtc.h
<> 144:ef7eb2e8f9f7 4 * @author MCD Application Team
<> 144:ef7eb2e8f9f7 5 * @version V1.1.3
<> 144:ef7eb2e8f9f7 6 * @date 29-June-2016
<> 144:ef7eb2e8f9f7 7 * @brief Header file of RTC HAL module.
<> 144:ef7eb2e8f9f7 8 ******************************************************************************
<> 144:ef7eb2e8f9f7 9 * @attention
<> 144:ef7eb2e8f9f7 10 *
<> 144:ef7eb2e8f9f7 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
<> 144:ef7eb2e8f9f7 12 *
<> 144:ef7eb2e8f9f7 13 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 14 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 15 * 1. Redistributions of source code must retain the above copyright notice,
<> 144:ef7eb2e8f9f7 16 * this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 144:ef7eb2e8f9f7 18 * this list of conditions and the following disclaimer in the documentation
<> 144:ef7eb2e8f9f7 19 * and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 144:ef7eb2e8f9f7 21 * may be used to endorse or promote products derived from this software
<> 144:ef7eb2e8f9f7 22 * without specific prior written permission.
<> 144:ef7eb2e8f9f7 23 *
<> 144:ef7eb2e8f9f7 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 144:ef7eb2e8f9f7 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 144:ef7eb2e8f9f7 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 144:ef7eb2e8f9f7 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 144:ef7eb2e8f9f7 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 144:ef7eb2e8f9f7 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 144:ef7eb2e8f9f7 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 34 *
<> 144:ef7eb2e8f9f7 35 ******************************************************************************
<> 144:ef7eb2e8f9f7 36 */
<> 144:ef7eb2e8f9f7 37
<> 144:ef7eb2e8f9f7 38 /* Define to prevent recursive inclusion -------------------------------------*/
<> 144:ef7eb2e8f9f7 39 #ifndef __STM32F2xx_HAL_RTC_H
<> 144:ef7eb2e8f9f7 40 #define __STM32F2xx_HAL_RTC_H
<> 144:ef7eb2e8f9f7 41
<> 144:ef7eb2e8f9f7 42 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 43 extern "C" {
<> 144:ef7eb2e8f9f7 44 #endif
<> 144:ef7eb2e8f9f7 45
<> 144:ef7eb2e8f9f7 46 /* Includes ------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 47 #include "stm32f2xx_hal_def.h"
<> 144:ef7eb2e8f9f7 48
<> 144:ef7eb2e8f9f7 49 /** @addtogroup STM32F2xx_HAL_Driver
<> 144:ef7eb2e8f9f7 50 * @{
<> 144:ef7eb2e8f9f7 51 */
<> 144:ef7eb2e8f9f7 52
<> 144:ef7eb2e8f9f7 53 /** @addtogroup RTC
<> 144:ef7eb2e8f9f7 54 * @{
<> 144:ef7eb2e8f9f7 55 */
<> 144:ef7eb2e8f9f7 56
<> 144:ef7eb2e8f9f7 57 /* Exported types ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 58 /** @defgroup RTC_Exported_Types RTC Exported Types
<> 144:ef7eb2e8f9f7 59 * @{
<> 144:ef7eb2e8f9f7 60 */
<> 144:ef7eb2e8f9f7 61
<> 144:ef7eb2e8f9f7 62 /**
<> 144:ef7eb2e8f9f7 63 * @brief HAL State structures definition
<> 144:ef7eb2e8f9f7 64 */
<> 144:ef7eb2e8f9f7 65 typedef enum
<> 144:ef7eb2e8f9f7 66 {
<> 144:ef7eb2e8f9f7 67 HAL_RTC_STATE_RESET = 0x00U, /*!< RTC not yet initialized or disabled */
<> 144:ef7eb2e8f9f7 68 HAL_RTC_STATE_READY = 0x01U, /*!< RTC initialized and ready for use */
<> 144:ef7eb2e8f9f7 69 HAL_RTC_STATE_BUSY = 0x02U, /*!< RTC process is ongoing */
<> 144:ef7eb2e8f9f7 70 HAL_RTC_STATE_TIMEOUT = 0x03U, /*!< RTC timeout state */
<> 144:ef7eb2e8f9f7 71 HAL_RTC_STATE_ERROR = 0x04U /*!< RTC error state */
<> 144:ef7eb2e8f9f7 72
<> 144:ef7eb2e8f9f7 73 }HAL_RTCStateTypeDef;
<> 144:ef7eb2e8f9f7 74
<> 144:ef7eb2e8f9f7 75 /**
<> 144:ef7eb2e8f9f7 76 * @brief RTC Configuration Structure definition
<> 144:ef7eb2e8f9f7 77 */
<> 144:ef7eb2e8f9f7 78 typedef struct
<> 144:ef7eb2e8f9f7 79 {
<> 144:ef7eb2e8f9f7 80 uint32_t HourFormat; /*!< Specifies the RTC Hour Format.
<> 144:ef7eb2e8f9f7 81 This parameter can be a value of @ref RTC_Hour_Formats */
<> 144:ef7eb2e8f9f7 82
<> 144:ef7eb2e8f9f7 83 uint32_t AsynchPrediv; /*!< Specifies the RTC Asynchronous Predivider value.
<> 144:ef7eb2e8f9f7 84 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F */
<> 144:ef7eb2e8f9f7 85
<> 144:ef7eb2e8f9f7 86 uint32_t SynchPrediv; /*!< Specifies the RTC Synchronous Predivider value.
<> 144:ef7eb2e8f9f7 87 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x1FFF */
<> 144:ef7eb2e8f9f7 88
<> 144:ef7eb2e8f9f7 89 uint32_t OutPut; /*!< Specifies which signal will be routed to the RTC output.
<> 144:ef7eb2e8f9f7 90 This parameter can be a value of @ref RTC_Output_selection_Definitions */
<> 144:ef7eb2e8f9f7 91
<> 144:ef7eb2e8f9f7 92 uint32_t OutPutPolarity; /*!< Specifies the polarity of the output signal.
<> 144:ef7eb2e8f9f7 93 This parameter can be a value of @ref RTC_Output_Polarity_Definitions */
<> 144:ef7eb2e8f9f7 94
<> 144:ef7eb2e8f9f7 95 uint32_t OutPutType; /*!< Specifies the RTC Output Pin mode.
<> 144:ef7eb2e8f9f7 96 This parameter can be a value of @ref RTC_Output_Type_ALARM_OUT */
<> 144:ef7eb2e8f9f7 97 }RTC_InitTypeDef;
<> 144:ef7eb2e8f9f7 98
<> 144:ef7eb2e8f9f7 99 /**
<> 144:ef7eb2e8f9f7 100 * @brief RTC Time structure definition
<> 144:ef7eb2e8f9f7 101 */
<> 144:ef7eb2e8f9f7 102 typedef struct
<> 144:ef7eb2e8f9f7 103 {
<> 144:ef7eb2e8f9f7 104 uint8_t Hours; /*!< Specifies the RTC Time Hour.
<> 144:ef7eb2e8f9f7 105 This parameter must be a number between Min_Data = 0 and Max_Data = 12 if the RTC_HourFormat_12 is selected.
<> 144:ef7eb2e8f9f7 106 This parameter must be a number between Min_Data = 0 and Max_Data = 23 if the RTC_HourFormat_24 is selected */
<> 144:ef7eb2e8f9f7 107
<> 144:ef7eb2e8f9f7 108 uint8_t Minutes; /*!< Specifies the RTC Time Minutes.
<> 144:ef7eb2e8f9f7 109 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
<> 144:ef7eb2e8f9f7 110
<> 144:ef7eb2e8f9f7 111 uint8_t Seconds; /*!< Specifies the RTC Time Seconds.
<> 144:ef7eb2e8f9f7 112 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
<> 144:ef7eb2e8f9f7 113
<> 144:ef7eb2e8f9f7 114 uint8_t TimeFormat; /*!< Specifies the RTC AM/PM Time.
<> 144:ef7eb2e8f9f7 115 This parameter can be a value of @ref RTC_AM_PM_Definitions */
<> 144:ef7eb2e8f9f7 116
<> 144:ef7eb2e8f9f7 117 uint32_t DayLightSaving; /*!< Specifies DayLight Save Operation.
<> 144:ef7eb2e8f9f7 118 This parameter can be a value of @ref RTC_DayLightSaving_Definitions */
<> 144:ef7eb2e8f9f7 119
<> 144:ef7eb2e8f9f7 120 uint32_t StoreOperation; /*!< Specifies RTC_StoreOperation value to be written in the BCK bit
<> 144:ef7eb2e8f9f7 121 in CR register to store the operation.
<> 144:ef7eb2e8f9f7 122 This parameter can be a value of @ref RTC_StoreOperation_Definitions */
<> 144:ef7eb2e8f9f7 123 }RTC_TimeTypeDef;
<> 144:ef7eb2e8f9f7 124
<> 144:ef7eb2e8f9f7 125 /**
<> 144:ef7eb2e8f9f7 126 * @brief RTC Date structure definition
<> 144:ef7eb2e8f9f7 127 */
<> 144:ef7eb2e8f9f7 128 typedef struct
<> 144:ef7eb2e8f9f7 129 {
<> 144:ef7eb2e8f9f7 130 uint8_t WeekDay; /*!< Specifies the RTC Date WeekDay.
<> 144:ef7eb2e8f9f7 131 This parameter can be a value of @ref RTC_WeekDay_Definitions */
<> 144:ef7eb2e8f9f7 132
<> 144:ef7eb2e8f9f7 133 uint8_t Month; /*!< Specifies the RTC Date Month (in BCD format).
<> 144:ef7eb2e8f9f7 134 This parameter can be a value of @ref RTC_Month_Date_Definitions */
<> 144:ef7eb2e8f9f7 135
<> 144:ef7eb2e8f9f7 136 uint8_t Date; /*!< Specifies the RTC Date.
<> 144:ef7eb2e8f9f7 137 This parameter must be a number between Min_Data = 1 and Max_Data = 31 */
<> 144:ef7eb2e8f9f7 138
<> 144:ef7eb2e8f9f7 139 uint8_t Year; /*!< Specifies the RTC Date Year.
<> 144:ef7eb2e8f9f7 140 This parameter must be a number between Min_Data = 0 and Max_Data = 99 */
<> 144:ef7eb2e8f9f7 141
<> 144:ef7eb2e8f9f7 142 }RTC_DateTypeDef;
<> 144:ef7eb2e8f9f7 143
<> 144:ef7eb2e8f9f7 144 /**
<> 144:ef7eb2e8f9f7 145 * @brief RTC Alarm structure definition
<> 144:ef7eb2e8f9f7 146 */
<> 144:ef7eb2e8f9f7 147 typedef struct
<> 144:ef7eb2e8f9f7 148 {
<> 144:ef7eb2e8f9f7 149 RTC_TimeTypeDef AlarmTime; /*!< Specifies the RTC Alarm Time members */
<> 144:ef7eb2e8f9f7 150
<> 144:ef7eb2e8f9f7 151 uint32_t AlarmMask; /*!< Specifies the RTC Alarm Masks.
<> 144:ef7eb2e8f9f7 152 This parameter can be a value of @ref RTC_AlarmMask_Definitions */
<> 144:ef7eb2e8f9f7 153
<> 144:ef7eb2e8f9f7 154 uint32_t AlarmDateWeekDaySel; /*!< Specifies the RTC Alarm is on Date or WeekDay.
<> 144:ef7eb2e8f9f7 155 This parameter can be a value of @ref RTC_AlarmDateWeekDay_Definitions */
<> 144:ef7eb2e8f9f7 156
<> 144:ef7eb2e8f9f7 157 uint8_t AlarmDateWeekDay; /*!< Specifies the RTC Alarm Date/WeekDay.
<> 144:ef7eb2e8f9f7 158 If the Alarm Date is selected, this parameter must be set to a value in the 1-31 range.
<> 144:ef7eb2e8f9f7 159 If the Alarm WeekDay is selected, this parameter can be a value of @ref RTC_WeekDay_Definitions */
<> 144:ef7eb2e8f9f7 160
<> 144:ef7eb2e8f9f7 161 uint32_t Alarm; /*!< Specifies the alarm .
<> 144:ef7eb2e8f9f7 162 This parameter can be a value of @ref RTC_Alarms_Definitions */
<> 144:ef7eb2e8f9f7 163 }RTC_AlarmTypeDef;
<> 144:ef7eb2e8f9f7 164
<> 144:ef7eb2e8f9f7 165 /**
<> 144:ef7eb2e8f9f7 166 * @brief RTC Handle Structure definition
<> 144:ef7eb2e8f9f7 167 */
<> 144:ef7eb2e8f9f7 168 typedef struct
<> 144:ef7eb2e8f9f7 169 {
<> 144:ef7eb2e8f9f7 170 RTC_TypeDef *Instance; /*!< Register base address */
<> 144:ef7eb2e8f9f7 171
<> 144:ef7eb2e8f9f7 172 RTC_InitTypeDef Init; /*!< RTC required parameters */
<> 144:ef7eb2e8f9f7 173
<> 144:ef7eb2e8f9f7 174 HAL_LockTypeDef Lock; /*!< RTC locking object */
<> 144:ef7eb2e8f9f7 175
<> 144:ef7eb2e8f9f7 176 __IO HAL_RTCStateTypeDef State; /*!< Time communication state */
<> 144:ef7eb2e8f9f7 177
<> 144:ef7eb2e8f9f7 178 }RTC_HandleTypeDef;
<> 144:ef7eb2e8f9f7 179
<> 144:ef7eb2e8f9f7 180 /**
<> 144:ef7eb2e8f9f7 181 * @}
<> 144:ef7eb2e8f9f7 182 */
<> 144:ef7eb2e8f9f7 183
<> 144:ef7eb2e8f9f7 184 /* Exported constants --------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 185 /** @defgroup RTC_Exported_Constants RTC Exported Constants
<> 144:ef7eb2e8f9f7 186 * @{
<> 144:ef7eb2e8f9f7 187 */
<> 144:ef7eb2e8f9f7 188
<> 144:ef7eb2e8f9f7 189 /** @defgroup RTC_Hour_Formats RTC Hour Formats
<> 144:ef7eb2e8f9f7 190 * @{
<> 144:ef7eb2e8f9f7 191 */
<> 144:ef7eb2e8f9f7 192 #define RTC_HOURFORMAT_24 ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 193 #define RTC_HOURFORMAT_12 ((uint32_t)0x00000040U)
<> 144:ef7eb2e8f9f7 194 /**
<> 144:ef7eb2e8f9f7 195 * @}
<> 144:ef7eb2e8f9f7 196 */
<> 144:ef7eb2e8f9f7 197
<> 144:ef7eb2e8f9f7 198 /** @defgroup RTC_Output_selection_Definitions RTC Output Selection Definitions
<> 144:ef7eb2e8f9f7 199 * @{
<> 144:ef7eb2e8f9f7 200 */
<> 144:ef7eb2e8f9f7 201 #define RTC_OUTPUT_DISABLE ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 202 #define RTC_OUTPUT_ALARMA ((uint32_t)0x00200000U)
<> 144:ef7eb2e8f9f7 203 #define RTC_OUTPUT_ALARMB ((uint32_t)0x00400000U)
<> 144:ef7eb2e8f9f7 204 #define RTC_OUTPUT_WAKEUP ((uint32_t)0x00600000U)
<> 144:ef7eb2e8f9f7 205 /**
<> 144:ef7eb2e8f9f7 206 * @}
<> 144:ef7eb2e8f9f7 207 */
<> 144:ef7eb2e8f9f7 208
<> 144:ef7eb2e8f9f7 209 /** @defgroup RTC_Output_Polarity_Definitions RTC Output Polarity Definitions
<> 144:ef7eb2e8f9f7 210 * @{
<> 144:ef7eb2e8f9f7 211 */
<> 144:ef7eb2e8f9f7 212 #define RTC_OUTPUT_POLARITY_HIGH ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 213 #define RTC_OUTPUT_POLARITY_LOW ((uint32_t)0x00100000U)
<> 144:ef7eb2e8f9f7 214 /**
<> 144:ef7eb2e8f9f7 215 * @}
<> 144:ef7eb2e8f9f7 216 */
<> 144:ef7eb2e8f9f7 217
<> 144:ef7eb2e8f9f7 218 /** @defgroup RTC_Output_Type_ALARM_OUT RTC Output Type ALARM OUT
<> 144:ef7eb2e8f9f7 219 * @{
<> 144:ef7eb2e8f9f7 220 */
<> 144:ef7eb2e8f9f7 221 #define RTC_OUTPUT_TYPE_OPENDRAIN ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 222 #define RTC_OUTPUT_TYPE_PUSHPULL ((uint32_t)0x00040000U)
<> 144:ef7eb2e8f9f7 223 /**
<> 144:ef7eb2e8f9f7 224 * @}
<> 144:ef7eb2e8f9f7 225 */
<> 144:ef7eb2e8f9f7 226
<> 144:ef7eb2e8f9f7 227 /** @defgroup RTC_AM_PM_Definitions RTC AM PM Definitions
<> 144:ef7eb2e8f9f7 228 * @{
<> 144:ef7eb2e8f9f7 229 */
<> 144:ef7eb2e8f9f7 230 #define RTC_HOURFORMAT12_AM ((uint8_t)0x00U)
<> 144:ef7eb2e8f9f7 231 #define RTC_HOURFORMAT12_PM ((uint8_t)0x40U)
<> 144:ef7eb2e8f9f7 232 /**
<> 144:ef7eb2e8f9f7 233 * @}
<> 144:ef7eb2e8f9f7 234 */
<> 144:ef7eb2e8f9f7 235
<> 144:ef7eb2e8f9f7 236 /** @defgroup RTC_DayLightSaving_Definitions RTC DayLight Saving Definitions
<> 144:ef7eb2e8f9f7 237 * @{
<> 144:ef7eb2e8f9f7 238 */
<> 144:ef7eb2e8f9f7 239 #define RTC_DAYLIGHTSAVING_SUB1H ((uint32_t)0x00020000U)
<> 144:ef7eb2e8f9f7 240 #define RTC_DAYLIGHTSAVING_ADD1H ((uint32_t)0x00010000U)
<> 144:ef7eb2e8f9f7 241 #define RTC_DAYLIGHTSAVING_NONE ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 242 /**
<> 144:ef7eb2e8f9f7 243 * @}
<> 144:ef7eb2e8f9f7 244 */
<> 144:ef7eb2e8f9f7 245
<> 144:ef7eb2e8f9f7 246 /** @defgroup RTC_StoreOperation_Definitions RTC Store Operation Definitions
<> 144:ef7eb2e8f9f7 247 * @{
<> 144:ef7eb2e8f9f7 248 */
<> 144:ef7eb2e8f9f7 249 #define RTC_STOREOPERATION_RESET ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 250 #define RTC_STOREOPERATION_SET ((uint32_t)0x00040000U)
<> 144:ef7eb2e8f9f7 251 /**
<> 144:ef7eb2e8f9f7 252 * @}
<> 144:ef7eb2e8f9f7 253 */
<> 144:ef7eb2e8f9f7 254
<> 144:ef7eb2e8f9f7 255 /** @defgroup RTC_Input_parameter_format_definitions RTC Input Parameter Format Definitions
<> 144:ef7eb2e8f9f7 256 * @{
<> 144:ef7eb2e8f9f7 257 */
<> 144:ef7eb2e8f9f7 258 #define RTC_FORMAT_BIN ((uint32_t)0x000000000U)
<> 144:ef7eb2e8f9f7 259 #define RTC_FORMAT_BCD ((uint32_t)0x000000001U)
<> 144:ef7eb2e8f9f7 260 /**
<> 144:ef7eb2e8f9f7 261 * @}
<> 144:ef7eb2e8f9f7 262 */
<> 144:ef7eb2e8f9f7 263
<> 144:ef7eb2e8f9f7 264 /** @defgroup RTC_Month_Date_Definitions RTC Month Date Definitions
<> 144:ef7eb2e8f9f7 265 * @{
<> 144:ef7eb2e8f9f7 266 */
<> 144:ef7eb2e8f9f7 267 /* Coded in BCD format */
<> 144:ef7eb2e8f9f7 268 #define RTC_MONTH_JANUARY ((uint8_t)0x01U)
<> 144:ef7eb2e8f9f7 269 #define RTC_MONTH_FEBRUARY ((uint8_t)0x02U)
<> 144:ef7eb2e8f9f7 270 #define RTC_MONTH_MARCH ((uint8_t)0x03U)
<> 144:ef7eb2e8f9f7 271 #define RTC_MONTH_APRIL ((uint8_t)0x04U)
<> 144:ef7eb2e8f9f7 272 #define RTC_MONTH_MAY ((uint8_t)0x05U)
<> 144:ef7eb2e8f9f7 273 #define RTC_MONTH_JUNE ((uint8_t)0x06U)
<> 144:ef7eb2e8f9f7 274 #define RTC_MONTH_JULY ((uint8_t)0x07U)
<> 144:ef7eb2e8f9f7 275 #define RTC_MONTH_AUGUST ((uint8_t)0x08U)
<> 144:ef7eb2e8f9f7 276 #define RTC_MONTH_SEPTEMBER ((uint8_t)0x09U)
<> 144:ef7eb2e8f9f7 277 #define RTC_MONTH_OCTOBER ((uint8_t)0x10U)
<> 144:ef7eb2e8f9f7 278 #define RTC_MONTH_NOVEMBER ((uint8_t)0x11U)
<> 144:ef7eb2e8f9f7 279 #define RTC_MONTH_DECEMBER ((uint8_t)0x12U)
<> 144:ef7eb2e8f9f7 280 /**
<> 144:ef7eb2e8f9f7 281 * @}
<> 144:ef7eb2e8f9f7 282 */
<> 144:ef7eb2e8f9f7 283
<> 144:ef7eb2e8f9f7 284 /** @defgroup RTC_WeekDay_Definitions RTC WeekDay Definitions
<> 144:ef7eb2e8f9f7 285 * @{
<> 144:ef7eb2e8f9f7 286 */
<> 144:ef7eb2e8f9f7 287 #define RTC_WEEKDAY_MONDAY ((uint8_t)0x01U)
<> 144:ef7eb2e8f9f7 288 #define RTC_WEEKDAY_TUESDAY ((uint8_t)0x02U)
<> 144:ef7eb2e8f9f7 289 #define RTC_WEEKDAY_WEDNESDAY ((uint8_t)0x03U)
<> 144:ef7eb2e8f9f7 290 #define RTC_WEEKDAY_THURSDAY ((uint8_t)0x04U)
<> 144:ef7eb2e8f9f7 291 #define RTC_WEEKDAY_FRIDAY ((uint8_t)0x05U)
<> 144:ef7eb2e8f9f7 292 #define RTC_WEEKDAY_SATURDAY ((uint8_t)0x06U)
<> 144:ef7eb2e8f9f7 293 #define RTC_WEEKDAY_SUNDAY ((uint8_t)0x07U)
<> 144:ef7eb2e8f9f7 294 /**
<> 144:ef7eb2e8f9f7 295 * @}
<> 144:ef7eb2e8f9f7 296 */
<> 144:ef7eb2e8f9f7 297
<> 144:ef7eb2e8f9f7 298 /** @defgroup RTC_AlarmDateWeekDay_Definitions RTC Alarm Date WeekDay Definitions
<> 144:ef7eb2e8f9f7 299 * @{
<> 144:ef7eb2e8f9f7 300 */
<> 144:ef7eb2e8f9f7 301 #define RTC_ALARMDATEWEEKDAYSEL_DATE ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 302 #define RTC_ALARMDATEWEEKDAYSEL_WEEKDAY ((uint32_t)0x40000000U)
<> 144:ef7eb2e8f9f7 303 /**
<> 144:ef7eb2e8f9f7 304 * @}
<> 144:ef7eb2e8f9f7 305 */
<> 144:ef7eb2e8f9f7 306
<> 144:ef7eb2e8f9f7 307 /** @defgroup RTC_AlarmMask_Definitions RTC Alarm Mask Definitions
<> 144:ef7eb2e8f9f7 308 * @{
<> 144:ef7eb2e8f9f7 309 */
<> 144:ef7eb2e8f9f7 310 #define RTC_ALARMMASK_NONE ((uint32_t)0x00000000U)
<> 144:ef7eb2e8f9f7 311 #define RTC_ALARMMASK_DATEWEEKDAY RTC_ALRMAR_MSK4
<> 144:ef7eb2e8f9f7 312 #define RTC_ALARMMASK_HOURS RTC_ALRMAR_MSK3
<> 144:ef7eb2e8f9f7 313 #define RTC_ALARMMASK_MINUTES RTC_ALRMAR_MSK2
<> 144:ef7eb2e8f9f7 314 #define RTC_ALARMMASK_SECONDS RTC_ALRMAR_MSK1
<> 144:ef7eb2e8f9f7 315 #define RTC_ALARMMASK_ALL ((uint32_t)0x80808080U)
<> 144:ef7eb2e8f9f7 316 /**
<> 144:ef7eb2e8f9f7 317 * @}
<> 144:ef7eb2e8f9f7 318 */
<> 144:ef7eb2e8f9f7 319
<> 144:ef7eb2e8f9f7 320 /** @defgroup RTC_Alarms_Definitions RTC Alarms Definitions
<> 144:ef7eb2e8f9f7 321 * @{
<> 144:ef7eb2e8f9f7 322 */
<> 144:ef7eb2e8f9f7 323 #define RTC_ALARM_A RTC_CR_ALRAE
<> 144:ef7eb2e8f9f7 324 #define RTC_ALARM_B RTC_CR_ALRBE
<> 144:ef7eb2e8f9f7 325 /**
<> 144:ef7eb2e8f9f7 326 * @}
<> 144:ef7eb2e8f9f7 327 */
<> 144:ef7eb2e8f9f7 328
<> 144:ef7eb2e8f9f7 329 /** @defgroup RTC_Interrupts_Definitions RTC Interrupts Definitions
<> 144:ef7eb2e8f9f7 330 * @{
<> 144:ef7eb2e8f9f7 331 */
<> 144:ef7eb2e8f9f7 332 #define RTC_IT_TS ((uint32_t)0x00008000U)
<> 144:ef7eb2e8f9f7 333 #define RTC_IT_WUT ((uint32_t)0x00004000U)
<> 144:ef7eb2e8f9f7 334 #define RTC_IT_ALRB ((uint32_t)0x00002000U)
<> 144:ef7eb2e8f9f7 335 #define RTC_IT_ALRA ((uint32_t)0x00001000U)
<> 144:ef7eb2e8f9f7 336 #define RTC_IT_TAMP ((uint32_t)0x00000004U) /* Used only to Enable the Tamper Interrupt */
<> 144:ef7eb2e8f9f7 337 #define RTC_IT_TAMP1 ((uint32_t)0x00020000U)
<> 144:ef7eb2e8f9f7 338 /**
<> 144:ef7eb2e8f9f7 339 * @}
<> 144:ef7eb2e8f9f7 340 */
<> 144:ef7eb2e8f9f7 341
<> 144:ef7eb2e8f9f7 342 /** @defgroup RTC_Flags_Definitions RTC Flags Definitions
<> 144:ef7eb2e8f9f7 343 * @{
<> 144:ef7eb2e8f9f7 344 */
<> 144:ef7eb2e8f9f7 345 #define RTC_FLAG_TAMP1F ((uint32_t)0x00002000U)
<> 144:ef7eb2e8f9f7 346 #define RTC_FLAG_TSOVF ((uint32_t)0x00001000U)
<> 144:ef7eb2e8f9f7 347 #define RTC_FLAG_TSF ((uint32_t)0x00000800U)
<> 144:ef7eb2e8f9f7 348 #define RTC_FLAG_WUTF ((uint32_t)0x00000400U)
<> 144:ef7eb2e8f9f7 349 #define RTC_FLAG_ALRBF ((uint32_t)0x00000200U)
<> 144:ef7eb2e8f9f7 350 #define RTC_FLAG_ALRAF ((uint32_t)0x00000100U)
<> 144:ef7eb2e8f9f7 351 #define RTC_FLAG_INITF ((uint32_t)0x00000040U)
<> 144:ef7eb2e8f9f7 352 #define RTC_FLAG_RSF ((uint32_t)0x00000020U)
<> 144:ef7eb2e8f9f7 353 #define RTC_FLAG_INITS ((uint32_t)0x00000010U)
<> 144:ef7eb2e8f9f7 354 #define RTC_FLAG_WUTWF ((uint32_t)0x00000004U)
<> 144:ef7eb2e8f9f7 355 #define RTC_FLAG_ALRBWF ((uint32_t)0x00000002U)
<> 144:ef7eb2e8f9f7 356 #define RTC_FLAG_ALRAWF ((uint32_t)0x00000001U)
<> 144:ef7eb2e8f9f7 357 /**
<> 144:ef7eb2e8f9f7 358 * @}
<> 144:ef7eb2e8f9f7 359 */
<> 144:ef7eb2e8f9f7 360
<> 144:ef7eb2e8f9f7 361 /**
<> 144:ef7eb2e8f9f7 362 * @}
<> 144:ef7eb2e8f9f7 363 */
<> 144:ef7eb2e8f9f7 364
<> 144:ef7eb2e8f9f7 365 /* Exported macro ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 366 /** @defgroup RTC_Exported_Macros RTC Exported Macros
<> 144:ef7eb2e8f9f7 367 * @{
<> 144:ef7eb2e8f9f7 368 */
<> 144:ef7eb2e8f9f7 369
<> 144:ef7eb2e8f9f7 370 /** @brief Reset RTC handle state
<> 144:ef7eb2e8f9f7 371 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 372 * @retval None
<> 144:ef7eb2e8f9f7 373 */
<> 144:ef7eb2e8f9f7 374 #define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_RTC_STATE_RESET)
<> 144:ef7eb2e8f9f7 375
<> 144:ef7eb2e8f9f7 376 /**
<> 144:ef7eb2e8f9f7 377 * @brief Disable the write protection for RTC registers.
<> 144:ef7eb2e8f9f7 378 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 379 * @retval None
<> 144:ef7eb2e8f9f7 380 */
<> 144:ef7eb2e8f9f7 381 #define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__) \
<> 144:ef7eb2e8f9f7 382 do{ \
<> 144:ef7eb2e8f9f7 383 (__HANDLE__)->Instance->WPR = 0xCAU; \
<> 144:ef7eb2e8f9f7 384 (__HANDLE__)->Instance->WPR = 0x53U; \
<> 144:ef7eb2e8f9f7 385 } while(0)
<> 144:ef7eb2e8f9f7 386
<> 144:ef7eb2e8f9f7 387 /**
<> 144:ef7eb2e8f9f7 388 * @brief Enable the write protection for RTC registers.
<> 144:ef7eb2e8f9f7 389 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 390 * @retval None
<> 144:ef7eb2e8f9f7 391 */
<> 144:ef7eb2e8f9f7 392 #define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__) \
<> 144:ef7eb2e8f9f7 393 do{ \
<> 144:ef7eb2e8f9f7 394 (__HANDLE__)->Instance->WPR = 0xFFU; \
<> 144:ef7eb2e8f9f7 395 } while(0)
<> 144:ef7eb2e8f9f7 396
<> 144:ef7eb2e8f9f7 397 /**
<> 144:ef7eb2e8f9f7 398 * @brief Enable the RTC ALARMA peripheral.
<> 144:ef7eb2e8f9f7 399 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 400 * @retval None
<> 144:ef7eb2e8f9f7 401 */
<> 144:ef7eb2e8f9f7 402 #define __HAL_RTC_ALARMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRAE))
<> 144:ef7eb2e8f9f7 403
<> 144:ef7eb2e8f9f7 404 /**
<> 144:ef7eb2e8f9f7 405 * @brief Disable the RTC ALARMA peripheral.
<> 144:ef7eb2e8f9f7 406 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 407 * @retval None
<> 144:ef7eb2e8f9f7 408 */
<> 144:ef7eb2e8f9f7 409 #define __HAL_RTC_ALARMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRAE))
<> 144:ef7eb2e8f9f7 410
<> 144:ef7eb2e8f9f7 411 /**
<> 144:ef7eb2e8f9f7 412 * @brief Enable the RTC ALARMB peripheral.
<> 144:ef7eb2e8f9f7 413 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 414 * @retval None
<> 144:ef7eb2e8f9f7 415 */
<> 144:ef7eb2e8f9f7 416 #define __HAL_RTC_ALARMB_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRBE))
<> 144:ef7eb2e8f9f7 417
<> 144:ef7eb2e8f9f7 418 /**
<> 144:ef7eb2e8f9f7 419 * @brief Disable the RTC ALARMB peripheral.
<> 144:ef7eb2e8f9f7 420 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 421 * @retval None
<> 144:ef7eb2e8f9f7 422 */
<> 144:ef7eb2e8f9f7 423 #define __HAL_RTC_ALARMB_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRBE))
<> 144:ef7eb2e8f9f7 424
<> 144:ef7eb2e8f9f7 425 /**
<> 144:ef7eb2e8f9f7 426 * @brief Enable the RTC Alarm interrupt.
<> 144:ef7eb2e8f9f7 427 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 428 * @param __INTERRUPT__: specifies the RTC Alarm interrupt sources to be enabled or disabled.
<> 144:ef7eb2e8f9f7 429 * This parameter can be any combination of the following values:
<> 144:ef7eb2e8f9f7 430 * @arg RTC_IT_ALRA: Alarm A interrupt
<> 144:ef7eb2e8f9f7 431 * @arg RTC_IT_ALRB: Alarm B interrupt
<> 144:ef7eb2e8f9f7 432 * @retval None
<> 144:ef7eb2e8f9f7 433 */
<> 144:ef7eb2e8f9f7 434 #define __HAL_RTC_ALARM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
<> 144:ef7eb2e8f9f7 435
<> 144:ef7eb2e8f9f7 436 /**
<> 144:ef7eb2e8f9f7 437 * @brief Disable the RTC Alarm interrupt.
<> 144:ef7eb2e8f9f7 438 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 439 * @param __INTERRUPT__: specifies the RTC Alarm interrupt sources to be enabled or disabled.
<> 144:ef7eb2e8f9f7 440 * This parameter can be any combination of the following values:
<> 144:ef7eb2e8f9f7 441 * @arg RTC_IT_ALRA: Alarm A interrupt
<> 144:ef7eb2e8f9f7 442 * @arg RTC_IT_ALRB: Alarm B interrupt
<> 144:ef7eb2e8f9f7 443 * @retval None
<> 144:ef7eb2e8f9f7 444 */
<> 144:ef7eb2e8f9f7 445 #define __HAL_RTC_ALARM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
<> 144:ef7eb2e8f9f7 446
<> 144:ef7eb2e8f9f7 447 /**
<> 144:ef7eb2e8f9f7 448 * @brief Check whether the specified RTC Alarm interrupt has occurred or not.
<> 144:ef7eb2e8f9f7 449 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 450 * @param __INTERRUPT__: specifies the RTC Alarm interrupt to check.
<> 144:ef7eb2e8f9f7 451 * This parameter can be:
<> 144:ef7eb2e8f9f7 452 * @arg RTC_IT_ALRA: Alarm A interrupt
<> 144:ef7eb2e8f9f7 453 * @arg RTC_IT_ALRB: Alarm B interrupt
<> 144:ef7eb2e8f9f7 454 * @retval None
<> 144:ef7eb2e8f9f7 455 */
<> 144:ef7eb2e8f9f7 456 #define __HAL_RTC_ALARM_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR)& ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
<> 144:ef7eb2e8f9f7 457
<> 144:ef7eb2e8f9f7 458 /**
<> 144:ef7eb2e8f9f7 459 * @brief Get the selected RTC Alarm's flag status.
<> 144:ef7eb2e8f9f7 460 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 461 * @param __FLAG__: specifies the RTC Alarm Flag to check.
<> 144:ef7eb2e8f9f7 462 * This parameter can be:
<> 144:ef7eb2e8f9f7 463 * @arg RTC_FLAG_ALRAF
<> 144:ef7eb2e8f9f7 464 * @arg RTC_FLAG_ALRBF
<> 144:ef7eb2e8f9f7 465 * @arg RTC_FLAG_ALRAWF
<> 144:ef7eb2e8f9f7 466 * @arg RTC_FLAG_ALRBWF
<> 144:ef7eb2e8f9f7 467 * @retval None
<> 144:ef7eb2e8f9f7 468 */
<> 144:ef7eb2e8f9f7 469 #define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
<> 144:ef7eb2e8f9f7 470
<> 144:ef7eb2e8f9f7 471 /**
<> 144:ef7eb2e8f9f7 472 * @brief Clear the RTC Alarm's pending flags.
<> 144:ef7eb2e8f9f7 473 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 474 * @param __FLAG__: specifies the RTC Alarm Flag sources to be enabled or disabled.
<> 144:ef7eb2e8f9f7 475 * This parameter can be:
<> 144:ef7eb2e8f9f7 476 * @arg RTC_FLAG_ALRAF
<> 144:ef7eb2e8f9f7 477 * @arg RTC_FLAG_ALRBF
<> 144:ef7eb2e8f9f7 478 * @retval None
<> 144:ef7eb2e8f9f7 479 */
<> 144:ef7eb2e8f9f7 480 #define __HAL_RTC_ALARM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
<> 144:ef7eb2e8f9f7 481
<> 144:ef7eb2e8f9f7 482
<> 144:ef7eb2e8f9f7 483 /**
<> 144:ef7eb2e8f9f7 484 * @brief Check whether the specified RTC Alarm interrupt has been enabled or not.
<> 144:ef7eb2e8f9f7 485 * @param __HANDLE__: specifies the RTC handle.
<> 144:ef7eb2e8f9f7 486 * @param __INTERRUPT__: specifies the RTC Alarm interrupt sources to check.
<> 144:ef7eb2e8f9f7 487 * This parameter can be:
<> 144:ef7eb2e8f9f7 488 * @arg RTC_IT_ALRA: Alarm A interrupt
<> 144:ef7eb2e8f9f7 489 * @arg RTC_IT_ALRB: Alarm B interrupt
<> 144:ef7eb2e8f9f7 490 * @retval None
<> 144:ef7eb2e8f9f7 491 */
<> 144:ef7eb2e8f9f7 492 #define __HAL_RTC_ALARM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
<> 144:ef7eb2e8f9f7 493
<> 144:ef7eb2e8f9f7 494 /**
<> 144:ef7eb2e8f9f7 495 * @brief Enable interrupt on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 496 * @retval None
<> 144:ef7eb2e8f9f7 497 */
<> 144:ef7eb2e8f9f7 498 #define __HAL_RTC_ALARM_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 499
<> 144:ef7eb2e8f9f7 500 /**
<> 144:ef7eb2e8f9f7 501 * @brief Disable interrupt on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 502 * @retval None
<> 144:ef7eb2e8f9f7 503 */
<> 144:ef7eb2e8f9f7 504 #define __HAL_RTC_ALARM_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
<> 144:ef7eb2e8f9f7 505
<> 144:ef7eb2e8f9f7 506 /**
<> 144:ef7eb2e8f9f7 507 * @brief Enable event on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 508 * @retval None.
<> 144:ef7eb2e8f9f7 509 */
<> 144:ef7eb2e8f9f7 510 #define __HAL_RTC_ALARM_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 511
<> 144:ef7eb2e8f9f7 512 /**
<> 144:ef7eb2e8f9f7 513 * @brief Disable event on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 514 * @retval None.
<> 144:ef7eb2e8f9f7 515 */
<> 144:ef7eb2e8f9f7 516 #define __HAL_RTC_ALARM_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
<> 144:ef7eb2e8f9f7 517
<> 144:ef7eb2e8f9f7 518 /**
<> 144:ef7eb2e8f9f7 519 * @brief Enable falling edge trigger on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 520 * @retval None.
<> 144:ef7eb2e8f9f7 521 */
<> 144:ef7eb2e8f9f7 522 #define __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 523
<> 144:ef7eb2e8f9f7 524 /**
<> 144:ef7eb2e8f9f7 525 * @brief Disable falling edge trigger on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 526 * @retval None.
<> 144:ef7eb2e8f9f7 527 */
<> 144:ef7eb2e8f9f7 528 #define __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
<> 144:ef7eb2e8f9f7 529
<> 144:ef7eb2e8f9f7 530 /**
<> 144:ef7eb2e8f9f7 531 * @brief Enable rising edge trigger on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 532 * @retval None.
<> 144:ef7eb2e8f9f7 533 */
<> 144:ef7eb2e8f9f7 534 #define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 535
<> 144:ef7eb2e8f9f7 536 /**
<> 144:ef7eb2e8f9f7 537 * @brief Disable rising edge trigger on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 538 * @retval None.
<> 144:ef7eb2e8f9f7 539 */
<> 144:ef7eb2e8f9f7 540 #define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
<> 144:ef7eb2e8f9f7 541
<> 144:ef7eb2e8f9f7 542 /**
<> 144:ef7eb2e8f9f7 543 * @brief Enable rising & falling edge trigger on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 544 * @retval None.
<> 144:ef7eb2e8f9f7 545 */
<> 144:ef7eb2e8f9f7 546 #define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_FALLING_EDGE() do{ __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();\
<> 144:ef7eb2e8f9f7 547 __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE();\
<> 144:ef7eb2e8f9f7 548 }while(0)
<> 144:ef7eb2e8f9f7 549
<> 144:ef7eb2e8f9f7 550 /**
<> 144:ef7eb2e8f9f7 551 * @brief Disable rising & falling edge trigger on the RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 552 * @retval None.
<> 144:ef7eb2e8f9f7 553 */
<> 144:ef7eb2e8f9f7 554 #define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_FALLING_EDGE() do{ __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE();\
<> 144:ef7eb2e8f9f7 555 __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE();\
<> 144:ef7eb2e8f9f7 556 }while(0)
<> 144:ef7eb2e8f9f7 557
<> 144:ef7eb2e8f9f7 558 /**
<> 144:ef7eb2e8f9f7 559 * @brief Check whether the RTC Alarm associated Exti line interrupt flag is set or not.
<> 144:ef7eb2e8f9f7 560 * @retval Line Status.
<> 144:ef7eb2e8f9f7 561 */
<> 144:ef7eb2e8f9f7 562 #define __HAL_RTC_ALARM_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 563
<> 144:ef7eb2e8f9f7 564 /**
<> 144:ef7eb2e8f9f7 565 * @brief Clear the RTC Alarm associated Exti line flag.
<> 144:ef7eb2e8f9f7 566 * @retval None.
<> 144:ef7eb2e8f9f7 567 */
<> 144:ef7eb2e8f9f7 568 #define __HAL_RTC_ALARM_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 569
<> 144:ef7eb2e8f9f7 570 /**
<> 144:ef7eb2e8f9f7 571 * @brief Generate a Software interrupt on RTC Alarm associated Exti line.
<> 144:ef7eb2e8f9f7 572 * @retval None.
<> 144:ef7eb2e8f9f7 573 */
<> 144:ef7eb2e8f9f7 574 #define __HAL_RTC_ALARM_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_ALARM_EVENT)
<> 144:ef7eb2e8f9f7 575 /**
<> 144:ef7eb2e8f9f7 576 * @}
<> 144:ef7eb2e8f9f7 577 */
<> 144:ef7eb2e8f9f7 578
<> 144:ef7eb2e8f9f7 579 /* Include RTC HAL Extension module */
<> 144:ef7eb2e8f9f7 580 #include "stm32f2xx_hal_rtc_ex.h"
<> 144:ef7eb2e8f9f7 581
<> 144:ef7eb2e8f9f7 582 /* Exported functions --------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 583 /** @addtogroup RTC_Exported_Functions
<> 144:ef7eb2e8f9f7 584 * @{
<> 144:ef7eb2e8f9f7 585 */
<> 144:ef7eb2e8f9f7 586
<> 144:ef7eb2e8f9f7 587 /** @addtogroup RTC_Exported_Functions_Group1
<> 144:ef7eb2e8f9f7 588 * @{
<> 144:ef7eb2e8f9f7 589 */
<> 144:ef7eb2e8f9f7 590 /* Initialization and de-initialization functions ****************************/
<> 144:ef7eb2e8f9f7 591 HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 592 HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 593 void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 594 void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 595 /**
<> 144:ef7eb2e8f9f7 596 * @}
<> 144:ef7eb2e8f9f7 597 */
<> 144:ef7eb2e8f9f7 598
<> 144:ef7eb2e8f9f7 599 /** @addtogroup RTC_Exported_Functions_Group2
<> 144:ef7eb2e8f9f7 600 * @{
<> 144:ef7eb2e8f9f7 601 */
<> 144:ef7eb2e8f9f7 602 /* RTC Time and Date functions ************************************************/
<> 144:ef7eb2e8f9f7 603 HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
<> 144:ef7eb2e8f9f7 604 HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
<> 144:ef7eb2e8f9f7 605 HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
<> 144:ef7eb2e8f9f7 606 HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
<> 144:ef7eb2e8f9f7 607 /**
<> 144:ef7eb2e8f9f7 608 * @}
<> 144:ef7eb2e8f9f7 609 */
<> 144:ef7eb2e8f9f7 610
<> 144:ef7eb2e8f9f7 611 /** @addtogroup RTC_Exported_Functions_Group3
<> 144:ef7eb2e8f9f7 612 * @{
<> 144:ef7eb2e8f9f7 613 */
<> 144:ef7eb2e8f9f7 614 /* RTC Alarm functions ********************************************************/
<> 144:ef7eb2e8f9f7 615 HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
<> 144:ef7eb2e8f9f7 616 HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
<> 144:ef7eb2e8f9f7 617 HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm);
<> 144:ef7eb2e8f9f7 618 HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format);
<> 144:ef7eb2e8f9f7 619 void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 620 HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
<> 144:ef7eb2e8f9f7 621 void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 622 /**
<> 144:ef7eb2e8f9f7 623 * @}
<> 144:ef7eb2e8f9f7 624 */
<> 144:ef7eb2e8f9f7 625
<> 144:ef7eb2e8f9f7 626 /** @addtogroup RTC_Exported_Functions_Group4
<> 144:ef7eb2e8f9f7 627 * @{
<> 144:ef7eb2e8f9f7 628 */
<> 144:ef7eb2e8f9f7 629 /* Peripheral Control functions ***********************************************/
<> 144:ef7eb2e8f9f7 630 HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef* hrtc);
<> 144:ef7eb2e8f9f7 631 /**
<> 144:ef7eb2e8f9f7 632 * @}
<> 144:ef7eb2e8f9f7 633 */
<> 144:ef7eb2e8f9f7 634
<> 144:ef7eb2e8f9f7 635 /** @addtogroup RTC_Exported_Functions_Group5
<> 144:ef7eb2e8f9f7 636 * @{
<> 144:ef7eb2e8f9f7 637 */
<> 144:ef7eb2e8f9f7 638 /* Peripheral State functions *************************************************/
<> 144:ef7eb2e8f9f7 639 HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc);
<> 144:ef7eb2e8f9f7 640 /**
<> 144:ef7eb2e8f9f7 641 * @}
<> 144:ef7eb2e8f9f7 642 */
<> 144:ef7eb2e8f9f7 643
<> 144:ef7eb2e8f9f7 644 /**
<> 144:ef7eb2e8f9f7 645 * @}
<> 144:ef7eb2e8f9f7 646 */
<> 144:ef7eb2e8f9f7 647
<> 144:ef7eb2e8f9f7 648 /* Private types -------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 649 /* Private variables ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 650 /* Private constants ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 651 /** @defgroup RTC_Private_Constants RTC Private Constants
<> 144:ef7eb2e8f9f7 652 * @{
<> 144:ef7eb2e8f9f7 653 */
<> 144:ef7eb2e8f9f7 654 /* Masks Definition */
<> 144:ef7eb2e8f9f7 655 #define RTC_TR_RESERVED_MASK ((uint32_t)0x007F7F7FU)
<> 144:ef7eb2e8f9f7 656 #define RTC_DR_RESERVED_MASK ((uint32_t)0x00FFFF3FU)
<> 144:ef7eb2e8f9f7 657 #define RTC_INIT_MASK ((uint32_t)0xFFFFFFFFU)
<> 144:ef7eb2e8f9f7 658 #define RTC_RSF_MASK ((uint32_t)0xFFFFFF5FU)
<> 144:ef7eb2e8f9f7 659 #define RTC_FLAGS_MASK ((uint32_t)(RTC_FLAG_TSOVF | RTC_FLAG_TSF | RTC_FLAG_WUTF | \
<> 144:ef7eb2e8f9f7 660 RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | RTC_FLAG_INITF | \
<> 144:ef7eb2e8f9f7 661 RTC_FLAG_RSF | RTC_FLAG_INITS | RTC_FLAG_WUTWF | \
<> 144:ef7eb2e8f9f7 662 RTC_FLAG_ALRBWF | RTC_FLAG_ALRAWF | RTC_FLAG_TAMP1F))
<> 144:ef7eb2e8f9f7 663
<> 144:ef7eb2e8f9f7 664 #define RTC_TIMEOUT_VALUE 1000
<> 144:ef7eb2e8f9f7 665
<> 144:ef7eb2e8f9f7 666 #define RTC_EXTI_LINE_ALARM_EVENT ((uint32_t)EXTI_IMR_MR17) /*!< External interrupt line 17 Connected to the RTC Alarm event */
<> 144:ef7eb2e8f9f7 667 /**
<> 144:ef7eb2e8f9f7 668 * @}
<> 144:ef7eb2e8f9f7 669 */
<> 144:ef7eb2e8f9f7 670
<> 144:ef7eb2e8f9f7 671 /* Private macros ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 672 /** @defgroup RTC_Private_Macros RTC Private Macros
<> 144:ef7eb2e8f9f7 673 * @{
<> 144:ef7eb2e8f9f7 674 */
<> 144:ef7eb2e8f9f7 675
<> 144:ef7eb2e8f9f7 676 /** @defgroup RTC_IS_RTC_Definitions RTC Private macros to check input parameters
<> 144:ef7eb2e8f9f7 677 * @{
<> 144:ef7eb2e8f9f7 678 */
<> 144:ef7eb2e8f9f7 679 #define IS_RTC_HOUR_FORMAT(FORMAT) (((FORMAT) == RTC_HOURFORMAT_12) || \
<> 144:ef7eb2e8f9f7 680 ((FORMAT) == RTC_HOURFORMAT_24))
<> 144:ef7eb2e8f9f7 681 #define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \
<> 144:ef7eb2e8f9f7 682 ((OUTPUT) == RTC_OUTPUT_ALARMA) || \
<> 144:ef7eb2e8f9f7 683 ((OUTPUT) == RTC_OUTPUT_ALARMB) || \
<> 144:ef7eb2e8f9f7 684 ((OUTPUT) == RTC_OUTPUT_WAKEUP))
<> 144:ef7eb2e8f9f7 685 #define IS_RTC_OUTPUT_POL(POL) (((POL) == RTC_OUTPUT_POLARITY_HIGH) || \
<> 144:ef7eb2e8f9f7 686 ((POL) == RTC_OUTPUT_POLARITY_LOW))
<> 144:ef7eb2e8f9f7 687 #define IS_RTC_OUTPUT_TYPE(TYPE) (((TYPE) == RTC_OUTPUT_TYPE_OPENDRAIN) || \
<> 144:ef7eb2e8f9f7 688 ((TYPE) == RTC_OUTPUT_TYPE_PUSHPULL))
<> 144:ef7eb2e8f9f7 689 #define IS_RTC_HOUR12(HOUR) (((HOUR) > (uint32_t)0U) && ((HOUR) <= (uint32_t)12U))
<> 144:ef7eb2e8f9f7 690 #define IS_RTC_HOUR24(HOUR) ((HOUR) <= (uint32_t)23U)
<> 144:ef7eb2e8f9f7 691 #define IS_RTC_ASYNCH_PREDIV(PREDIV) ((PREDIV) <= (uint32_t)0x7FU)
<> 144:ef7eb2e8f9f7 692 #define IS_RTC_SYNCH_PREDIV(PREDIV) ((PREDIV) <= (uint32_t)0x1FFFU)
<> 144:ef7eb2e8f9f7 693 #define IS_RTC_MINUTES(MINUTES) ((MINUTES) <= (uint32_t)59U)
<> 144:ef7eb2e8f9f7 694 #define IS_RTC_SECONDS(SECONDS) ((SECONDS) <= (uint32_t)59U)
<> 144:ef7eb2e8f9f7 695
<> 144:ef7eb2e8f9f7 696 #define IS_RTC_HOURFORMAT12(PM) (((PM) == RTC_HOURFORMAT12_AM) || ((PM) == RTC_HOURFORMAT12_PM))
<> 144:ef7eb2e8f9f7 697 #define IS_RTC_DAYLIGHT_SAVING(SAVE) (((SAVE) == RTC_DAYLIGHTSAVING_SUB1H) || \
<> 144:ef7eb2e8f9f7 698 ((SAVE) == RTC_DAYLIGHTSAVING_ADD1H) || \
<> 144:ef7eb2e8f9f7 699 ((SAVE) == RTC_DAYLIGHTSAVING_NONE))
<> 144:ef7eb2e8f9f7 700 #define IS_RTC_STORE_OPERATION(OPERATION) (((OPERATION) == RTC_STOREOPERATION_RESET) || \
<> 144:ef7eb2e8f9f7 701 ((OPERATION) == RTC_STOREOPERATION_SET))
<> 144:ef7eb2e8f9f7 702 #define IS_RTC_FORMAT(FORMAT) (((FORMAT) == RTC_FORMAT_BIN) || ((FORMAT) == RTC_FORMAT_BCD))
<> 144:ef7eb2e8f9f7 703 #define IS_RTC_YEAR(YEAR) ((YEAR) <= (uint32_t)99U)
<> 144:ef7eb2e8f9f7 704 #define IS_RTC_MONTH(MONTH) (((MONTH) >= (uint32_t)1U) && ((MONTH) <= (uint32_t)12U))
<> 144:ef7eb2e8f9f7 705 #define IS_RTC_DATE(DATE) (((DATE) >= (uint32_t)1U) && ((DATE) <= (uint32_t)31U))
<> 144:ef7eb2e8f9f7 706 #define IS_RTC_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY) || \
<> 144:ef7eb2e8f9f7 707 ((WEEKDAY) == RTC_WEEKDAY_TUESDAY) || \
<> 144:ef7eb2e8f9f7 708 ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
<> 144:ef7eb2e8f9f7 709 ((WEEKDAY) == RTC_WEEKDAY_THURSDAY) || \
<> 144:ef7eb2e8f9f7 710 ((WEEKDAY) == RTC_WEEKDAY_FRIDAY) || \
<> 144:ef7eb2e8f9f7 711 ((WEEKDAY) == RTC_WEEKDAY_SATURDAY) || \
<> 144:ef7eb2e8f9f7 712 ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
<> 144:ef7eb2e8f9f7 713 #define IS_RTC_ALARM_DATE_WEEKDAY_DATE(DATE) (((DATE) >(uint32_t) 0) && ((DATE) <= (uint32_t)31))
<> 144:ef7eb2e8f9f7 714 #define IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY) || \
<> 144:ef7eb2e8f9f7 715 ((WEEKDAY) == RTC_WEEKDAY_TUESDAY) || \
<> 144:ef7eb2e8f9f7 716 ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
<> 144:ef7eb2e8f9f7 717 ((WEEKDAY) == RTC_WEEKDAY_THURSDAY) || \
<> 144:ef7eb2e8f9f7 718 ((WEEKDAY) == RTC_WEEKDAY_FRIDAY) || \
<> 144:ef7eb2e8f9f7 719 ((WEEKDAY) == RTC_WEEKDAY_SATURDAY) || \
<> 144:ef7eb2e8f9f7 720 ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
<> 144:ef7eb2e8f9f7 721 #define IS_RTC_ALARM_DATE_WEEKDAY_SEL(SEL) (((SEL) == RTC_ALARMDATEWEEKDAYSEL_DATE) || \
<> 144:ef7eb2e8f9f7 722 ((SEL) == RTC_ALARMDATEWEEKDAYSEL_WEEKDAY))
<> 144:ef7eb2e8f9f7 723 #define IS_RTC_ALARM_MASK(MASK) (((MASK) & 0x7F7F7F7FU) == (uint32_t)RESET)
<> 144:ef7eb2e8f9f7 724 #define IS_RTC_ALARM(ALARM) (((ALARM) == RTC_ALARM_A) || ((ALARM) == RTC_ALARM_B))
<> 144:ef7eb2e8f9f7 725 /**
<> 144:ef7eb2e8f9f7 726 * @}
<> 144:ef7eb2e8f9f7 727 */
<> 144:ef7eb2e8f9f7 728
<> 144:ef7eb2e8f9f7 729 /**
<> 144:ef7eb2e8f9f7 730 * @}
<> 144:ef7eb2e8f9f7 731 */
<> 144:ef7eb2e8f9f7 732
<> 144:ef7eb2e8f9f7 733 /* Private functions ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 734 /** @defgroup RTC_Private_Functions RTC Private Functions
<> 144:ef7eb2e8f9f7 735 * @{
<> 144:ef7eb2e8f9f7 736 */
<> 144:ef7eb2e8f9f7 737 HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef* hrtc);
<> 144:ef7eb2e8f9f7 738 uint8_t RTC_ByteToBcd2(uint8_t Value);
<> 144:ef7eb2e8f9f7 739 uint8_t RTC_Bcd2ToByte(uint8_t Value);
<> 144:ef7eb2e8f9f7 740 /**
<> 144:ef7eb2e8f9f7 741 * @}
<> 144:ef7eb2e8f9f7 742 */
<> 144:ef7eb2e8f9f7 743
<> 144:ef7eb2e8f9f7 744 /**
<> 144:ef7eb2e8f9f7 745 * @}
<> 144:ef7eb2e8f9f7 746 */
<> 144:ef7eb2e8f9f7 747
<> 144:ef7eb2e8f9f7 748 /**
<> 144:ef7eb2e8f9f7 749 * @}
<> 144:ef7eb2e8f9f7 750 */
<> 144:ef7eb2e8f9f7 751
<> 144:ef7eb2e8f9f7 752 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 753 }
<> 144:ef7eb2e8f9f7 754 #endif
<> 144:ef7eb2e8f9f7 755
<> 144:ef7eb2e8f9f7 756 #endif /* __STM32F2xx_HAL_RTC_H */
<> 144:ef7eb2e8f9f7 757
<> 144:ef7eb2e8f9f7 758 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/