mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_lptim.c
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 489:119543c9f674 5 * @version V1.2.0
mbed_official 489:119543c9f674 6 * @date 06-February-2015
mbed_official 376:cb4d9db17537 7 * @brief LPTIM HAL module driver.
mbed_official 376:cb4d9db17537 8 *
mbed_official 376:cb4d9db17537 9 * This file provides firmware functions to manage the following
mbed_official 376:cb4d9db17537 10 * functionalities of the Low Power Timer (LPTIM) peripheral:
mbed_official 376:cb4d9db17537 11 * + Initialization and de-initialization functions.
mbed_official 376:cb4d9db17537 12 * + Start/Stop operation functions in polling mode.
mbed_official 376:cb4d9db17537 13 * + Start/Stop operation functions in interrupt mode.
mbed_official 376:cb4d9db17537 14 * + Reading operation functions.
mbed_official 376:cb4d9db17537 15 * + Peripheral State functions.
mbed_official 376:cb4d9db17537 16 *
mbed_official 376:cb4d9db17537 17 @verbatim
mbed_official 376:cb4d9db17537 18 ==============================================================================
mbed_official 376:cb4d9db17537 19 ##### How to use this driver #####
mbed_official 376:cb4d9db17537 20 ==============================================================================
mbed_official 376:cb4d9db17537 21 [..]
mbed_official 376:cb4d9db17537 22 The LPTIM HAL driver can be used as follows:
mbed_official 376:cb4d9db17537 23
mbed_official 376:cb4d9db17537 24 (#)Initialize the LPTIM low level resources by implementing the
mbed_official 376:cb4d9db17537 25 HAL_LPTIM_MspInit():
mbed_official 489:119543c9f674 26 (##) Enable the LPTIM interface clock using __HAL_RCC_LPTIM1_CLK_ENABLE().
mbed_official 376:cb4d9db17537 27 (##) In case of using interrupts (e.g. HAL_LPTIM_PWM_Start_IT()):
mbed_official 376:cb4d9db17537 28 (+) Configure the LPTIM interrupt priority using HAL_NVIC_SetPriority().
mbed_official 376:cb4d9db17537 29 (+) Enable the LPTIM IRQ handler using HAL_NVIC_EnableIRQ().
mbed_official 376:cb4d9db17537 30 (+) In LPTIM IRQ handler, call HAL_LPTIM_IRQHandler().
mbed_official 376:cb4d9db17537 31
mbed_official 376:cb4d9db17537 32 (#)Initialize the LPTIM HAL using HAL_LPTIM_Init(). This function
mbed_official 376:cb4d9db17537 33 configures mainly:
mbed_official 376:cb4d9db17537 34 (##) The instance: Only LPTIM1 is present in STM32L053xx.
mbed_official 376:cb4d9db17537 35 (##) Clock: the counter clock.
mbed_official 376:cb4d9db17537 36 - Source : it can be either the ULPTIM input (IN1) or one of
mbed_official 376:cb4d9db17537 37 the internal clock; (APB, LSE, LSI or MSI).
mbed_official 376:cb4d9db17537 38 - Prescaler: select the clock divider.
mbed_official 376:cb4d9db17537 39 (##) UltraLowPowerClock : To be used only if the ULPTIM is selected
mbed_official 376:cb4d9db17537 40 as counter clock source.
mbed_official 376:cb4d9db17537 41 - Polarity: polarity of the active edge for the counter unit
mbed_official 376:cb4d9db17537 42 if the ULPTIM input is selected.
mbed_official 376:cb4d9db17537 43 - SampleTime: clock sampling time to configure the clock glitch
mbed_official 376:cb4d9db17537 44 filter.
mbed_official 376:cb4d9db17537 45 (##) Trigger: How the counter start.
mbed_official 376:cb4d9db17537 46 - Source: trigger can be software or one of the hardware triggers.
mbed_official 376:cb4d9db17537 47 - ActiveEdge : only for hardware trigger.
mbed_official 376:cb4d9db17537 48 - SampleTime : trigger sampling time to configure the trigger
mbed_official 376:cb4d9db17537 49 glitch filter.
mbed_official 376:cb4d9db17537 50 (##) OutputPolarity : 2 opposite polarities are possibles.
mbed_official 376:cb4d9db17537 51 (##) UpdateMode: specifies whether the update of the autoreload and
mbed_official 376:cb4d9db17537 52 the compare values is done immediately or after the end of current
mbed_official 376:cb4d9db17537 53 period.
mbed_official 376:cb4d9db17537 54
mbed_official 376:cb4d9db17537 55 (#)Six modes are available:
mbed_official 376:cb4d9db17537 56
mbed_official 376:cb4d9db17537 57 (##) PWM Mode: To generate a PWM signal with specified period and pulse,
mbed_official 376:cb4d9db17537 58 call HAL_LPTIM_PWM_Start() or HAL_LPTIM_PWM_Start_IT() for interruption
mbed_official 376:cb4d9db17537 59 mode.
mbed_official 376:cb4d9db17537 60
mbed_official 376:cb4d9db17537 61 (##) One Pulse Mode: To generate pulse with specified width in response
mbed_official 376:cb4d9db17537 62 to a stimulus, call HAL_LPTIM_OnePulse_Start() or
mbed_official 376:cb4d9db17537 63 HAL_LPTIM_OnePulse_Start_IT() for interruption mode.
mbed_official 376:cb4d9db17537 64
mbed_official 376:cb4d9db17537 65 (##) Set once Mode: In this mode, the output changes the level (from
mbed_official 376:cb4d9db17537 66 low level to high level if the output polarity is configured high, else
mbed_official 376:cb4d9db17537 67 the opposite) when a compare match occurs. To start this mode, call
mbed_official 376:cb4d9db17537 68 HAL_LPTIM_SetOnce_Start() or HAL_LPTIM_SetOnce_Start_IT() for
mbed_official 376:cb4d9db17537 69 interruption mode.
mbed_official 376:cb4d9db17537 70
mbed_official 376:cb4d9db17537 71 (##) Encoder Mode: To use the encoder interface call
mbed_official 376:cb4d9db17537 72 HAL_LPTIM_Encoder_Start() or HAL_LPTIM_Encoder_Start_IT() for
mbed_official 376:cb4d9db17537 73 interruption mode.
mbed_official 376:cb4d9db17537 74
mbed_official 376:cb4d9db17537 75 (##) Time out Mode: an active edge on one selected trigger input rests
mbed_official 376:cb4d9db17537 76 the counter. The first trigger event will start the timer, any
mbed_official 376:cb4d9db17537 77 successive trigger event will reset the counter and the timer will
mbed_official 376:cb4d9db17537 78 restart. To start this mode call HAL_LPTIM_TimeOut_Start_IT() or
mbed_official 376:cb4d9db17537 79 HAL_LPTIM_TimeOut_Start_IT() for interruption mode.
mbed_official 376:cb4d9db17537 80
mbed_official 376:cb4d9db17537 81 (##) Counter Mode: counter can be used to count external events on
mbed_official 376:cb4d9db17537 82 the LPTIM Input1 or it can be used to count internal clock cycles.
mbed_official 376:cb4d9db17537 83 To start this mode, call HAL_LPTIM_Counter_Start() or
mbed_official 376:cb4d9db17537 84 HAL_LPTIM_Counter_Start_IT() for interruption mode.
mbed_official 376:cb4d9db17537 85
mbed_official 376:cb4d9db17537 86
mbed_official 376:cb4d9db17537 87 (#) User can stop any process by calling the corresponding API:
mbed_official 376:cb4d9db17537 88 HAL_LPTIM_Xxx_Stop() or HAL_LPTIM_Xxx_Stop_IT() if the process is
mbed_official 376:cb4d9db17537 89 already started in interruption mode.
mbed_official 376:cb4d9db17537 90
mbed_official 376:cb4d9db17537 91 (#)Call HAL_LPTIM_DeInit() to deinitialize the LPTIM peripheral.
mbed_official 376:cb4d9db17537 92
mbed_official 376:cb4d9db17537 93 @endverbatim
mbed_official 376:cb4d9db17537 94 ******************************************************************************
mbed_official 376:cb4d9db17537 95 * @attention
mbed_official 376:cb4d9db17537 96 *
mbed_official 489:119543c9f674 97 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 98 *
mbed_official 376:cb4d9db17537 99 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 100 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 101 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 102 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 103 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 104 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 105 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 106 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 107 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 108 * without specific prior written permission.
mbed_official 376:cb4d9db17537 109 *
mbed_official 376:cb4d9db17537 110 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 111 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 112 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 113 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 114 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 115 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 116 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 117 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 118 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 119 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 120 *
mbed_official 376:cb4d9db17537 121 ******************************************************************************
mbed_official 376:cb4d9db17537 122 */
mbed_official 376:cb4d9db17537 123
mbed_official 376:cb4d9db17537 124 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 125 #include "stm32l0xx_hal.h"
mbed_official 376:cb4d9db17537 126
mbed_official 376:cb4d9db17537 127 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 128 * @{
mbed_official 376:cb4d9db17537 129 */
mbed_official 376:cb4d9db17537 130
mbed_official 489:119543c9f674 131 /** @addtogroup LPTIM
mbed_official 376:cb4d9db17537 132 * @brief LPTIM HAL module driver.
mbed_official 376:cb4d9db17537 133 * @{
mbed_official 376:cb4d9db17537 134 */
mbed_official 376:cb4d9db17537 135
mbed_official 376:cb4d9db17537 136 #ifdef HAL_LPTIM_MODULE_ENABLED
mbed_official 376:cb4d9db17537 137
mbed_official 489:119543c9f674 138 /** @addtogroup LPTIM_Exported_Functions
mbed_official 376:cb4d9db17537 139 * @{
mbed_official 376:cb4d9db17537 140 */
mbed_official 376:cb4d9db17537 141
mbed_official 489:119543c9f674 142 /** @addtogroup LPTIM_Exported_Functions_Group1
mbed_official 376:cb4d9db17537 143 * @brief Initialization and Configuration functions.
mbed_official 376:cb4d9db17537 144 *
mbed_official 376:cb4d9db17537 145 @verbatim
mbed_official 376:cb4d9db17537 146 ==============================================================================
mbed_official 376:cb4d9db17537 147 ##### Initialization and de-initialization functions #####
mbed_official 376:cb4d9db17537 148 ==============================================================================
mbed_official 376:cb4d9db17537 149 [..] This section provides functions allowing to:
mbed_official 376:cb4d9db17537 150 (+) Initialize the LPTIM according to the specified parameters in the
mbed_official 376:cb4d9db17537 151 LPTIM_InitTypeDef and creates the associated handle.
mbed_official 376:cb4d9db17537 152 (+) DeInitialize the LPTIM peripheral.
mbed_official 376:cb4d9db17537 153 (+) Initialize the LPTIM MSP.
mbed_official 376:cb4d9db17537 154 (+) DeInitialize LPTIM MSP.
mbed_official 376:cb4d9db17537 155
mbed_official 376:cb4d9db17537 156 @endverbatim
mbed_official 376:cb4d9db17537 157 * @{
mbed_official 376:cb4d9db17537 158 */
mbed_official 376:cb4d9db17537 159
mbed_official 376:cb4d9db17537 160 /**
mbed_official 376:cb4d9db17537 161 * @brief Initializes the LPTIM according to the specified parameters in the
mbed_official 376:cb4d9db17537 162 * LPTIM_InitTypeDef and creates the associated handle.
mbed_official 489:119543c9f674 163 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 164 * @retval HAL status
mbed_official 376:cb4d9db17537 165 */
mbed_official 376:cb4d9db17537 166 HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 167 {
mbed_official 376:cb4d9db17537 168 uint32_t tmpcfgr = 0;
mbed_official 376:cb4d9db17537 169
mbed_official 376:cb4d9db17537 170 /* Check the LPTIM handle allocation */
mbed_official 489:119543c9f674 171 if(hlptim == NULL)
mbed_official 376:cb4d9db17537 172 {
mbed_official 376:cb4d9db17537 173 return HAL_ERROR;
mbed_official 376:cb4d9db17537 174 }
mbed_official 376:cb4d9db17537 175
mbed_official 376:cb4d9db17537 176 /* Check the parameters */
mbed_official 376:cb4d9db17537 177 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 178
mbed_official 376:cb4d9db17537 179 assert_param(IS_LPTIM_CLOCK_SOURCE(hlptim->Init.Clock.Source));
mbed_official 376:cb4d9db17537 180 assert_param(IS_LPTIM_CLOCK_PRESCALER(hlptim->Init.Clock.Prescaler));
mbed_official 376:cb4d9db17537 181 if((hlptim->Init.Clock.Source) == LPTIM_CLOCKSOURCE_ULPTIM)
mbed_official 376:cb4d9db17537 182 {
mbed_official 376:cb4d9db17537 183 assert_param(IS_LPTIM_CLOCK_POLARITY(hlptim->Init.UltraLowPowerClock.Polarity));
mbed_official 376:cb4d9db17537 184 assert_param(IS_LPTIM_CLOCK_SAMPLE_TIME(hlptim->Init.UltraLowPowerClock.SampleTime));
mbed_official 376:cb4d9db17537 185 }
mbed_official 376:cb4d9db17537 186 assert_param(IS_LPTIM_TRG_SOURCE(hlptim->Init.Trigger.Source));
mbed_official 376:cb4d9db17537 187 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 188 {
mbed_official 376:cb4d9db17537 189 assert_param(IS_LPTIM_TRIG_SAMPLE_TIME(hlptim->Init.Trigger.SampleTime));
mbed_official 376:cb4d9db17537 190 assert_param(IS_LPTIM_EXT_TRG_POLARITY(hlptim->Init.Trigger.ActiveEdge));
mbed_official 376:cb4d9db17537 191 }
mbed_official 376:cb4d9db17537 192 assert_param(IS_LPTIM_OUTPUT_POLARITY(hlptim->Init.OutputPolarity));
mbed_official 376:cb4d9db17537 193 assert_param(IS_LPTIM_UPDATE_MODE(hlptim->Init.UpdateMode));
mbed_official 376:cb4d9db17537 194 assert_param(IS_LPTIM_COUNTER_SOURCE(hlptim->Init.CounterSource));
mbed_official 376:cb4d9db17537 195
mbed_official 376:cb4d9db17537 196 if(hlptim->State == HAL_LPTIM_STATE_RESET)
mbed_official 376:cb4d9db17537 197 {
mbed_official 376:cb4d9db17537 198 /* Init the low level hardware */
mbed_official 376:cb4d9db17537 199 HAL_LPTIM_MspInit(hlptim);
mbed_official 376:cb4d9db17537 200 }
mbed_official 376:cb4d9db17537 201
mbed_official 376:cb4d9db17537 202 /* Change the LPTIM state */
mbed_official 376:cb4d9db17537 203 hlptim->State = HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 204
mbed_official 376:cb4d9db17537 205 /* Get the LPTIMx CFGR value */
mbed_official 376:cb4d9db17537 206 tmpcfgr = hlptim->Instance->CFGR;
mbed_official 376:cb4d9db17537 207
mbed_official 376:cb4d9db17537 208 if ((hlptim->Init.Clock.Source) == LPTIM_CLOCKSOURCE_ULPTIM)
mbed_official 376:cb4d9db17537 209 {
mbed_official 376:cb4d9db17537 210 tmpcfgr &= (uint32_t)(~(LPTIM_CFGR_CKPOL | LPTIM_CFGR_CKFLT));
mbed_official 376:cb4d9db17537 211 }
mbed_official 376:cb4d9db17537 212 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 213 {
mbed_official 376:cb4d9db17537 214 tmpcfgr &= (uint32_t)(~ (LPTIM_CFGR_TRGFLT | LPTIM_CFGR_TRIGSEL));
mbed_official 376:cb4d9db17537 215 }
mbed_official 376:cb4d9db17537 216
mbed_official 376:cb4d9db17537 217 /* Clear CKSEL, PRESC, TRIGEN, TRGFLT, WAVPOL, PRELOAD & COUNTMODE bits */
mbed_official 376:cb4d9db17537 218 tmpcfgr &= (uint32_t)(~(LPTIM_CFGR_CKSEL | LPTIM_CFGR_TRIGEN | LPTIM_CFGR_PRELOAD |
mbed_official 376:cb4d9db17537 219 LPTIM_CFGR_WAVPOL | LPTIM_CFGR_PRESC | LPTIM_CFGR_COUNTMODE ));
mbed_official 376:cb4d9db17537 220
mbed_official 376:cb4d9db17537 221 /* Set initialization parameters */
mbed_official 376:cb4d9db17537 222 tmpcfgr |= (hlptim->Init.Clock.Source |
mbed_official 376:cb4d9db17537 223 hlptim->Init.Clock.Prescaler |
mbed_official 376:cb4d9db17537 224 hlptim->Init.OutputPolarity |
mbed_official 376:cb4d9db17537 225 hlptim->Init.UpdateMode |
mbed_official 376:cb4d9db17537 226 hlptim->Init.CounterSource);
mbed_official 376:cb4d9db17537 227
mbed_official 376:cb4d9db17537 228 if ((hlptim->Init.Clock.Source) == LPTIM_CLOCKSOURCE_ULPTIM)
mbed_official 376:cb4d9db17537 229 {
mbed_official 376:cb4d9db17537 230 tmpcfgr |= (hlptim->Init.UltraLowPowerClock.Polarity |
mbed_official 376:cb4d9db17537 231 hlptim->Init.UltraLowPowerClock.SampleTime);
mbed_official 376:cb4d9db17537 232 }
mbed_official 376:cb4d9db17537 233
mbed_official 376:cb4d9db17537 234 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 235 {
mbed_official 376:cb4d9db17537 236 /* Enable External trigger and set the trigger source */
mbed_official 376:cb4d9db17537 237 tmpcfgr |= (hlptim->Init.Trigger.Source |
mbed_official 376:cb4d9db17537 238 hlptim->Init.Trigger.ActiveEdge |
mbed_official 376:cb4d9db17537 239 hlptim->Init.Trigger.SampleTime);
mbed_official 376:cb4d9db17537 240 }
mbed_official 376:cb4d9db17537 241
mbed_official 376:cb4d9db17537 242 /* Write to LPTIMx CFGR */
mbed_official 376:cb4d9db17537 243 hlptim->Instance->CFGR = tmpcfgr;
mbed_official 376:cb4d9db17537 244
mbed_official 376:cb4d9db17537 245 /* Change the LPTIM state */
mbed_official 376:cb4d9db17537 246 hlptim->State = HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 247
mbed_official 376:cb4d9db17537 248 /* Return function status */
mbed_official 376:cb4d9db17537 249 return HAL_OK;
mbed_official 376:cb4d9db17537 250 }
mbed_official 376:cb4d9db17537 251
mbed_official 376:cb4d9db17537 252 /**
mbed_official 376:cb4d9db17537 253 * @brief DeInitializes the LPTIM peripheral.
mbed_official 489:119543c9f674 254 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 255 * @retval HAL status
mbed_official 376:cb4d9db17537 256 */
mbed_official 376:cb4d9db17537 257 HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 258 {
mbed_official 376:cb4d9db17537 259 /* Check the LPTIM handle allocation */
mbed_official 489:119543c9f674 260 if(hlptim == NULL)
mbed_official 376:cb4d9db17537 261 {
mbed_official 376:cb4d9db17537 262 return HAL_ERROR;
mbed_official 376:cb4d9db17537 263 }
mbed_official 376:cb4d9db17537 264
mbed_official 376:cb4d9db17537 265 /* Change the LPTIM state */
mbed_official 376:cb4d9db17537 266 hlptim->State = HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 267
mbed_official 376:cb4d9db17537 268 /* Disable the LPTIM Peripheral Clock */
mbed_official 376:cb4d9db17537 269 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 270
mbed_official 376:cb4d9db17537 271 /* DeInit the low level hardware: CLOCK, NVIC.*/
mbed_official 376:cb4d9db17537 272 HAL_LPTIM_MspDeInit(hlptim);
mbed_official 376:cb4d9db17537 273
mbed_official 376:cb4d9db17537 274 /* Change the LPTIM state */
mbed_official 376:cb4d9db17537 275 hlptim->State = HAL_LPTIM_STATE_RESET;
mbed_official 376:cb4d9db17537 276
mbed_official 376:cb4d9db17537 277 /* Release Lock */
mbed_official 376:cb4d9db17537 278 __HAL_UNLOCK(hlptim);
mbed_official 376:cb4d9db17537 279
mbed_official 376:cb4d9db17537 280 /* Return function status */
mbed_official 376:cb4d9db17537 281 return HAL_OK;
mbed_official 376:cb4d9db17537 282 }
mbed_official 376:cb4d9db17537 283
mbed_official 376:cb4d9db17537 284 /**
mbed_official 376:cb4d9db17537 285 * @brief Initializes the LPTIM MSP.
mbed_official 489:119543c9f674 286 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 287 * @retval None
mbed_official 376:cb4d9db17537 288 */
mbed_official 376:cb4d9db17537 289 __weak void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 290 {
mbed_official 376:cb4d9db17537 291 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 292 the HAL_LPTIM_MspInit could be implemented in the user file
mbed_official 376:cb4d9db17537 293 */
mbed_official 376:cb4d9db17537 294 }
mbed_official 376:cb4d9db17537 295
mbed_official 376:cb4d9db17537 296 /**
mbed_official 376:cb4d9db17537 297 * @brief DeInitializes LPTIM MSP.
mbed_official 489:119543c9f674 298 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 299 * @retval None
mbed_official 376:cb4d9db17537 300 */
mbed_official 376:cb4d9db17537 301 __weak void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 302 {
mbed_official 376:cb4d9db17537 303 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 304 the HAL_LPTIM_MspDeInit could be implemented in the user file
mbed_official 376:cb4d9db17537 305 */
mbed_official 376:cb4d9db17537 306 }
mbed_official 376:cb4d9db17537 307
mbed_official 376:cb4d9db17537 308 /**
mbed_official 376:cb4d9db17537 309 * @}
mbed_official 376:cb4d9db17537 310 */
mbed_official 376:cb4d9db17537 311
mbed_official 489:119543c9f674 312 /** @addtogroup LPTIM_Exported_Functions_Group2
mbed_official 376:cb4d9db17537 313 * @brief Start-Stop operation functions.
mbed_official 376:cb4d9db17537 314 *
mbed_official 376:cb4d9db17537 315 @verbatim
mbed_official 376:cb4d9db17537 316 ==============================================================================
mbed_official 376:cb4d9db17537 317 ##### LPTIM Start Stop operation functions #####
mbed_official 376:cb4d9db17537 318 ==============================================================================
mbed_official 376:cb4d9db17537 319 [..] This section provides functions allowing to:
mbed_official 376:cb4d9db17537 320 (+) Start the PWM mode.
mbed_official 376:cb4d9db17537 321 (+) Stop the PWM mode.
mbed_official 376:cb4d9db17537 322 (+) Start the One pulse mode.
mbed_official 376:cb4d9db17537 323 (+) Stop the One pulse mode.
mbed_official 376:cb4d9db17537 324 (+) Start the Set once mode.
mbed_official 376:cb4d9db17537 325 (+) Stop the Set once mode.
mbed_official 376:cb4d9db17537 326 (+) Start the Encoder mode.
mbed_official 376:cb4d9db17537 327 (+) Stop the Encoder mode.
mbed_official 376:cb4d9db17537 328 (+) Start the Timeout mode.
mbed_official 376:cb4d9db17537 329 (+) Stop the Timeout mode.
mbed_official 376:cb4d9db17537 330 (+) Start the Counter mode.
mbed_official 376:cb4d9db17537 331 (+) Stop the Counter mode.
mbed_official 376:cb4d9db17537 332
mbed_official 376:cb4d9db17537 333
mbed_official 376:cb4d9db17537 334 @endverbatim
mbed_official 376:cb4d9db17537 335 * @{
mbed_official 376:cb4d9db17537 336 */
mbed_official 376:cb4d9db17537 337
mbed_official 376:cb4d9db17537 338 /**
mbed_official 376:cb4d9db17537 339 * @brief Starts the LPTIM PWM generation.
mbed_official 376:cb4d9db17537 340 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 341 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 342 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 343 * @param Pulse : Specifies the compare value.
mbed_official 376:cb4d9db17537 344 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 345 * @retval HAL status
mbed_official 376:cb4d9db17537 346 */
mbed_official 376:cb4d9db17537 347 HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
mbed_official 376:cb4d9db17537 348 {
mbed_official 376:cb4d9db17537 349 /* Check the parameters */
mbed_official 376:cb4d9db17537 350 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 351 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 352 assert_param(IS_LPTIM_PULSE(Pulse));
mbed_official 376:cb4d9db17537 353
mbed_official 376:cb4d9db17537 354 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 355 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 356
mbed_official 376:cb4d9db17537 357 /* Reset WAVE bit to set PWM mode */
mbed_official 376:cb4d9db17537 358 hlptim->Instance->CFGR &= ~LPTIM_CFGR_WAVE;
mbed_official 376:cb4d9db17537 359
mbed_official 376:cb4d9db17537 360 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 361 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 362
mbed_official 376:cb4d9db17537 363 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 364 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 365
mbed_official 376:cb4d9db17537 366 /* Load the pulse value in the compare register */
mbed_official 376:cb4d9db17537 367 __HAL_LPTIM_COMPARE_SET(hlptim, Pulse);
mbed_official 376:cb4d9db17537 368
mbed_official 376:cb4d9db17537 369 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 370 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 371
mbed_official 376:cb4d9db17537 372 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 373 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 374
mbed_official 376:cb4d9db17537 375 /* Return function status */
mbed_official 376:cb4d9db17537 376 return HAL_OK;
mbed_official 376:cb4d9db17537 377 }
mbed_official 376:cb4d9db17537 378
mbed_official 376:cb4d9db17537 379 /**
mbed_official 376:cb4d9db17537 380 * @brief Stops the LPTIM PWM generation.
mbed_official 376:cb4d9db17537 381 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 382 * @retval HAL status
mbed_official 376:cb4d9db17537 383 */
mbed_official 376:cb4d9db17537 384 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 385 {
mbed_official 376:cb4d9db17537 386 /* Check the parameters */
mbed_official 376:cb4d9db17537 387 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 388
mbed_official 376:cb4d9db17537 389 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 390 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 391
mbed_official 376:cb4d9db17537 392 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 393 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 394
mbed_official 376:cb4d9db17537 395 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 396 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 397
mbed_official 376:cb4d9db17537 398 /* Return function status */
mbed_official 376:cb4d9db17537 399 return HAL_OK;
mbed_official 376:cb4d9db17537 400 }
mbed_official 376:cb4d9db17537 401
mbed_official 376:cb4d9db17537 402 /**
mbed_official 376:cb4d9db17537 403 * @brief Starts the LPTIM PWM generation in interrupt mode.
mbed_official 376:cb4d9db17537 404 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 405 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 406 * This parameter must be a value between 0x0000 and 0xFFFF
mbed_official 376:cb4d9db17537 407 * @param Pulse : Specifies the compare value.
mbed_official 376:cb4d9db17537 408 * This parameter must be a value between 0x0000 and 0xFFFF
mbed_official 376:cb4d9db17537 409 * @retval HAL status
mbed_official 376:cb4d9db17537 410 */
mbed_official 376:cb4d9db17537 411 HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
mbed_official 376:cb4d9db17537 412 {
mbed_official 376:cb4d9db17537 413 /* Check the parameters */
mbed_official 376:cb4d9db17537 414 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 415 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 416 assert_param(IS_LPTIM_PULSE(Pulse));
mbed_official 376:cb4d9db17537 417
mbed_official 376:cb4d9db17537 418 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 419 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 420
mbed_official 376:cb4d9db17537 421 /* Reset WAVE bit to set PWM mode */
mbed_official 376:cb4d9db17537 422 hlptim->Instance->CFGR &= ~LPTIM_CFGR_WAVE;
mbed_official 376:cb4d9db17537 423
mbed_official 376:cb4d9db17537 424 /* Enable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 425 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 426
mbed_official 376:cb4d9db17537 427 /* Enable Compare write complete interrupt */
mbed_official 489:119543c9f674 428 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPOK);
mbed_official 376:cb4d9db17537 429
mbed_official 376:cb4d9db17537 430 /* Enable Autoreload match interrupt */
mbed_official 489:119543c9f674 431 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 432
mbed_official 376:cb4d9db17537 433 /* Enable Compare match interrupt */
mbed_official 489:119543c9f674 434 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 435
mbed_official 376:cb4d9db17537 436 /* If external trigger source is used, then enable external trigger interrupt */
mbed_official 376:cb4d9db17537 437 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 438 {
mbed_official 376:cb4d9db17537 439 /* Enable external trigger interrupt */
mbed_official 489:119543c9f674 440 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
mbed_official 376:cb4d9db17537 441 }
mbed_official 376:cb4d9db17537 442
mbed_official 376:cb4d9db17537 443 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 444 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 445
mbed_official 376:cb4d9db17537 446 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 447 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 448
mbed_official 376:cb4d9db17537 449 /* Load the pulse value in the compare register */
mbed_official 376:cb4d9db17537 450 __HAL_LPTIM_COMPARE_SET(hlptim, Pulse);
mbed_official 376:cb4d9db17537 451
mbed_official 376:cb4d9db17537 452 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 453 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 454
mbed_official 376:cb4d9db17537 455 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 456 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 457
mbed_official 376:cb4d9db17537 458 /* Return function status */
mbed_official 376:cb4d9db17537 459 return HAL_OK;
mbed_official 376:cb4d9db17537 460 }
mbed_official 376:cb4d9db17537 461
mbed_official 376:cb4d9db17537 462 /**
mbed_official 376:cb4d9db17537 463 * @brief Stops the LPTIM PWM generation in interrupt mode.
mbed_official 376:cb4d9db17537 464 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 465 * @retval HAL status
mbed_official 376:cb4d9db17537 466 */
mbed_official 376:cb4d9db17537 467 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 468 {
mbed_official 376:cb4d9db17537 469 /* Check the parameters */
mbed_official 376:cb4d9db17537 470 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 471
mbed_official 376:cb4d9db17537 472 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 473 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 474
mbed_official 376:cb4d9db17537 475 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 476 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 477
mbed_official 376:cb4d9db17537 478 /* Disable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 479 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 480
mbed_official 376:cb4d9db17537 481 /* Disable Compare write complete interrupt */
mbed_official 489:119543c9f674 482 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPOK);
mbed_official 376:cb4d9db17537 483
mbed_official 376:cb4d9db17537 484 /* Disable Autoreload match interrupt */
mbed_official 489:119543c9f674 485 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 486
mbed_official 376:cb4d9db17537 487 /* Disable Compare match interrupt */
mbed_official 489:119543c9f674 488 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 489
mbed_official 376:cb4d9db17537 490 /* If external trigger source is used, then disable external trigger interrupt */
mbed_official 376:cb4d9db17537 491 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 492 {
mbed_official 376:cb4d9db17537 493 /* Disable external trigger interrupt */
mbed_official 489:119543c9f674 494 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
mbed_official 376:cb4d9db17537 495 }
mbed_official 376:cb4d9db17537 496
mbed_official 376:cb4d9db17537 497 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 498 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 499
mbed_official 376:cb4d9db17537 500 /* Return function status */
mbed_official 376:cb4d9db17537 501 return HAL_OK;
mbed_official 376:cb4d9db17537 502 }
mbed_official 376:cb4d9db17537 503
mbed_official 376:cb4d9db17537 504 /**
mbed_official 376:cb4d9db17537 505 * @brief Starts the LPTIM One pulse generation.
mbed_official 376:cb4d9db17537 506 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 507 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 508 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 509 * @param Pulse : Specifies the compare value.
mbed_official 376:cb4d9db17537 510 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 511 * @retval HAL status
mbed_official 376:cb4d9db17537 512 */
mbed_official 376:cb4d9db17537 513 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
mbed_official 376:cb4d9db17537 514 {
mbed_official 376:cb4d9db17537 515 /* Check the parameters */
mbed_official 376:cb4d9db17537 516 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 517 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 518 assert_param(IS_LPTIM_PULSE(Pulse));
mbed_official 376:cb4d9db17537 519
mbed_official 376:cb4d9db17537 520 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 521 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 522
mbed_official 376:cb4d9db17537 523 /* Reset WAVE bit to set one pulse mode */
mbed_official 376:cb4d9db17537 524 hlptim->Instance->CFGR &= ~LPTIM_CFGR_WAVE;
mbed_official 376:cb4d9db17537 525
mbed_official 376:cb4d9db17537 526 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 527 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 528
mbed_official 376:cb4d9db17537 529 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 530 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 531
mbed_official 376:cb4d9db17537 532 /* Load the pulse value in the compare register */
mbed_official 376:cb4d9db17537 533 __HAL_LPTIM_COMPARE_SET(hlptim, Pulse);
mbed_official 376:cb4d9db17537 534
mbed_official 489:119543c9f674 535 /* Start timer in single mode */
mbed_official 376:cb4d9db17537 536 __HAL_LPTIM_START_SINGLE(hlptim);
mbed_official 376:cb4d9db17537 537
mbed_official 376:cb4d9db17537 538 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 539 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 540
mbed_official 376:cb4d9db17537 541 /* Return function status */
mbed_official 376:cb4d9db17537 542 return HAL_OK;
mbed_official 376:cb4d9db17537 543 }
mbed_official 376:cb4d9db17537 544
mbed_official 376:cb4d9db17537 545 /**
mbed_official 376:cb4d9db17537 546 * @brief Stops the LPTIM One pulse generation.
mbed_official 376:cb4d9db17537 547 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 548 * @retval HAL status
mbed_official 376:cb4d9db17537 549 */
mbed_official 376:cb4d9db17537 550 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 551 {
mbed_official 376:cb4d9db17537 552 /* Check the parameters */
mbed_official 376:cb4d9db17537 553 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 554
mbed_official 376:cb4d9db17537 555 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 556 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 557
mbed_official 376:cb4d9db17537 558 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 559 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 560
mbed_official 376:cb4d9db17537 561 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 562 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 563
mbed_official 376:cb4d9db17537 564 /* Return function status */
mbed_official 376:cb4d9db17537 565 return HAL_OK;
mbed_official 376:cb4d9db17537 566 }
mbed_official 376:cb4d9db17537 567
mbed_official 376:cb4d9db17537 568 /**
mbed_official 376:cb4d9db17537 569 * @brief Starts the LPTIM One pulse generation in interrupt mode.
mbed_official 376:cb4d9db17537 570 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 571 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 572 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 573 * @param Pulse : Specifies the compare value.
mbed_official 376:cb4d9db17537 574 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 575 * @retval HAL status
mbed_official 376:cb4d9db17537 576 */
mbed_official 376:cb4d9db17537 577 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
mbed_official 376:cb4d9db17537 578 {
mbed_official 376:cb4d9db17537 579 /* Check the parameters */
mbed_official 376:cb4d9db17537 580 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 581 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 582 assert_param(IS_LPTIM_PULSE(Pulse));
mbed_official 376:cb4d9db17537 583
mbed_official 376:cb4d9db17537 584 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 585 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 586
mbed_official 376:cb4d9db17537 587 /* Reset WAVE bit to set one pulse mode */
mbed_official 376:cb4d9db17537 588 hlptim->Instance->CFGR &= ~LPTIM_CFGR_WAVE;
mbed_official 376:cb4d9db17537 589
mbed_official 376:cb4d9db17537 590 /* Enable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 591 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 592
mbed_official 376:cb4d9db17537 593 /* Enable Compare write complete interrupt */
mbed_official 489:119543c9f674 594 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPOK);
mbed_official 376:cb4d9db17537 595
mbed_official 376:cb4d9db17537 596 /* Enable Autoreload match interrupt */
mbed_official 489:119543c9f674 597 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 598
mbed_official 376:cb4d9db17537 599 /* Enable Compare match interrupt */
mbed_official 489:119543c9f674 600 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 601
mbed_official 376:cb4d9db17537 602 /* If external trigger source is used, then enable external trigger interrupt */
mbed_official 376:cb4d9db17537 603 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 604 {
mbed_official 376:cb4d9db17537 605 /* Enable external trigger interrupt */
mbed_official 489:119543c9f674 606 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
mbed_official 376:cb4d9db17537 607 }
mbed_official 376:cb4d9db17537 608
mbed_official 376:cb4d9db17537 609 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 610 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 611
mbed_official 376:cb4d9db17537 612 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 613 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 614
mbed_official 376:cb4d9db17537 615 /* Load the pulse value in the compare register */
mbed_official 376:cb4d9db17537 616 __HAL_LPTIM_COMPARE_SET(hlptim, Pulse);
mbed_official 376:cb4d9db17537 617
mbed_official 376:cb4d9db17537 618 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 619 __HAL_LPTIM_START_SINGLE(hlptim);
mbed_official 376:cb4d9db17537 620
mbed_official 376:cb4d9db17537 621 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 622 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 623
mbed_official 376:cb4d9db17537 624 /* Return function status */
mbed_official 376:cb4d9db17537 625 return HAL_OK;
mbed_official 376:cb4d9db17537 626 }
mbed_official 376:cb4d9db17537 627
mbed_official 376:cb4d9db17537 628 /**
mbed_official 376:cb4d9db17537 629 * @brief Stops the LPTIM One pulse generation in interrupt mode.
mbed_official 376:cb4d9db17537 630 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 631 * @retval HAL status
mbed_official 376:cb4d9db17537 632 */
mbed_official 376:cb4d9db17537 633 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 634 {
mbed_official 376:cb4d9db17537 635 /* Check the parameters */
mbed_official 376:cb4d9db17537 636 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 637
mbed_official 376:cb4d9db17537 638 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 639 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 640
mbed_official 376:cb4d9db17537 641 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 642 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 643
mbed_official 376:cb4d9db17537 644 /* Disable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 645 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 646
mbed_official 376:cb4d9db17537 647 /* Disable Compare write complete interrupt */
mbed_official 489:119543c9f674 648 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPOK);
mbed_official 376:cb4d9db17537 649
mbed_official 376:cb4d9db17537 650 /* Disable Autoreload match interrupt */
mbed_official 489:119543c9f674 651 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 652
mbed_official 376:cb4d9db17537 653 /* Disable Compare match interrupt */
mbed_official 489:119543c9f674 654 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 655
mbed_official 376:cb4d9db17537 656 /* If external trigger source is used, then disable external trigger interrupt */
mbed_official 376:cb4d9db17537 657 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 658 {
mbed_official 376:cb4d9db17537 659 /* Disable external trigger interrupt */
mbed_official 489:119543c9f674 660 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
mbed_official 376:cb4d9db17537 661 }
mbed_official 376:cb4d9db17537 662
mbed_official 376:cb4d9db17537 663 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 664 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 665
mbed_official 376:cb4d9db17537 666 /* Return function status */
mbed_official 376:cb4d9db17537 667 return HAL_OK;
mbed_official 376:cb4d9db17537 668 }
mbed_official 376:cb4d9db17537 669
mbed_official 376:cb4d9db17537 670 /**
mbed_official 376:cb4d9db17537 671 * @brief Starts the LPTIM in Set once mode.
mbed_official 376:cb4d9db17537 672 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 673 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 674 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 675 * @param Pulse : Specifies the compare value.
mbed_official 376:cb4d9db17537 676 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 677 * @retval HAL status
mbed_official 376:cb4d9db17537 678 */
mbed_official 376:cb4d9db17537 679 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
mbed_official 376:cb4d9db17537 680 {
mbed_official 376:cb4d9db17537 681 /* Check the parameters */
mbed_official 376:cb4d9db17537 682 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 683 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 684 assert_param(IS_LPTIM_PULSE(Pulse));
mbed_official 376:cb4d9db17537 685
mbed_official 376:cb4d9db17537 686 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 687 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 688
mbed_official 376:cb4d9db17537 689 /* Set WAVE bit to enable the set once mode */
mbed_official 376:cb4d9db17537 690 hlptim->Instance->CFGR |= LPTIM_CFGR_WAVE;
mbed_official 376:cb4d9db17537 691
mbed_official 376:cb4d9db17537 692 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 693 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 694
mbed_official 376:cb4d9db17537 695 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 696 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 697
mbed_official 376:cb4d9db17537 698 /* Load the pulse value in the compare register */
mbed_official 376:cb4d9db17537 699 __HAL_LPTIM_COMPARE_SET(hlptim, Pulse);
mbed_official 376:cb4d9db17537 700
mbed_official 376:cb4d9db17537 701 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 702 __HAL_LPTIM_START_SINGLE(hlptim);
mbed_official 376:cb4d9db17537 703
mbed_official 376:cb4d9db17537 704 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 705 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 706
mbed_official 376:cb4d9db17537 707 /* Return function status */
mbed_official 376:cb4d9db17537 708 return HAL_OK;
mbed_official 376:cb4d9db17537 709 }
mbed_official 376:cb4d9db17537 710
mbed_official 376:cb4d9db17537 711 /**
mbed_official 376:cb4d9db17537 712 * @brief Stops the LPTIM Set once mode.
mbed_official 376:cb4d9db17537 713 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 714 * @retval HAL status
mbed_official 376:cb4d9db17537 715 */
mbed_official 376:cb4d9db17537 716 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 717 {
mbed_official 376:cb4d9db17537 718 /* Check the parameters */
mbed_official 376:cb4d9db17537 719 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 720
mbed_official 376:cb4d9db17537 721 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 722 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 723
mbed_official 376:cb4d9db17537 724 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 725 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 726
mbed_official 376:cb4d9db17537 727 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 728 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 729
mbed_official 376:cb4d9db17537 730 /* Return function status */
mbed_official 376:cb4d9db17537 731 return HAL_OK;
mbed_official 376:cb4d9db17537 732 }
mbed_official 376:cb4d9db17537 733
mbed_official 376:cb4d9db17537 734 /**
mbed_official 376:cb4d9db17537 735 * @brief Starts the LPTIM Set once mode in interrupt mode.
mbed_official 376:cb4d9db17537 736 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 737 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 738 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 739 * @param Pulse : Specifies the compare value.
mbed_official 376:cb4d9db17537 740 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 741 * @retval HAL status
mbed_official 376:cb4d9db17537 742 */
mbed_official 376:cb4d9db17537 743 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
mbed_official 376:cb4d9db17537 744 {
mbed_official 376:cb4d9db17537 745 /* Check the parameters */
mbed_official 376:cb4d9db17537 746 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 747 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 748 assert_param(IS_LPTIM_PULSE(Pulse));
mbed_official 376:cb4d9db17537 749
mbed_official 376:cb4d9db17537 750 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 751 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 752
mbed_official 376:cb4d9db17537 753 /* Set WAVE bit to enable the set once mode */
mbed_official 376:cb4d9db17537 754 hlptim->Instance->CFGR |= LPTIM_CFGR_WAVE;
mbed_official 376:cb4d9db17537 755
mbed_official 376:cb4d9db17537 756 /* Enable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 757 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 758
mbed_official 376:cb4d9db17537 759 /* Enable Compare write complete interrupt */
mbed_official 489:119543c9f674 760 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPOK);
mbed_official 376:cb4d9db17537 761
mbed_official 376:cb4d9db17537 762 /* Enable Autoreload match interrupt */
mbed_official 489:119543c9f674 763 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 764
mbed_official 376:cb4d9db17537 765 /* Enable Compare match interrupt */
mbed_official 489:119543c9f674 766 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 767
mbed_official 376:cb4d9db17537 768 /* If external trigger source is used, then enable external trigger interrupt */
mbed_official 376:cb4d9db17537 769 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 770 {
mbed_official 376:cb4d9db17537 771 /* Enable external trigger interrupt */
mbed_official 489:119543c9f674 772 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
mbed_official 376:cb4d9db17537 773 }
mbed_official 376:cb4d9db17537 774
mbed_official 376:cb4d9db17537 775 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 776 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 777
mbed_official 376:cb4d9db17537 778 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 779 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 780
mbed_official 376:cb4d9db17537 781 /* Load the pulse value in the compare register */
mbed_official 376:cb4d9db17537 782 __HAL_LPTIM_COMPARE_SET(hlptim, Pulse);
mbed_official 376:cb4d9db17537 783
mbed_official 376:cb4d9db17537 784 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 785 __HAL_LPTIM_START_SINGLE(hlptim);
mbed_official 376:cb4d9db17537 786
mbed_official 376:cb4d9db17537 787 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 788 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 789
mbed_official 376:cb4d9db17537 790 /* Return function status */
mbed_official 376:cb4d9db17537 791 return HAL_OK;
mbed_official 376:cb4d9db17537 792 }
mbed_official 376:cb4d9db17537 793
mbed_official 376:cb4d9db17537 794 /**
mbed_official 376:cb4d9db17537 795 * @brief Stops the LPTIM Set once mode in interrupt mode.
mbed_official 376:cb4d9db17537 796 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 797 * @retval HAL status
mbed_official 376:cb4d9db17537 798 */
mbed_official 376:cb4d9db17537 799 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 800 {
mbed_official 376:cb4d9db17537 801 /* Check the parameters */
mbed_official 376:cb4d9db17537 802 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 803
mbed_official 376:cb4d9db17537 804 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 805 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 806
mbed_official 376:cb4d9db17537 807 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 808 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 809
mbed_official 376:cb4d9db17537 810 /* Disable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 811 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 812
mbed_official 376:cb4d9db17537 813 /* Disable Compare write complete interrupt */
mbed_official 489:119543c9f674 814 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPOK);
mbed_official 376:cb4d9db17537 815
mbed_official 376:cb4d9db17537 816 /* Disable Autoreload match interrupt */
mbed_official 489:119543c9f674 817 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 818
mbed_official 376:cb4d9db17537 819 /* Disable Compare match interrupt */
mbed_official 489:119543c9f674 820 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 821
mbed_official 376:cb4d9db17537 822 /* If external trigger source is used, then disable external trigger interrupt */
mbed_official 376:cb4d9db17537 823 if ((hlptim->Init.Trigger.Source) != LPTIM_TRIGSOURCE_SOFTWARE)
mbed_official 376:cb4d9db17537 824 {
mbed_official 376:cb4d9db17537 825 /* Disable external trigger interrupt */
mbed_official 489:119543c9f674 826 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
mbed_official 376:cb4d9db17537 827 }
mbed_official 376:cb4d9db17537 828
mbed_official 376:cb4d9db17537 829 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 830 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 831
mbed_official 376:cb4d9db17537 832 /* Return function status */
mbed_official 376:cb4d9db17537 833 return HAL_OK;
mbed_official 376:cb4d9db17537 834 }
mbed_official 376:cb4d9db17537 835
mbed_official 376:cb4d9db17537 836 /**
mbed_official 376:cb4d9db17537 837 * @brief Starts the Encoder interface.
mbed_official 376:cb4d9db17537 838 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 839 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 840 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 841 * @retval HAL status
mbed_official 376:cb4d9db17537 842 */
mbed_official 376:cb4d9db17537 843 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
mbed_official 376:cb4d9db17537 844 {
mbed_official 376:cb4d9db17537 845 uint32_t tmpcfgr = 0;
mbed_official 376:cb4d9db17537 846
mbed_official 376:cb4d9db17537 847 /* Check the parameters */
mbed_official 376:cb4d9db17537 848 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 849 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 850 assert_param(hlptim->Init.Clock.Source == LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC);
mbed_official 376:cb4d9db17537 851 assert_param(hlptim->Init.Clock.Prescaler == LPTIM_PRESCALER_DIV1);
mbed_official 376:cb4d9db17537 852 assert_param(IS_LPTIM_CLOCK_POLARITY(hlptim->Init.UltraLowPowerClock.Polarity));
mbed_official 376:cb4d9db17537 853
mbed_official 376:cb4d9db17537 854 /* Configure edge sensitivity for encoder mode */
mbed_official 376:cb4d9db17537 855 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 856 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 857
mbed_official 376:cb4d9db17537 858 /* Get the LPTIMx CFGR value */
mbed_official 376:cb4d9db17537 859 tmpcfgr = hlptim->Instance->CFGR;
mbed_official 376:cb4d9db17537 860
mbed_official 376:cb4d9db17537 861 /* Clear CKPOL bits */
mbed_official 376:cb4d9db17537 862 tmpcfgr &= (uint32_t)(~LPTIM_CFGR_CKPOL);
mbed_official 376:cb4d9db17537 863
mbed_official 376:cb4d9db17537 864 /* Set Input polarity */
mbed_official 376:cb4d9db17537 865 tmpcfgr |= hlptim->Init.UltraLowPowerClock.Polarity;
mbed_official 376:cb4d9db17537 866
mbed_official 376:cb4d9db17537 867 /* Write to LPTIMx CFGR */
mbed_official 376:cb4d9db17537 868 hlptim->Instance->CFGR = tmpcfgr;
mbed_official 376:cb4d9db17537 869
mbed_official 376:cb4d9db17537 870 /* Set ENC bit to enable the encoder interface */
mbed_official 376:cb4d9db17537 871 hlptim->Instance->CFGR |= LPTIM_CFGR_ENC;
mbed_official 376:cb4d9db17537 872
mbed_official 376:cb4d9db17537 873 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 874 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 875
mbed_official 376:cb4d9db17537 876 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 877 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 878
mbed_official 376:cb4d9db17537 879 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 880 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 881
mbed_official 376:cb4d9db17537 882 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 883 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 884
mbed_official 376:cb4d9db17537 885 /* Return function status */
mbed_official 376:cb4d9db17537 886 return HAL_OK;
mbed_official 376:cb4d9db17537 887 }
mbed_official 376:cb4d9db17537 888
mbed_official 376:cb4d9db17537 889 /**
mbed_official 376:cb4d9db17537 890 * @brief Stops the Encoder interface.
mbed_official 376:cb4d9db17537 891 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 892 * @retval HAL status
mbed_official 376:cb4d9db17537 893 */
mbed_official 376:cb4d9db17537 894 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 895 {
mbed_official 376:cb4d9db17537 896 /* Check the parameters */
mbed_official 376:cb4d9db17537 897 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 898
mbed_official 376:cb4d9db17537 899 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 900 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 901
mbed_official 376:cb4d9db17537 902 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 903 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 904
mbed_official 376:cb4d9db17537 905 /* Reset ENC bit to disable the encoder interface */
mbed_official 376:cb4d9db17537 906 hlptim->Instance->CFGR &= ~LPTIM_CFGR_ENC;
mbed_official 376:cb4d9db17537 907
mbed_official 376:cb4d9db17537 908 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 909 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 910
mbed_official 376:cb4d9db17537 911 /* Return function status */
mbed_official 376:cb4d9db17537 912 return HAL_OK;
mbed_official 376:cb4d9db17537 913 }
mbed_official 376:cb4d9db17537 914
mbed_official 376:cb4d9db17537 915 /**
mbed_official 376:cb4d9db17537 916 * @brief Starts the Encoder interface in interrupt mode.
mbed_official 376:cb4d9db17537 917 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 918 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 919 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 920 * @retval HAL status
mbed_official 376:cb4d9db17537 921 */
mbed_official 376:cb4d9db17537 922 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
mbed_official 376:cb4d9db17537 923 {
mbed_official 376:cb4d9db17537 924 uint32_t tmpcfgr = 0;
mbed_official 376:cb4d9db17537 925
mbed_official 376:cb4d9db17537 926 /* Check the parameters */
mbed_official 376:cb4d9db17537 927 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 928 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 929 assert_param(hlptim->Init.Clock.Source == LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC);
mbed_official 376:cb4d9db17537 930 assert_param(hlptim->Init.Clock.Prescaler == LPTIM_PRESCALER_DIV1);
mbed_official 376:cb4d9db17537 931 assert_param(IS_LPTIM_CLOCK_POLARITY(hlptim->Init.UltraLowPowerClock.Polarity));
mbed_official 376:cb4d9db17537 932
mbed_official 376:cb4d9db17537 933 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 934 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 935
mbed_official 376:cb4d9db17537 936 /* Configure edge sensitivity for encoder mode */
mbed_official 376:cb4d9db17537 937 /* Get the LPTIMx CFGR value */
mbed_official 376:cb4d9db17537 938 tmpcfgr = hlptim->Instance->CFGR;
mbed_official 376:cb4d9db17537 939
mbed_official 376:cb4d9db17537 940 /* Clear CKPOL bits */
mbed_official 376:cb4d9db17537 941 tmpcfgr &= (uint32_t)(~LPTIM_CFGR_CKPOL);
mbed_official 376:cb4d9db17537 942
mbed_official 376:cb4d9db17537 943 /* Set Input polarity */
mbed_official 376:cb4d9db17537 944 tmpcfgr |= hlptim->Init.UltraLowPowerClock.Polarity;
mbed_official 376:cb4d9db17537 945
mbed_official 376:cb4d9db17537 946 /* Write to LPTIMx CFGR */
mbed_official 376:cb4d9db17537 947 hlptim->Instance->CFGR = tmpcfgr;
mbed_official 376:cb4d9db17537 948
mbed_official 376:cb4d9db17537 949 /* Set ENC bit to enable the encoder interface */
mbed_official 376:cb4d9db17537 950 hlptim->Instance->CFGR |= LPTIM_CFGR_ENC;
mbed_official 376:cb4d9db17537 951
mbed_official 376:cb4d9db17537 952 /* Enable "switch to down direction" interrupt */
mbed_official 489:119543c9f674 953 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_DOWN);
mbed_official 376:cb4d9db17537 954
mbed_official 376:cb4d9db17537 955 /* Enable "switch to up direction" interrupt */
mbed_official 489:119543c9f674 956 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_UP);
mbed_official 376:cb4d9db17537 957
mbed_official 376:cb4d9db17537 958 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 959 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 960
mbed_official 376:cb4d9db17537 961 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 962 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 963
mbed_official 376:cb4d9db17537 964 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 965 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 966
mbed_official 376:cb4d9db17537 967 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 968 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 969
mbed_official 376:cb4d9db17537 970 /* Return function status */
mbed_official 376:cb4d9db17537 971 return HAL_OK;
mbed_official 376:cb4d9db17537 972 }
mbed_official 376:cb4d9db17537 973
mbed_official 376:cb4d9db17537 974 /**
mbed_official 376:cb4d9db17537 975 * @brief Stops the Encoder interface in nterrupt mode.
mbed_official 376:cb4d9db17537 976 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 977 * @retval HAL status
mbed_official 376:cb4d9db17537 978 */
mbed_official 376:cb4d9db17537 979 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 980 {
mbed_official 376:cb4d9db17537 981 /* Check the parameters */
mbed_official 376:cb4d9db17537 982 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 983
mbed_official 376:cb4d9db17537 984 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 985 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 986
mbed_official 376:cb4d9db17537 987 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 988 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 989
mbed_official 376:cb4d9db17537 990 /* Reset ENC bit to disable the encoder interface */
mbed_official 376:cb4d9db17537 991 hlptim->Instance->CFGR &= ~LPTIM_CFGR_ENC;
mbed_official 376:cb4d9db17537 992
mbed_official 376:cb4d9db17537 993 /* Disable "switch to down direction" interrupt */
mbed_official 489:119543c9f674 994 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_DOWN);
mbed_official 376:cb4d9db17537 995
mbed_official 376:cb4d9db17537 996 /* Disable "switch to up direction" interrupt */
mbed_official 489:119543c9f674 997 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_UP);
mbed_official 376:cb4d9db17537 998
mbed_official 376:cb4d9db17537 999 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1000 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1001
mbed_official 376:cb4d9db17537 1002 /* Return function status */
mbed_official 376:cb4d9db17537 1003 return HAL_OK;
mbed_official 376:cb4d9db17537 1004 }
mbed_official 376:cb4d9db17537 1005
mbed_official 376:cb4d9db17537 1006 /**
mbed_official 376:cb4d9db17537 1007 * @brief Starts the Timeout function. The first trigger event will start the
mbed_official 376:cb4d9db17537 1008 * timer, any successive trigger event will reset the counter and
mbed_official 376:cb4d9db17537 1009 * the timer restarts.
mbed_official 376:cb4d9db17537 1010 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1011 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 1012 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 1013 * @param Timeout : Specifies the TimeOut value to rest the counter.
mbed_official 376:cb4d9db17537 1014 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 1015 * @retval HAL status
mbed_official 376:cb4d9db17537 1016 */
mbed_official 376:cb4d9db17537 1017 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout)
mbed_official 376:cb4d9db17537 1018 {
mbed_official 376:cb4d9db17537 1019 /* Check the parameters */
mbed_official 376:cb4d9db17537 1020 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1021 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 1022 assert_param(IS_LPTIM_PULSE(Timeout));
mbed_official 376:cb4d9db17537 1023
mbed_official 376:cb4d9db17537 1024 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1025 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1026
mbed_official 376:cb4d9db17537 1027 /* Set TIMOUT bit to enable the timeout function */
mbed_official 376:cb4d9db17537 1028 hlptim->Instance->CFGR |= LPTIM_CFGR_TIMOUT;
mbed_official 376:cb4d9db17537 1029
mbed_official 376:cb4d9db17537 1030 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 1031 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 1032
mbed_official 376:cb4d9db17537 1033 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 1034 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 1035
mbed_official 376:cb4d9db17537 1036 /* Load the Timeout value in the compare register */
mbed_official 376:cb4d9db17537 1037 __HAL_LPTIM_COMPARE_SET(hlptim, Timeout);
mbed_official 376:cb4d9db17537 1038
mbed_official 376:cb4d9db17537 1039 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 1040 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 1041
mbed_official 376:cb4d9db17537 1042 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1043 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1044
mbed_official 376:cb4d9db17537 1045 /* Return function status */
mbed_official 376:cb4d9db17537 1046 return HAL_OK;
mbed_official 376:cb4d9db17537 1047 }
mbed_official 376:cb4d9db17537 1048
mbed_official 376:cb4d9db17537 1049 /**
mbed_official 376:cb4d9db17537 1050 * @brief Stops the Timeout function.
mbed_official 376:cb4d9db17537 1051 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1052 * @retval HAL status
mbed_official 376:cb4d9db17537 1053 */
mbed_official 376:cb4d9db17537 1054 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1055 {
mbed_official 376:cb4d9db17537 1056 /* Check the parameters */
mbed_official 376:cb4d9db17537 1057 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1058
mbed_official 376:cb4d9db17537 1059 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1060 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1061
mbed_official 376:cb4d9db17537 1062 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 1063 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 1064
mbed_official 376:cb4d9db17537 1065 /* Reset TIMOUT bit to enable the timeout function */
mbed_official 376:cb4d9db17537 1066 hlptim->Instance->CFGR &= ~LPTIM_CFGR_TIMOUT;
mbed_official 376:cb4d9db17537 1067
mbed_official 376:cb4d9db17537 1068 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1069 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1070
mbed_official 376:cb4d9db17537 1071 /* Return function status */
mbed_official 376:cb4d9db17537 1072 return HAL_OK;
mbed_official 376:cb4d9db17537 1073 }
mbed_official 376:cb4d9db17537 1074
mbed_official 376:cb4d9db17537 1075 /**
mbed_official 376:cb4d9db17537 1076 * @brief Starts the Timeout function in interrupt mode. The first trigger
mbed_official 376:cb4d9db17537 1077 * event will start the timer, any successive trigger event will reset
mbed_official 376:cb4d9db17537 1078 * the counter and the timer restarts.
mbed_official 376:cb4d9db17537 1079 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1080 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 1081 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 1082 * @param Timeout : Specifies the TimeOut value to rest the counter.
mbed_official 376:cb4d9db17537 1083 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 1084 * @retval HAL status
mbed_official 376:cb4d9db17537 1085 */
mbed_official 376:cb4d9db17537 1086 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout)
mbed_official 376:cb4d9db17537 1087 {
mbed_official 376:cb4d9db17537 1088 /* Check the parameters */
mbed_official 376:cb4d9db17537 1089 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1090 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 1091 assert_param(IS_LPTIM_PULSE(Timeout));
mbed_official 376:cb4d9db17537 1092
mbed_official 376:cb4d9db17537 1093 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1094 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1095
mbed_official 376:cb4d9db17537 1096 /* Set TIMOUT bit to enable the timeout function */
mbed_official 376:cb4d9db17537 1097 hlptim->Instance->CFGR |= LPTIM_CFGR_TIMOUT;
mbed_official 376:cb4d9db17537 1098
mbed_official 376:cb4d9db17537 1099 /* Enable Compare match interrupt */
mbed_official 489:119543c9f674 1100 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 1101
mbed_official 376:cb4d9db17537 1102 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 1103 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 1104
mbed_official 376:cb4d9db17537 1105 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 1106 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 1107
mbed_official 376:cb4d9db17537 1108 /* Load the Timeout value in the compare register */
mbed_official 376:cb4d9db17537 1109 __HAL_LPTIM_COMPARE_SET(hlptim, Timeout);
mbed_official 376:cb4d9db17537 1110
mbed_official 376:cb4d9db17537 1111 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 1112 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 1113
mbed_official 376:cb4d9db17537 1114 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1115 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1116
mbed_official 376:cb4d9db17537 1117 /* Return function status */
mbed_official 376:cb4d9db17537 1118 return HAL_OK;
mbed_official 376:cb4d9db17537 1119 }
mbed_official 376:cb4d9db17537 1120
mbed_official 376:cb4d9db17537 1121 /**
mbed_official 376:cb4d9db17537 1122 * @brief Stops the Timeout function in interrupt mode.
mbed_official 376:cb4d9db17537 1123 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1124 * @retval HAL status
mbed_official 376:cb4d9db17537 1125 */
mbed_official 376:cb4d9db17537 1126 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1127 {
mbed_official 376:cb4d9db17537 1128 /* Check the parameters */
mbed_official 376:cb4d9db17537 1129 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1130
mbed_official 376:cb4d9db17537 1131 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1132 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1133
mbed_official 376:cb4d9db17537 1134 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 1135 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 1136
mbed_official 376:cb4d9db17537 1137 /* Reset TIMOUT bit to enable the timeout function */
mbed_official 376:cb4d9db17537 1138 hlptim->Instance->CFGR &= ~LPTIM_CFGR_TIMOUT;
mbed_official 376:cb4d9db17537 1139
mbed_official 376:cb4d9db17537 1140 /* Disable Compare match interrupt */
mbed_official 489:119543c9f674 1141 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPM);
mbed_official 376:cb4d9db17537 1142
mbed_official 376:cb4d9db17537 1143 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1144 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1145
mbed_official 376:cb4d9db17537 1146 /* Return function status */
mbed_official 376:cb4d9db17537 1147 return HAL_OK;
mbed_official 376:cb4d9db17537 1148 }
mbed_official 376:cb4d9db17537 1149
mbed_official 376:cb4d9db17537 1150 /**
mbed_official 376:cb4d9db17537 1151 * @brief Starts the Counter mode.
mbed_official 376:cb4d9db17537 1152 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1153 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 1154 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 1155 * @retval HAL status
mbed_official 376:cb4d9db17537 1156 */
mbed_official 376:cb4d9db17537 1157 HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
mbed_official 376:cb4d9db17537 1158 {
mbed_official 376:cb4d9db17537 1159 /* Check the parameters */
mbed_official 376:cb4d9db17537 1160 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1161 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 1162
mbed_official 376:cb4d9db17537 1163 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1164 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1165
mbed_official 376:cb4d9db17537 1166 /* If clock source is not ULPTIM clock and counter source is external, then it must not be prescaled */
mbed_official 376:cb4d9db17537 1167 if((hlptim->Init.Clock.Source != LPTIM_CLOCKSOURCE_ULPTIM) && (hlptim->Init.CounterSource == LPTIM_COUNTERSOURCE_EXTERNAL))
mbed_official 376:cb4d9db17537 1168 {
mbed_official 376:cb4d9db17537 1169 /* Check if clock is prescaled */
mbed_official 376:cb4d9db17537 1170 assert_param(IS_LPTIM_CLOCK_PRESCALERDIV1(hlptim->Init.Clock.Prescaler));
mbed_official 376:cb4d9db17537 1171 /* Set clock prescaler to 0 */
mbed_official 376:cb4d9db17537 1172 hlptim->Instance->CFGR &= ~LPTIM_CFGR_PRESC;
mbed_official 376:cb4d9db17537 1173 }
mbed_official 376:cb4d9db17537 1174
mbed_official 376:cb4d9db17537 1175 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 1176 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 1177
mbed_official 376:cb4d9db17537 1178 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 1179 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 1180
mbed_official 376:cb4d9db17537 1181 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 1182 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 1183
mbed_official 376:cb4d9db17537 1184 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1185 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1186
mbed_official 376:cb4d9db17537 1187 /* Return function status */
mbed_official 376:cb4d9db17537 1188 return HAL_OK;
mbed_official 376:cb4d9db17537 1189 }
mbed_official 376:cb4d9db17537 1190
mbed_official 376:cb4d9db17537 1191 /**
mbed_official 376:cb4d9db17537 1192 * @brief Stops the Counter mode.
mbed_official 376:cb4d9db17537 1193 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1194 * @retval HAL status
mbed_official 376:cb4d9db17537 1195 */
mbed_official 376:cb4d9db17537 1196 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1197 {
mbed_official 376:cb4d9db17537 1198 /* Check the parameters */
mbed_official 376:cb4d9db17537 1199 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1200
mbed_official 376:cb4d9db17537 1201 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1202 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1203
mbed_official 376:cb4d9db17537 1204 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 1205 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 1206
mbed_official 376:cb4d9db17537 1207 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1208 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1209
mbed_official 376:cb4d9db17537 1210 /* Return function status */
mbed_official 376:cb4d9db17537 1211 return HAL_OK;
mbed_official 376:cb4d9db17537 1212 }
mbed_official 376:cb4d9db17537 1213
mbed_official 376:cb4d9db17537 1214 /**
mbed_official 376:cb4d9db17537 1215 * @brief Starts the Counter mode in interrupt mode.
mbed_official 376:cb4d9db17537 1216 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1217 * @param Period : Specifies the Autoreload value.
mbed_official 376:cb4d9db17537 1218 * This parameter must be a value between 0x0000 and 0xFFFF.
mbed_official 376:cb4d9db17537 1219 * @retval HAL status
mbed_official 376:cb4d9db17537 1220 */
mbed_official 376:cb4d9db17537 1221 HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
mbed_official 376:cb4d9db17537 1222 {
mbed_official 376:cb4d9db17537 1223 /* Check the parameters */
mbed_official 376:cb4d9db17537 1224 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1225 assert_param(IS_LPTIM_PERIOD(Period));
mbed_official 376:cb4d9db17537 1226
mbed_official 376:cb4d9db17537 1227 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1228 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1229
mbed_official 376:cb4d9db17537 1230 /* If clock source is not ULPTIM clock and counter source is external, then it must not be prescaled */
mbed_official 376:cb4d9db17537 1231 if((hlptim->Init.Clock.Source != LPTIM_CLOCKSOURCE_ULPTIM) && (hlptim->Init.CounterSource == LPTIM_COUNTERSOURCE_EXTERNAL))
mbed_official 376:cb4d9db17537 1232 {
mbed_official 376:cb4d9db17537 1233 /* Check if clock is prescaled */
mbed_official 376:cb4d9db17537 1234 assert_param(IS_LPTIM_CLOCK_PRESCALERDIV1(hlptim->Init.Clock.Prescaler));
mbed_official 376:cb4d9db17537 1235 /* Set clock prescaler to 0 */
mbed_official 376:cb4d9db17537 1236 hlptim->Instance->CFGR &= ~LPTIM_CFGR_PRESC;
mbed_official 376:cb4d9db17537 1237 }
mbed_official 376:cb4d9db17537 1238
mbed_official 376:cb4d9db17537 1239 /* Enable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 1240 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 1241
mbed_official 376:cb4d9db17537 1242 /* Enable Autoreload match interrupt */
mbed_official 489:119543c9f674 1243 __HAL_LPTIM_ENABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 1244
mbed_official 376:cb4d9db17537 1245 /* Enable the Peripheral */
mbed_official 376:cb4d9db17537 1246 __HAL_LPTIM_ENABLE(hlptim);
mbed_official 376:cb4d9db17537 1247
mbed_official 376:cb4d9db17537 1248 /* Load the period value in the autoreload register */
mbed_official 376:cb4d9db17537 1249 __HAL_LPTIM_AUTORELOAD_SET(hlptim, Period);
mbed_official 376:cb4d9db17537 1250
mbed_official 376:cb4d9db17537 1251 /* Start timer in continuous mode */
mbed_official 376:cb4d9db17537 1252 __HAL_LPTIM_START_CONTINUOUS(hlptim);
mbed_official 376:cb4d9db17537 1253
mbed_official 376:cb4d9db17537 1254 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1255 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1256
mbed_official 376:cb4d9db17537 1257 /* Return function status */
mbed_official 376:cb4d9db17537 1258 return HAL_OK;
mbed_official 376:cb4d9db17537 1259 }
mbed_official 376:cb4d9db17537 1260
mbed_official 376:cb4d9db17537 1261 /**
mbed_official 376:cb4d9db17537 1262 * @brief Stops the Counter mode in interrupt mode.
mbed_official 376:cb4d9db17537 1263 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1264 * @retval HAL status
mbed_official 376:cb4d9db17537 1265 */
mbed_official 376:cb4d9db17537 1266 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1267 {
mbed_official 376:cb4d9db17537 1268 /* Check the parameters */
mbed_official 376:cb4d9db17537 1269 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1270
mbed_official 376:cb4d9db17537 1271 /* Set the LPTIM state */
mbed_official 376:cb4d9db17537 1272 hlptim->State= HAL_LPTIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 1273
mbed_official 376:cb4d9db17537 1274 /* Disable the Peripheral */
mbed_official 376:cb4d9db17537 1275 __HAL_LPTIM_DISABLE(hlptim);
mbed_official 376:cb4d9db17537 1276
mbed_official 376:cb4d9db17537 1277 /* Disable Autoreload write complete interrupt */
mbed_official 489:119543c9f674 1278 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARROK);
mbed_official 376:cb4d9db17537 1279
mbed_official 376:cb4d9db17537 1280 /* Disable Autoreload match interrupt */
mbed_official 489:119543c9f674 1281 __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARRM);
mbed_official 376:cb4d9db17537 1282
mbed_official 376:cb4d9db17537 1283 /* Change the TIM state*/
mbed_official 376:cb4d9db17537 1284 hlptim->State= HAL_LPTIM_STATE_READY;
mbed_official 376:cb4d9db17537 1285
mbed_official 376:cb4d9db17537 1286 /* Return function status */
mbed_official 376:cb4d9db17537 1287 return HAL_OK;
mbed_official 376:cb4d9db17537 1288 }
mbed_official 376:cb4d9db17537 1289
mbed_official 376:cb4d9db17537 1290 /**
mbed_official 376:cb4d9db17537 1291 * @}
mbed_official 376:cb4d9db17537 1292 */
mbed_official 376:cb4d9db17537 1293
mbed_official 489:119543c9f674 1294 /** @addtogroup LPTIM_Exported_Functions_Group3
mbed_official 376:cb4d9db17537 1295 * @brief Read operation functions.
mbed_official 376:cb4d9db17537 1296 *
mbed_official 376:cb4d9db17537 1297 @verbatim
mbed_official 376:cb4d9db17537 1298 ==============================================================================
mbed_official 376:cb4d9db17537 1299 ##### LPTIM Read operation functions #####
mbed_official 376:cb4d9db17537 1300 ==============================================================================
mbed_official 376:cb4d9db17537 1301 [..] This section provides LPTIM Reading functions.
mbed_official 376:cb4d9db17537 1302 (+) Read the counter value.
mbed_official 376:cb4d9db17537 1303 (+) Read the period (Auto-reload) value.
mbed_official 376:cb4d9db17537 1304 (+) Read the pulse (Compare)value.
mbed_official 376:cb4d9db17537 1305 @endverbatim
mbed_official 376:cb4d9db17537 1306 * @{
mbed_official 376:cb4d9db17537 1307 */
mbed_official 376:cb4d9db17537 1308
mbed_official 376:cb4d9db17537 1309 /**
mbed_official 376:cb4d9db17537 1310 * @brief This function returns the current counter value.
mbed_official 376:cb4d9db17537 1311 * @param hlptim: LPTIM handle
mbed_official 376:cb4d9db17537 1312 * @retval Counter value.
mbed_official 376:cb4d9db17537 1313 */
mbed_official 376:cb4d9db17537 1314 uint32_t HAL_LPTIM_ReadCounter(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1315 {
mbed_official 376:cb4d9db17537 1316 /* Check the parameters */
mbed_official 376:cb4d9db17537 1317 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1318
mbed_official 376:cb4d9db17537 1319 return (hlptim->Instance->CNT);
mbed_official 376:cb4d9db17537 1320 }
mbed_official 376:cb4d9db17537 1321
mbed_official 376:cb4d9db17537 1322 /**
mbed_official 376:cb4d9db17537 1323 * @brief This function return the current Autoreload (Period) value.
mbed_official 376:cb4d9db17537 1324 * @param hlptim: LPTIM handle
mbed_official 376:cb4d9db17537 1325 * @retval Autoreload value.
mbed_official 376:cb4d9db17537 1326 */
mbed_official 376:cb4d9db17537 1327 uint32_t HAL_LPTIM_ReadAutoReload(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1328 {
mbed_official 376:cb4d9db17537 1329 /* Check the parameters */
mbed_official 376:cb4d9db17537 1330 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1331
mbed_official 376:cb4d9db17537 1332 return (hlptim->Instance->ARR);
mbed_official 376:cb4d9db17537 1333 }
mbed_official 376:cb4d9db17537 1334
mbed_official 376:cb4d9db17537 1335 /**
mbed_official 376:cb4d9db17537 1336 * @brief This function return the current Compare (Pulse) value.
mbed_official 376:cb4d9db17537 1337 * @param hlptim: LPTIM handle
mbed_official 376:cb4d9db17537 1338 * @retval Compare value.
mbed_official 376:cb4d9db17537 1339 */
mbed_official 376:cb4d9db17537 1340 uint32_t HAL_LPTIM_ReadCompare(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1341 {
mbed_official 376:cb4d9db17537 1342 /* Check the parameters */
mbed_official 376:cb4d9db17537 1343 assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
mbed_official 376:cb4d9db17537 1344
mbed_official 376:cb4d9db17537 1345 return (hlptim->Instance->CMP);
mbed_official 376:cb4d9db17537 1346 }
mbed_official 376:cb4d9db17537 1347
mbed_official 376:cb4d9db17537 1348 /**
mbed_official 376:cb4d9db17537 1349 * @}
mbed_official 376:cb4d9db17537 1350 */
mbed_official 376:cb4d9db17537 1351
mbed_official 376:cb4d9db17537 1352
mbed_official 376:cb4d9db17537 1353
mbed_official 489:119543c9f674 1354 /** @addtogroup LPTIM_Exported_Functions_Group4
mbed_official 376:cb4d9db17537 1355 * @brief LPTIM IRQ handler.
mbed_official 376:cb4d9db17537 1356 *
mbed_official 376:cb4d9db17537 1357 @verbatim
mbed_official 376:cb4d9db17537 1358 ==============================================================================
mbed_official 376:cb4d9db17537 1359 ##### LPTIM IRQ handler #####
mbed_official 376:cb4d9db17537 1360 ==============================================================================
mbed_official 376:cb4d9db17537 1361 [..] This section provides LPTIM IRQ handler function.
mbed_official 376:cb4d9db17537 1362
mbed_official 376:cb4d9db17537 1363 @endverbatim
mbed_official 376:cb4d9db17537 1364 * @{
mbed_official 376:cb4d9db17537 1365 */
mbed_official 376:cb4d9db17537 1366
mbed_official 376:cb4d9db17537 1367 /**
mbed_official 376:cb4d9db17537 1368 * @brief This function handles LPTIM interrupt request.
mbed_official 376:cb4d9db17537 1369 * @param hlptim: LPTIM handle
mbed_official 376:cb4d9db17537 1370 * @retval None
mbed_official 376:cb4d9db17537 1371 */
mbed_official 376:cb4d9db17537 1372 void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1373 {
mbed_official 376:cb4d9db17537 1374 /* Compare match interrupt */
mbed_official 376:cb4d9db17537 1375 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_CMPM) != RESET)
mbed_official 376:cb4d9db17537 1376 {
mbed_official 489:119543c9f674 1377 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_CMPM) !=RESET)
mbed_official 376:cb4d9db17537 1378 {
mbed_official 376:cb4d9db17537 1379 /* Clear Compare match flag */
mbed_official 376:cb4d9db17537 1380 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_CMPM);
mbed_official 376:cb4d9db17537 1381
mbed_official 376:cb4d9db17537 1382 /* Compare match Callback */
mbed_official 376:cb4d9db17537 1383 HAL_LPTIM_CompareMatchCallback(hlptim);
mbed_official 376:cb4d9db17537 1384 }
mbed_official 376:cb4d9db17537 1385 }
mbed_official 376:cb4d9db17537 1386
mbed_official 376:cb4d9db17537 1387 /* Autoreload match interrupt */
mbed_official 376:cb4d9db17537 1388 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_ARRM) != RESET)
mbed_official 376:cb4d9db17537 1389 {
mbed_official 489:119543c9f674 1390 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_ARRM) !=RESET)
mbed_official 376:cb4d9db17537 1391 {
mbed_official 376:cb4d9db17537 1392 /* Clear Autoreload match flag */
mbed_official 376:cb4d9db17537 1393 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_ARRM);
mbed_official 376:cb4d9db17537 1394
mbed_official 376:cb4d9db17537 1395 /* Autoreload match Callback */
mbed_official 376:cb4d9db17537 1396 HAL_LPTIM_AutoReloadMatchCallback(hlptim);
mbed_official 376:cb4d9db17537 1397 }
mbed_official 376:cb4d9db17537 1398 }
mbed_official 376:cb4d9db17537 1399
mbed_official 376:cb4d9db17537 1400 /* Trigger detected interrupt */
mbed_official 376:cb4d9db17537 1401 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_EXTTRIG) != RESET)
mbed_official 376:cb4d9db17537 1402 {
mbed_official 489:119543c9f674 1403 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_EXTTRIG) !=RESET)
mbed_official 376:cb4d9db17537 1404 {
mbed_official 376:cb4d9db17537 1405 /* Clear Trigger detected flag */
mbed_official 376:cb4d9db17537 1406 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_EXTTRIG);
mbed_official 376:cb4d9db17537 1407
mbed_official 376:cb4d9db17537 1408 /* Trigger detected callback */
mbed_official 376:cb4d9db17537 1409 HAL_LPTIM_TriggerCallback(hlptim);
mbed_official 376:cb4d9db17537 1410 }
mbed_official 376:cb4d9db17537 1411 }
mbed_official 376:cb4d9db17537 1412
mbed_official 376:cb4d9db17537 1413 /* Compare write interrupt */
mbed_official 376:cb4d9db17537 1414 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_CMPOK) != RESET)
mbed_official 376:cb4d9db17537 1415 {
mbed_official 489:119543c9f674 1416 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_CMPOK) !=RESET)
mbed_official 376:cb4d9db17537 1417 {
mbed_official 376:cb4d9db17537 1418 /* Clear Compare write flag */
mbed_official 376:cb4d9db17537 1419 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_CMPOK);
mbed_official 376:cb4d9db17537 1420
mbed_official 376:cb4d9db17537 1421 /* Compare write Callback */
mbed_official 376:cb4d9db17537 1422 HAL_LPTIM_CompareWriteCallback(hlptim);
mbed_official 376:cb4d9db17537 1423 }
mbed_official 376:cb4d9db17537 1424 }
mbed_official 376:cb4d9db17537 1425
mbed_official 376:cb4d9db17537 1426 /* Autoreload write interrupt */
mbed_official 376:cb4d9db17537 1427 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_ARROK) != RESET)
mbed_official 376:cb4d9db17537 1428 {
mbed_official 489:119543c9f674 1429 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_ARROK) !=RESET)
mbed_official 376:cb4d9db17537 1430 {
mbed_official 376:cb4d9db17537 1431 /* Clear Autoreload write flag */
mbed_official 376:cb4d9db17537 1432 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_ARROK);
mbed_official 376:cb4d9db17537 1433
mbed_official 376:cb4d9db17537 1434 /* Autoreload write Callback */
mbed_official 376:cb4d9db17537 1435 HAL_LPTIM_AutoReloadWriteCallback(hlptim);
mbed_official 376:cb4d9db17537 1436 }
mbed_official 376:cb4d9db17537 1437 }
mbed_official 376:cb4d9db17537 1438
mbed_official 376:cb4d9db17537 1439 /* Direction counter changed from Down to Up interrupt */
mbed_official 376:cb4d9db17537 1440 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_UP) != RESET)
mbed_official 376:cb4d9db17537 1441 {
mbed_official 489:119543c9f674 1442 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_UP) !=RESET)
mbed_official 376:cb4d9db17537 1443 {
mbed_official 376:cb4d9db17537 1444 /* Clear Direction counter changed from Down to Up flag */
mbed_official 376:cb4d9db17537 1445 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_UP);
mbed_official 376:cb4d9db17537 1446
mbed_official 376:cb4d9db17537 1447 /* Direction counter changed from Down to Up Callback */
mbed_official 376:cb4d9db17537 1448 HAL_LPTIM_DirectionUpCallback(hlptim);
mbed_official 376:cb4d9db17537 1449 }
mbed_official 376:cb4d9db17537 1450 }
mbed_official 376:cb4d9db17537 1451
mbed_official 376:cb4d9db17537 1452 /* Direction counter changed from Up to Down interrupt */
mbed_official 376:cb4d9db17537 1453 if(__HAL_LPTIM_GET_FLAG(hlptim, LPTIM_FLAG_DOWN) != RESET)
mbed_official 376:cb4d9db17537 1454 {
mbed_official 489:119543c9f674 1455 if(__HAL_LPTIM_GET_IT_SOURCE(hlptim, LPTIM_IT_DOWN) !=RESET)
mbed_official 376:cb4d9db17537 1456 {
mbed_official 376:cb4d9db17537 1457 /* Clear Direction counter changed from Up to Down flag */
mbed_official 376:cb4d9db17537 1458 __HAL_LPTIM_CLEAR_FLAG(hlptim, LPTIM_FLAG_DOWN);
mbed_official 376:cb4d9db17537 1459
mbed_official 376:cb4d9db17537 1460 /* Direction counter changed from Up to Down Callback */
mbed_official 376:cb4d9db17537 1461 HAL_LPTIM_DirectionDownCallback(hlptim);
mbed_official 376:cb4d9db17537 1462 }
mbed_official 376:cb4d9db17537 1463 }
mbed_official 376:cb4d9db17537 1464 }
mbed_official 376:cb4d9db17537 1465
mbed_official 376:cb4d9db17537 1466 /**
mbed_official 376:cb4d9db17537 1467 * @brief Compare match callback in non blocking mode
mbed_official 376:cb4d9db17537 1468 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1469 * @retval None
mbed_official 376:cb4d9db17537 1470 */
mbed_official 376:cb4d9db17537 1471 __weak void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1472 {
mbed_official 376:cb4d9db17537 1473 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1474 the HAL_LPTIM_CompareMatchCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1475 */
mbed_official 376:cb4d9db17537 1476 }
mbed_official 376:cb4d9db17537 1477
mbed_official 376:cb4d9db17537 1478 /**
mbed_official 376:cb4d9db17537 1479 * @brief Autoreload match callback in non blocking mode
mbed_official 376:cb4d9db17537 1480 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1481 * @retval None
mbed_official 376:cb4d9db17537 1482 */
mbed_official 376:cb4d9db17537 1483 __weak void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1484 {
mbed_official 376:cb4d9db17537 1485 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1486 the HAL_LPTIM_AutoReloadMatchCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1487 */
mbed_official 376:cb4d9db17537 1488 }
mbed_official 376:cb4d9db17537 1489
mbed_official 376:cb4d9db17537 1490 /**
mbed_official 376:cb4d9db17537 1491 * @brief Trigger detected callback in non blocking mode
mbed_official 376:cb4d9db17537 1492 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1493 * @retval None
mbed_official 376:cb4d9db17537 1494 */
mbed_official 376:cb4d9db17537 1495 __weak void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1496 {
mbed_official 376:cb4d9db17537 1497 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1498 the HAL_LPTIM_TriggerCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1499 */
mbed_official 376:cb4d9db17537 1500 }
mbed_official 376:cb4d9db17537 1501
mbed_official 376:cb4d9db17537 1502 /**
mbed_official 376:cb4d9db17537 1503 * @brief Compare write callback in non blocking mode
mbed_official 376:cb4d9db17537 1504 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1505 * @retval None
mbed_official 376:cb4d9db17537 1506 */
mbed_official 376:cb4d9db17537 1507 __weak void HAL_LPTIM_CompareWriteCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1508 {
mbed_official 376:cb4d9db17537 1509 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1510 the HAL_LPTIM_CompareWriteCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1511 */
mbed_official 376:cb4d9db17537 1512 }
mbed_official 376:cb4d9db17537 1513
mbed_official 376:cb4d9db17537 1514 /**
mbed_official 376:cb4d9db17537 1515 * @brief Autoreload write callback in non blocking mode
mbed_official 376:cb4d9db17537 1516 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1517 * @retval None
mbed_official 376:cb4d9db17537 1518 */
mbed_official 376:cb4d9db17537 1519 __weak void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1520 {
mbed_official 376:cb4d9db17537 1521 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1522 the HAL_LPTIM_AutoReloadWriteCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1523 */
mbed_official 376:cb4d9db17537 1524 }
mbed_official 376:cb4d9db17537 1525
mbed_official 376:cb4d9db17537 1526 /**
mbed_official 376:cb4d9db17537 1527 * @brief Direction counter changed from Down to Up callback in non blocking mode
mbed_official 376:cb4d9db17537 1528 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1529 * @retval None
mbed_official 376:cb4d9db17537 1530 */
mbed_official 376:cb4d9db17537 1531 __weak void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1532 {
mbed_official 376:cb4d9db17537 1533 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1534 the HAL_LPTIM_DirectionUpCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1535 */
mbed_official 376:cb4d9db17537 1536 }
mbed_official 376:cb4d9db17537 1537
mbed_official 376:cb4d9db17537 1538 /**
mbed_official 376:cb4d9db17537 1539 * @brief Direction counter changed from Up to Down callback in non blocking mode
mbed_official 376:cb4d9db17537 1540 * @param hlptim : LPTIM handle
mbed_official 376:cb4d9db17537 1541 * @retval None
mbed_official 376:cb4d9db17537 1542 */
mbed_official 376:cb4d9db17537 1543 __weak void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1544 {
mbed_official 376:cb4d9db17537 1545 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 1546 the HAL_LPTIM_DirectionDownCallback could be implemented in the user file
mbed_official 376:cb4d9db17537 1547 */
mbed_official 376:cb4d9db17537 1548 }
mbed_official 376:cb4d9db17537 1549
mbed_official 376:cb4d9db17537 1550 /**
mbed_official 376:cb4d9db17537 1551 * @}
mbed_official 376:cb4d9db17537 1552 */
mbed_official 376:cb4d9db17537 1553
mbed_official 489:119543c9f674 1554 /** @addtogroup LPTIM_Exported_Functions_Group5
mbed_official 376:cb4d9db17537 1555 * @brief Peripheral State functions.
mbed_official 376:cb4d9db17537 1556 *
mbed_official 376:cb4d9db17537 1557 @verbatim
mbed_official 376:cb4d9db17537 1558 ==============================================================================
mbed_official 376:cb4d9db17537 1559 ##### Peripheral State functions #####
mbed_official 376:cb4d9db17537 1560 ==============================================================================
mbed_official 376:cb4d9db17537 1561 [..]
mbed_official 376:cb4d9db17537 1562 This subsection permits to get in run-time the status of the peripheral.
mbed_official 376:cb4d9db17537 1563
mbed_official 376:cb4d9db17537 1564 @endverbatim
mbed_official 376:cb4d9db17537 1565 * @{
mbed_official 376:cb4d9db17537 1566 */
mbed_official 376:cb4d9db17537 1567
mbed_official 376:cb4d9db17537 1568 /**
mbed_official 376:cb4d9db17537 1569 * @brief Returns the LPTIM state.
mbed_official 376:cb4d9db17537 1570 * @param hlptim: LPTIM handle
mbed_official 376:cb4d9db17537 1571 * @retval HAL state
mbed_official 376:cb4d9db17537 1572 */
mbed_official 376:cb4d9db17537 1573 HAL_LPTIM_StateTypeDef HAL_LPTIM_GetState(LPTIM_HandleTypeDef *hlptim)
mbed_official 376:cb4d9db17537 1574 {
mbed_official 376:cb4d9db17537 1575 return hlptim->State;
mbed_official 376:cb4d9db17537 1576 }
mbed_official 376:cb4d9db17537 1577
mbed_official 376:cb4d9db17537 1578 /**
mbed_official 376:cb4d9db17537 1579 * @}
mbed_official 376:cb4d9db17537 1580 */
mbed_official 376:cb4d9db17537 1581
mbed_official 489:119543c9f674 1582 /**
mbed_official 489:119543c9f674 1583 * @}
mbed_official 489:119543c9f674 1584 */
mbed_official 376:cb4d9db17537 1585
mbed_official 376:cb4d9db17537 1586 /**
mbed_official 376:cb4d9db17537 1587 * @}
mbed_official 376:cb4d9db17537 1588 */
mbed_official 376:cb4d9db17537 1589
mbed_official 376:cb4d9db17537 1590 #endif /* HAL_LPTIM_MODULE_ENABLED */
mbed_official 489:119543c9f674 1591
mbed_official 489:119543c9f674 1592
mbed_official 376:cb4d9db17537 1593 /**
mbed_official 376:cb4d9db17537 1594 * @}
mbed_official 376:cb4d9db17537 1595 */
mbed_official 376:cb4d9db17537 1596
mbed_official 376:cb4d9db17537 1597 /**
mbed_official 376:cb4d9db17537 1598 * @}
mbed_official 376:cb4d9db17537 1599 */
mbed_official 376:cb4d9db17537 1600
mbed_official 376:cb4d9db17537 1601 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 489:119543c9f674 1602