mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
AnnaBridge
Date:
Tue Mar 20 13:30:58 2018 +0000
Revision:
163:e59c8e839560
Parent:
146:22da6e220af6
mbed library. Release version 160

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 146:22da6e220af6 1 /**
AnnaBridge 146:22da6e220af6 2 ******************************************************************************
AnnaBridge 146:22da6e220af6 3 * @file stm32f4xx_ll_lptim.h
AnnaBridge 146:22da6e220af6 4 * @author MCD Application Team
AnnaBridge 146:22da6e220af6 5 * @brief Header file of LPTIM LL module.
AnnaBridge 146:22da6e220af6 6 ******************************************************************************
AnnaBridge 146:22da6e220af6 7 * @attention
AnnaBridge 146:22da6e220af6 8 *
AnnaBridge 146:22da6e220af6 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 146:22da6e220af6 10 *
AnnaBridge 146:22da6e220af6 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 146:22da6e220af6 12 * are permitted provided that the following conditions are met:
AnnaBridge 146:22da6e220af6 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 146:22da6e220af6 14 * this list of conditions and the following disclaimer.
AnnaBridge 146:22da6e220af6 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 146:22da6e220af6 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 146:22da6e220af6 17 * and/or other materials provided with the distribution.
AnnaBridge 146:22da6e220af6 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 146:22da6e220af6 19 * may be used to endorse or promote products derived from this software
AnnaBridge 146:22da6e220af6 20 * without specific prior written permission.
AnnaBridge 146:22da6e220af6 21 *
AnnaBridge 146:22da6e220af6 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 146:22da6e220af6 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 146:22da6e220af6 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 146:22da6e220af6 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 146:22da6e220af6 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 146:22da6e220af6 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 146:22da6e220af6 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 146:22da6e220af6 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 146:22da6e220af6 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 146:22da6e220af6 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 146:22da6e220af6 32 *
AnnaBridge 146:22da6e220af6 33 ******************************************************************************
AnnaBridge 146:22da6e220af6 34 */
AnnaBridge 146:22da6e220af6 35
AnnaBridge 146:22da6e220af6 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 146:22da6e220af6 37 #ifndef __STM32F4xx_LL_LPTIM_H
AnnaBridge 146:22da6e220af6 38 #define __STM32F4xx_LL_LPTIM_H
AnnaBridge 146:22da6e220af6 39
AnnaBridge 146:22da6e220af6 40 #ifdef __cplusplus
AnnaBridge 146:22da6e220af6 41 extern "C" {
AnnaBridge 146:22da6e220af6 42 #endif
AnnaBridge 146:22da6e220af6 43
AnnaBridge 146:22da6e220af6 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 45 #include "stm32f4xx.h"
AnnaBridge 146:22da6e220af6 46
AnnaBridge 146:22da6e220af6 47 /** @addtogroup STM32F4xx_LL_Driver
AnnaBridge 146:22da6e220af6 48 * @{
AnnaBridge 146:22da6e220af6 49 */
AnnaBridge 146:22da6e220af6 50 #if defined (LPTIM1)
AnnaBridge 146:22da6e220af6 51
AnnaBridge 146:22da6e220af6 52 /** @defgroup LPTIM_LL LPTIM
AnnaBridge 146:22da6e220af6 53 * @{
AnnaBridge 146:22da6e220af6 54 */
AnnaBridge 146:22da6e220af6 55
AnnaBridge 146:22da6e220af6 56 /* Private types -------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 57 /* Private variables ---------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 58
AnnaBridge 146:22da6e220af6 59 /* Private constants ---------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 60
AnnaBridge 146:22da6e220af6 61 /* Private macros ------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 62 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 146:22da6e220af6 63 /** @defgroup LPTIM_LL_Private_Macros LPTIM Private Macros
AnnaBridge 146:22da6e220af6 64 * @{
AnnaBridge 146:22da6e220af6 65 */
AnnaBridge 146:22da6e220af6 66 /**
AnnaBridge 146:22da6e220af6 67 * @}
AnnaBridge 146:22da6e220af6 68 */
AnnaBridge 146:22da6e220af6 69 #endif /*USE_FULL_LL_DRIVER*/
AnnaBridge 146:22da6e220af6 70
AnnaBridge 146:22da6e220af6 71 /* Exported types ------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 72 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 146:22da6e220af6 73 /** @defgroup LPTIM_LL_ES_INIT LPTIM Exported Init structure
AnnaBridge 146:22da6e220af6 74 * @{
AnnaBridge 146:22da6e220af6 75 */
AnnaBridge 146:22da6e220af6 76
AnnaBridge 146:22da6e220af6 77 /**
AnnaBridge 146:22da6e220af6 78 * @brief LPTIM Init structure definition
AnnaBridge 146:22da6e220af6 79 */
AnnaBridge 146:22da6e220af6 80 typedef struct
AnnaBridge 146:22da6e220af6 81 {
AnnaBridge 146:22da6e220af6 82 uint32_t ClockSource; /*!< Specifies the source of the clock used by the LPTIM instance.
AnnaBridge 146:22da6e220af6 83 This parameter can be a value of @ref LPTIM_LL_EC_CLK_SOURCE.
AnnaBridge 146:22da6e220af6 84
AnnaBridge 146:22da6e220af6 85 This feature can be modified afterwards using unitary function @ref LL_LPTIM_SetClockSource().*/
AnnaBridge 146:22da6e220af6 86
AnnaBridge 146:22da6e220af6 87 uint32_t Prescaler; /*!< Specifies the prescaler division ratio.
AnnaBridge 146:22da6e220af6 88 This parameter can be a value of @ref LPTIM_LL_EC_PRESCALER.
AnnaBridge 146:22da6e220af6 89
AnnaBridge 146:22da6e220af6 90 This feature can be modified afterwards using using unitary function @ref LL_LPTIM_SetPrescaler().*/
AnnaBridge 146:22da6e220af6 91
AnnaBridge 146:22da6e220af6 92 uint32_t Waveform; /*!< Specifies the waveform shape.
AnnaBridge 146:22da6e220af6 93 This parameter can be a value of @ref LPTIM_LL_EC_OUTPUT_WAVEFORM.
AnnaBridge 146:22da6e220af6 94
AnnaBridge 146:22da6e220af6 95 This feature can be modified afterwards using unitary function @ref LL_LPTIM_ConfigOutput().*/
AnnaBridge 146:22da6e220af6 96
AnnaBridge 146:22da6e220af6 97 uint32_t Polarity; /*!< Specifies waveform polarity.
AnnaBridge 146:22da6e220af6 98 This parameter can be a value of @ref LPTIM_LL_EC_OUTPUT_POLARITY.
AnnaBridge 146:22da6e220af6 99
AnnaBridge 146:22da6e220af6 100 This feature can be modified afterwards using unitary function @ref LL_LPTIM_ConfigOutput().*/
AnnaBridge 146:22da6e220af6 101 } LL_LPTIM_InitTypeDef;
AnnaBridge 146:22da6e220af6 102
AnnaBridge 146:22da6e220af6 103 /**
AnnaBridge 146:22da6e220af6 104 * @}
AnnaBridge 146:22da6e220af6 105 */
AnnaBridge 146:22da6e220af6 106 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 146:22da6e220af6 107
AnnaBridge 146:22da6e220af6 108 /* Exported constants --------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 109 /** @defgroup LPTIM_LL_Exported_Constants LPTIM Exported Constants
AnnaBridge 146:22da6e220af6 110 * @{
AnnaBridge 146:22da6e220af6 111 */
AnnaBridge 146:22da6e220af6 112
AnnaBridge 146:22da6e220af6 113 /** @defgroup LPTIM_LL_EC_GET_FLAG Get Flags Defines
AnnaBridge 146:22da6e220af6 114 * @brief Flags defines which can be used with LL_LPTIM_ReadReg function
AnnaBridge 146:22da6e220af6 115 * @{
AnnaBridge 146:22da6e220af6 116 */
AnnaBridge 146:22da6e220af6 117 #define LL_LPTIM_ISR_CMPM LPTIM_ISR_CMPM /*!< Compare match */
AnnaBridge 146:22da6e220af6 118 #define LL_LPTIM_ISR_ARRM LPTIM_ISR_ARRM /*!< Autoreload match */
AnnaBridge 146:22da6e220af6 119 #define LL_LPTIM_ISR_EXTTRIG LPTIM_ISR_EXTTRIG /*!< External trigger edge event */
AnnaBridge 146:22da6e220af6 120 #define LL_LPTIM_ISR_CMPOK LPTIM_ISR_CMPOK /*!< Compare register update OK */
AnnaBridge 146:22da6e220af6 121 #define LL_LPTIM_ISR_ARROK LPTIM_ISR_ARROK /*!< Autoreload register update OK */
AnnaBridge 146:22da6e220af6 122 #define LL_LPTIM_ISR_UP LPTIM_ISR_UP /*!< Counter direction change down to up */
AnnaBridge 146:22da6e220af6 123 #define LL_LPTIM_ISR_DOWN LPTIM_ISR_DOWN /*!< Counter direction change up to down */
AnnaBridge 146:22da6e220af6 124 /**
AnnaBridge 146:22da6e220af6 125 * @}
AnnaBridge 146:22da6e220af6 126 */
AnnaBridge 146:22da6e220af6 127
AnnaBridge 146:22da6e220af6 128 /** @defgroup LPTIM_LL_EC_IT IT Defines
AnnaBridge 146:22da6e220af6 129 * @brief IT defines which can be used with LL_LPTIM_ReadReg and LL_LPTIM_WriteReg functions
AnnaBridge 146:22da6e220af6 130 * @{
AnnaBridge 146:22da6e220af6 131 */
AnnaBridge 146:22da6e220af6 132 #define LL_LPTIM_IER_CMPMIE LPTIM_IER_CMPMIE /*!< Compare match Interrupt Enable */
AnnaBridge 146:22da6e220af6 133 #define LL_LPTIM_IER_ARRMIE LPTIM_IER_ARRMIE /*!< Autoreload match Interrupt Enable */
AnnaBridge 146:22da6e220af6 134 #define LL_LPTIM_IER_EXTTRIGIE LPTIM_IER_EXTTRIGIE /*!< External trigger valid edge Interrupt Enable */
AnnaBridge 146:22da6e220af6 135 #define LL_LPTIM_IER_CMPOKIE LPTIM_IER_CMPOKIE /*!< Compare register update OK Interrupt Enable */
AnnaBridge 146:22da6e220af6 136 #define LL_LPTIM_IER_ARROKIE LPTIM_IER_ARROKIE /*!< Autoreload register update OK Interrupt Enable */
AnnaBridge 146:22da6e220af6 137 #define LL_LPTIM_IER_UPIE LPTIM_IER_UPIE /*!< Direction change to UP Interrupt Enable */
AnnaBridge 146:22da6e220af6 138 #define LL_LPTIM_IER_DOWNIE LPTIM_IER_DOWNIE /*!< Direction change to down Interrupt Enable */
AnnaBridge 146:22da6e220af6 139 /**
AnnaBridge 146:22da6e220af6 140 * @}
AnnaBridge 146:22da6e220af6 141 */
AnnaBridge 146:22da6e220af6 142
AnnaBridge 146:22da6e220af6 143 /** @defgroup LPTIM_LL_EC_OPERATING_MODE Operating Mode
AnnaBridge 146:22da6e220af6 144 * @{
AnnaBridge 146:22da6e220af6 145 */
AnnaBridge 146:22da6e220af6 146 #define LL_LPTIM_OPERATING_MODE_CONTINUOUS LPTIM_CR_CNTSTRT /*!<LP Timer starts in continuous mode*/
AnnaBridge 146:22da6e220af6 147 #define LL_LPTIM_OPERATING_MODE_ONESHOT LPTIM_CR_SNGSTRT /*!<LP Tilmer starts in single mode*/
AnnaBridge 146:22da6e220af6 148 /**
AnnaBridge 146:22da6e220af6 149 * @}
AnnaBridge 146:22da6e220af6 150 */
AnnaBridge 146:22da6e220af6 151
AnnaBridge 146:22da6e220af6 152 /** @defgroup LPTIM_LL_EC_UPDATE_MODE Update Mode
AnnaBridge 146:22da6e220af6 153 * @{
AnnaBridge 146:22da6e220af6 154 */
AnnaBridge 146:22da6e220af6 155 #define LL_LPTIM_UPDATE_MODE_IMMEDIATE 0x00000000U /*!<Preload is disabled: registers are updated after each APB bus write access*/
AnnaBridge 146:22da6e220af6 156 #define LL_LPTIM_UPDATE_MODE_ENDOFPERIOD LPTIM_CFGR_PRELOAD /*!<preload is enabled: registers are updated at the end of the current LPTIM period*/
AnnaBridge 146:22da6e220af6 157 /**
AnnaBridge 146:22da6e220af6 158 * @}
AnnaBridge 146:22da6e220af6 159 */
AnnaBridge 146:22da6e220af6 160
AnnaBridge 146:22da6e220af6 161 /** @defgroup LPTIM_LL_EC_COUNTER_MODE Counter Mode
AnnaBridge 146:22da6e220af6 162 * @{
AnnaBridge 146:22da6e220af6 163 */
AnnaBridge 146:22da6e220af6 164 #define LL_LPTIM_COUNTER_MODE_INTERNAL 0x00000000U /*!<The counter is incremented following each internal clock pulse*/
AnnaBridge 146:22da6e220af6 165 #define LL_LPTIM_COUNTER_MODE_EXTERNAL LPTIM_CFGR_COUNTMODE /*!<The counter is incremented following each valid clock pulse on the LPTIM external Input1*/
AnnaBridge 146:22da6e220af6 166 /**
AnnaBridge 146:22da6e220af6 167 * @}
AnnaBridge 146:22da6e220af6 168 */
AnnaBridge 146:22da6e220af6 169
AnnaBridge 146:22da6e220af6 170 /** @defgroup LPTIM_LL_EC_OUTPUT_WAVEFORM Output Waveform Type
AnnaBridge 146:22da6e220af6 171 * @{
AnnaBridge 146:22da6e220af6 172 */
AnnaBridge 146:22da6e220af6 173 #define LL_LPTIM_OUTPUT_WAVEFORM_PWM 0x00000000U /*!<LPTIM generates either a PWM waveform or a One pulse waveform depending on chosen operating mode CONTINOUS or SINGLE*/
AnnaBridge 146:22da6e220af6 174 #define LL_LPTIM_OUTPUT_WAVEFORM_SETONCE LPTIM_CFGR_WAVE /*!<LPTIM generates a Set Once waveform*/
AnnaBridge 146:22da6e220af6 175 /**
AnnaBridge 146:22da6e220af6 176 * @}
AnnaBridge 146:22da6e220af6 177 */
AnnaBridge 146:22da6e220af6 178
AnnaBridge 146:22da6e220af6 179 /** @defgroup LPTIM_LL_EC_OUTPUT_POLARITY Output Polarity
AnnaBridge 146:22da6e220af6 180 * @{
AnnaBridge 146:22da6e220af6 181 */
AnnaBridge 146:22da6e220af6 182 #define LL_LPTIM_OUTPUT_POLARITY_REGULAR 0x00000000U /*!<The LPTIM output reflects the compare results between LPTIMx_ARR and LPTIMx_CMP registers*/
AnnaBridge 146:22da6e220af6 183 #define LL_LPTIM_OUTPUT_POLARITY_INVERSE LPTIM_CFGR_WAVPOL /*!<The LPTIM output reflects the inverse of the compare results between LPTIMx_ARR and LPTIMx_CMP registers*/
AnnaBridge 146:22da6e220af6 184 /**
AnnaBridge 146:22da6e220af6 185 * @}
AnnaBridge 146:22da6e220af6 186 */
AnnaBridge 146:22da6e220af6 187
AnnaBridge 146:22da6e220af6 188 /** @defgroup LPTIM_LL_EC_PRESCALER Prescaler Value
AnnaBridge 146:22da6e220af6 189 * @{
AnnaBridge 146:22da6e220af6 190 */
AnnaBridge 146:22da6e220af6 191 #define LL_LPTIM_PRESCALER_DIV1 0x00000000U /*!<Prescaler division factor is set to 1*/
AnnaBridge 146:22da6e220af6 192 #define LL_LPTIM_PRESCALER_DIV2 LPTIM_CFGR_PRESC_0 /*!<Prescaler division factor is set to 2*/
AnnaBridge 146:22da6e220af6 193 #define LL_LPTIM_PRESCALER_DIV4 LPTIM_CFGR_PRESC_1 /*!<Prescaler division factor is set to 4*/
AnnaBridge 146:22da6e220af6 194 #define LL_LPTIM_PRESCALER_DIV8 (LPTIM_CFGR_PRESC_1 | LPTIM_CFGR_PRESC_0) /*!<Prescaler division factor is set to 8*/
AnnaBridge 146:22da6e220af6 195 #define LL_LPTIM_PRESCALER_DIV16 LPTIM_CFGR_PRESC_2 /*!<Prescaler division factor is set to 16*/
AnnaBridge 146:22da6e220af6 196 #define LL_LPTIM_PRESCALER_DIV32 (LPTIM_CFGR_PRESC_2 | LPTIM_CFGR_PRESC_0) /*!<Prescaler division factor is set to 32*/
AnnaBridge 146:22da6e220af6 197 #define LL_LPTIM_PRESCALER_DIV64 (LPTIM_CFGR_PRESC_2 | LPTIM_CFGR_PRESC_1) /*!<Prescaler division factor is set to 64*/
AnnaBridge 146:22da6e220af6 198 #define LL_LPTIM_PRESCALER_DIV128 LPTIM_CFGR_PRESC /*!<Prescaler division factor is set to 128*/
AnnaBridge 146:22da6e220af6 199 /**
AnnaBridge 146:22da6e220af6 200 * @}
AnnaBridge 146:22da6e220af6 201 */
AnnaBridge 146:22da6e220af6 202
AnnaBridge 146:22da6e220af6 203 /** @defgroup LPTIM_LL_EC_TRIG_SOURCE Trigger Source
AnnaBridge 146:22da6e220af6 204 * @{
AnnaBridge 146:22da6e220af6 205 */
AnnaBridge 146:22da6e220af6 206 #define LL_LPTIM_TRIG_SOURCE_GPIO 0x00000000U /*!<External input trigger is connected to TIMx_ETR input*/
AnnaBridge 146:22da6e220af6 207 #define LL_LPTIM_TRIG_SOURCE_RTCALARMA LPTIM_CFGR_TRIGSEL_0 /*!<External input trigger is connected to RTC Alarm A*/
AnnaBridge 146:22da6e220af6 208 #define LL_LPTIM_TRIG_SOURCE_RTCALARMB LPTIM_CFGR_TRIGSEL_1 /*!<External input trigger is connected to RTC Alarm B*/
AnnaBridge 146:22da6e220af6 209 #define LL_LPTIM_TRIG_SOURCE_RTCTAMP1 (LPTIM_CFGR_TRIGSEL_1 | LPTIM_CFGR_TRIGSEL_0) /*!<External input trigger is connected to RTC Tamper 1*/
AnnaBridge 146:22da6e220af6 210 #define LL_LPTIM_TRIG_SOURCE_TIM1_TRGO LPTIM_CFGR_TRIGSEL_2 /*!<External input trigger is connected to TIM1*/
AnnaBridge 146:22da6e220af6 211 #define LL_LPTIM_TRIG_SOURCE_TIM5_TRGO (LPTIM_CFGR_TRIGSEL_2 | LPTIM_CFGR_TRIGSEL_0) /*!<External input trigger is connected to TIM5*/
AnnaBridge 146:22da6e220af6 212 /**
AnnaBridge 146:22da6e220af6 213 * @}
AnnaBridge 146:22da6e220af6 214 */
AnnaBridge 146:22da6e220af6 215
AnnaBridge 146:22da6e220af6 216 /** @defgroup LPTIM_LL_EC_TRIG_FILTER Trigger Filter
AnnaBridge 146:22da6e220af6 217 * @{
AnnaBridge 146:22da6e220af6 218 */
AnnaBridge 146:22da6e220af6 219 #define LL_LPTIM_TRIG_FILTER_NONE 0x00000000U /*!<Any trigger active level change is considered as a valid trigger*/
AnnaBridge 146:22da6e220af6 220 #define LL_LPTIM_TRIG_FILTER_2 LPTIM_CFGR_TRGFLT_0 /*!<Trigger active level change must be stable for at least 2 clock periods before it is considered as valid trigger*/
AnnaBridge 146:22da6e220af6 221 #define LL_LPTIM_TRIG_FILTER_4 LPTIM_CFGR_TRGFLT_1 /*!<Trigger active level change must be stable for at least 4 clock periods before it is considered as valid trigger*/
AnnaBridge 146:22da6e220af6 222 #define LL_LPTIM_TRIG_FILTER_8 LPTIM_CFGR_TRGFLT /*!<Trigger active level change must be stable for at least 8 clock periods before it is considered as valid trigger*/
AnnaBridge 146:22da6e220af6 223 /**
AnnaBridge 146:22da6e220af6 224 * @}
AnnaBridge 146:22da6e220af6 225 */
AnnaBridge 146:22da6e220af6 226
AnnaBridge 146:22da6e220af6 227 /** @defgroup LPTIM_LL_EC_TRIG_POLARITY Trigger Polarity
AnnaBridge 146:22da6e220af6 228 * @{
AnnaBridge 146:22da6e220af6 229 */
AnnaBridge 146:22da6e220af6 230 #define LL_LPTIM_TRIG_POLARITY_RISING LPTIM_CFGR_TRIGEN_0 /*!<LPTIM counter starts when a rising edge is detected*/
AnnaBridge 146:22da6e220af6 231 #define LL_LPTIM_TRIG_POLARITY_FALLING LPTIM_CFGR_TRIGEN_1 /*!<LPTIM counter starts when a falling edge is detected*/
AnnaBridge 146:22da6e220af6 232 #define LL_LPTIM_TRIG_POLARITY_RISING_FALLING LPTIM_CFGR_TRIGEN /*!<LPTIM counter starts when a rising or a falling edge is detected*/
AnnaBridge 146:22da6e220af6 233 /**
AnnaBridge 146:22da6e220af6 234 * @}
AnnaBridge 146:22da6e220af6 235 */
AnnaBridge 146:22da6e220af6 236
AnnaBridge 146:22da6e220af6 237 /** @defgroup LPTIM_LL_EC_CLK_SOURCE Clock Source
AnnaBridge 146:22da6e220af6 238 * @{
AnnaBridge 146:22da6e220af6 239 */
AnnaBridge 146:22da6e220af6 240 #define LL_LPTIM_CLK_SOURCE_INTERNAL 0x00000000U /*!<LPTIM is clocked by internal clock source (APB clock or any of the embedded oscillators)*/
AnnaBridge 146:22da6e220af6 241 #define LL_LPTIM_CLK_SOURCE_EXTERNAL LPTIM_CFGR_CKSEL /*!<LPTIM is clocked by an external clock source through the LPTIM external Input1*/
AnnaBridge 146:22da6e220af6 242 /**
AnnaBridge 146:22da6e220af6 243 * @}
AnnaBridge 146:22da6e220af6 244 */
AnnaBridge 146:22da6e220af6 245
AnnaBridge 146:22da6e220af6 246 /** @defgroup LPTIM_LL_EC_CLK_FILTER Clock Filter
AnnaBridge 146:22da6e220af6 247 * @{
AnnaBridge 146:22da6e220af6 248 */
AnnaBridge 146:22da6e220af6 249 #define LL_LPTIM_CLK_FILTER_NONE 0x00000000U /*!<Any external clock signal level change is considered as a valid transition*/
AnnaBridge 146:22da6e220af6 250 #define LL_LPTIM_CLK_FILTER_2 LPTIM_CFGR_CKFLT_0 /*!<External clock signal level change must be stable for at least 2 clock periods before it is considered as valid transition*/
AnnaBridge 146:22da6e220af6 251 #define LL_LPTIM_CLK_FILTER_4 LPTIM_CFGR_CKFLT_1 /*!<External clock signal level change must be stable for at least 4 clock periods before it is considered as valid transition*/
AnnaBridge 146:22da6e220af6 252 #define LL_LPTIM_CLK_FILTER_8 LPTIM_CFGR_CKFLT /*!<External clock signal level change must be stable for at least 8 clock periods before it is considered as valid transition*/
AnnaBridge 146:22da6e220af6 253 /**
AnnaBridge 146:22da6e220af6 254 * @}
AnnaBridge 146:22da6e220af6 255 */
AnnaBridge 146:22da6e220af6 256
AnnaBridge 146:22da6e220af6 257 /** @defgroup LPTIM_LL_EC_CLK_POLARITY Clock Polarity
AnnaBridge 146:22da6e220af6 258 * @{
AnnaBridge 146:22da6e220af6 259 */
AnnaBridge 146:22da6e220af6 260 #define LL_LPTIM_CLK_POLARITY_RISING 0x00000000U /*!< The rising edge is the active edge used for counting*/
AnnaBridge 146:22da6e220af6 261 #define LL_LPTIM_CLK_POLARITY_FALLING LPTIM_CFGR_CKPOL_0 /*!< The falling edge is the active edge used for counting*/
AnnaBridge 146:22da6e220af6 262 #define LL_LPTIM_CLK_POLARITY_RISING_FALLING LPTIM_CFGR_CKPOL_1 /*!< Both edges are active edges*/
AnnaBridge 146:22da6e220af6 263 /**
AnnaBridge 146:22da6e220af6 264 * @}
AnnaBridge 146:22da6e220af6 265 */
AnnaBridge 146:22da6e220af6 266
AnnaBridge 146:22da6e220af6 267 /** @defgroup LPTIM_LL_EC_ENCODER_MODE Encoder Mode
AnnaBridge 146:22da6e220af6 268 * @{
AnnaBridge 146:22da6e220af6 269 */
AnnaBridge 146:22da6e220af6 270 #define LL_LPTIM_ENCODER_MODE_RISING 0x00000000U /*!< The rising edge is the active edge used for counting*/
AnnaBridge 146:22da6e220af6 271 #define LL_LPTIM_ENCODER_MODE_FALLING LPTIM_CFGR_CKPOL_0 /*!< The falling edge is the active edge used for counting*/
AnnaBridge 146:22da6e220af6 272 #define LL_LPTIM_ENCODER_MODE_RISING_FALLING LPTIM_CFGR_CKPOL_1 /*!< Both edges are active edges*/
AnnaBridge 146:22da6e220af6 273 /**
AnnaBridge 146:22da6e220af6 274 * @}
AnnaBridge 146:22da6e220af6 275 */
AnnaBridge 146:22da6e220af6 276
AnnaBridge 146:22da6e220af6 277
AnnaBridge 146:22da6e220af6 278 /**
AnnaBridge 146:22da6e220af6 279 * @}
AnnaBridge 146:22da6e220af6 280 */
AnnaBridge 146:22da6e220af6 281
AnnaBridge 146:22da6e220af6 282 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 283 /** @defgroup LPTIM_LL_Exported_Macros LPTIM Exported Macros
AnnaBridge 146:22da6e220af6 284 * @{
AnnaBridge 146:22da6e220af6 285 */
AnnaBridge 146:22da6e220af6 286
AnnaBridge 146:22da6e220af6 287 /** @defgroup LPTIM_LL_EM_WRITE_READ Common Write and read registers Macros
AnnaBridge 146:22da6e220af6 288 * @{
AnnaBridge 146:22da6e220af6 289 */
AnnaBridge 146:22da6e220af6 290
AnnaBridge 146:22da6e220af6 291 /**
AnnaBridge 146:22da6e220af6 292 * @brief Write a value in LPTIM register
AnnaBridge 146:22da6e220af6 293 * @param __INSTANCE__ LPTIM Instance
AnnaBridge 146:22da6e220af6 294 * @param __REG__ Register to be written
AnnaBridge 146:22da6e220af6 295 * @param __VALUE__ Value to be written in the register
AnnaBridge 146:22da6e220af6 296 * @retval None
AnnaBridge 146:22da6e220af6 297 */
AnnaBridge 146:22da6e220af6 298 #define LL_LPTIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 146:22da6e220af6 299
AnnaBridge 146:22da6e220af6 300 /**
AnnaBridge 146:22da6e220af6 301 * @brief Read a value in LPTIM register
AnnaBridge 146:22da6e220af6 302 * @param __INSTANCE__ LPTIM Instance
AnnaBridge 146:22da6e220af6 303 * @param __REG__ Register to be read
AnnaBridge 146:22da6e220af6 304 * @retval Register value
AnnaBridge 146:22da6e220af6 305 */
AnnaBridge 146:22da6e220af6 306 #define LL_LPTIM_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 146:22da6e220af6 307 /**
AnnaBridge 146:22da6e220af6 308 * @}
AnnaBridge 146:22da6e220af6 309 */
AnnaBridge 146:22da6e220af6 310
AnnaBridge 146:22da6e220af6 311 /**
AnnaBridge 146:22da6e220af6 312 * @}
AnnaBridge 146:22da6e220af6 313 */
AnnaBridge 146:22da6e220af6 314
AnnaBridge 146:22da6e220af6 315
AnnaBridge 146:22da6e220af6 316 /* Exported functions --------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 317 /** @defgroup LPTIM_LL_Exported_Functions LPTIM Exported Functions
AnnaBridge 146:22da6e220af6 318 * @{
AnnaBridge 146:22da6e220af6 319 */
AnnaBridge 146:22da6e220af6 320
AnnaBridge 146:22da6e220af6 321 /** @defgroup LPTIM_LL_EF_LPTIM_Configuration LPTIM Configuration
AnnaBridge 146:22da6e220af6 322 * @{
AnnaBridge 146:22da6e220af6 323 */
AnnaBridge 146:22da6e220af6 324
AnnaBridge 146:22da6e220af6 325 /**
AnnaBridge 146:22da6e220af6 326 * @brief Enable the LPTIM instance
AnnaBridge 146:22da6e220af6 327 * @note After setting the ENABLE bit, a delay of two counter clock is needed
AnnaBridge 146:22da6e220af6 328 * before the LPTIM instance is actually enabled.
AnnaBridge 146:22da6e220af6 329 * @rmtoll CR ENABLE LL_LPTIM_Enable
AnnaBridge 146:22da6e220af6 330 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 331 * @retval None
AnnaBridge 146:22da6e220af6 332 */
AnnaBridge 146:22da6e220af6 333 __STATIC_INLINE void LL_LPTIM_Enable(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 334 {
AnnaBridge 146:22da6e220af6 335 SET_BIT(LPTIMx->CR, LPTIM_CR_ENABLE);
AnnaBridge 146:22da6e220af6 336 }
AnnaBridge 146:22da6e220af6 337
AnnaBridge 146:22da6e220af6 338 /**
AnnaBridge 146:22da6e220af6 339 * @brief Disable the LPTIM instance
AnnaBridge 146:22da6e220af6 340 * @rmtoll CR ENABLE LL_LPTIM_Disable
AnnaBridge 146:22da6e220af6 341 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 342 * @retval None
AnnaBridge 146:22da6e220af6 343 */
AnnaBridge 146:22da6e220af6 344 __STATIC_INLINE void LL_LPTIM_Disable(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 345 {
AnnaBridge 146:22da6e220af6 346 CLEAR_BIT(LPTIMx->CR, LPTIM_CR_ENABLE);
AnnaBridge 146:22da6e220af6 347 }
AnnaBridge 146:22da6e220af6 348
AnnaBridge 146:22da6e220af6 349 /**
AnnaBridge 146:22da6e220af6 350 * @brief Indicates whether the LPTIM instance is enabled.
AnnaBridge 146:22da6e220af6 351 * @rmtoll CR ENABLE LL_LPTIM_IsEnabled
AnnaBridge 146:22da6e220af6 352 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 353 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 354 */
AnnaBridge 146:22da6e220af6 355 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabled(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 356 {
AnnaBridge 146:22da6e220af6 357 return (READ_BIT(LPTIMx->CR, LPTIM_CR_ENABLE) == (LPTIM_CR_ENABLE));
AnnaBridge 146:22da6e220af6 358 }
AnnaBridge 146:22da6e220af6 359
AnnaBridge 146:22da6e220af6 360 /**
AnnaBridge 146:22da6e220af6 361 * @brief Starts the LPTIM counter in the desired mode.
AnnaBridge 146:22da6e220af6 362 * @note LPTIM instance must be enabled before starting the counter.
AnnaBridge 146:22da6e220af6 363 * @note It is possible to change on the fly from One Shot mode to
AnnaBridge 146:22da6e220af6 364 * Continuous mode.
AnnaBridge 146:22da6e220af6 365 * @rmtoll CR CNTSTRT LL_LPTIM_StartCounter\n
AnnaBridge 146:22da6e220af6 366 * CR SNGSTRT LL_LPTIM_StartCounter
AnnaBridge 146:22da6e220af6 367 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 368 * @param OperatingMode This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 369 * @arg @ref LL_LPTIM_OPERATING_MODE_CONTINUOUS
AnnaBridge 146:22da6e220af6 370 * @arg @ref LL_LPTIM_OPERATING_MODE_ONESHOT
AnnaBridge 146:22da6e220af6 371 * @retval None
AnnaBridge 146:22da6e220af6 372 */
AnnaBridge 146:22da6e220af6 373 __STATIC_INLINE void LL_LPTIM_StartCounter(LPTIM_TypeDef *LPTIMx, uint32_t OperatingMode)
AnnaBridge 146:22da6e220af6 374 {
AnnaBridge 146:22da6e220af6 375 MODIFY_REG(LPTIMx->CR, LPTIM_CR_CNTSTRT | LPTIM_CR_SNGSTRT, OperatingMode);
AnnaBridge 146:22da6e220af6 376 }
AnnaBridge 146:22da6e220af6 377
AnnaBridge 146:22da6e220af6 378
AnnaBridge 146:22da6e220af6 379 /**
AnnaBridge 146:22da6e220af6 380 * @brief Set the LPTIM registers update mode (enable/disable register preload)
AnnaBridge 146:22da6e220af6 381 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 382 * @rmtoll CFGR PRELOAD LL_LPTIM_SetUpdateMode
AnnaBridge 146:22da6e220af6 383 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 384 * @param UpdateMode This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 385 * @arg @ref LL_LPTIM_UPDATE_MODE_IMMEDIATE
AnnaBridge 146:22da6e220af6 386 * @arg @ref LL_LPTIM_UPDATE_MODE_ENDOFPERIOD
AnnaBridge 146:22da6e220af6 387 * @retval None
AnnaBridge 146:22da6e220af6 388 */
AnnaBridge 146:22da6e220af6 389 __STATIC_INLINE void LL_LPTIM_SetUpdateMode(LPTIM_TypeDef *LPTIMx, uint32_t UpdateMode)
AnnaBridge 146:22da6e220af6 390 {
AnnaBridge 146:22da6e220af6 391 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_PRELOAD, UpdateMode);
AnnaBridge 146:22da6e220af6 392 }
AnnaBridge 146:22da6e220af6 393
AnnaBridge 146:22da6e220af6 394 /**
AnnaBridge 146:22da6e220af6 395 * @brief Get the LPTIM registers update mode
AnnaBridge 146:22da6e220af6 396 * @rmtoll CFGR PRELOAD LL_LPTIM_GetUpdateMode
AnnaBridge 146:22da6e220af6 397 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 398 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 399 * @arg @ref LL_LPTIM_UPDATE_MODE_IMMEDIATE
AnnaBridge 146:22da6e220af6 400 * @arg @ref LL_LPTIM_UPDATE_MODE_ENDOFPERIOD
AnnaBridge 146:22da6e220af6 401 */
AnnaBridge 146:22da6e220af6 402 __STATIC_INLINE uint32_t LL_LPTIM_GetUpdateMode(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 403 {
AnnaBridge 146:22da6e220af6 404 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_PRELOAD));
AnnaBridge 146:22da6e220af6 405 }
AnnaBridge 146:22da6e220af6 406
AnnaBridge 146:22da6e220af6 407 /**
AnnaBridge 146:22da6e220af6 408 * @brief Set the auto reload value
AnnaBridge 146:22da6e220af6 409 * @note The LPTIMx_ARR register content must only be modified when the LPTIM is enabled
AnnaBridge 146:22da6e220af6 410 * @note After a write to the LPTIMx_ARR register a new write operation to the
AnnaBridge 146:22da6e220af6 411 * same register can only be performed when the previous write operation
AnnaBridge 146:22da6e220af6 412 * is completed. Any successive write before the ARROK flag be set, will
AnnaBridge 146:22da6e220af6 413 * lead to unpredictable results.
AnnaBridge 146:22da6e220af6 414 * @note autoreload value be strictly greater than the compare value.
AnnaBridge 146:22da6e220af6 415 * @rmtoll ARR ARR LL_LPTIM_SetAutoReload
AnnaBridge 146:22da6e220af6 416 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 417 * @param AutoReload Value between Min_Data=0x00 and Max_Data=0xFFFF
AnnaBridge 146:22da6e220af6 418 * @retval None
AnnaBridge 146:22da6e220af6 419 */
AnnaBridge 146:22da6e220af6 420 __STATIC_INLINE void LL_LPTIM_SetAutoReload(LPTIM_TypeDef *LPTIMx, uint32_t AutoReload)
AnnaBridge 146:22da6e220af6 421 {
AnnaBridge 146:22da6e220af6 422 MODIFY_REG(LPTIMx->ARR, LPTIM_ARR_ARR, AutoReload);
AnnaBridge 146:22da6e220af6 423 }
AnnaBridge 146:22da6e220af6 424
AnnaBridge 146:22da6e220af6 425 /**
AnnaBridge 146:22da6e220af6 426 * @brief Get actual auto reload value
AnnaBridge 146:22da6e220af6 427 * @rmtoll ARR ARR LL_LPTIM_GetAutoReload
AnnaBridge 146:22da6e220af6 428 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 429 * @retval AutoReload Value between Min_Data=0x00 and Max_Data=0xFFFF
AnnaBridge 146:22da6e220af6 430 */
AnnaBridge 146:22da6e220af6 431 __STATIC_INLINE uint32_t LL_LPTIM_GetAutoReload(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 432 {
AnnaBridge 146:22da6e220af6 433 return (uint32_t)(READ_BIT(LPTIMx->ARR, LPTIM_ARR_ARR));
AnnaBridge 146:22da6e220af6 434 }
AnnaBridge 146:22da6e220af6 435
AnnaBridge 146:22da6e220af6 436 /**
AnnaBridge 146:22da6e220af6 437 * @brief Set the compare value
AnnaBridge 146:22da6e220af6 438 * @note After a write to the LPTIMx_CMP register a new write operation to the
AnnaBridge 146:22da6e220af6 439 * same register can only be performed when the previous write operation
AnnaBridge 146:22da6e220af6 440 * is completed. Any successive write before the CMPOK flag be set, will
AnnaBridge 146:22da6e220af6 441 * lead to unpredictable results.
AnnaBridge 146:22da6e220af6 442 * @rmtoll CMP CMP LL_LPTIM_SetCompare
AnnaBridge 146:22da6e220af6 443 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 444 * @param CompareValue Value between Min_Data=0x00 and Max_Data=0xFFFF
AnnaBridge 146:22da6e220af6 445 * @retval None
AnnaBridge 146:22da6e220af6 446 */
AnnaBridge 146:22da6e220af6 447 __STATIC_INLINE void LL_LPTIM_SetCompare(LPTIM_TypeDef *LPTIMx, uint32_t CompareValue)
AnnaBridge 146:22da6e220af6 448 {
AnnaBridge 146:22da6e220af6 449 MODIFY_REG(LPTIMx->CMP, LPTIM_CMP_CMP, CompareValue);
AnnaBridge 146:22da6e220af6 450 }
AnnaBridge 146:22da6e220af6 451
AnnaBridge 146:22da6e220af6 452 /**
AnnaBridge 146:22da6e220af6 453 * @brief Get actual compare value
AnnaBridge 146:22da6e220af6 454 * @rmtoll CMP CMP LL_LPTIM_GetCompare
AnnaBridge 146:22da6e220af6 455 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 456 * @retval CompareValue Value between Min_Data=0x00 and Max_Data=0xFFFF
AnnaBridge 146:22da6e220af6 457 */
AnnaBridge 146:22da6e220af6 458 __STATIC_INLINE uint32_t LL_LPTIM_GetCompare(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 459 {
AnnaBridge 146:22da6e220af6 460 return (uint32_t)(READ_BIT(LPTIMx->CMP, LPTIM_CMP_CMP));
AnnaBridge 146:22da6e220af6 461 }
AnnaBridge 146:22da6e220af6 462
AnnaBridge 146:22da6e220af6 463 /**
AnnaBridge 146:22da6e220af6 464 * @brief Get actual counter value
AnnaBridge 146:22da6e220af6 465 * @note When the LPTIM instance is running with an asynchronous clock, reading
AnnaBridge 146:22da6e220af6 466 * the LPTIMx_CNT register may return unreliable values. So in this case
AnnaBridge 146:22da6e220af6 467 * it is necessary to perform two consecutive read accesses and verify
AnnaBridge 146:22da6e220af6 468 * that the two returned values are identical.
AnnaBridge 146:22da6e220af6 469 * @rmtoll CNT CNT LL_LPTIM_GetCounter
AnnaBridge 146:22da6e220af6 470 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 471 * @retval Counter value
AnnaBridge 146:22da6e220af6 472 */
AnnaBridge 146:22da6e220af6 473 __STATIC_INLINE uint32_t LL_LPTIM_GetCounter(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 474 {
AnnaBridge 146:22da6e220af6 475 return (uint32_t)(READ_BIT(LPTIMx->CNT, LPTIM_CNT_CNT));
AnnaBridge 146:22da6e220af6 476 }
AnnaBridge 146:22da6e220af6 477
AnnaBridge 146:22da6e220af6 478 /**
AnnaBridge 146:22da6e220af6 479 * @brief Set the counter mode (selection of the LPTIM counter clock source).
AnnaBridge 146:22da6e220af6 480 * @note The counter mode can be set only when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 481 * @rmtoll CFGR COUNTMODE LL_LPTIM_SetCounterMode
AnnaBridge 146:22da6e220af6 482 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 483 * @param CounterMode This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 484 * @arg @ref LL_LPTIM_COUNTER_MODE_INTERNAL
AnnaBridge 146:22da6e220af6 485 * @arg @ref LL_LPTIM_COUNTER_MODE_EXTERNAL
AnnaBridge 146:22da6e220af6 486 * @retval None
AnnaBridge 146:22da6e220af6 487 */
AnnaBridge 146:22da6e220af6 488 __STATIC_INLINE void LL_LPTIM_SetCounterMode(LPTIM_TypeDef *LPTIMx, uint32_t CounterMode)
AnnaBridge 146:22da6e220af6 489 {
AnnaBridge 146:22da6e220af6 490 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_COUNTMODE, CounterMode);
AnnaBridge 146:22da6e220af6 491 }
AnnaBridge 146:22da6e220af6 492
AnnaBridge 146:22da6e220af6 493 /**
AnnaBridge 146:22da6e220af6 494 * @brief Get the counter mode
AnnaBridge 146:22da6e220af6 495 * @rmtoll CFGR COUNTMODE LL_LPTIM_GetCounterMode
AnnaBridge 146:22da6e220af6 496 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 497 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 498 * @arg @ref LL_LPTIM_COUNTER_MODE_INTERNAL
AnnaBridge 146:22da6e220af6 499 * @arg @ref LL_LPTIM_COUNTER_MODE_EXTERNAL
AnnaBridge 146:22da6e220af6 500 */
AnnaBridge 146:22da6e220af6 501 __STATIC_INLINE uint32_t LL_LPTIM_GetCounterMode(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 502 {
AnnaBridge 146:22da6e220af6 503 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_COUNTMODE));
AnnaBridge 146:22da6e220af6 504 }
AnnaBridge 146:22da6e220af6 505
AnnaBridge 146:22da6e220af6 506 /**
AnnaBridge 146:22da6e220af6 507 * @brief Configure the LPTIM instance output (LPTIMx_OUT)
AnnaBridge 146:22da6e220af6 508 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 509 * @note Regarding the LPTIM output polarity the change takes effect
AnnaBridge 146:22da6e220af6 510 * immediately, so the output default value will change immediately after
AnnaBridge 146:22da6e220af6 511 * the polarity is re-configured, even before the timer is enabled.
AnnaBridge 146:22da6e220af6 512 * @rmtoll CFGR WAVE LL_LPTIM_ConfigOutput\n
AnnaBridge 146:22da6e220af6 513 * CFGR WAVPOL LL_LPTIM_ConfigOutput
AnnaBridge 146:22da6e220af6 514 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 515 * @param Waveform This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 516 * @arg @ref LL_LPTIM_OUTPUT_WAVEFORM_PWM
AnnaBridge 146:22da6e220af6 517 * @arg @ref LL_LPTIM_OUTPUT_WAVEFORM_SETONCE
AnnaBridge 146:22da6e220af6 518 * @param Polarity This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 519 * @arg @ref LL_LPTIM_OUTPUT_POLARITY_REGULAR
AnnaBridge 146:22da6e220af6 520 * @arg @ref LL_LPTIM_OUTPUT_POLARITY_INVERSE
AnnaBridge 146:22da6e220af6 521 * @retval None
AnnaBridge 146:22da6e220af6 522 */
AnnaBridge 146:22da6e220af6 523 __STATIC_INLINE void LL_LPTIM_ConfigOutput(LPTIM_TypeDef *LPTIMx, uint32_t Waveform, uint32_t Polarity)
AnnaBridge 146:22da6e220af6 524 {
AnnaBridge 146:22da6e220af6 525 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_WAVE | LPTIM_CFGR_WAVPOL, Waveform | Polarity);
AnnaBridge 146:22da6e220af6 526 }
AnnaBridge 146:22da6e220af6 527
AnnaBridge 146:22da6e220af6 528 /**
AnnaBridge 146:22da6e220af6 529 * @brief Set waveform shape
AnnaBridge 146:22da6e220af6 530 * @rmtoll CFGR WAVE LL_LPTIM_SetWaveform
AnnaBridge 146:22da6e220af6 531 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 532 * @param Waveform This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 533 * @arg @ref LL_LPTIM_OUTPUT_WAVEFORM_PWM
AnnaBridge 146:22da6e220af6 534 * @arg @ref LL_LPTIM_OUTPUT_WAVEFORM_SETONCE
AnnaBridge 146:22da6e220af6 535 * @retval None
AnnaBridge 146:22da6e220af6 536 */
AnnaBridge 146:22da6e220af6 537 __STATIC_INLINE void LL_LPTIM_SetWaveform(LPTIM_TypeDef *LPTIMx, uint32_t Waveform)
AnnaBridge 146:22da6e220af6 538 {
AnnaBridge 146:22da6e220af6 539 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_WAVE, Waveform);
AnnaBridge 146:22da6e220af6 540 }
AnnaBridge 146:22da6e220af6 541
AnnaBridge 146:22da6e220af6 542 /**
AnnaBridge 146:22da6e220af6 543 * @brief Get actual waveform shape
AnnaBridge 146:22da6e220af6 544 * @rmtoll CFGR WAVE LL_LPTIM_GetWaveform
AnnaBridge 146:22da6e220af6 545 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 546 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 547 * @arg @ref LL_LPTIM_OUTPUT_WAVEFORM_PWM
AnnaBridge 146:22da6e220af6 548 * @arg @ref LL_LPTIM_OUTPUT_WAVEFORM_SETONCE
AnnaBridge 146:22da6e220af6 549 */
AnnaBridge 146:22da6e220af6 550 __STATIC_INLINE uint32_t LL_LPTIM_GetWaveform(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 551 {
AnnaBridge 146:22da6e220af6 552 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_WAVE));
AnnaBridge 146:22da6e220af6 553 }
AnnaBridge 146:22da6e220af6 554
AnnaBridge 146:22da6e220af6 555 /**
AnnaBridge 146:22da6e220af6 556 * @brief Set output polarity
AnnaBridge 146:22da6e220af6 557 * @rmtoll CFGR WAVPOL LL_LPTIM_SetPolarity
AnnaBridge 146:22da6e220af6 558 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 559 * @param Polarity This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 560 * @arg @ref LL_LPTIM_OUTPUT_POLARITY_REGULAR
AnnaBridge 146:22da6e220af6 561 * @arg @ref LL_LPTIM_OUTPUT_POLARITY_INVERSE
AnnaBridge 146:22da6e220af6 562 * @retval None
AnnaBridge 146:22da6e220af6 563 */
AnnaBridge 146:22da6e220af6 564 __STATIC_INLINE void LL_LPTIM_SetPolarity(LPTIM_TypeDef *LPTIMx, uint32_t Polarity)
AnnaBridge 146:22da6e220af6 565 {
AnnaBridge 146:22da6e220af6 566 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_WAVPOL, Polarity);
AnnaBridge 146:22da6e220af6 567 }
AnnaBridge 146:22da6e220af6 568
AnnaBridge 146:22da6e220af6 569 /**
AnnaBridge 146:22da6e220af6 570 * @brief Get actual output polarity
AnnaBridge 146:22da6e220af6 571 * @rmtoll CFGR WAVPOL LL_LPTIM_GetPolarity
AnnaBridge 146:22da6e220af6 572 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 573 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 574 * @arg @ref LL_LPTIM_OUTPUT_POLARITY_REGULAR
AnnaBridge 146:22da6e220af6 575 * @arg @ref LL_LPTIM_OUTPUT_POLARITY_INVERSE
AnnaBridge 146:22da6e220af6 576 */
AnnaBridge 146:22da6e220af6 577 __STATIC_INLINE uint32_t LL_LPTIM_GetPolarity(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 578 {
AnnaBridge 146:22da6e220af6 579 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_WAVPOL));
AnnaBridge 146:22da6e220af6 580 }
AnnaBridge 146:22da6e220af6 581
AnnaBridge 146:22da6e220af6 582 /**
AnnaBridge 146:22da6e220af6 583 * @brief Set actual prescaler division ratio.
AnnaBridge 146:22da6e220af6 584 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 585 * @note When the LPTIM is configured to be clocked by an internal clock source
AnnaBridge 146:22da6e220af6 586 * and the LPTIM counter is configured to be updated by active edges
AnnaBridge 146:22da6e220af6 587 * detected on the LPTIM external Input1, the internal clock provided to
AnnaBridge 146:22da6e220af6 588 * the LPTIM must be not be prescaled.
AnnaBridge 146:22da6e220af6 589 * @rmtoll CFGR PRESC LL_LPTIM_SetPrescaler
AnnaBridge 146:22da6e220af6 590 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 591 * @param Prescaler This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 592 * @arg @ref LL_LPTIM_PRESCALER_DIV1
AnnaBridge 146:22da6e220af6 593 * @arg @ref LL_LPTIM_PRESCALER_DIV2
AnnaBridge 146:22da6e220af6 594 * @arg @ref LL_LPTIM_PRESCALER_DIV4
AnnaBridge 146:22da6e220af6 595 * @arg @ref LL_LPTIM_PRESCALER_DIV8
AnnaBridge 146:22da6e220af6 596 * @arg @ref LL_LPTIM_PRESCALER_DIV16
AnnaBridge 146:22da6e220af6 597 * @arg @ref LL_LPTIM_PRESCALER_DIV32
AnnaBridge 146:22da6e220af6 598 * @arg @ref LL_LPTIM_PRESCALER_DIV64
AnnaBridge 146:22da6e220af6 599 * @arg @ref LL_LPTIM_PRESCALER_DIV128
AnnaBridge 146:22da6e220af6 600 * @retval None
AnnaBridge 146:22da6e220af6 601 */
AnnaBridge 146:22da6e220af6 602 __STATIC_INLINE void LL_LPTIM_SetPrescaler(LPTIM_TypeDef *LPTIMx, uint32_t Prescaler)
AnnaBridge 146:22da6e220af6 603 {
AnnaBridge 146:22da6e220af6 604 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_PRESC, Prescaler);
AnnaBridge 146:22da6e220af6 605 }
AnnaBridge 146:22da6e220af6 606
AnnaBridge 146:22da6e220af6 607 /**
AnnaBridge 146:22da6e220af6 608 * @brief Get actual prescaler division ratio.
AnnaBridge 146:22da6e220af6 609 * @rmtoll CFGR PRESC LL_LPTIM_GetPrescaler
AnnaBridge 146:22da6e220af6 610 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 611 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 612 * @arg @ref LL_LPTIM_PRESCALER_DIV1
AnnaBridge 146:22da6e220af6 613 * @arg @ref LL_LPTIM_PRESCALER_DIV2
AnnaBridge 146:22da6e220af6 614 * @arg @ref LL_LPTIM_PRESCALER_DIV4
AnnaBridge 146:22da6e220af6 615 * @arg @ref LL_LPTIM_PRESCALER_DIV8
AnnaBridge 146:22da6e220af6 616 * @arg @ref LL_LPTIM_PRESCALER_DIV16
AnnaBridge 146:22da6e220af6 617 * @arg @ref LL_LPTIM_PRESCALER_DIV32
AnnaBridge 146:22da6e220af6 618 * @arg @ref LL_LPTIM_PRESCALER_DIV64
AnnaBridge 146:22da6e220af6 619 * @arg @ref LL_LPTIM_PRESCALER_DIV128
AnnaBridge 146:22da6e220af6 620 */
AnnaBridge 146:22da6e220af6 621 __STATIC_INLINE uint32_t LL_LPTIM_GetPrescaler(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 622 {
AnnaBridge 146:22da6e220af6 623 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_PRESC));
AnnaBridge 146:22da6e220af6 624 }
AnnaBridge 146:22da6e220af6 625
AnnaBridge 146:22da6e220af6 626
AnnaBridge 146:22da6e220af6 627 /**
AnnaBridge 146:22da6e220af6 628 * @}
AnnaBridge 146:22da6e220af6 629 */
AnnaBridge 146:22da6e220af6 630
AnnaBridge 146:22da6e220af6 631 /** @defgroup LPTIM_LL_EF_Trigger_Configuration Trigger Configuration
AnnaBridge 146:22da6e220af6 632 * @{
AnnaBridge 146:22da6e220af6 633 */
AnnaBridge 146:22da6e220af6 634
AnnaBridge 146:22da6e220af6 635 /**
AnnaBridge 146:22da6e220af6 636 * @brief Enable the timeout function
AnnaBridge 146:22da6e220af6 637 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 638 * @note The first trigger event will start the timer, any successive trigger
AnnaBridge 146:22da6e220af6 639 * event will reset the counter and the timer will restart.
AnnaBridge 146:22da6e220af6 640 * @note The timeout value corresponds to the compare value; if no trigger
AnnaBridge 146:22da6e220af6 641 * occurs within the expected time frame, the MCU is waked-up by the
AnnaBridge 146:22da6e220af6 642 * compare match event.
AnnaBridge 146:22da6e220af6 643 * @rmtoll CFGR TIMOUT LL_LPTIM_EnableTimeout
AnnaBridge 146:22da6e220af6 644 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 645 * @retval None
AnnaBridge 146:22da6e220af6 646 */
AnnaBridge 146:22da6e220af6 647 __STATIC_INLINE void LL_LPTIM_EnableTimeout(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 648 {
AnnaBridge 146:22da6e220af6 649 SET_BIT(LPTIMx->CFGR, LPTIM_CFGR_TIMOUT);
AnnaBridge 146:22da6e220af6 650 }
AnnaBridge 146:22da6e220af6 651
AnnaBridge 146:22da6e220af6 652 /**
AnnaBridge 146:22da6e220af6 653 * @brief Disable the timeout function
AnnaBridge 146:22da6e220af6 654 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 655 * @note A trigger event arriving when the timer is already started will be
AnnaBridge 146:22da6e220af6 656 * ignored.
AnnaBridge 146:22da6e220af6 657 * @rmtoll CFGR TIMOUT LL_LPTIM_DisableTimeout
AnnaBridge 146:22da6e220af6 658 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 659 * @retval None
AnnaBridge 146:22da6e220af6 660 */
AnnaBridge 146:22da6e220af6 661 __STATIC_INLINE void LL_LPTIM_DisableTimeout(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 662 {
AnnaBridge 146:22da6e220af6 663 CLEAR_BIT(LPTIMx->CFGR, LPTIM_CFGR_TIMOUT);
AnnaBridge 146:22da6e220af6 664 }
AnnaBridge 146:22da6e220af6 665
AnnaBridge 146:22da6e220af6 666 /**
AnnaBridge 146:22da6e220af6 667 * @brief Indicate whether the timeout function is enabled.
AnnaBridge 146:22da6e220af6 668 * @rmtoll CFGR TIMOUT LL_LPTIM_IsEnabledTimeout
AnnaBridge 146:22da6e220af6 669 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 670 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 671 */
AnnaBridge 146:22da6e220af6 672 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledTimeout(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 673 {
AnnaBridge 146:22da6e220af6 674 return (READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_TIMOUT) == (LPTIM_CFGR_TIMOUT));
AnnaBridge 146:22da6e220af6 675 }
AnnaBridge 146:22da6e220af6 676
AnnaBridge 146:22da6e220af6 677 /**
AnnaBridge 146:22da6e220af6 678 * @brief Start the LPTIM counter
AnnaBridge 146:22da6e220af6 679 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 680 * @rmtoll CFGR TRIGEN LL_LPTIM_TrigSw
AnnaBridge 146:22da6e220af6 681 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 682 * @retval None
AnnaBridge 146:22da6e220af6 683 */
AnnaBridge 146:22da6e220af6 684 __STATIC_INLINE void LL_LPTIM_TrigSw(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 685 {
AnnaBridge 146:22da6e220af6 686 CLEAR_BIT(LPTIMx->CFGR, LPTIM_CFGR_TRIGEN);
AnnaBridge 146:22da6e220af6 687 }
AnnaBridge 146:22da6e220af6 688
AnnaBridge 146:22da6e220af6 689 /**
AnnaBridge 146:22da6e220af6 690 * @brief Configure the external trigger used as a trigger event for the LPTIM.
AnnaBridge 146:22da6e220af6 691 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 692 * @note An internal clock source must be present when a digital filter is
AnnaBridge 146:22da6e220af6 693 * required for the trigger.
AnnaBridge 146:22da6e220af6 694 * @rmtoll CFGR TRIGSEL LL_LPTIM_ConfigTrigger\n
AnnaBridge 146:22da6e220af6 695 * CFGR TRGFLT LL_LPTIM_ConfigTrigger\n
AnnaBridge 146:22da6e220af6 696 * CFGR TRIGEN LL_LPTIM_ConfigTrigger
AnnaBridge 146:22da6e220af6 697 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 698 * @param Source This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 699 * @arg @ref LL_LPTIM_TRIG_SOURCE_GPIO
AnnaBridge 146:22da6e220af6 700 * @arg @ref LL_LPTIM_TRIG_SOURCE_RTCALARMA
AnnaBridge 146:22da6e220af6 701 * @arg @ref LL_LPTIM_TRIG_SOURCE_RTCALARMB
AnnaBridge 146:22da6e220af6 702 * @arg @ref LL_LPTIM_TRIG_SOURCE_RTCTAMP1
AnnaBridge 146:22da6e220af6 703 * @arg @ref LL_LPTIM_TRIG_SOURCE_TIM1_TRGO
AnnaBridge 146:22da6e220af6 704 * @arg @ref LL_LPTIM_TRIG_SOURCE_TIM5_TRGO
AnnaBridge 146:22da6e220af6 705 * @param Filter This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 706 * @arg @ref LL_LPTIM_TRIG_FILTER_NONE
AnnaBridge 146:22da6e220af6 707 * @arg @ref LL_LPTIM_TRIG_FILTER_2
AnnaBridge 146:22da6e220af6 708 * @arg @ref LL_LPTIM_TRIG_FILTER_4
AnnaBridge 146:22da6e220af6 709 * @arg @ref LL_LPTIM_TRIG_FILTER_8
AnnaBridge 146:22da6e220af6 710 * @param Polarity This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 711 * @arg @ref LL_LPTIM_TRIG_POLARITY_RISING
AnnaBridge 146:22da6e220af6 712 * @arg @ref LL_LPTIM_TRIG_POLARITY_FALLING
AnnaBridge 146:22da6e220af6 713 * @arg @ref LL_LPTIM_TRIG_POLARITY_RISING_FALLING
AnnaBridge 146:22da6e220af6 714 * (*) value not defined in all devices.
AnnaBridge 146:22da6e220af6 715 * @retval None
AnnaBridge 146:22da6e220af6 716 */
AnnaBridge 146:22da6e220af6 717 __STATIC_INLINE void LL_LPTIM_ConfigTrigger(LPTIM_TypeDef *LPTIMx, uint32_t Source, uint32_t Filter, uint32_t Polarity)
AnnaBridge 146:22da6e220af6 718 {
AnnaBridge 146:22da6e220af6 719 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_TRIGSEL | LPTIM_CFGR_TRGFLT | LPTIM_CFGR_TRIGEN, Source | Filter | Polarity);
AnnaBridge 146:22da6e220af6 720 }
AnnaBridge 146:22da6e220af6 721
AnnaBridge 146:22da6e220af6 722 /**
AnnaBridge 146:22da6e220af6 723 * @brief Get actual external trigger source.
AnnaBridge 146:22da6e220af6 724 * @rmtoll CFGR TRIGSEL LL_LPTIM_GetTriggerSource
AnnaBridge 146:22da6e220af6 725 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 726 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 727 * @arg @ref LL_LPTIM_TRIG_SOURCE_GPIO
AnnaBridge 146:22da6e220af6 728 * @arg @ref LL_LPTIM_TRIG_SOURCE_RTCALARMA
AnnaBridge 146:22da6e220af6 729 * @arg @ref LL_LPTIM_TRIG_SOURCE_RTCALARMB
AnnaBridge 146:22da6e220af6 730 * @arg @ref LL_LPTIM_TRIG_SOURCE_RTCTAMP1
AnnaBridge 146:22da6e220af6 731 * @arg @ref LL_LPTIM_TRIG_SOURCE_TIM1_TRGO
AnnaBridge 146:22da6e220af6 732 * @arg @ref LL_LPTIM_TRIG_SOURCE_TIM5_TRGO
AnnaBridge 146:22da6e220af6 733 */
AnnaBridge 146:22da6e220af6 734 __STATIC_INLINE uint32_t LL_LPTIM_GetTriggerSource(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 735 {
AnnaBridge 146:22da6e220af6 736 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_TRIGSEL));
AnnaBridge 146:22da6e220af6 737 }
AnnaBridge 146:22da6e220af6 738
AnnaBridge 146:22da6e220af6 739 /**
AnnaBridge 146:22da6e220af6 740 * @brief Get actual external trigger filter.
AnnaBridge 146:22da6e220af6 741 * @rmtoll CFGR TRGFLT LL_LPTIM_GetTriggerFilter
AnnaBridge 146:22da6e220af6 742 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 743 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 744 * @arg @ref LL_LPTIM_TRIG_FILTER_NONE
AnnaBridge 146:22da6e220af6 745 * @arg @ref LL_LPTIM_TRIG_FILTER_2
AnnaBridge 146:22da6e220af6 746 * @arg @ref LL_LPTIM_TRIG_FILTER_4
AnnaBridge 146:22da6e220af6 747 * @arg @ref LL_LPTIM_TRIG_FILTER_8
AnnaBridge 146:22da6e220af6 748 */
AnnaBridge 146:22da6e220af6 749 __STATIC_INLINE uint32_t LL_LPTIM_GetTriggerFilter(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 750 {
AnnaBridge 146:22da6e220af6 751 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_TRGFLT));
AnnaBridge 146:22da6e220af6 752 }
AnnaBridge 146:22da6e220af6 753
AnnaBridge 146:22da6e220af6 754 /**
AnnaBridge 146:22da6e220af6 755 * @brief Get actual external trigger polarity.
AnnaBridge 146:22da6e220af6 756 * @rmtoll CFGR TRIGEN LL_LPTIM_GetTriggerPolarity
AnnaBridge 146:22da6e220af6 757 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 758 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 759 * @arg @ref LL_LPTIM_TRIG_POLARITY_RISING
AnnaBridge 146:22da6e220af6 760 * @arg @ref LL_LPTIM_TRIG_POLARITY_FALLING
AnnaBridge 146:22da6e220af6 761 * @arg @ref LL_LPTIM_TRIG_POLARITY_RISING_FALLING
AnnaBridge 146:22da6e220af6 762 */
AnnaBridge 146:22da6e220af6 763 __STATIC_INLINE uint32_t LL_LPTIM_GetTriggerPolarity(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 764 {
AnnaBridge 146:22da6e220af6 765 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_TRIGEN));
AnnaBridge 146:22da6e220af6 766 }
AnnaBridge 146:22da6e220af6 767
AnnaBridge 146:22da6e220af6 768 /**
AnnaBridge 146:22da6e220af6 769 * @}
AnnaBridge 146:22da6e220af6 770 */
AnnaBridge 146:22da6e220af6 771
AnnaBridge 146:22da6e220af6 772 /** @defgroup LPTIM_LL_EF_Clock_Configuration Clock Configuration
AnnaBridge 146:22da6e220af6 773 * @{
AnnaBridge 146:22da6e220af6 774 */
AnnaBridge 146:22da6e220af6 775
AnnaBridge 146:22da6e220af6 776 /**
AnnaBridge 146:22da6e220af6 777 * @brief Set the source of the clock used by the LPTIM instance.
AnnaBridge 146:22da6e220af6 778 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 779 * @rmtoll CFGR CKSEL LL_LPTIM_SetClockSource
AnnaBridge 146:22da6e220af6 780 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 781 * @param ClockSource This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 782 * @arg @ref LL_LPTIM_CLK_SOURCE_INTERNAL
AnnaBridge 146:22da6e220af6 783 * @arg @ref LL_LPTIM_CLK_SOURCE_EXTERNAL
AnnaBridge 146:22da6e220af6 784 * @retval None
AnnaBridge 146:22da6e220af6 785 */
AnnaBridge 146:22da6e220af6 786 __STATIC_INLINE void LL_LPTIM_SetClockSource(LPTIM_TypeDef *LPTIMx, uint32_t ClockSource)
AnnaBridge 146:22da6e220af6 787 {
AnnaBridge 146:22da6e220af6 788 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_CKSEL, ClockSource);
AnnaBridge 146:22da6e220af6 789 }
AnnaBridge 146:22da6e220af6 790
AnnaBridge 146:22da6e220af6 791 /**
AnnaBridge 146:22da6e220af6 792 * @brief Get actual LPTIM instance clock source.
AnnaBridge 146:22da6e220af6 793 * @rmtoll CFGR CKSEL LL_LPTIM_GetClockSource
AnnaBridge 146:22da6e220af6 794 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 795 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 796 * @arg @ref LL_LPTIM_CLK_SOURCE_INTERNAL
AnnaBridge 146:22da6e220af6 797 * @arg @ref LL_LPTIM_CLK_SOURCE_EXTERNAL
AnnaBridge 146:22da6e220af6 798 */
AnnaBridge 146:22da6e220af6 799 __STATIC_INLINE uint32_t LL_LPTIM_GetClockSource(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 800 {
AnnaBridge 146:22da6e220af6 801 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_CKSEL));
AnnaBridge 146:22da6e220af6 802 }
AnnaBridge 146:22da6e220af6 803
AnnaBridge 146:22da6e220af6 804 /**
AnnaBridge 146:22da6e220af6 805 * @brief Configure the active edge or edges used by the counter when the LPTIM is clocked by an external clock source.
AnnaBridge 146:22da6e220af6 806 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 807 * @note When both external clock signal edges are considered active ones,
AnnaBridge 146:22da6e220af6 808 * the LPTIM must also be clocked by an internal clock source with a
AnnaBridge 146:22da6e220af6 809 * frequency equal to at least four times the external clock frequency.
AnnaBridge 146:22da6e220af6 810 * @note An internal clock source must be present when a digital filter is
AnnaBridge 146:22da6e220af6 811 * required for external clock.
AnnaBridge 146:22da6e220af6 812 * @rmtoll CFGR CKFLT LL_LPTIM_ConfigClock\n
AnnaBridge 146:22da6e220af6 813 * CFGR CKPOL LL_LPTIM_ConfigClock
AnnaBridge 146:22da6e220af6 814 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 815 * @param ClockFilter This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 816 * @arg @ref LL_LPTIM_CLK_FILTER_NONE
AnnaBridge 146:22da6e220af6 817 * @arg @ref LL_LPTIM_CLK_FILTER_2
AnnaBridge 146:22da6e220af6 818 * @arg @ref LL_LPTIM_CLK_FILTER_4
AnnaBridge 146:22da6e220af6 819 * @arg @ref LL_LPTIM_CLK_FILTER_8
AnnaBridge 146:22da6e220af6 820 * @param ClockPolarity This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 821 * @arg @ref LL_LPTIM_CLK_POLARITY_RISING
AnnaBridge 146:22da6e220af6 822 * @arg @ref LL_LPTIM_CLK_POLARITY_FALLING
AnnaBridge 146:22da6e220af6 823 * @arg @ref LL_LPTIM_CLK_POLARITY_RISING_FALLING
AnnaBridge 146:22da6e220af6 824 * @retval None
AnnaBridge 146:22da6e220af6 825 */
AnnaBridge 146:22da6e220af6 826 __STATIC_INLINE void LL_LPTIM_ConfigClock(LPTIM_TypeDef *LPTIMx, uint32_t ClockFilter, uint32_t ClockPolarity)
AnnaBridge 146:22da6e220af6 827 {
AnnaBridge 146:22da6e220af6 828 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_CKFLT | LPTIM_CFGR_CKPOL, ClockFilter | ClockPolarity);
AnnaBridge 146:22da6e220af6 829 }
AnnaBridge 146:22da6e220af6 830
AnnaBridge 146:22da6e220af6 831 /**
AnnaBridge 146:22da6e220af6 832 * @brief Get actual clock polarity
AnnaBridge 146:22da6e220af6 833 * @rmtoll CFGR CKPOL LL_LPTIM_GetClockPolarity
AnnaBridge 146:22da6e220af6 834 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 835 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 836 * @arg @ref LL_LPTIM_CLK_POLARITY_RISING
AnnaBridge 146:22da6e220af6 837 * @arg @ref LL_LPTIM_CLK_POLARITY_FALLING
AnnaBridge 146:22da6e220af6 838 * @arg @ref LL_LPTIM_CLK_POLARITY_RISING_FALLING
AnnaBridge 146:22da6e220af6 839 */
AnnaBridge 146:22da6e220af6 840 __STATIC_INLINE uint32_t LL_LPTIM_GetClockPolarity(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 841 {
AnnaBridge 146:22da6e220af6 842 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_CKPOL));
AnnaBridge 146:22da6e220af6 843 }
AnnaBridge 146:22da6e220af6 844
AnnaBridge 146:22da6e220af6 845 /**
AnnaBridge 146:22da6e220af6 846 * @brief Get actual clock digital filter
AnnaBridge 146:22da6e220af6 847 * @rmtoll CFGR CKFLT LL_LPTIM_GetClockFilter
AnnaBridge 146:22da6e220af6 848 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 849 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 850 * @arg @ref LL_LPTIM_CLK_FILTER_NONE
AnnaBridge 146:22da6e220af6 851 * @arg @ref LL_LPTIM_CLK_FILTER_2
AnnaBridge 146:22da6e220af6 852 * @arg @ref LL_LPTIM_CLK_FILTER_4
AnnaBridge 146:22da6e220af6 853 * @arg @ref LL_LPTIM_CLK_FILTER_8
AnnaBridge 146:22da6e220af6 854 */
AnnaBridge 146:22da6e220af6 855 __STATIC_INLINE uint32_t LL_LPTIM_GetClockFilter(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 856 {
AnnaBridge 146:22da6e220af6 857 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_CKFLT));
AnnaBridge 146:22da6e220af6 858 }
AnnaBridge 146:22da6e220af6 859
AnnaBridge 146:22da6e220af6 860 /**
AnnaBridge 146:22da6e220af6 861 * @}
AnnaBridge 146:22da6e220af6 862 */
AnnaBridge 146:22da6e220af6 863
AnnaBridge 146:22da6e220af6 864 /** @defgroup LPTIM_LL_EF_Encoder_Mode Encoder Mode
AnnaBridge 146:22da6e220af6 865 * @{
AnnaBridge 146:22da6e220af6 866 */
AnnaBridge 146:22da6e220af6 867
AnnaBridge 146:22da6e220af6 868 /**
AnnaBridge 146:22da6e220af6 869 * @brief Configure the encoder mode.
AnnaBridge 146:22da6e220af6 870 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 871 * @rmtoll CFGR CKPOL LL_LPTIM_SetEncoderMode
AnnaBridge 146:22da6e220af6 872 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 873 * @param EncoderMode This parameter can be one of the following values:
AnnaBridge 146:22da6e220af6 874 * @arg @ref LL_LPTIM_ENCODER_MODE_RISING
AnnaBridge 146:22da6e220af6 875 * @arg @ref LL_LPTIM_ENCODER_MODE_FALLING
AnnaBridge 146:22da6e220af6 876 * @arg @ref LL_LPTIM_ENCODER_MODE_RISING_FALLING
AnnaBridge 146:22da6e220af6 877 * @retval None
AnnaBridge 146:22da6e220af6 878 */
AnnaBridge 146:22da6e220af6 879 __STATIC_INLINE void LL_LPTIM_SetEncoderMode(LPTIM_TypeDef *LPTIMx, uint32_t EncoderMode)
AnnaBridge 146:22da6e220af6 880 {
AnnaBridge 146:22da6e220af6 881 MODIFY_REG(LPTIMx->CFGR, LPTIM_CFGR_CKPOL, EncoderMode);
AnnaBridge 146:22da6e220af6 882 }
AnnaBridge 146:22da6e220af6 883
AnnaBridge 146:22da6e220af6 884 /**
AnnaBridge 146:22da6e220af6 885 * @brief Get actual encoder mode.
AnnaBridge 146:22da6e220af6 886 * @rmtoll CFGR CKPOL LL_LPTIM_GetEncoderMode
AnnaBridge 146:22da6e220af6 887 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 888 * @retval Returned value can be one of the following values:
AnnaBridge 146:22da6e220af6 889 * @arg @ref LL_LPTIM_ENCODER_MODE_RISING
AnnaBridge 146:22da6e220af6 890 * @arg @ref LL_LPTIM_ENCODER_MODE_FALLING
AnnaBridge 146:22da6e220af6 891 * @arg @ref LL_LPTIM_ENCODER_MODE_RISING_FALLING
AnnaBridge 146:22da6e220af6 892 */
AnnaBridge 146:22da6e220af6 893 __STATIC_INLINE uint32_t LL_LPTIM_GetEncoderMode(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 894 {
AnnaBridge 146:22da6e220af6 895 return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_CKPOL));
AnnaBridge 146:22da6e220af6 896 }
AnnaBridge 146:22da6e220af6 897
AnnaBridge 146:22da6e220af6 898 /**
AnnaBridge 146:22da6e220af6 899 * @brief Enable the encoder mode
AnnaBridge 146:22da6e220af6 900 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 901 * @note In this mode the LPTIM instance must be clocked by an internal clock
AnnaBridge 146:22da6e220af6 902 * source. Also, the prescaler division ratio must be equal to 1.
AnnaBridge 146:22da6e220af6 903 * @note LPTIM instance must be configured in continuous mode prior enabling
AnnaBridge 146:22da6e220af6 904 * the encoder mode.
AnnaBridge 146:22da6e220af6 905 * @rmtoll CFGR ENC LL_LPTIM_EnableEncoderMode
AnnaBridge 146:22da6e220af6 906 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 907 * @retval None
AnnaBridge 146:22da6e220af6 908 */
AnnaBridge 146:22da6e220af6 909 __STATIC_INLINE void LL_LPTIM_EnableEncoderMode(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 910 {
AnnaBridge 146:22da6e220af6 911 SET_BIT(LPTIMx->CFGR, LPTIM_CFGR_ENC);
AnnaBridge 146:22da6e220af6 912 }
AnnaBridge 146:22da6e220af6 913
AnnaBridge 146:22da6e220af6 914 /**
AnnaBridge 146:22da6e220af6 915 * @brief Disable the encoder mode
AnnaBridge 146:22da6e220af6 916 * @note This function must be called when the LPTIM instance is disabled.
AnnaBridge 146:22da6e220af6 917 * @rmtoll CFGR ENC LL_LPTIM_DisableEncoderMode
AnnaBridge 146:22da6e220af6 918 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 919 * @retval None
AnnaBridge 146:22da6e220af6 920 */
AnnaBridge 146:22da6e220af6 921 __STATIC_INLINE void LL_LPTIM_DisableEncoderMode(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 922 {
AnnaBridge 146:22da6e220af6 923 CLEAR_BIT(LPTIMx->CFGR, LPTIM_CFGR_ENC);
AnnaBridge 146:22da6e220af6 924 }
AnnaBridge 146:22da6e220af6 925
AnnaBridge 146:22da6e220af6 926 /**
AnnaBridge 146:22da6e220af6 927 * @brief Indicates whether the LPTIM operates in encoder mode.
AnnaBridge 146:22da6e220af6 928 * @rmtoll CFGR ENC LL_LPTIM_IsEnabledEncoderMode
AnnaBridge 146:22da6e220af6 929 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 930 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 931 */
AnnaBridge 146:22da6e220af6 932 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledEncoderMode(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 933 {
AnnaBridge 146:22da6e220af6 934 return (READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_ENC) == (LPTIM_CFGR_ENC));
AnnaBridge 146:22da6e220af6 935 }
AnnaBridge 146:22da6e220af6 936
AnnaBridge 146:22da6e220af6 937 /**
AnnaBridge 146:22da6e220af6 938 * @}
AnnaBridge 146:22da6e220af6 939 */
AnnaBridge 146:22da6e220af6 940
AnnaBridge 146:22da6e220af6 941 /** @defgroup LPTIM_LL_EF_FLAG_Management FLAG Management
AnnaBridge 146:22da6e220af6 942 * @{
AnnaBridge 146:22da6e220af6 943 */
AnnaBridge 146:22da6e220af6 944
AnnaBridge 146:22da6e220af6 945 /**
AnnaBridge 146:22da6e220af6 946 * @brief Clear the compare match flag (CMPMCF)
AnnaBridge 146:22da6e220af6 947 * @rmtoll ICR CMPMCF LL_LPTIM_ClearFLAG_CMPM
AnnaBridge 146:22da6e220af6 948 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 949 * @retval None
AnnaBridge 146:22da6e220af6 950 */
AnnaBridge 146:22da6e220af6 951 __STATIC_INLINE void LL_LPTIM_ClearFLAG_CMPM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 952 {
AnnaBridge 146:22da6e220af6 953 SET_BIT(LPTIMx->ICR, LPTIM_ICR_CMPMCF);
AnnaBridge 146:22da6e220af6 954 }
AnnaBridge 146:22da6e220af6 955
AnnaBridge 146:22da6e220af6 956 /**
AnnaBridge 146:22da6e220af6 957 * @brief Inform application whether a compare match interrupt has occurred.
AnnaBridge 146:22da6e220af6 958 * @rmtoll ISR CMPM LL_LPTIM_IsActiveFlag_CMPM
AnnaBridge 146:22da6e220af6 959 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 960 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 961 */
AnnaBridge 146:22da6e220af6 962 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_CMPM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 963 {
AnnaBridge 146:22da6e220af6 964 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_CMPM) == (LPTIM_ISR_CMPM));
AnnaBridge 146:22da6e220af6 965 }
AnnaBridge 146:22da6e220af6 966
AnnaBridge 146:22da6e220af6 967 /**
AnnaBridge 146:22da6e220af6 968 * @brief Clear the autoreload match flag (ARRMCF)
AnnaBridge 146:22da6e220af6 969 * @rmtoll ICR ARRMCF LL_LPTIM_ClearFLAG_ARRM
AnnaBridge 146:22da6e220af6 970 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 971 * @retval None
AnnaBridge 146:22da6e220af6 972 */
AnnaBridge 146:22da6e220af6 973 __STATIC_INLINE void LL_LPTIM_ClearFLAG_ARRM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 974 {
AnnaBridge 146:22da6e220af6 975 SET_BIT(LPTIMx->ICR, LPTIM_ICR_ARRMCF);
AnnaBridge 146:22da6e220af6 976 }
AnnaBridge 146:22da6e220af6 977
AnnaBridge 146:22da6e220af6 978 /**
AnnaBridge 146:22da6e220af6 979 * @brief Inform application whether a autoreload match interrupt has occured.
AnnaBridge 146:22da6e220af6 980 * @rmtoll ISR ARRM LL_LPTIM_IsActiveFlag_ARRM
AnnaBridge 146:22da6e220af6 981 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 982 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 983 */
AnnaBridge 146:22da6e220af6 984 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_ARRM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 985 {
AnnaBridge 146:22da6e220af6 986 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_ARRM) == (LPTIM_ISR_ARRM));
AnnaBridge 146:22da6e220af6 987 }
AnnaBridge 146:22da6e220af6 988
AnnaBridge 146:22da6e220af6 989 /**
AnnaBridge 146:22da6e220af6 990 * @brief Clear the external trigger valid edge flag(EXTTRIGCF).
AnnaBridge 146:22da6e220af6 991 * @rmtoll ICR EXTTRIGCF LL_LPTIM_ClearFlag_EXTTRIG
AnnaBridge 146:22da6e220af6 992 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 993 * @retval None
AnnaBridge 146:22da6e220af6 994 */
AnnaBridge 146:22da6e220af6 995 __STATIC_INLINE void LL_LPTIM_ClearFlag_EXTTRIG(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 996 {
AnnaBridge 146:22da6e220af6 997 SET_BIT(LPTIMx->ICR, LPTIM_ICR_EXTTRIGCF);
AnnaBridge 146:22da6e220af6 998 }
AnnaBridge 146:22da6e220af6 999
AnnaBridge 146:22da6e220af6 1000 /**
AnnaBridge 146:22da6e220af6 1001 * @brief Inform application whether a valid edge on the selected external trigger input has occurred.
AnnaBridge 146:22da6e220af6 1002 * @rmtoll ISR EXTTRIG LL_LPTIM_IsActiveFlag_EXTTRIG
AnnaBridge 146:22da6e220af6 1003 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1004 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1005 */
AnnaBridge 146:22da6e220af6 1006 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_EXTTRIG(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1007 {
AnnaBridge 146:22da6e220af6 1008 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_EXTTRIG) == (LPTIM_ISR_EXTTRIG));
AnnaBridge 146:22da6e220af6 1009 }
AnnaBridge 146:22da6e220af6 1010
AnnaBridge 146:22da6e220af6 1011 /**
AnnaBridge 146:22da6e220af6 1012 * @brief Clear the compare register update interrupt flag (CMPOKCF).
AnnaBridge 146:22da6e220af6 1013 * @rmtoll ICR CMPOKCF LL_LPTIM_ClearFlag_CMPOK
AnnaBridge 146:22da6e220af6 1014 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1015 * @retval None
AnnaBridge 146:22da6e220af6 1016 */
AnnaBridge 146:22da6e220af6 1017 __STATIC_INLINE void LL_LPTIM_ClearFlag_CMPOK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1018 {
AnnaBridge 146:22da6e220af6 1019 SET_BIT(LPTIMx->ICR, LPTIM_ICR_CMPOKCF);
AnnaBridge 146:22da6e220af6 1020 }
AnnaBridge 146:22da6e220af6 1021
AnnaBridge 146:22da6e220af6 1022 /**
AnnaBridge 146:22da6e220af6 1023 * @brief Informs application whether the APB bus write operation to the LPTIMx_CMP register has been successfully completed; If so, a new one can be initiated.
AnnaBridge 146:22da6e220af6 1024 * @rmtoll ISR CMPOK LL_LPTIM_IsActiveFlag_CMPOK
AnnaBridge 146:22da6e220af6 1025 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1026 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1027 */
AnnaBridge 146:22da6e220af6 1028 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_CMPOK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1029 {
AnnaBridge 146:22da6e220af6 1030 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_CMPOK) == (LPTIM_ISR_CMPOK));
AnnaBridge 146:22da6e220af6 1031 }
AnnaBridge 146:22da6e220af6 1032
AnnaBridge 146:22da6e220af6 1033 /**
AnnaBridge 146:22da6e220af6 1034 * @brief Clear the autoreload register update interrupt flag (ARROKCF).
AnnaBridge 146:22da6e220af6 1035 * @rmtoll ICR ARROKCF LL_LPTIM_ClearFlag_ARROK
AnnaBridge 146:22da6e220af6 1036 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1037 * @retval None
AnnaBridge 146:22da6e220af6 1038 */
AnnaBridge 146:22da6e220af6 1039 __STATIC_INLINE void LL_LPTIM_ClearFlag_ARROK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1040 {
AnnaBridge 146:22da6e220af6 1041 SET_BIT(LPTIMx->ICR, LPTIM_ICR_ARROKCF);
AnnaBridge 146:22da6e220af6 1042 }
AnnaBridge 146:22da6e220af6 1043
AnnaBridge 146:22da6e220af6 1044 /**
AnnaBridge 146:22da6e220af6 1045 * @brief Informs application whether the APB bus write operation to the LPTIMx_ARR register has been successfully completed; If so, a new one can be initiated.
AnnaBridge 146:22da6e220af6 1046 * @rmtoll ISR ARROK LL_LPTIM_IsActiveFlag_ARROK
AnnaBridge 146:22da6e220af6 1047 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1048 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1049 */
AnnaBridge 146:22da6e220af6 1050 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_ARROK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1051 {
AnnaBridge 146:22da6e220af6 1052 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_ARROK) == (LPTIM_ISR_ARROK));
AnnaBridge 146:22da6e220af6 1053 }
AnnaBridge 146:22da6e220af6 1054
AnnaBridge 146:22da6e220af6 1055 /**
AnnaBridge 146:22da6e220af6 1056 * @brief Clear the counter direction change to up interrupt flag (UPCF).
AnnaBridge 146:22da6e220af6 1057 * @rmtoll ICR UPCF LL_LPTIM_ClearFlag_UP
AnnaBridge 146:22da6e220af6 1058 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1059 * @retval None
AnnaBridge 146:22da6e220af6 1060 */
AnnaBridge 146:22da6e220af6 1061 __STATIC_INLINE void LL_LPTIM_ClearFlag_UP(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1062 {
AnnaBridge 146:22da6e220af6 1063 SET_BIT(LPTIMx->ICR, LPTIM_ICR_UPCF);
AnnaBridge 146:22da6e220af6 1064 }
AnnaBridge 146:22da6e220af6 1065
AnnaBridge 146:22da6e220af6 1066 /**
AnnaBridge 146:22da6e220af6 1067 * @brief Informs the application whether the counter direction has changed from down to up (when the LPTIM instance operates in encoder mode).
AnnaBridge 146:22da6e220af6 1068 * @rmtoll ISR UP LL_LPTIM_IsActiveFlag_UP
AnnaBridge 146:22da6e220af6 1069 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1070 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1071 */
AnnaBridge 146:22da6e220af6 1072 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_UP(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1073 {
AnnaBridge 146:22da6e220af6 1074 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_UP) == (LPTIM_ISR_UP));
AnnaBridge 146:22da6e220af6 1075 }
AnnaBridge 146:22da6e220af6 1076
AnnaBridge 146:22da6e220af6 1077 /**
AnnaBridge 146:22da6e220af6 1078 * @brief Clear the counter direction change to down interrupt flag (DOWNCF).
AnnaBridge 146:22da6e220af6 1079 * @rmtoll ICR DOWNCF LL_LPTIM_ClearFlag_DOWN
AnnaBridge 146:22da6e220af6 1080 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1081 * @retval None
AnnaBridge 146:22da6e220af6 1082 */
AnnaBridge 146:22da6e220af6 1083 __STATIC_INLINE void LL_LPTIM_ClearFlag_DOWN(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1084 {
AnnaBridge 146:22da6e220af6 1085 SET_BIT(LPTIMx->ICR, LPTIM_ICR_DOWNCF);
AnnaBridge 146:22da6e220af6 1086 }
AnnaBridge 146:22da6e220af6 1087
AnnaBridge 146:22da6e220af6 1088 /**
AnnaBridge 146:22da6e220af6 1089 * @brief Informs the application whether the counter direction has changed from up to down (when the LPTIM instance operates in encoder mode).
AnnaBridge 146:22da6e220af6 1090 * @rmtoll ISR DOWN LL_LPTIM_IsActiveFlag_DOWN
AnnaBridge 146:22da6e220af6 1091 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1092 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1093 */
AnnaBridge 146:22da6e220af6 1094 __STATIC_INLINE uint32_t LL_LPTIM_IsActiveFlag_DOWN(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1095 {
AnnaBridge 146:22da6e220af6 1096 return (READ_BIT(LPTIMx->ISR, LPTIM_ISR_DOWN) == (LPTIM_ISR_DOWN));
AnnaBridge 146:22da6e220af6 1097 }
AnnaBridge 146:22da6e220af6 1098
AnnaBridge 146:22da6e220af6 1099 /**
AnnaBridge 146:22da6e220af6 1100 * @}
AnnaBridge 146:22da6e220af6 1101 */
AnnaBridge 146:22da6e220af6 1102
AnnaBridge 146:22da6e220af6 1103 /** @defgroup LPTIM_LL_EF_IT_Management Interrupt Management
AnnaBridge 146:22da6e220af6 1104 * @{
AnnaBridge 146:22da6e220af6 1105 */
AnnaBridge 146:22da6e220af6 1106
AnnaBridge 146:22da6e220af6 1107 /**
AnnaBridge 146:22da6e220af6 1108 * @brief Enable compare match interrupt (CMPMIE).
AnnaBridge 146:22da6e220af6 1109 * @rmtoll IER CMPMIE LL_LPTIM_EnableIT_CMPM
AnnaBridge 146:22da6e220af6 1110 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1111 * @retval None
AnnaBridge 146:22da6e220af6 1112 */
AnnaBridge 146:22da6e220af6 1113 __STATIC_INLINE void LL_LPTIM_EnableIT_CMPM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1114 {
AnnaBridge 146:22da6e220af6 1115 SET_BIT(LPTIMx->IER, LPTIM_IER_CMPMIE);
AnnaBridge 146:22da6e220af6 1116 }
AnnaBridge 146:22da6e220af6 1117
AnnaBridge 146:22da6e220af6 1118 /**
AnnaBridge 146:22da6e220af6 1119 * @brief Disable compare match interrupt (CMPMIE).
AnnaBridge 146:22da6e220af6 1120 * @rmtoll IER CMPMIE LL_LPTIM_DisableIT_CMPM
AnnaBridge 146:22da6e220af6 1121 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1122 * @retval None
AnnaBridge 146:22da6e220af6 1123 */
AnnaBridge 146:22da6e220af6 1124 __STATIC_INLINE void LL_LPTIM_DisableIT_CMPM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1125 {
AnnaBridge 146:22da6e220af6 1126 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_CMPMIE);
AnnaBridge 146:22da6e220af6 1127 }
AnnaBridge 146:22da6e220af6 1128
AnnaBridge 146:22da6e220af6 1129 /**
AnnaBridge 146:22da6e220af6 1130 * @brief Indicates whether the compare match interrupt (CMPMIE) is enabled.
AnnaBridge 146:22da6e220af6 1131 * @rmtoll IER CMPMIE LL_LPTIM_IsEnabledIT_CMPM
AnnaBridge 146:22da6e220af6 1132 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1133 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1134 */
AnnaBridge 146:22da6e220af6 1135 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_CMPM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1136 {
AnnaBridge 146:22da6e220af6 1137 return (READ_BIT(LPTIMx->IER, LPTIM_IER_CMPMIE) == (LPTIM_IER_CMPMIE));
AnnaBridge 146:22da6e220af6 1138 }
AnnaBridge 146:22da6e220af6 1139
AnnaBridge 146:22da6e220af6 1140 /**
AnnaBridge 146:22da6e220af6 1141 * @brief Enable autoreload match interrupt (ARRMIE).
AnnaBridge 146:22da6e220af6 1142 * @rmtoll IER ARRMIE LL_LPTIM_EnableIT_ARRM
AnnaBridge 146:22da6e220af6 1143 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1144 * @retval None
AnnaBridge 146:22da6e220af6 1145 */
AnnaBridge 146:22da6e220af6 1146 __STATIC_INLINE void LL_LPTIM_EnableIT_ARRM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1147 {
AnnaBridge 146:22da6e220af6 1148 SET_BIT(LPTIMx->IER, LPTIM_IER_ARRMIE);
AnnaBridge 146:22da6e220af6 1149 }
AnnaBridge 146:22da6e220af6 1150
AnnaBridge 146:22da6e220af6 1151 /**
AnnaBridge 146:22da6e220af6 1152 * @brief Disable autoreload match interrupt (ARRMIE).
AnnaBridge 146:22da6e220af6 1153 * @rmtoll IER ARRMIE LL_LPTIM_DisableIT_ARRM
AnnaBridge 146:22da6e220af6 1154 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1155 * @retval None
AnnaBridge 146:22da6e220af6 1156 */
AnnaBridge 146:22da6e220af6 1157 __STATIC_INLINE void LL_LPTIM_DisableIT_ARRM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1158 {
AnnaBridge 146:22da6e220af6 1159 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_ARRMIE);
AnnaBridge 146:22da6e220af6 1160 }
AnnaBridge 146:22da6e220af6 1161
AnnaBridge 146:22da6e220af6 1162 /**
AnnaBridge 146:22da6e220af6 1163 * @brief Indicates whether the autoreload match interrupt (ARRMIE) is enabled.
AnnaBridge 146:22da6e220af6 1164 * @rmtoll IER ARRMIE LL_LPTIM_IsEnabledIT_ARRM
AnnaBridge 146:22da6e220af6 1165 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1166 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1167 */
AnnaBridge 146:22da6e220af6 1168 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_ARRM(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1169 {
AnnaBridge 146:22da6e220af6 1170 return (READ_BIT(LPTIMx->IER, LPTIM_IER_ARRMIE) == (LPTIM_IER_ARRMIE));
AnnaBridge 146:22da6e220af6 1171 }
AnnaBridge 146:22da6e220af6 1172
AnnaBridge 146:22da6e220af6 1173 /**
AnnaBridge 146:22da6e220af6 1174 * @brief Enable external trigger valid edge interrupt (EXTTRIGIE).
AnnaBridge 146:22da6e220af6 1175 * @rmtoll IER EXTTRIGIE LL_LPTIM_EnableIT_EXTTRIG
AnnaBridge 146:22da6e220af6 1176 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1177 * @retval None
AnnaBridge 146:22da6e220af6 1178 */
AnnaBridge 146:22da6e220af6 1179 __STATIC_INLINE void LL_LPTIM_EnableIT_EXTTRIG(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1180 {
AnnaBridge 146:22da6e220af6 1181 SET_BIT(LPTIMx->IER, LPTIM_IER_EXTTRIGIE);
AnnaBridge 146:22da6e220af6 1182 }
AnnaBridge 146:22da6e220af6 1183
AnnaBridge 146:22da6e220af6 1184 /**
AnnaBridge 146:22da6e220af6 1185 * @brief Disable external trigger valid edge interrupt (EXTTRIGIE).
AnnaBridge 146:22da6e220af6 1186 * @rmtoll IER EXTTRIGIE LL_LPTIM_DisableIT_EXTTRIG
AnnaBridge 146:22da6e220af6 1187 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1188 * @retval None
AnnaBridge 146:22da6e220af6 1189 */
AnnaBridge 146:22da6e220af6 1190 __STATIC_INLINE void LL_LPTIM_DisableIT_EXTTRIG(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1191 {
AnnaBridge 146:22da6e220af6 1192 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_EXTTRIGIE);
AnnaBridge 146:22da6e220af6 1193 }
AnnaBridge 146:22da6e220af6 1194
AnnaBridge 146:22da6e220af6 1195 /**
AnnaBridge 146:22da6e220af6 1196 * @brief Indicates external trigger valid edge interrupt (EXTTRIGIE) is enabled.
AnnaBridge 146:22da6e220af6 1197 * @rmtoll IER EXTTRIGIE LL_LPTIM_IsEnabledIT_EXTTRIG
AnnaBridge 146:22da6e220af6 1198 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1199 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1200 */
AnnaBridge 146:22da6e220af6 1201 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_EXTTRIG(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1202 {
AnnaBridge 146:22da6e220af6 1203 return (READ_BIT(LPTIMx->IER, LPTIM_IER_EXTTRIGIE) == (LPTIM_IER_EXTTRIGIE));
AnnaBridge 146:22da6e220af6 1204 }
AnnaBridge 146:22da6e220af6 1205
AnnaBridge 146:22da6e220af6 1206 /**
AnnaBridge 146:22da6e220af6 1207 * @brief Enable compare register write completed interrupt (CMPOKIE).
AnnaBridge 146:22da6e220af6 1208 * @rmtoll IER CMPOKIE LL_LPTIM_EnableIT_CMPOK
AnnaBridge 146:22da6e220af6 1209 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1210 * @retval None
AnnaBridge 146:22da6e220af6 1211 */
AnnaBridge 146:22da6e220af6 1212 __STATIC_INLINE void LL_LPTIM_EnableIT_CMPOK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1213 {
AnnaBridge 146:22da6e220af6 1214 SET_BIT(LPTIMx->IER, LPTIM_IER_CMPOKIE);
AnnaBridge 146:22da6e220af6 1215 }
AnnaBridge 146:22da6e220af6 1216
AnnaBridge 146:22da6e220af6 1217 /**
AnnaBridge 146:22da6e220af6 1218 * @brief Disable compare register write completed interrupt (CMPOKIE).
AnnaBridge 146:22da6e220af6 1219 * @rmtoll IER CMPOKIE LL_LPTIM_DisableIT_CMPOK
AnnaBridge 146:22da6e220af6 1220 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1221 * @retval None
AnnaBridge 146:22da6e220af6 1222 */
AnnaBridge 146:22da6e220af6 1223 __STATIC_INLINE void LL_LPTIM_DisableIT_CMPOK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1224 {
AnnaBridge 146:22da6e220af6 1225 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_CMPOKIE);
AnnaBridge 146:22da6e220af6 1226 }
AnnaBridge 146:22da6e220af6 1227
AnnaBridge 146:22da6e220af6 1228 /**
AnnaBridge 146:22da6e220af6 1229 * @brief Indicates whether the compare register write completed interrupt (CMPOKIE) is enabled.
AnnaBridge 146:22da6e220af6 1230 * @rmtoll IER CMPOKIE LL_LPTIM_IsEnabledIT_CMPOK
AnnaBridge 146:22da6e220af6 1231 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1232 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1233 */
AnnaBridge 146:22da6e220af6 1234 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_CMPOK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1235 {
AnnaBridge 146:22da6e220af6 1236 return (READ_BIT(LPTIMx->IER, LPTIM_IER_CMPOKIE) == (LPTIM_IER_CMPOKIE));
AnnaBridge 146:22da6e220af6 1237 }
AnnaBridge 146:22da6e220af6 1238
AnnaBridge 146:22da6e220af6 1239 /**
AnnaBridge 146:22da6e220af6 1240 * @brief Enable autoreload register write completed interrupt (ARROKIE).
AnnaBridge 146:22da6e220af6 1241 * @rmtoll IER ARROKIE LL_LPTIM_EnableIT_ARROK
AnnaBridge 146:22da6e220af6 1242 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1243 * @retval None
AnnaBridge 146:22da6e220af6 1244 */
AnnaBridge 146:22da6e220af6 1245 __STATIC_INLINE void LL_LPTIM_EnableIT_ARROK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1246 {
AnnaBridge 146:22da6e220af6 1247 SET_BIT(LPTIMx->IER, LPTIM_IER_ARROKIE);
AnnaBridge 146:22da6e220af6 1248 }
AnnaBridge 146:22da6e220af6 1249
AnnaBridge 146:22da6e220af6 1250 /**
AnnaBridge 146:22da6e220af6 1251 * @brief Disable autoreload register write completed interrupt (ARROKIE).
AnnaBridge 146:22da6e220af6 1252 * @rmtoll IER ARROKIE LL_LPTIM_DisableIT_ARROK
AnnaBridge 146:22da6e220af6 1253 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1254 * @retval None
AnnaBridge 146:22da6e220af6 1255 */
AnnaBridge 146:22da6e220af6 1256 __STATIC_INLINE void LL_LPTIM_DisableIT_ARROK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1257 {
AnnaBridge 146:22da6e220af6 1258 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_ARROKIE);
AnnaBridge 146:22da6e220af6 1259 }
AnnaBridge 146:22da6e220af6 1260
AnnaBridge 146:22da6e220af6 1261 /**
AnnaBridge 146:22da6e220af6 1262 * @brief Indicates whether the autoreload register write completed interrupt (ARROKIE) is enabled.
AnnaBridge 146:22da6e220af6 1263 * @rmtoll IER ARROKIE LL_LPTIM_IsEnabledIT_ARROK
AnnaBridge 146:22da6e220af6 1264 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1265 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1266 */
AnnaBridge 146:22da6e220af6 1267 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_ARROK(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1268 {
AnnaBridge 146:22da6e220af6 1269 return (READ_BIT(LPTIMx->IER, LPTIM_IER_ARROKIE) == (LPTIM_IER_ARROKIE));
AnnaBridge 146:22da6e220af6 1270 }
AnnaBridge 146:22da6e220af6 1271
AnnaBridge 146:22da6e220af6 1272 /**
AnnaBridge 146:22da6e220af6 1273 * @brief Enable direction change to up interrupt (UPIE).
AnnaBridge 146:22da6e220af6 1274 * @rmtoll IER UPIE LL_LPTIM_EnableIT_UP
AnnaBridge 146:22da6e220af6 1275 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1276 * @retval None
AnnaBridge 146:22da6e220af6 1277 */
AnnaBridge 146:22da6e220af6 1278 __STATIC_INLINE void LL_LPTIM_EnableIT_UP(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1279 {
AnnaBridge 146:22da6e220af6 1280 SET_BIT(LPTIMx->IER, LPTIM_IER_UPIE);
AnnaBridge 146:22da6e220af6 1281 }
AnnaBridge 146:22da6e220af6 1282
AnnaBridge 146:22da6e220af6 1283 /**
AnnaBridge 146:22da6e220af6 1284 * @brief Disable direction change to up interrupt (UPIE).
AnnaBridge 146:22da6e220af6 1285 * @rmtoll IER UPIE LL_LPTIM_DisableIT_UP
AnnaBridge 146:22da6e220af6 1286 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1287 * @retval None
AnnaBridge 146:22da6e220af6 1288 */
AnnaBridge 146:22da6e220af6 1289 __STATIC_INLINE void LL_LPTIM_DisableIT_UP(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1290 {
AnnaBridge 146:22da6e220af6 1291 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_UPIE);
AnnaBridge 146:22da6e220af6 1292 }
AnnaBridge 146:22da6e220af6 1293
AnnaBridge 146:22da6e220af6 1294 /**
AnnaBridge 146:22da6e220af6 1295 * @brief Indicates whether the direction change to up interrupt (UPIE) is enabled.
AnnaBridge 146:22da6e220af6 1296 * @rmtoll IER UPIE LL_LPTIM_IsEnabledIT_UP
AnnaBridge 146:22da6e220af6 1297 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1298 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1299 */
AnnaBridge 146:22da6e220af6 1300 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_UP(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1301 {
AnnaBridge 146:22da6e220af6 1302 return (READ_BIT(LPTIMx->IER, LPTIM_IER_UPIE) == (LPTIM_IER_UPIE));
AnnaBridge 146:22da6e220af6 1303 }
AnnaBridge 146:22da6e220af6 1304
AnnaBridge 146:22da6e220af6 1305 /**
AnnaBridge 146:22da6e220af6 1306 * @brief Enable direction change to down interrupt (DOWNIE).
AnnaBridge 146:22da6e220af6 1307 * @rmtoll IER DOWNIE LL_LPTIM_EnableIT_DOWN
AnnaBridge 146:22da6e220af6 1308 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1309 * @retval None
AnnaBridge 146:22da6e220af6 1310 */
AnnaBridge 146:22da6e220af6 1311 __STATIC_INLINE void LL_LPTIM_EnableIT_DOWN(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1312 {
AnnaBridge 146:22da6e220af6 1313 SET_BIT(LPTIMx->IER, LPTIM_IER_DOWNIE);
AnnaBridge 146:22da6e220af6 1314 }
AnnaBridge 146:22da6e220af6 1315
AnnaBridge 146:22da6e220af6 1316 /**
AnnaBridge 146:22da6e220af6 1317 * @brief Disable direction change to down interrupt (DOWNIE).
AnnaBridge 146:22da6e220af6 1318 * @rmtoll IER DOWNIE LL_LPTIM_DisableIT_DOWN
AnnaBridge 146:22da6e220af6 1319 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1320 * @retval None
AnnaBridge 146:22da6e220af6 1321 */
AnnaBridge 146:22da6e220af6 1322 __STATIC_INLINE void LL_LPTIM_DisableIT_DOWN(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1323 {
AnnaBridge 146:22da6e220af6 1324 CLEAR_BIT(LPTIMx->IER, LPTIM_IER_DOWNIE);
AnnaBridge 146:22da6e220af6 1325 }
AnnaBridge 146:22da6e220af6 1326
AnnaBridge 146:22da6e220af6 1327 /**
AnnaBridge 146:22da6e220af6 1328 * @brief Indicates whether the direction change to down interrupt (DOWNIE) is enabled.
AnnaBridge 146:22da6e220af6 1329 * @rmtoll IER DOWNIE LL_LPTIM_IsEnabledIT_DOWN
AnnaBridge 146:22da6e220af6 1330 * @param LPTIMx Low-Power Timer instance
AnnaBridge 146:22da6e220af6 1331 * @retval State of bit (1 or 0).
AnnaBridge 146:22da6e220af6 1332 */
AnnaBridge 146:22da6e220af6 1333 __STATIC_INLINE uint32_t LL_LPTIM_IsEnabledIT_DOWN(LPTIM_TypeDef *LPTIMx)
AnnaBridge 146:22da6e220af6 1334 {
AnnaBridge 146:22da6e220af6 1335 return (READ_BIT(LPTIMx->IER, LPTIM_IER_DOWNIE) == (LPTIM_IER_DOWNIE));
AnnaBridge 146:22da6e220af6 1336 }
AnnaBridge 146:22da6e220af6 1337
AnnaBridge 146:22da6e220af6 1338 /**
AnnaBridge 146:22da6e220af6 1339 * @}
AnnaBridge 146:22da6e220af6 1340 */
AnnaBridge 146:22da6e220af6 1341
AnnaBridge 146:22da6e220af6 1342 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 146:22da6e220af6 1343 /** @defgroup LPTIM_LL_EF_Init Initialisation and deinitialisation functions
AnnaBridge 146:22da6e220af6 1344 * @{
AnnaBridge 146:22da6e220af6 1345 */
AnnaBridge 146:22da6e220af6 1346
AnnaBridge 146:22da6e220af6 1347 ErrorStatus LL_LPTIM_DeInit(LPTIM_TypeDef *LPTIMx);
AnnaBridge 146:22da6e220af6 1348 void LL_LPTIM_StructInit(LL_LPTIM_InitTypeDef *LPTIM_InitStruct);
AnnaBridge 146:22da6e220af6 1349 ErrorStatus LL_LPTIM_Init(LPTIM_TypeDef *LPTIMx, LL_LPTIM_InitTypeDef *LPTIM_InitStruct);
AnnaBridge 146:22da6e220af6 1350 /**
AnnaBridge 146:22da6e220af6 1351 * @}
AnnaBridge 146:22da6e220af6 1352 */
AnnaBridge 146:22da6e220af6 1353 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 146:22da6e220af6 1354
AnnaBridge 146:22da6e220af6 1355 /**
AnnaBridge 146:22da6e220af6 1356 * @}
AnnaBridge 146:22da6e220af6 1357 */
AnnaBridge 146:22da6e220af6 1358
AnnaBridge 146:22da6e220af6 1359 /**
AnnaBridge 146:22da6e220af6 1360 * @}
AnnaBridge 146:22da6e220af6 1361 */
AnnaBridge 146:22da6e220af6 1362
AnnaBridge 146:22da6e220af6 1363 #endif /* LPTIM1 */
AnnaBridge 146:22da6e220af6 1364
AnnaBridge 146:22da6e220af6 1365 /**
AnnaBridge 146:22da6e220af6 1366 * @}
AnnaBridge 146:22da6e220af6 1367 */
AnnaBridge 146:22da6e220af6 1368
AnnaBridge 146:22da6e220af6 1369 #ifdef __cplusplus
AnnaBridge 146:22da6e220af6 1370 }
AnnaBridge 146:22da6e220af6 1371 #endif
AnnaBridge 146:22da6e220af6 1372
AnnaBridge 146:22da6e220af6 1373 #endif /* __STM32F4xx_LL_LPTIM_H */
AnnaBridge 146:22da6e220af6 1374
AnnaBridge 146:22da6e220af6 1375 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/