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:
Mon Nov 03 10:45:07 2014 +0000
Revision:
382:ee426a420dbb
Parent:
targets/cmsis/TARGET_STM/TARGET_DISCO_L053C8/stm32l0xx_hal_tim_ex.c@376:cb4d9db17537
Child:
489:119543c9f674
Synchronized with git revision d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83

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

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_tim_ex.c
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 376:cb4d9db17537 5 * @version V1.1.0
mbed_official 376:cb4d9db17537 6 * @date 18-June-2014
mbed_official 376:cb4d9db17537 7 * @brief TIM HAL module driver.
mbed_official 376:cb4d9db17537 8 * @brief This file provides firmware functions to manage the following
mbed_official 376:cb4d9db17537 9 * functionalities of the Timer (TIM) peripheral:
mbed_official 376:cb4d9db17537 10 * + Time Hall Sensor Interface Initialization
mbed_official 376:cb4d9db17537 11 * + Time Hall Sensor Interface Start
mbed_official 376:cb4d9db17537 12 * + Time Master and Slave synchronization configuration
mbed_official 376:cb4d9db17537 13 @verbatim
mbed_official 376:cb4d9db17537 14 ================================================================================
mbed_official 376:cb4d9db17537 15 ##### TIM specific features integration #####
mbed_official 376:cb4d9db17537 16 ================================================================================
mbed_official 376:cb4d9db17537 17
mbed_official 376:cb4d9db17537 18 [..] The Timer features include:
mbed_official 376:cb4d9db17537 19 (#) 16-bit up, down, up/down auto-reload counter.
mbed_official 376:cb4d9db17537 20 (#) 16-bit programmable prescaler allowing dividing (also on the fly) the counter clock
mbed_official 376:cb4d9db17537 21 frequency either by any factor between 1 and 65536.
mbed_official 376:cb4d9db17537 22 (#) Up to 4 independent channels for:
mbed_official 376:cb4d9db17537 23 Input Capture
mbed_official 376:cb4d9db17537 24 Output Compare
mbed_official 376:cb4d9db17537 25 PWM generation (Edge and Center-aligned Mode)
mbed_official 376:cb4d9db17537 26 One-pulse mode output
mbed_official 376:cb4d9db17537 27 (#) Synchronization circuit to control the timer with external signals and to interconnect
mbed_official 376:cb4d9db17537 28 several timers together.
mbed_official 376:cb4d9db17537 29 (#) Supports incremental (quadrature) encoder and hall-sensor circuitry for positioning
mbed_official 376:cb4d9db17537 30 purposes
mbed_official 376:cb4d9db17537 31
mbed_official 376:cb4d9db17537 32 ##### How to use this driver #####
mbed_official 376:cb4d9db17537 33 ================================================================================
mbed_official 376:cb4d9db17537 34 [..]
mbed_official 376:cb4d9db17537 35 (#) Enable the TIM interface clock using
mbed_official 376:cb4d9db17537 36 __TIMx_CLK_ENABLE();
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 (#) TIM pins configuration
mbed_official 376:cb4d9db17537 39 (++) Enable the clock for the TIM GPIOs using the following function:
mbed_official 376:cb4d9db17537 40 __GPIOx_CLK_ENABLE();
mbed_official 376:cb4d9db17537 41 (++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init();
mbed_official 376:cb4d9db17537 42
mbed_official 376:cb4d9db17537 43 (#) The external Clock can be configured, if needed (the default clock is the internal clock from the APBx),
mbed_official 376:cb4d9db17537 44 using the following function:
mbed_official 376:cb4d9db17537 45 HAL_TIM_ConfigClockSource, the clock configuration should be done before any start function.
mbed_official 376:cb4d9db17537 46
mbed_official 376:cb4d9db17537 47 (#) Configure the TIM in the desired operating mode using one of the
mbed_official 376:cb4d9db17537 48 configuration function of this driver:
mbed_official 376:cb4d9db17537 49 (++) HAL_TIMEx_MasterConfigSynchronization() to configure the peripheral in master mode.
mbed_official 376:cb4d9db17537 50
mbed_official 376:cb4d9db17537 51 (#) Remap the Timer I/O using HAL_TIMEx_RemapConfig() API.
mbed_official 376:cb4d9db17537 52
mbed_official 376:cb4d9db17537 53
mbed_official 376:cb4d9db17537 54 @endverbatim
mbed_official 376:cb4d9db17537 55 ******************************************************************************
mbed_official 376:cb4d9db17537 56 * @attention
mbed_official 376:cb4d9db17537 57 *
mbed_official 376:cb4d9db17537 58 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 59 *
mbed_official 376:cb4d9db17537 60 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 61 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 62 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 63 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 64 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 65 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 66 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 67 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 68 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 69 * without specific prior written permission.
mbed_official 376:cb4d9db17537 70 *
mbed_official 376:cb4d9db17537 71 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 72 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 73 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 74 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 75 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 76 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 77 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 78 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 79 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 80 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 81 *
mbed_official 376:cb4d9db17537 82 ******************************************************************************
mbed_official 376:cb4d9db17537 83 */
mbed_official 376:cb4d9db17537 84
mbed_official 376:cb4d9db17537 85 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 86 #include "stm32l0xx_hal.h"
mbed_official 376:cb4d9db17537 87
mbed_official 376:cb4d9db17537 88 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 89 * @{
mbed_official 376:cb4d9db17537 90 */
mbed_official 376:cb4d9db17537 91
mbed_official 376:cb4d9db17537 92 /** @defgroup TIMEx
mbed_official 376:cb4d9db17537 93 * @brief TIMEx HAL module driver
mbed_official 376:cb4d9db17537 94 * @{
mbed_official 376:cb4d9db17537 95 */
mbed_official 376:cb4d9db17537 96
mbed_official 376:cb4d9db17537 97 #ifdef HAL_TIM_MODULE_ENABLED
mbed_official 376:cb4d9db17537 98
mbed_official 376:cb4d9db17537 99 /* Private typedef -----------------------------------------------------------*/
mbed_official 376:cb4d9db17537 100 /* Private define ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 101 /* Private macro -------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 102 /* Private variables ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 103 /* Private function prototypes -----------------------------------------------*/
mbed_official 376:cb4d9db17537 104 /* Private functions ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 105
mbed_official 376:cb4d9db17537 106 /** @defgroup TIMEx_Private_Functions
mbed_official 376:cb4d9db17537 107 * @{
mbed_official 376:cb4d9db17537 108 */
mbed_official 376:cb4d9db17537 109
mbed_official 376:cb4d9db17537 110
mbed_official 376:cb4d9db17537 111 /** @defgroup TIMEx_Group1 Peripheral Control functions
mbed_official 376:cb4d9db17537 112 * @brief Peripheral Control functions
mbed_official 376:cb4d9db17537 113 *
mbed_official 376:cb4d9db17537 114 @verbatim
mbed_official 376:cb4d9db17537 115 ===============================================================================
mbed_official 376:cb4d9db17537 116 ##### Peripheral Control functions #####
mbed_official 376:cb4d9db17537 117 ===============================================================================
mbed_official 376:cb4d9db17537 118 [..] This section provides functions allowing to:
mbed_official 376:cb4d9db17537 119 (+) Configure Master and the Slave synchronization.
mbed_official 376:cb4d9db17537 120
mbed_official 376:cb4d9db17537 121 @endverbatim
mbed_official 376:cb4d9db17537 122 * @{
mbed_official 376:cb4d9db17537 123 */
mbed_official 376:cb4d9db17537 124
mbed_official 376:cb4d9db17537 125 /**
mbed_official 376:cb4d9db17537 126 * @brief Configures the TIM in master mode.
mbed_official 376:cb4d9db17537 127 * @param htim: TIM handle.
mbed_official 376:cb4d9db17537 128 * @param sMasterConfig: pointer to a TIM_MasterConfigTypeDef structure that
mbed_official 376:cb4d9db17537 129 * contains the selected trigger output (TRGO) and the Master/Slave
mbed_official 376:cb4d9db17537 130 * mode.
mbed_official 376:cb4d9db17537 131 * @retval HAL status
mbed_official 376:cb4d9db17537 132 */
mbed_official 376:cb4d9db17537 133 HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef * sMasterConfig)
mbed_official 376:cb4d9db17537 134 {
mbed_official 376:cb4d9db17537 135 /* Check the parameters */
mbed_official 376:cb4d9db17537 136 assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance));
mbed_official 376:cb4d9db17537 137 assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger));
mbed_official 376:cb4d9db17537 138 assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode));
mbed_official 376:cb4d9db17537 139
mbed_official 376:cb4d9db17537 140 __HAL_LOCK(htim);
mbed_official 376:cb4d9db17537 141
mbed_official 376:cb4d9db17537 142 /* Change the handler state */
mbed_official 376:cb4d9db17537 143 htim->State = HAL_TIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 144
mbed_official 376:cb4d9db17537 145 /* Reset the MMS Bits */
mbed_official 376:cb4d9db17537 146 htim->Instance->CR2 &= ~TIM_CR2_MMS;
mbed_official 376:cb4d9db17537 147 /* Select the TRGO source */
mbed_official 376:cb4d9db17537 148 htim->Instance->CR2 |= sMasterConfig->MasterOutputTrigger;
mbed_official 376:cb4d9db17537 149
mbed_official 376:cb4d9db17537 150 /* Reset the MSM Bit */
mbed_official 376:cb4d9db17537 151 htim->Instance->SMCR &= ~TIM_SMCR_MSM;
mbed_official 376:cb4d9db17537 152 /* Set or Reset the MSM Bit */
mbed_official 376:cb4d9db17537 153 htim->Instance->SMCR |= sMasterConfig->MasterSlaveMode;
mbed_official 376:cb4d9db17537 154
mbed_official 376:cb4d9db17537 155 htim->State = HAL_TIM_STATE_READY;
mbed_official 376:cb4d9db17537 156
mbed_official 376:cb4d9db17537 157 __HAL_UNLOCK(htim);
mbed_official 376:cb4d9db17537 158
mbed_official 376:cb4d9db17537 159 return HAL_OK;
mbed_official 376:cb4d9db17537 160 }
mbed_official 376:cb4d9db17537 161
mbed_official 376:cb4d9db17537 162 /**
mbed_official 376:cb4d9db17537 163 * @brief Configures the TIM2, TIM21 and TIM22 Remapping input capabilities.
mbed_official 376:cb4d9db17537 164 * @param htim: pointer to a TIM_HandleTypeDef structure that contains
mbed_official 376:cb4d9db17537 165 * the configuration information for TIM module.
mbed_official 376:cb4d9db17537 166 * @param TIM_Remap: specifies the TIM input remapping source.
mbed_official 376:cb4d9db17537 167 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 168 * @arg TIM2_ETR_GPIO: TIM2 ETR is connected to GPIO (default)
mbed_official 376:cb4d9db17537 169 * @arg TIM2_ETR_HSI48: TIM2 ETR is connected to HSI48
mbed_official 376:cb4d9db17537 170 * @arg TIM2_ETR_LSE: TIM2 ETR is connected to LSE
mbed_official 376:cb4d9db17537 171 * @arg TIM2_ETR_COMP2_OUT: TIM2 ETR is connected to COMP2 output
mbed_official 376:cb4d9db17537 172 * @arg TIM2_ETR_COMP1_OUT: TIM2 ETR is connected to COMP1 output
mbed_official 376:cb4d9db17537 173 * @arg TIM2_TI4_GPIO1: TIM2 TI4 is connected to GPIO1(default)
mbed_official 376:cb4d9db17537 174 * @arg TIM2_TI4_COMP1: TIM2 TI4 is connected to COMP1
mbed_official 376:cb4d9db17537 175 * @arg TIM2_TI4_COMP2: TIM2 TI4 is connected to COMP2
mbed_official 376:cb4d9db17537 176 * @arg TIM2_TI4_GPIO2: TIM2 TI4 is connected to GPIO2
mbed_official 376:cb4d9db17537 177 * @arg TIM21_ETR_GPIO: TIM21 ETR is connected to GPIO(default)
mbed_official 376:cb4d9db17537 178 * @arg TIM21_ETR_COMP2_OUT: TIM21 ETR is connected to COMP2 output
mbed_official 376:cb4d9db17537 179 * @arg TIM21_ETR_COMP1_OUT: TIM21 ETR is connected to COMP1 output
mbed_official 376:cb4d9db17537 180 * @arg TIM21_ETR_LSE: TIM21 ETR is connected to LSE
mbed_official 376:cb4d9db17537 181 * @arg TIM21_TI1_MCO: TIM21 TI1 is connected to MCO
mbed_official 376:cb4d9db17537 182 * @arg TIM21_TI1_RTC_WKUT_IT: TIM21 TI1 is connected to RTC WAKEUP interrupt
mbed_official 376:cb4d9db17537 183 * @arg TIM21_TI1_HSE_RTC: TIM21 TI1 is connected to HSE_RTC
mbed_official 376:cb4d9db17537 184 * @arg TIM21_TI1_MSI: TIM21 TI1 is connected to MSI clock
mbed_official 376:cb4d9db17537 185 * @arg TIM21_TI1_LSE: TIM21 TI1 is connected to LSE
mbed_official 376:cb4d9db17537 186 * @arg TIM21_TI1_LSI: TIM21 TI1 is connected to LSI
mbed_official 376:cb4d9db17537 187 * @arg TIM21_TI1_COMP1_OUT: TIM21 TI1 is connected to COMP1_OUT
mbed_official 376:cb4d9db17537 188 * @arg TIM21_TI1_GPIO: TIM21 TI1 is connected to GPIO(default)
mbed_official 376:cb4d9db17537 189 * @arg TIM21_TI2_GPIO: TIM21 TI2 is connected to GPIO(default)
mbed_official 376:cb4d9db17537 190 * @arg TIM21_TI2_COMP2_OUT: TIM21 TI2 is connected to COMP2 output
mbed_official 376:cb4d9db17537 191 * @arg TIM22_ETR_LSE: TIM22 ETR is connected to LSE
mbed_official 376:cb4d9db17537 192 * @arg TIM22_ETR_COMP2_OUT: TIM22 ETR is connected to COMP2 output
mbed_official 376:cb4d9db17537 193 * @arg TIM22_ETR_COMP1_OUT: TIM22 ETR is connected to COMP1 output
mbed_official 376:cb4d9db17537 194 * @arg TIM22_ETR_GPIO: TIM22 ETR is connected to GPIO(default)
mbed_official 376:cb4d9db17537 195 * @arg TIM22_TI1_GPIO1: TIM22 TI1 is connected to GPIO(default)
mbed_official 376:cb4d9db17537 196 * @arg TIM22_TI1_COMP2_OUT: TIM22 TI1 is connected to COMP2 output
mbed_official 376:cb4d9db17537 197 * @arg TIM22_TI1_COMP1_OUT: TIM22 TI1 is connected to COMP1 output
mbed_official 376:cb4d9db17537 198 * @arg TIM22_TI1_GPIO2: TIM22 TI1 is connected to GPIO
mbed_official 376:cb4d9db17537 199 * @retval HAL status
mbed_official 376:cb4d9db17537 200 */
mbed_official 376:cb4d9db17537 201 HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap)
mbed_official 376:cb4d9db17537 202 {
mbed_official 376:cb4d9db17537 203 __HAL_LOCK(htim);
mbed_official 376:cb4d9db17537 204
mbed_official 376:cb4d9db17537 205 /* Check parameters */
mbed_official 376:cb4d9db17537 206 assert_param(IS_TIM_REMAP_INSTANCE(htim->Instance));
mbed_official 376:cb4d9db17537 207 assert_param(IS_TIM_REMAP(Remap));
mbed_official 376:cb4d9db17537 208
mbed_official 376:cb4d9db17537 209 /* Change the handler state */
mbed_official 376:cb4d9db17537 210 htim->State = HAL_TIM_STATE_BUSY;
mbed_official 376:cb4d9db17537 211
mbed_official 376:cb4d9db17537 212 /* Set the Timer remapping configuration */
mbed_official 376:cb4d9db17537 213 htim->Instance->OR &= (uint32_t)(Remap >> 16);
mbed_official 376:cb4d9db17537 214 htim->Instance->OR |= Remap;
mbed_official 376:cb4d9db17537 215
mbed_official 376:cb4d9db17537 216 /* Change the handler state */
mbed_official 376:cb4d9db17537 217 htim->State = HAL_TIM_STATE_READY;
mbed_official 376:cb4d9db17537 218
mbed_official 376:cb4d9db17537 219 __HAL_UNLOCK(htim);
mbed_official 376:cb4d9db17537 220
mbed_official 376:cb4d9db17537 221 return HAL_OK;
mbed_official 376:cb4d9db17537 222 }
mbed_official 376:cb4d9db17537 223
mbed_official 376:cb4d9db17537 224 /**
mbed_official 376:cb4d9db17537 225 * @}
mbed_official 376:cb4d9db17537 226 */
mbed_official 376:cb4d9db17537 227
mbed_official 376:cb4d9db17537 228 /**
mbed_official 376:cb4d9db17537 229 * @}
mbed_official 376:cb4d9db17537 230 */
mbed_official 376:cb4d9db17537 231
mbed_official 376:cb4d9db17537 232 #endif /* HAL_TIM_MODULE_ENABLED */
mbed_official 376:cb4d9db17537 233 /**
mbed_official 376:cb4d9db17537 234 * @}
mbed_official 376:cb4d9db17537 235 */
mbed_official 376:cb4d9db17537 236
mbed_official 376:cb4d9db17537 237 /**
mbed_official 376:cb4d9db17537 238 * @}
mbed_official 376:cb4d9db17537 239 */
mbed_official 376:cb4d9db17537 240 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/