TUKS MCU Introductory course / TUKS-COURSE-TIMER
Committer:
elmot
Date:
Fri Feb 24 21:13:56 2017 +0000
Revision:
1:d0dfbce63a89
Ready-to-copy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elmot 1:d0dfbce63a89 1 /**
elmot 1:d0dfbce63a89 2 ******************************************************************************
elmot 1:d0dfbce63a89 3 * @file stm32l4xx_ll_wwdg.h
elmot 1:d0dfbce63a89 4 * @author MCD Application Team
elmot 1:d0dfbce63a89 5 * @version V1.5.1
elmot 1:d0dfbce63a89 6 * @date 31-May-2016
elmot 1:d0dfbce63a89 7 * @brief Header file of WWDG LL module.
elmot 1:d0dfbce63a89 8 ******************************************************************************
elmot 1:d0dfbce63a89 9 * @attention
elmot 1:d0dfbce63a89 10 *
elmot 1:d0dfbce63a89 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
elmot 1:d0dfbce63a89 12 *
elmot 1:d0dfbce63a89 13 * Redistribution and use in source and binary forms, with or without modification,
elmot 1:d0dfbce63a89 14 * are permitted provided that the following conditions are met:
elmot 1:d0dfbce63a89 15 * 1. Redistributions of source code must retain the above copyright notice,
elmot 1:d0dfbce63a89 16 * this list of conditions and the following disclaimer.
elmot 1:d0dfbce63a89 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
elmot 1:d0dfbce63a89 18 * this list of conditions and the following disclaimer in the documentation
elmot 1:d0dfbce63a89 19 * and/or other materials provided with the distribution.
elmot 1:d0dfbce63a89 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
elmot 1:d0dfbce63a89 21 * may be used to endorse or promote products derived from this software
elmot 1:d0dfbce63a89 22 * without specific prior written permission.
elmot 1:d0dfbce63a89 23 *
elmot 1:d0dfbce63a89 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
elmot 1:d0dfbce63a89 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
elmot 1:d0dfbce63a89 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
elmot 1:d0dfbce63a89 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
elmot 1:d0dfbce63a89 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
elmot 1:d0dfbce63a89 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
elmot 1:d0dfbce63a89 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
elmot 1:d0dfbce63a89 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
elmot 1:d0dfbce63a89 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
elmot 1:d0dfbce63a89 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
elmot 1:d0dfbce63a89 34 *
elmot 1:d0dfbce63a89 35 ******************************************************************************
elmot 1:d0dfbce63a89 36 */
elmot 1:d0dfbce63a89 37
elmot 1:d0dfbce63a89 38 /* Define to prevent recursive inclusion -------------------------------------*/
elmot 1:d0dfbce63a89 39 #ifndef __STM32L4xx_LL_WWDG_H
elmot 1:d0dfbce63a89 40 #define __STM32L4xx_LL_WWDG_H
elmot 1:d0dfbce63a89 41
elmot 1:d0dfbce63a89 42 #ifdef __cplusplus
elmot 1:d0dfbce63a89 43 extern "C" {
elmot 1:d0dfbce63a89 44 #endif
elmot 1:d0dfbce63a89 45
elmot 1:d0dfbce63a89 46 /* Includes ------------------------------------------------------------------*/
elmot 1:d0dfbce63a89 47 #include "stm32l4xx.h"
elmot 1:d0dfbce63a89 48
elmot 1:d0dfbce63a89 49 /** @addtogroup STM32L4xx_LL_Driver
elmot 1:d0dfbce63a89 50 * @{
elmot 1:d0dfbce63a89 51 */
elmot 1:d0dfbce63a89 52
elmot 1:d0dfbce63a89 53 #if defined (WWDG)
elmot 1:d0dfbce63a89 54
elmot 1:d0dfbce63a89 55 /** @defgroup WWDG_LL WWDG
elmot 1:d0dfbce63a89 56 * @{
elmot 1:d0dfbce63a89 57 */
elmot 1:d0dfbce63a89 58
elmot 1:d0dfbce63a89 59 /* Private types -------------------------------------------------------------*/
elmot 1:d0dfbce63a89 60 /* Private variables ---------------------------------------------------------*/
elmot 1:d0dfbce63a89 61
elmot 1:d0dfbce63a89 62 /* Private constants ---------------------------------------------------------*/
elmot 1:d0dfbce63a89 63
elmot 1:d0dfbce63a89 64 /* Private macros ------------------------------------------------------------*/
elmot 1:d0dfbce63a89 65
elmot 1:d0dfbce63a89 66 /* Exported types ------------------------------------------------------------*/
elmot 1:d0dfbce63a89 67 /* Exported constants --------------------------------------------------------*/
elmot 1:d0dfbce63a89 68 /** @defgroup WWDG_LL_Exported_Constants WWDG Exported Constants
elmot 1:d0dfbce63a89 69 * @{
elmot 1:d0dfbce63a89 70 */
elmot 1:d0dfbce63a89 71
elmot 1:d0dfbce63a89 72
elmot 1:d0dfbce63a89 73 /** @defgroup WWDG_LL_EC_IT IT Defines
elmot 1:d0dfbce63a89 74 * @brief IT defines which can be used with LL_WWDG_ReadReg and LL_WWDG_WriteReg functions
elmot 1:d0dfbce63a89 75 * @{
elmot 1:d0dfbce63a89 76 */
elmot 1:d0dfbce63a89 77 #define LL_WWDG_CFR_EWI WWDG_CFR_EWI
elmot 1:d0dfbce63a89 78 /**
elmot 1:d0dfbce63a89 79 * @}
elmot 1:d0dfbce63a89 80 */
elmot 1:d0dfbce63a89 81
elmot 1:d0dfbce63a89 82 /** @defgroup WWDG_LL_EC_PRESCALER PRESCALER
elmot 1:d0dfbce63a89 83 * @{
elmot 1:d0dfbce63a89 84 */
elmot 1:d0dfbce63a89 85 #define LL_WWDG_PRESCALER_1 (uint32_t)0x00000000U /*!< WWDG counter clock = (PCLK1/4096)/1 */
elmot 1:d0dfbce63a89 86 #define LL_WWDG_PRESCALER_2 WWDG_CFR_WDGTB_0 /*!< WWDG counter clock = (PCLK1/4096)/2 */
elmot 1:d0dfbce63a89 87 #define LL_WWDG_PRESCALER_4 WWDG_CFR_WDGTB_1 /*!< WWDG counter clock = (PCLK1/4096)/4 */
elmot 1:d0dfbce63a89 88 #define LL_WWDG_PRESCALER_8 (WWDG_CFR_WDGTB_0 | WWDG_CFR_WDGTB_1) /*!< WWDG counter clock = (PCLK1/4096)/8 */
elmot 1:d0dfbce63a89 89 /**
elmot 1:d0dfbce63a89 90 * @}
elmot 1:d0dfbce63a89 91 */
elmot 1:d0dfbce63a89 92
elmot 1:d0dfbce63a89 93 /**
elmot 1:d0dfbce63a89 94 * @}
elmot 1:d0dfbce63a89 95 */
elmot 1:d0dfbce63a89 96
elmot 1:d0dfbce63a89 97 /* Exported macro ------------------------------------------------------------*/
elmot 1:d0dfbce63a89 98 /** @defgroup WWDG_LL_Exported_Macros WWDG Exported Macros
elmot 1:d0dfbce63a89 99 * @{
elmot 1:d0dfbce63a89 100 */
elmot 1:d0dfbce63a89 101 /** @defgroup WWDG_LL_EM_WRITE_READ Common Write and read registers macros
elmot 1:d0dfbce63a89 102 * @{
elmot 1:d0dfbce63a89 103 */
elmot 1:d0dfbce63a89 104 /**
elmot 1:d0dfbce63a89 105 * @brief Write a value in WWDG register
elmot 1:d0dfbce63a89 106 * @param __INSTANCE__ WWDG Instance
elmot 1:d0dfbce63a89 107 * @param __REG__ Register to be written
elmot 1:d0dfbce63a89 108 * @param __VALUE__ Value to be written in the register
elmot 1:d0dfbce63a89 109 * @retval None
elmot 1:d0dfbce63a89 110 */
elmot 1:d0dfbce63a89 111 #define LL_WWDG_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
elmot 1:d0dfbce63a89 112
elmot 1:d0dfbce63a89 113 /**
elmot 1:d0dfbce63a89 114 * @brief Read a value in WWDG register
elmot 1:d0dfbce63a89 115 * @param __INSTANCE__ WWDG Instance
elmot 1:d0dfbce63a89 116 * @param __REG__ Register to be read
elmot 1:d0dfbce63a89 117 * @retval Register value
elmot 1:d0dfbce63a89 118 */
elmot 1:d0dfbce63a89 119 #define LL_WWDG_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
elmot 1:d0dfbce63a89 120 /**
elmot 1:d0dfbce63a89 121 * @}
elmot 1:d0dfbce63a89 122 */
elmot 1:d0dfbce63a89 123
elmot 1:d0dfbce63a89 124
elmot 1:d0dfbce63a89 125 /**
elmot 1:d0dfbce63a89 126 * @}
elmot 1:d0dfbce63a89 127 */
elmot 1:d0dfbce63a89 128
elmot 1:d0dfbce63a89 129 /* Exported functions --------------------------------------------------------*/
elmot 1:d0dfbce63a89 130 /** @defgroup WWDG_LL_Exported_Functions WWDG Exported Functions
elmot 1:d0dfbce63a89 131 * @{
elmot 1:d0dfbce63a89 132 */
elmot 1:d0dfbce63a89 133
elmot 1:d0dfbce63a89 134 /** @defgroup WWDG_LL_EF_Configuration Configuration
elmot 1:d0dfbce63a89 135 * @{
elmot 1:d0dfbce63a89 136 */
elmot 1:d0dfbce63a89 137 /**
elmot 1:d0dfbce63a89 138 * @brief Enable Window Watchdog. The watchdog is always disabled after a reset.
elmot 1:d0dfbce63a89 139 * @note It is enabled by setting the WDGA bit in the WWDG_CR register,
elmot 1:d0dfbce63a89 140 * then it cannot be disabled again except by a reset.
elmot 1:d0dfbce63a89 141 * This bit is set by software and only cleared by hardware after a reset.
elmot 1:d0dfbce63a89 142 * When WDGA = 1, the watchdog can generate a reset.
elmot 1:d0dfbce63a89 143 * @rmtoll CR WDGA LL_WWDG_Enable
elmot 1:d0dfbce63a89 144 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 145 * @retval None
elmot 1:d0dfbce63a89 146 */
elmot 1:d0dfbce63a89 147 __STATIC_INLINE void LL_WWDG_Enable(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 148 {
elmot 1:d0dfbce63a89 149 SET_BIT(WWDGx->CR, WWDG_CR_WDGA);
elmot 1:d0dfbce63a89 150 }
elmot 1:d0dfbce63a89 151
elmot 1:d0dfbce63a89 152 /**
elmot 1:d0dfbce63a89 153 * @brief Checks if Window Watchdog is enabled
elmot 1:d0dfbce63a89 154 * @rmtoll CR WDGA LL_WWDG_IsEnabled
elmot 1:d0dfbce63a89 155 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 156 * @retval State of bit (1 or 0).
elmot 1:d0dfbce63a89 157 */
elmot 1:d0dfbce63a89 158 __STATIC_INLINE uint32_t LL_WWDG_IsEnabled(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 159 {
elmot 1:d0dfbce63a89 160 return (READ_BIT(WWDGx->CR, WWDG_CR_WDGA) == (WWDG_CR_WDGA));
elmot 1:d0dfbce63a89 161 }
elmot 1:d0dfbce63a89 162
elmot 1:d0dfbce63a89 163 /**
elmot 1:d0dfbce63a89 164 * @brief Set the Watchdog counter value to provided value (7-bits T[6:0])
elmot 1:d0dfbce63a89 165 * @note When writing to the WWDG_CR register, always write 1 in the MSB b6 to avoid generating an immediate reset
elmot 1:d0dfbce63a89 166 * This counter is decremented every (4096 x 2expWDGTB) PCLK cycles
elmot 1:d0dfbce63a89 167 * A reset is produced when it rolls over from 0x40 to 0x3F (bit T6 becomes cleared)
elmot 1:d0dfbce63a89 168 * Setting the counter lower then 0x40 causes an immediate reset (if WWDG enabled)
elmot 1:d0dfbce63a89 169 * @rmtoll CR T LL_WWDG_SetCounter
elmot 1:d0dfbce63a89 170 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 171 * @param Counter 0..0x7F (7 bit counter value)
elmot 1:d0dfbce63a89 172 * @retval None
elmot 1:d0dfbce63a89 173 */
elmot 1:d0dfbce63a89 174 __STATIC_INLINE void LL_WWDG_SetCounter(WWDG_TypeDef *WWDGx, uint32_t Counter)
elmot 1:d0dfbce63a89 175 {
elmot 1:d0dfbce63a89 176 MODIFY_REG(WWDGx->CR, WWDG_CR_T, Counter);
elmot 1:d0dfbce63a89 177 }
elmot 1:d0dfbce63a89 178
elmot 1:d0dfbce63a89 179 /**
elmot 1:d0dfbce63a89 180 * @brief Return current Watchdog Counter Value (7 bits counter value)
elmot 1:d0dfbce63a89 181 * @rmtoll CR T LL_WWDG_GetCounter
elmot 1:d0dfbce63a89 182 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 183 * @retval 7 bit Watchdog Counter value
elmot 1:d0dfbce63a89 184 */
elmot 1:d0dfbce63a89 185 __STATIC_INLINE uint32_t LL_WWDG_GetCounter(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 186 {
elmot 1:d0dfbce63a89 187 return (uint32_t)(READ_BIT(WWDGx->CR, WWDG_CR_T));
elmot 1:d0dfbce63a89 188 }
elmot 1:d0dfbce63a89 189
elmot 1:d0dfbce63a89 190 /**
elmot 1:d0dfbce63a89 191 * @brief Set the time base of the prescaler (WDGTB).
elmot 1:d0dfbce63a89 192 * @note Prescaler is used to apply ratio on PCLK clock, so that Watchdog counter
elmot 1:d0dfbce63a89 193 * is decremented every (4096 x 2expWDGTB) PCLK cycles
elmot 1:d0dfbce63a89 194 * @rmtoll CFR WDGTB LL_WWDG_SetPrescaler
elmot 1:d0dfbce63a89 195 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 196 * @param Prescaler This parameter can be one of the following values:
elmot 1:d0dfbce63a89 197 * @arg @ref LL_WWDG_PRESCALER_1
elmot 1:d0dfbce63a89 198 * @arg @ref LL_WWDG_PRESCALER_2
elmot 1:d0dfbce63a89 199 * @arg @ref LL_WWDG_PRESCALER_4
elmot 1:d0dfbce63a89 200 * @arg @ref LL_WWDG_PRESCALER_8
elmot 1:d0dfbce63a89 201 * @retval None
elmot 1:d0dfbce63a89 202 */
elmot 1:d0dfbce63a89 203 __STATIC_INLINE void LL_WWDG_SetPrescaler(WWDG_TypeDef *WWDGx, uint32_t Prescaler)
elmot 1:d0dfbce63a89 204 {
elmot 1:d0dfbce63a89 205 MODIFY_REG(WWDGx->CFR, WWDG_CFR_WDGTB, Prescaler);
elmot 1:d0dfbce63a89 206 }
elmot 1:d0dfbce63a89 207
elmot 1:d0dfbce63a89 208 /**
elmot 1:d0dfbce63a89 209 * @brief Return current Watchdog Prescaler Value
elmot 1:d0dfbce63a89 210 * @rmtoll CFR WDGTB LL_WWDG_GetPrescaler
elmot 1:d0dfbce63a89 211 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 212 * @retval Returned value can be one of the following values:
elmot 1:d0dfbce63a89 213 * @arg @ref LL_WWDG_PRESCALER_1
elmot 1:d0dfbce63a89 214 * @arg @ref LL_WWDG_PRESCALER_2
elmot 1:d0dfbce63a89 215 * @arg @ref LL_WWDG_PRESCALER_4
elmot 1:d0dfbce63a89 216 * @arg @ref LL_WWDG_PRESCALER_8
elmot 1:d0dfbce63a89 217 */
elmot 1:d0dfbce63a89 218 __STATIC_INLINE uint32_t LL_WWDG_GetPrescaler(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 219 {
elmot 1:d0dfbce63a89 220 return (uint32_t)(READ_BIT(WWDGx->CFR, WWDG_CFR_WDGTB));
elmot 1:d0dfbce63a89 221 }
elmot 1:d0dfbce63a89 222
elmot 1:d0dfbce63a89 223 /**
elmot 1:d0dfbce63a89 224 * @brief Set the Watchdog Window value to be compared to the downcounter (7-bits W[6:0]).
elmot 1:d0dfbce63a89 225 * @note This window value defines when write in the WWDG_CR register
elmot 1:d0dfbce63a89 226 * to program Watchdog counter is allowed.
elmot 1:d0dfbce63a89 227 * Watchdog counter value update must occur only when the counter value
elmot 1:d0dfbce63a89 228 * is lower than the Watchdog window register value.
elmot 1:d0dfbce63a89 229 * Otherwise, a MCU reset is generated if the 7-bit Watchdog counter value
elmot 1:d0dfbce63a89 230 * (in the control register) is refreshed before the downcounter has reached
elmot 1:d0dfbce63a89 231 * the watchdog window register value.
elmot 1:d0dfbce63a89 232 * Physically is possible to set the Window lower then 0x40 but it is not recommended.
elmot 1:d0dfbce63a89 233 * To generate an immediate reset, it is possible to set the Counter lower than 0x40.
elmot 1:d0dfbce63a89 234 * @rmtoll CFR W LL_WWDG_SetWindow
elmot 1:d0dfbce63a89 235 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 236 * @param Window 0x00..0x7F (7 bit Window value)
elmot 1:d0dfbce63a89 237 * @retval None
elmot 1:d0dfbce63a89 238 */
elmot 1:d0dfbce63a89 239 __STATIC_INLINE void LL_WWDG_SetWindow(WWDG_TypeDef *WWDGx, uint32_t Window)
elmot 1:d0dfbce63a89 240 {
elmot 1:d0dfbce63a89 241 MODIFY_REG(WWDGx->CFR, WWDG_CFR_W, Window);
elmot 1:d0dfbce63a89 242 }
elmot 1:d0dfbce63a89 243
elmot 1:d0dfbce63a89 244 /**
elmot 1:d0dfbce63a89 245 * @brief Return current Watchdog Window Value (7 bits value)
elmot 1:d0dfbce63a89 246 * @rmtoll CFR W LL_WWDG_GetWindow
elmot 1:d0dfbce63a89 247 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 248 * @retval 7 bit Watchdog Window value
elmot 1:d0dfbce63a89 249 */
elmot 1:d0dfbce63a89 250 __STATIC_INLINE uint32_t LL_WWDG_GetWindow(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 251 {
elmot 1:d0dfbce63a89 252 return (uint32_t)(READ_BIT(WWDGx->CFR, WWDG_CFR_W));
elmot 1:d0dfbce63a89 253 }
elmot 1:d0dfbce63a89 254
elmot 1:d0dfbce63a89 255 /**
elmot 1:d0dfbce63a89 256 * @}
elmot 1:d0dfbce63a89 257 */
elmot 1:d0dfbce63a89 258
elmot 1:d0dfbce63a89 259 /** @defgroup WWDG_LL_EF_FLAG_Management FLAG_Management
elmot 1:d0dfbce63a89 260 * @{
elmot 1:d0dfbce63a89 261 */
elmot 1:d0dfbce63a89 262 /**
elmot 1:d0dfbce63a89 263 * @brief Indicates if the WWDG Early Wakeup Interrupt Flag is set or not.
elmot 1:d0dfbce63a89 264 * @note This bit is set by hardware when the counter has reached the value 0x40.
elmot 1:d0dfbce63a89 265 * It must be cleared by software by writing 0.
elmot 1:d0dfbce63a89 266 * A write of 1 has no effect. This bit is also set if the interrupt is not enabled.
elmot 1:d0dfbce63a89 267 * @rmtoll SR EWIF LL_WWDG_IsActiveFlag_EWKUP
elmot 1:d0dfbce63a89 268 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 269 * @retval State of bit (1 or 0).
elmot 1:d0dfbce63a89 270 */
elmot 1:d0dfbce63a89 271 __STATIC_INLINE uint32_t LL_WWDG_IsActiveFlag_EWKUP(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 272 {
elmot 1:d0dfbce63a89 273 return (READ_BIT(WWDGx->SR, WWDG_SR_EWIF) == (WWDG_SR_EWIF));
elmot 1:d0dfbce63a89 274 }
elmot 1:d0dfbce63a89 275
elmot 1:d0dfbce63a89 276 /**
elmot 1:d0dfbce63a89 277 * @brief Clear WWDG Early Wakeup Interrupt Flag (EWIF)
elmot 1:d0dfbce63a89 278 * @rmtoll SR EWIF LL_WWDG_ClearFlag_EWKUP
elmot 1:d0dfbce63a89 279 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 280 * @retval None
elmot 1:d0dfbce63a89 281 */
elmot 1:d0dfbce63a89 282 __STATIC_INLINE void LL_WWDG_ClearFlag_EWKUP(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 283 {
elmot 1:d0dfbce63a89 284 WRITE_REG(WWDGx->SR, ~WWDG_SR_EWIF);
elmot 1:d0dfbce63a89 285 }
elmot 1:d0dfbce63a89 286
elmot 1:d0dfbce63a89 287 /**
elmot 1:d0dfbce63a89 288 * @}
elmot 1:d0dfbce63a89 289 */
elmot 1:d0dfbce63a89 290
elmot 1:d0dfbce63a89 291 /** @defgroup WWDG_LL_EF_IT_Management IT_Management
elmot 1:d0dfbce63a89 292 * @{
elmot 1:d0dfbce63a89 293 */
elmot 1:d0dfbce63a89 294 /**
elmot 1:d0dfbce63a89 295 * @brief Enable the Early Wakeup Interrupt.
elmot 1:d0dfbce63a89 296 * @note When set, an interrupt occurs whenever the counter reaches value 0x40.
elmot 1:d0dfbce63a89 297 * This interrupt is only cleared by hardware after a reset
elmot 1:d0dfbce63a89 298 * @rmtoll CFR EWI LL_WWDG_EnableIT_EWKUP
elmot 1:d0dfbce63a89 299 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 300 * @retval None
elmot 1:d0dfbce63a89 301 */
elmot 1:d0dfbce63a89 302 __STATIC_INLINE void LL_WWDG_EnableIT_EWKUP(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 303 {
elmot 1:d0dfbce63a89 304 SET_BIT(WWDGx->CFR, WWDG_CFR_EWI);
elmot 1:d0dfbce63a89 305 }
elmot 1:d0dfbce63a89 306
elmot 1:d0dfbce63a89 307 /**
elmot 1:d0dfbce63a89 308 * @brief Check if Early Wakeup Interrupt is enabled
elmot 1:d0dfbce63a89 309 * @rmtoll CFR EWI LL_WWDG_IsEnabledIT_EWKUP
elmot 1:d0dfbce63a89 310 * @param WWDGx WWDG Instance
elmot 1:d0dfbce63a89 311 * @retval State of bit (1 or 0).
elmot 1:d0dfbce63a89 312 */
elmot 1:d0dfbce63a89 313 __STATIC_INLINE uint32_t LL_WWDG_IsEnabledIT_EWKUP(WWDG_TypeDef *WWDGx)
elmot 1:d0dfbce63a89 314 {
elmot 1:d0dfbce63a89 315 return (READ_BIT(WWDGx->CFR, WWDG_CFR_EWI) == (WWDG_CFR_EWI));
elmot 1:d0dfbce63a89 316 }
elmot 1:d0dfbce63a89 317
elmot 1:d0dfbce63a89 318 /**
elmot 1:d0dfbce63a89 319 * @}
elmot 1:d0dfbce63a89 320 */
elmot 1:d0dfbce63a89 321
elmot 1:d0dfbce63a89 322 /**
elmot 1:d0dfbce63a89 323 * @}
elmot 1:d0dfbce63a89 324 */
elmot 1:d0dfbce63a89 325
elmot 1:d0dfbce63a89 326 /**
elmot 1:d0dfbce63a89 327 * @}
elmot 1:d0dfbce63a89 328 */
elmot 1:d0dfbce63a89 329
elmot 1:d0dfbce63a89 330 #endif /* WWDG */
elmot 1:d0dfbce63a89 331
elmot 1:d0dfbce63a89 332 /**
elmot 1:d0dfbce63a89 333 * @}
elmot 1:d0dfbce63a89 334 */
elmot 1:d0dfbce63a89 335
elmot 1:d0dfbce63a89 336 #ifdef __cplusplus
elmot 1:d0dfbce63a89 337 }
elmot 1:d0dfbce63a89 338 #endif
elmot 1:d0dfbce63a89 339
elmot 1:d0dfbce63a89 340 #endif /* __STM32L4xx_LL_WWDG_H */
elmot 1:d0dfbce63a89 341
elmot 1:d0dfbce63a89 342 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/