mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
jaerts
Date:
Tue Dec 22 13:22:16 2015 +0000
Revision:
637:ed69428d4850
Parent:
155:8435094ec241
Add very shady LPC1768 CAN Filter implementation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 155:8435094ec241 1 /**
mbed_official 155:8435094ec241 2 ******************************************************************************
mbed_official 155:8435094ec241 3 * @file stm32f30x_hrtim.c
mbed_official 155:8435094ec241 4 * @author MCD Application Team
mbed_official 155:8435094ec241 5 * @version V1.1.0
mbed_official 155:8435094ec241 6 * @date 27-February-2014
mbed_official 155:8435094ec241 7 * @brief HRTIMx module driver.
mbed_official 155:8435094ec241 8 *
mbed_official 155:8435094ec241 9 * This file provides firmware functions to manage the following
mbed_official 155:8435094ec241 10 * functionalities of the HRTIMx peripheral:
mbed_official 155:8435094ec241 11 * + Initialization/de-initialization methods
mbed_official 155:8435094ec241 12 * + I/O operation methods
mbed_official 155:8435094ec241 13 * + Peripheral Control methods
mbed_official 155:8435094ec241 14 *
mbed_official 155:8435094ec241 15 @verbatim
mbed_official 155:8435094ec241 16 ================================================================================
mbed_official 155:8435094ec241 17 ##### <HRTIM specific features> #####
mbed_official 155:8435094ec241 18 ================================================================================
mbed_official 155:8435094ec241 19
mbed_official 155:8435094ec241 20 [..] < HRTIM introduction:
mbed_official 155:8435094ec241 21 (#) The high-resolution timer can generate up to 10 digital signals with
mbed_official 155:8435094ec241 22 highly accurate timings.
mbed_official 155:8435094ec241 23 It is primarily intended to drive power conversion systems such as
mbed_official 155:8435094ec241 24 switch mode power supplies or lighting systems,
mbed_official 155:8435094ec241 25 but can be of general purpose usage, whenever a very fine timing
mbed_official 155:8435094ec241 26 resolution is expected.
mbed_official 155:8435094ec241 27
mbed_official 155:8435094ec241 28 (#) Its modular architecture allows to generate either independent or
mbed_official 155:8435094ec241 29 coupled waveforms.
mbed_official 155:8435094ec241 30 The wave-shape is defined by self-contained timings
mbed_official 155:8435094ec241 31 (using counters and compare units) and a broad range of external events,
mbed_official 155:8435094ec241 32 such as analog or digital feedbacks and synchronisation signals.
mbed_official 155:8435094ec241 33 This allows to produce a large variety of control signal (PWM, phase-shifted,
mbed_official 155:8435094ec241 34 constant Ton,...) and address most of conversion topologies.
mbed_official 155:8435094ec241 35
mbed_official 155:8435094ec241 36 (#) For control and monitoring purposes, the timer has also timing measure
mbed_official 155:8435094ec241 37 capabilities and links to built-in ADC and DAC converters.
mbed_official 155:8435094ec241 38 Last, it features light-load management mode and is able to handle
mbed_official 155:8435094ec241 39 various fault schemes for safe shut-down purposes.
mbed_official 155:8435094ec241 40
mbed_official 155:8435094ec241 41
mbed_official 155:8435094ec241 42 ##### How to use this driver #####
mbed_official 155:8435094ec241 43 ================================================================================
mbed_official 155:8435094ec241 44 [..] This driver provides functions to configure and program the HRTIM
mbed_official 155:8435094ec241 45 of all stm32f33x devices.
mbed_official 155:8435094ec241 46 These functions are split in 9 groups:
mbed_official 155:8435094ec241 47
mbed_official 155:8435094ec241 48 (#) HRTIM Simple TimeBase management: this group includes all needed functions
mbed_official 155:8435094ec241 49 to configure the HRTIM Timebase unit:
mbed_official 155:8435094ec241 50 (++) Initializes the HRTIMx timer in simple time base mode
mbed_official 155:8435094ec241 51 (++) Start/Stop the time base generation
mbed_official 155:8435094ec241 52 (++) Deinitialize the HRTIM peripheral
mbed_official 155:8435094ec241 53
mbed_official 155:8435094ec241 54
mbed_official 155:8435094ec241 55 (#) HRTIM simple Output Compare management: this group includes all needed
mbed_official 155:8435094ec241 56 functions to configure the Compare unit used in Output compare mode:
mbed_official 155:8435094ec241 57 (++) Initializes the HRTIMx timer time base unit
mbed_official 155:8435094ec241 58 (++) Configure the compare unit in in simple Output Compare mode
mbed_official 155:8435094ec241 59 (++) Start/Stop the Output compare generation
mbed_official 155:8435094ec241 60
mbed_official 155:8435094ec241 61 (#) HRTIM simple PWM management: this group includes all needed
mbed_official 155:8435094ec241 62 functions to configure the Compare unit used in PWM mode:
mbed_official 155:8435094ec241 63 (++) Initializes the HRTIMx timer time base unit
mbed_official 155:8435094ec241 64 (++) Configure the compare unit in in simple PWM mode
mbed_official 155:8435094ec241 65 (++) Start/Stop the PWM generation
mbed_official 155:8435094ec241 66
mbed_official 155:8435094ec241 67 (#) HRTIM simple Capture management: this group includes all needed
mbed_official 155:8435094ec241 68 functions to configure the Capture unit used in Capture mode:
mbed_official 155:8435094ec241 69 (++) Initializes the HRTIMx timer time base unit
mbed_official 155:8435094ec241 70 (++) Configure the compare unit in in simple Capture mode
mbed_official 155:8435094ec241 71 (++) Start/Stop the Capture mode
mbed_official 155:8435094ec241 72
mbed_official 155:8435094ec241 73 (#) HRTIM simple One Pulse management: this group includes all needed
mbed_official 155:8435094ec241 74 functions to configure the Capture unit and Compare unit used in One Pulse mode:
mbed_official 155:8435094ec241 75 (++) Initializes the HRTIMx timer time base unit
mbed_official 155:8435094ec241 76 (++) Configure the compare unit and the capture unit in in simple One Pulse mode
mbed_official 155:8435094ec241 77 (++) Start/Stop the One Pulse mode generation
mbed_official 155:8435094ec241 78
mbed_official 155:8435094ec241 79 (#) HRTIM Waveform management: this group includes all needed
mbed_official 155:8435094ec241 80 functions to configure the HRTIM possible waveform mode:
mbed_official 155:8435094ec241 81 (++) Initializes the HRTIMx timer Master time base unit
mbed_official 155:8435094ec241 82 (++) Initializes the HRTIMx timer Slaves time base unit
mbed_official 155:8435094ec241 83 (++) Configures the HRTIMx timer Compare unit
mbed_official 155:8435094ec241 84 (++) Configures the HRTIMx Slave timer Capture unit
mbed_official 155:8435094ec241 85 (++) Configures the HRTIMx timer Output unit
mbed_official 155:8435094ec241 86 (++) Configures the HRTIMx timer DeadTime / Chopper / Burst features
mbed_official 155:8435094ec241 87 (++) Configures the HRTIMx timer Fault / External event features
mbed_official 155:8435094ec241 88 (++) Configures the HRTIMx timer Synchronization features: Internal/External connection, DACs,...
mbed_official 155:8435094ec241 89 (++) Configures the HRTIMx timer Synchronization features: ADCs Triggers
mbed_official 155:8435094ec241 90 (++) HRTIMx timer Outputs Start/Stop
mbed_official 155:8435094ec241 91 (++) Start/Stop the HRTIMx Timer counters
mbed_official 155:8435094ec241 92
mbed_official 155:8435094ec241 93 (#) HRTIM interrupts, DMA and flags management
mbed_official 155:8435094ec241 94 (++) Enable/Disable interrupt sources
mbed_official 155:8435094ec241 95 (++) Get flags status
mbed_official 155:8435094ec241 96 (++) Clear flags/ Pending bits
mbed_official 155:8435094ec241 97 (++) Enable/Disable DMA requests
mbed_official 155:8435094ec241 98 (++) Configure DMA burst mode
mbed_official 155:8435094ec241 99
mbed_official 155:8435094ec241 100 (#) TIM specific interface management, this group includes all
mbed_official 155:8435094ec241 101 needed functions to use the specific TIM interface:
mbed_official 155:8435094ec241 102 (++) HRTIMx timer DLL calibration
mbed_official 155:8435094ec241 103
mbed_official 155:8435094ec241 104 @endverbatim
mbed_official 155:8435094ec241 105 ******************************************************************************
mbed_official 155:8435094ec241 106 * @attention
mbed_official 155:8435094ec241 107 *
mbed_official 155:8435094ec241 108 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 155:8435094ec241 109 *
mbed_official 155:8435094ec241 110 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 155:8435094ec241 111 * are permitted provided that the following conditions are met:
mbed_official 155:8435094ec241 112 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 155:8435094ec241 113 * this list of conditions and the following disclaimer.
mbed_official 155:8435094ec241 114 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 155:8435094ec241 115 * this list of conditions and the following disclaimer in the documentation
mbed_official 155:8435094ec241 116 * and/or other materials provided with the distribution.
mbed_official 155:8435094ec241 117 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 155:8435094ec241 118 * may be used to endorse or promote products derived from this software
mbed_official 155:8435094ec241 119 * without specific prior written permission.
mbed_official 155:8435094ec241 120 *
mbed_official 155:8435094ec241 121 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 155:8435094ec241 122 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 155:8435094ec241 123 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 155:8435094ec241 124 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 155:8435094ec241 125 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 155:8435094ec241 126 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 155:8435094ec241 127 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 155:8435094ec241 128 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 155:8435094ec241 129 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 155:8435094ec241 130 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 155:8435094ec241 131 *
mbed_official 155:8435094ec241 132 ******************************************************************************
mbed_official 155:8435094ec241 133 */
mbed_official 155:8435094ec241 134 /* Includes ------------------------------------------------------------------*/
mbed_official 155:8435094ec241 135 #include "stm32f30x_hrtim.h"
mbed_official 155:8435094ec241 136
mbed_official 155:8435094ec241 137 /** @addtogroup STM32F30x_StdPeriph_Driver
mbed_official 155:8435094ec241 138 * @{
mbed_official 155:8435094ec241 139 */
mbed_official 155:8435094ec241 140
mbed_official 155:8435094ec241 141 /** @defgroup HRTIM
mbed_official 155:8435094ec241 142 * @brief HRTIM driver module
mbed_official 155:8435094ec241 143 * @{
mbed_official 155:8435094ec241 144 */
mbed_official 155:8435094ec241 145
mbed_official 155:8435094ec241 146 /* Private typedef -----------------------------------------------------------*/
mbed_official 155:8435094ec241 147 /* Private define ------------------------------------------------------------*/
mbed_official 155:8435094ec241 148 #define HRTIM_FLTR_FLTxEN (HRTIM_FLTR_FLT1EN |\
mbed_official 155:8435094ec241 149 HRTIM_FLTR_FLT2EN |\
mbed_official 155:8435094ec241 150 HRTIM_FLTR_FLT3EN |\
mbed_official 155:8435094ec241 151 HRTIM_FLTR_FLT4EN | \
mbed_official 155:8435094ec241 152 HRTIM_FLTR_FLT5EN)
mbed_official 155:8435094ec241 153
mbed_official 155:8435094ec241 154 #define HRTIM_TIMCR_TIMUPDATETRIGGER (HRTIM_TIMUPDATETRIGGER_MASTER |\
mbed_official 155:8435094ec241 155 HRTIM_TIMUPDATETRIGGER_TIMER_A |\
mbed_official 155:8435094ec241 156 HRTIM_TIMUPDATETRIGGER_TIMER_B |\
mbed_official 155:8435094ec241 157 HRTIM_TIMUPDATETRIGGER_TIMER_C |\
mbed_official 155:8435094ec241 158 HRTIM_TIMUPDATETRIGGER_TIMER_D |\
mbed_official 155:8435094ec241 159 HRTIM_TIMUPDATETRIGGER_TIMER_E)
mbed_official 155:8435094ec241 160
mbed_official 155:8435094ec241 161 #define HRTIM_TIM_OFFSET (uint32_t)0x00000080
mbed_official 155:8435094ec241 162 /* Private macro -------------------------------------------------------------*/
mbed_official 155:8435094ec241 163 /* Private variables ---------------------------------------------------------*/
mbed_official 155:8435094ec241 164 static uint32_t TimerIdxToTimerId[] =
mbed_official 155:8435094ec241 165 {
mbed_official 155:8435094ec241 166 HRTIM_TIMERID_TIMER_A,
mbed_official 155:8435094ec241 167 HRTIM_TIMERID_TIMER_B,
mbed_official 155:8435094ec241 168 HRTIM_TIMERID_TIMER_C,
mbed_official 155:8435094ec241 169 HRTIM_TIMERID_TIMER_D,
mbed_official 155:8435094ec241 170 HRTIM_TIMERID_TIMER_E,
mbed_official 155:8435094ec241 171 HRTIM_TIMERID_MASTER,
mbed_official 155:8435094ec241 172 };
mbed_official 155:8435094ec241 173
mbed_official 155:8435094ec241 174 /* Private function prototypes -----------------------------------------------*/
mbed_official 155:8435094ec241 175 /* Private functions ---------------------------------------------------------*/
mbed_official 155:8435094ec241 176 static void HRTIM_MasterBase_Config(HRTIM_TypeDef* HRTIMx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruc);
mbed_official 155:8435094ec241 177 static void HRTIM_TimingUnitBase_Config(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 178 static void HRTIM_MasterWaveform_Config(HRTIM_TypeDef * HRTIMx, HRTIM_TimerInitTypeDef * TimerInit);
mbed_official 155:8435094ec241 179 static void HRTIM_TimingUnitWaveform_Config(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 180 uint32_t TimerIdx,
mbed_official 155:8435094ec241 181 HRTIM_TimerInitTypeDef * TimerInit);
mbed_official 155:8435094ec241 182 static void HRTIM_CompareUnitConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 183 uint32_t TimerIdx,
mbed_official 155:8435094ec241 184 uint32_t CompareUnit,
mbed_official 155:8435094ec241 185 HRTIM_CompareCfgTypeDef * CompareCfg);
mbed_official 155:8435094ec241 186 static void HRTIM_CaptureUnitConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 187 uint32_t TimerIdx,
mbed_official 155:8435094ec241 188 uint32_t CaptureUnit,
mbed_official 155:8435094ec241 189 uint32_t Event);
mbed_official 155:8435094ec241 190 static void HRTIM_OutputConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 191 uint32_t TimerIdx,
mbed_official 155:8435094ec241 192 uint32_t Output,
mbed_official 155:8435094ec241 193 HRTIM_OutputCfgTypeDef * OutputCfg);
mbed_official 155:8435094ec241 194 static void HRTIM_ExternalEventConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 195 uint32_t Event,
mbed_official 155:8435094ec241 196 HRTIM_EventCfgTypeDef * EventCfg);
mbed_official 155:8435094ec241 197 static void HRTIM_TIM_ResetConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 198 uint32_t TimerIdx,
mbed_official 155:8435094ec241 199 uint32_t Event);
mbed_official 155:8435094ec241 200 /** @defgroup HRTIM_Private_Functions
mbed_official 155:8435094ec241 201 * @{
mbed_official 155:8435094ec241 202 */
mbed_official 155:8435094ec241 203
mbed_official 155:8435094ec241 204 /** @defgroup HRTIM_Group1 Initialization/de-initialization methods
mbed_official 155:8435094ec241 205 * @brief Initialization and Configuration functions
mbed_official 155:8435094ec241 206 *
mbed_official 155:8435094ec241 207 @verbatim
mbed_official 155:8435094ec241 208 ===============================================================================
mbed_official 155:8435094ec241 209 ##### Initialization/de-initialization methods #####
mbed_official 155:8435094ec241 210 ===============================================================================
mbed_official 155:8435094ec241 211 [..] This section provides functions allowing to:
mbed_official 155:8435094ec241 212 (+)Initializes timer in basic time base mode
mbed_official 155:8435094ec241 213 (+)Initializes timer in basic OC mode
mbed_official 155:8435094ec241 214 (+)Initializes timer in basic PWM mode
mbed_official 155:8435094ec241 215 (+)Initializes timer in basic Capture mode
mbed_official 155:8435094ec241 216 (+)Initializes timer in One Pulse mode
mbed_official 155:8435094ec241 217 (+)Initializes a timer operating in waveform mode
mbed_official 155:8435094ec241 218 (+)De-initializes the HRTIMx timer
mbed_official 155:8435094ec241 219
mbed_official 155:8435094ec241 220 @endverbatim
mbed_official 155:8435094ec241 221 * @{
mbed_official 155:8435094ec241 222 */
mbed_official 155:8435094ec241 223
mbed_official 155:8435094ec241 224 /**
mbed_official 155:8435094ec241 225 * @brief Initializes the HRTIMx timer in basic time base mode
mbed_official 155:8435094ec241 226 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 227 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 228 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 229 * @arg 0x0 for master timer
mbed_official 155:8435094ec241 230 * @arg 0x1 to 0x5 for timers A to E
mbed_official 155:8435094ec241 231 * @note The time-base unit initialization parameters specify:
mbed_official 155:8435094ec241 232 * The timer counter operating mode (continuous, one shot)
mbed_official 155:8435094ec241 233 * The timer clock prescaler
mbed_official 155:8435094ec241 234 * The timer period
mbed_official 155:8435094ec241 235 * The timer repetition counter.
mbed_official 155:8435094ec241 236 * @retval None
mbed_official 155:8435094ec241 237 */
mbed_official 155:8435094ec241 238 void HRTIM_SimpleBase_Init(HRTIM_TypeDef* HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 239 {
mbed_official 155:8435094ec241 240 /* Check the parameters */
mbed_official 155:8435094ec241 241 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 242 assert_param(IS_HRTIM_MODE(HRTIM_BaseInitStruct->Mode));
mbed_official 155:8435094ec241 243
mbed_official 155:8435094ec241 244 if (TimerIdx == HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 245 {
mbed_official 155:8435094ec241 246 /* Configure master timer */
mbed_official 155:8435094ec241 247 HRTIM_MasterBase_Config(HRTIMx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 248 }
mbed_official 155:8435094ec241 249 else
mbed_official 155:8435094ec241 250 {
mbed_official 155:8435094ec241 251 /* Configure timing unit */
mbed_official 155:8435094ec241 252 HRTIM_TimingUnitBase_Config(HRTIMx, TimerIdx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 253 }
mbed_official 155:8435094ec241 254 }
mbed_official 155:8435094ec241 255
mbed_official 155:8435094ec241 256 /**
mbed_official 155:8435094ec241 257 * @brief De-initializes a timer operating in all mode
mbed_official 155:8435094ec241 258 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 259 * @retval None
mbed_official 155:8435094ec241 260 */
mbed_official 155:8435094ec241 261 void HRTIM_DeInit(HRTIM_TypeDef* HRTIMx)
mbed_official 155:8435094ec241 262 {
mbed_official 155:8435094ec241 263 /* Check the parameters */
mbed_official 155:8435094ec241 264 RCC_APB2PeriphResetCmd(RCC_APB2Periph_HRTIM1, ENABLE);
mbed_official 155:8435094ec241 265 RCC_APB2PeriphResetCmd(RCC_APB2Periph_HRTIM1, DISABLE);
mbed_official 155:8435094ec241 266 }
mbed_official 155:8435094ec241 267
mbed_official 155:8435094ec241 268 /**
mbed_official 155:8435094ec241 269 * @brief Initializes the HRTIMx timer in basic output compare mode
mbed_official 155:8435094ec241 270 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 271 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 272 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 273 * @arg 0x1 to 0x5 for timers A to E
mbed_official 155:8435094ec241 274 * @note Initializes the time-base unit of the timer and prepare it to
mbed_official 155:8435094ec241 275 * operate in output compare mode
mbed_official 155:8435094ec241 276 * @retval None
mbed_official 155:8435094ec241 277 */
mbed_official 155:8435094ec241 278 void HRTIM_SimpleOC_Init(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 279 {
mbed_official 155:8435094ec241 280 /* Check the parameters */
mbed_official 155:8435094ec241 281 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 282 assert_param(IS_HRTIM_MODE(HRTIM_BaseInitStruct->Mode));
mbed_official 155:8435094ec241 283
mbed_official 155:8435094ec241 284 /* Configure timing unit */
mbed_official 155:8435094ec241 285 HRTIM_TimingUnitBase_Config(HRTIMx, TimerIdx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 286 }
mbed_official 155:8435094ec241 287
mbed_official 155:8435094ec241 288 /**
mbed_official 155:8435094ec241 289 * @brief Initializes the HRTIMx timer in basic PWM mode
mbed_official 155:8435094ec241 290 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 291 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 292 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 293 * @arg 0x1 to 0x5 for timers A to E
mbed_official 155:8435094ec241 294 * @note Initializes the time-base unit of the timer and prepare it to
mbed_official 155:8435094ec241 295 * operate in capture mode
mbed_official 155:8435094ec241 296 * @retval None
mbed_official 155:8435094ec241 297 */
mbed_official 155:8435094ec241 298 void HRTIM_SimplePWM_Init(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 299 {
mbed_official 155:8435094ec241 300 /* Check the parameters */
mbed_official 155:8435094ec241 301 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 302 assert_param(IS_HRTIM_MODE(HRTIM_BaseInitStruct->Mode));
mbed_official 155:8435094ec241 303
mbed_official 155:8435094ec241 304 /* Configure timing unit */
mbed_official 155:8435094ec241 305 HRTIM_TimingUnitBase_Config(HRTIMx, TimerIdx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 306 }
mbed_official 155:8435094ec241 307
mbed_official 155:8435094ec241 308 /**
mbed_official 155:8435094ec241 309 * @brief Initializes a timer operating in basic capture mode
mbed_official 155:8435094ec241 310 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 311 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 312 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 313 * @arg 0x1 to 0x5 for timers A to E
mbed_official 155:8435094ec241 314 * @retval None
mbed_official 155:8435094ec241 315 */
mbed_official 155:8435094ec241 316 void HRTIM_SimpleCapture_Init(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 317 {
mbed_official 155:8435094ec241 318 /* Check the parameters */
mbed_official 155:8435094ec241 319 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 320 assert_param(IS_HRTIM_MODE(HRTIM_BaseInitStruct->Mode));
mbed_official 155:8435094ec241 321
mbed_official 155:8435094ec241 322 /* Configure timing unit */
mbed_official 155:8435094ec241 323 HRTIM_TimingUnitBase_Config(HRTIMx, TimerIdx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 324 }
mbed_official 155:8435094ec241 325
mbed_official 155:8435094ec241 326 /**
mbed_official 155:8435094ec241 327 * @brief Initializes the HRTIMx timer in basic one pulse mode
mbed_official 155:8435094ec241 328 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 329 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 330 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 331 * @arg 0x1 to 0x5 for timers A to E
mbed_official 155:8435094ec241 332 * @note Initializes the time-base unit of the timer and prepare it to
mbed_official 155:8435094ec241 333 * operate in one pulse mode. In this mode the counter operates
mbed_official 155:8435094ec241 334 * in single shot mode (retriggerable or not)
mbed_official 155:8435094ec241 335 * @retval None
mbed_official 155:8435094ec241 336 */
mbed_official 155:8435094ec241 337 void HRTIM_SimpleOnePulse_Init(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 338 {
mbed_official 155:8435094ec241 339 /* Check the parameters */
mbed_official 155:8435094ec241 340 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 341 assert_param(IS_HRTIM_MODE(HRTIM_BaseInitStruct->Mode));
mbed_official 155:8435094ec241 342
mbed_official 155:8435094ec241 343 /* Configure timing unit */
mbed_official 155:8435094ec241 344 HRTIM_TimingUnitBase_Config(HRTIMx, TimerIdx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 345 }
mbed_official 155:8435094ec241 346
mbed_official 155:8435094ec241 347 /**
mbed_official 155:8435094ec241 348 * @brief Initializes a timer operating in waveform mode
mbed_official 155:8435094ec241 349 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 350 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 351 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 352 * @arg 0x0 for master timer
mbed_official 155:8435094ec241 353 * @arg 0x1 to 0x5 for timers A to E
mbed_official 155:8435094ec241 354 * @param pTimerInit: pointer to the timer initialization data structure
mbed_official 155:8435094ec241 355 * @retval None
mbed_official 155:8435094ec241 356 */
mbed_official 155:8435094ec241 357 void HRTIM_Waveform_Init(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 358 uint32_t TimerIdx,
mbed_official 155:8435094ec241 359 HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct,
mbed_official 155:8435094ec241 360 HRTIM_TimerInitTypeDef* HRTIM_TimerInitStruct)
mbed_official 155:8435094ec241 361 {
mbed_official 155:8435094ec241 362 /* Check the parameters */
mbed_official 155:8435094ec241 363 assert_param(IS_HRTIM_HALFMODE(HRTIM_TimerInitStruct->HalfModeEnable));
mbed_official 155:8435094ec241 364 assert_param(IS_HRTIM_SYNCSTART(HRTIM_TimerInitStruct->StartOnSync));
mbed_official 155:8435094ec241 365 assert_param(IS_HRTIM_SYNCRESET(HRTIM_TimerInitStruct->ResetOnSync));
mbed_official 155:8435094ec241 366 assert_param(IS_HRTIM_DACSYNC(HRTIM_TimerInitStruct->DACSynchro));
mbed_official 155:8435094ec241 367 assert_param(IS_HRTIM_PRELOAD(HRTIM_TimerInitStruct->PreloadEnable));
mbed_official 155:8435094ec241 368 assert_param(IS_HRTIM_TIMERBURSTMODE(HRTIM_TimerInitStruct->BurstMode));
mbed_official 155:8435094ec241 369 assert_param(IS_HRTIM_UPDATEONREPETITION(HRTIM_TimerInitStruct->RepetitionUpdate));
mbed_official 155:8435094ec241 370
mbed_official 155:8435094ec241 371 if (TimerIdx == HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 372 {
mbed_official 155:8435094ec241 373 /* Check parameters */
mbed_official 155:8435094ec241 374 assert_param(IS_HRTIM_UPDATEGATING_MASTER(HRTIM_TimerInitStruct->UpdateGating));
mbed_official 155:8435094ec241 375
mbed_official 155:8435094ec241 376 /* Configure master timer */
mbed_official 155:8435094ec241 377 HRTIM_MasterBase_Config(HRTIMx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 378 HRTIM_MasterWaveform_Config(HRTIMx, HRTIM_TimerInitStruct);
mbed_official 155:8435094ec241 379 }
mbed_official 155:8435094ec241 380 else
mbed_official 155:8435094ec241 381 {
mbed_official 155:8435094ec241 382 /* Check parameters */
mbed_official 155:8435094ec241 383 assert_param(IS_HRTIM_UPDATEGATING_TIM(HRTIM_TimerInitStruct->UpdateGating));
mbed_official 155:8435094ec241 384
mbed_official 155:8435094ec241 385 /* Configure timing unit */
mbed_official 155:8435094ec241 386 HRTIM_TimingUnitBase_Config(HRTIMx, TimerIdx, HRTIM_BaseInitStruct);
mbed_official 155:8435094ec241 387 HRTIM_TimingUnitWaveform_Config(HRTIMx, TimerIdx, HRTIM_TimerInitStruct);
mbed_official 155:8435094ec241 388 }
mbed_official 155:8435094ec241 389 }
mbed_official 155:8435094ec241 390
mbed_official 155:8435094ec241 391 /**
mbed_official 155:8435094ec241 392 * @}
mbed_official 155:8435094ec241 393 */
mbed_official 155:8435094ec241 394
mbed_official 155:8435094ec241 395 /** @defgroup HRTIM_Group2 I/O operation methods
mbed_official 155:8435094ec241 396 * @brief Data transfers functions
mbed_official 155:8435094ec241 397 *
mbed_official 155:8435094ec241 398 @verbatim
mbed_official 155:8435094ec241 399 ===============================================================================
mbed_official 155:8435094ec241 400 ##### IO operation methods #####
mbed_official 155:8435094ec241 401 ===============================================================================
mbed_official 155:8435094ec241 402 [..]
mbed_official 155:8435094ec241 403 This subsection provides a set of functions allowing to manage the HRTIMx data
mbed_official 155:8435094ec241 404 transfers.
mbed_official 155:8435094ec241 405 (+) Starts the DLL calibration.
mbed_official 155:8435094ec241 406 (+) Starts / stops the counter of a timer operating in basic time base mode
mbed_official 155:8435094ec241 407 (+) Starts / stops the output compare signal generation on the designed timer output
mbed_official 155:8435094ec241 408 (+) Starts / stops the PWM output signal generation on the designed timer output
mbed_official 155:8435094ec241 409 (+) Enables / disables a basic capture on the designed capture unit
mbed_official 155:8435094ec241 410
mbed_official 155:8435094ec241 411 @endverbatim
mbed_official 155:8435094ec241 412 * @{
mbed_official 155:8435094ec241 413 */
mbed_official 155:8435094ec241 414
mbed_official 155:8435094ec241 415 /**
mbed_official 155:8435094ec241 416 * @brief Starts the DLL calibration
mbed_official 155:8435094ec241 417 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 418 * @param CalibrationRate: DLL calibration period
mbed_official 155:8435094ec241 419 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 420 * @arg HRTIM_CALIBRATIONRATE_7300: 7.3 ms
mbed_official 155:8435094ec241 421 * @arg HRTIM_CALIBRATIONRATE_910: 910 us
mbed_official 155:8435094ec241 422 * @arg HRTIM_CALIBRATIONRATE_114: 114 us
mbed_official 155:8435094ec241 423 * @arg HRTIM_CALIBRATIONRATE_14: 14 us
mbed_official 155:8435094ec241 424 * @retval None
mbed_official 155:8435094ec241 425 */
mbed_official 155:8435094ec241 426 void HRTIM_DLLCalibrationStart(HRTIM_TypeDef * HRTIMx, uint32_t CalibrationRate)
mbed_official 155:8435094ec241 427 {
mbed_official 155:8435094ec241 428 uint32_t HRTIM_dllcr;
mbed_official 155:8435094ec241 429
mbed_official 155:8435094ec241 430 /* Check the parameters */
mbed_official 155:8435094ec241 431 assert_param(IS_HRTIM_CALIBRATIONRATE(CalibrationRate));
mbed_official 155:8435094ec241 432
mbed_official 155:8435094ec241 433 /* Configure DLL Calibration */
mbed_official 155:8435094ec241 434 HRTIM_dllcr = (HRTIMx->HRTIM_COMMON).DLLCR;
mbed_official 155:8435094ec241 435
mbed_official 155:8435094ec241 436 /* Set the Calibration rate */
mbed_official 155:8435094ec241 437 HRTIM_dllcr &= ~(HRTIM_DLLCR_CALRTE);
mbed_official 155:8435094ec241 438 HRTIM_dllcr |= CalibrationRate;
mbed_official 155:8435094ec241 439
mbed_official 155:8435094ec241 440 /* Start DLL calibration */
mbed_official 155:8435094ec241 441 HRTIM_dllcr |= HRTIM_DLLCR_CAL;
mbed_official 155:8435094ec241 442
mbed_official 155:8435094ec241 443 /* Update HRTIMx register */
mbed_official 155:8435094ec241 444 (HRTIMx->HRTIM_COMMON).DLLCR = HRTIM_dllcr;
mbed_official 155:8435094ec241 445
mbed_official 155:8435094ec241 446 }
mbed_official 155:8435094ec241 447 /**
mbed_official 155:8435094ec241 448 * @brief Starts the counter of a timer operating in basic time base mode
mbed_official 155:8435094ec241 449 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 450 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 451 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 452 * @arg 0x5 for master timer
mbed_official 155:8435094ec241 453 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 454 * @retval None
mbed_official 155:8435094ec241 455 */
mbed_official 155:8435094ec241 456 void HRTIM_SimpleBaseStart(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx)
mbed_official 155:8435094ec241 457 {
mbed_official 155:8435094ec241 458 /* Check the parameters */
mbed_official 155:8435094ec241 459 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 460
mbed_official 155:8435094ec241 461 /* Enable the timer counter */
mbed_official 155:8435094ec241 462 __HRTIM_ENABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 463 }
mbed_official 155:8435094ec241 464
mbed_official 155:8435094ec241 465 /**
mbed_official 155:8435094ec241 466 * @brief Stops the counter of a timer operating in basic time base mode
mbed_official 155:8435094ec241 467 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 468 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 469 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 470 * @arg 0x5 for master timer
mbed_official 155:8435094ec241 471 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 472 * @retval None
mbed_official 155:8435094ec241 473 */
mbed_official 155:8435094ec241 474 void HRTIM_SimpleBaseStop(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx)
mbed_official 155:8435094ec241 475 {
mbed_official 155:8435094ec241 476 /* Check the parameters */
mbed_official 155:8435094ec241 477 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
mbed_official 155:8435094ec241 478
mbed_official 155:8435094ec241 479 /* Disable the timer counter */
mbed_official 155:8435094ec241 480 __HRTIM_DISABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 481 }
mbed_official 155:8435094ec241 482
mbed_official 155:8435094ec241 483 /**
mbed_official 155:8435094ec241 484 * @brief Starts the output compare signal generation on the designed timer output
mbed_official 155:8435094ec241 485 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 486 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 487 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 488 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 489 * @param OCChannel: Timer output
mbed_official 155:8435094ec241 490 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 491 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 492 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 493 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 494 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 495 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 496 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 497 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 498 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 499 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 500 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 501 * @retval None
mbed_official 155:8435094ec241 502 */
mbed_official 155:8435094ec241 503 void HRTIM_SimpleOCStart(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 504 uint32_t TimerIdx,
mbed_official 155:8435094ec241 505 uint32_t OCChannel)
mbed_official 155:8435094ec241 506 {
mbed_official 155:8435094ec241 507 /* Check the parameters */
mbed_official 155:8435094ec241 508 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, OCChannel));
mbed_official 155:8435094ec241 509
mbed_official 155:8435094ec241 510 /* Enable the timer output */
mbed_official 155:8435094ec241 511 (HRTIMx->HRTIM_COMMON).OENR |= OCChannel;
mbed_official 155:8435094ec241 512
mbed_official 155:8435094ec241 513 /* Enable the timer counter */
mbed_official 155:8435094ec241 514 __HRTIM_ENABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 515
mbed_official 155:8435094ec241 516 }
mbed_official 155:8435094ec241 517
mbed_official 155:8435094ec241 518 /**
mbed_official 155:8435094ec241 519 * @brief Stops the output compare signal generation on the designed timer output
mbed_official 155:8435094ec241 520 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 521 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 522 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 523 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 524 * @param OCChannel: Timer output
mbed_official 155:8435094ec241 525 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 526 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 527 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 528 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 529 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 530 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 531 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 532 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 533 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 534 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 535 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 536 * @retval None
mbed_official 155:8435094ec241 537 */
mbed_official 155:8435094ec241 538 void HRTIM_SimpleOCStop(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 539 uint32_t TimerIdx,
mbed_official 155:8435094ec241 540 uint32_t OCChannel)
mbed_official 155:8435094ec241 541 {
mbed_official 155:8435094ec241 542 /* Check the parameters */
mbed_official 155:8435094ec241 543 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, OCChannel));
mbed_official 155:8435094ec241 544
mbed_official 155:8435094ec241 545 /* Disable the timer output */
mbed_official 155:8435094ec241 546 HRTIMx->HRTIM_COMMON.DISR |= OCChannel;
mbed_official 155:8435094ec241 547
mbed_official 155:8435094ec241 548 /* Disable the timer counter */
mbed_official 155:8435094ec241 549 __HRTIM_DISABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 550 }
mbed_official 155:8435094ec241 551
mbed_official 155:8435094ec241 552 /**
mbed_official 155:8435094ec241 553 * @brief Starts the PWM output signal generation on the designed timer output
mbed_official 155:8435094ec241 554 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 555 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 556 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 557 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 558 * @param PWMChannel: Timer output
mbed_official 155:8435094ec241 559 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 560 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 561 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 562 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 563 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 564 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 565 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 566 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 567 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 568 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 569 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 570 * @retval None
mbed_official 155:8435094ec241 571 */
mbed_official 155:8435094ec241 572 void HRTIM_SimplePWMStart(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 573 uint32_t TimerIdx,
mbed_official 155:8435094ec241 574 uint32_t PWMChannel)
mbed_official 155:8435094ec241 575 {
mbed_official 155:8435094ec241 576 /* Check the parameters */
mbed_official 155:8435094ec241 577 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, PWMChannel));
mbed_official 155:8435094ec241 578
mbed_official 155:8435094ec241 579 /* Enable the timer output */
mbed_official 155:8435094ec241 580 HRTIMx->HRTIM_COMMON.OENR |= PWMChannel;
mbed_official 155:8435094ec241 581
mbed_official 155:8435094ec241 582 /* Enable the timer counter */
mbed_official 155:8435094ec241 583 __HRTIM_ENABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 584 }
mbed_official 155:8435094ec241 585
mbed_official 155:8435094ec241 586 /**
mbed_official 155:8435094ec241 587 * @brief Stops the PWM output signal generation on the designed timer output
mbed_official 155:8435094ec241 588 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 589 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 590 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 591 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 592 * @param PWMChannel: Timer output
mbed_official 155:8435094ec241 593 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 594 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 595 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 596 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 597 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 598 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 599 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 600 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 601 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 602 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 603 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 604 * @retval None
mbed_official 155:8435094ec241 605 */
mbed_official 155:8435094ec241 606 void HRTIM_SimplePWMStop(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 607 uint32_t TimerIdx,
mbed_official 155:8435094ec241 608 uint32_t PWMChannel)
mbed_official 155:8435094ec241 609 {
mbed_official 155:8435094ec241 610 /* Check the parameters */
mbed_official 155:8435094ec241 611 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, PWMChannel));
mbed_official 155:8435094ec241 612
mbed_official 155:8435094ec241 613 /* Disable the timer output */
mbed_official 155:8435094ec241 614 HRTIMx->HRTIM_COMMON.DISR |= PWMChannel;
mbed_official 155:8435094ec241 615
mbed_official 155:8435094ec241 616 /* Disable the timer counter */
mbed_official 155:8435094ec241 617 __HRTIM_DISABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 618 }
mbed_official 155:8435094ec241 619
mbed_official 155:8435094ec241 620 /**
mbed_official 155:8435094ec241 621 * @brief Enables a basic capture on the designed capture unit
mbed_official 155:8435094ec241 622 * @param HRTIMx: pointer to HRTIM peripheral
mbed_official 155:8435094ec241 623 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 624 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 625 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 626 * @param CaptureChannel: Timer output
mbed_official 155:8435094ec241 627 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 628 * @arg HRTIM_CAPTUREUNIT_1: Capture unit 1
mbed_official 155:8435094ec241 629 * @arg HRTIM_CAPTUREUNIT_2: Capture unit 2
mbed_official 155:8435094ec241 630 * @retval None
mbed_official 155:8435094ec241 631 * @note The external event triggering the capture is available for all timing
mbed_official 155:8435094ec241 632 * units. It can be used directly and is active as soon as the timing
mbed_official 155:8435094ec241 633 * unit counter is enabled.
mbed_official 155:8435094ec241 634 */
mbed_official 155:8435094ec241 635 void HRTIM_SimpleCaptureStart(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 636 uint32_t TimerIdx,
mbed_official 155:8435094ec241 637 uint32_t CaptureChannel)
mbed_official 155:8435094ec241 638 {
mbed_official 155:8435094ec241 639 /* Enable the timer counter */
mbed_official 155:8435094ec241 640 __HRTIM_ENABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 641
mbed_official 155:8435094ec241 642 }
mbed_official 155:8435094ec241 643
mbed_official 155:8435094ec241 644 /**
mbed_official 155:8435094ec241 645 * @brief Disables a basic capture on the designed capture unit
mbed_official 155:8435094ec241 646 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 647 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 648 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 649 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 650 * @param CaptureChannel: Timer output
mbed_official 155:8435094ec241 651 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 652 * @arg HRTIM_CAPTUREUNIT_1: Capture unit 1
mbed_official 155:8435094ec241 653 * @arg HRTIM_CAPTUREUNIT_2: Capture unit 2
mbed_official 155:8435094ec241 654 * @retval None
mbed_official 155:8435094ec241 655 */
mbed_official 155:8435094ec241 656 void HRTIM_SimpleCaptureStop(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 657 uint32_t TimerIdx,
mbed_official 155:8435094ec241 658 uint32_t CaptureChannel)
mbed_official 155:8435094ec241 659 {
mbed_official 155:8435094ec241 660 /* Check the parameters */
mbed_official 155:8435094ec241 661 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 662 assert_param(IS_HRTIM_CAPTUREUNIT(CaptureChannel));
mbed_official 155:8435094ec241 663
mbed_official 155:8435094ec241 664 /* Set the capture unit trigger */
mbed_official 155:8435094ec241 665 switch (CaptureChannel)
mbed_official 155:8435094ec241 666 {
mbed_official 155:8435094ec241 667 case HRTIM_CAPTUREUNIT_1:
mbed_official 155:8435094ec241 668 {
mbed_official 155:8435094ec241 669 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT1xCR = HRTIM_CAPTURETRIGGER_NONE;
mbed_official 155:8435094ec241 670 }
mbed_official 155:8435094ec241 671 break;
mbed_official 155:8435094ec241 672 case HRTIM_CAPTUREUNIT_2:
mbed_official 155:8435094ec241 673 {
mbed_official 155:8435094ec241 674 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT2xCR = HRTIM_CAPTURETRIGGER_NONE;
mbed_official 155:8435094ec241 675 }
mbed_official 155:8435094ec241 676 break;
mbed_official 155:8435094ec241 677 default:
mbed_official 155:8435094ec241 678 break;
mbed_official 155:8435094ec241 679 }
mbed_official 155:8435094ec241 680
mbed_official 155:8435094ec241 681 /* Disable the timer counter */
mbed_official 155:8435094ec241 682 if ((HRTIMx->HRTIM_TIMERx[TimerIdx].CPT1xCR == HRTIM_CAPTURETRIGGER_NONE) &&
mbed_official 155:8435094ec241 683 (HRTIMx->HRTIM_TIMERx[TimerIdx].CPT2xCR == HRTIM_CAPTURETRIGGER_NONE))
mbed_official 155:8435094ec241 684 {
mbed_official 155:8435094ec241 685 __HRTIM_DISABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 686 }
mbed_official 155:8435094ec241 687
mbed_official 155:8435094ec241 688 }
mbed_official 155:8435094ec241 689
mbed_official 155:8435094ec241 690 /**
mbed_official 155:8435094ec241 691 * @brief Enables the basic one pulse signal generation on the designed output
mbed_official 155:8435094ec241 692 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 693 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 694 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 695 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 696 * @param OnePulseChannel: Timer output
mbed_official 155:8435094ec241 697 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 698 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 699 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 700 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 701 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 702 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 703 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 704 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 705 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 706 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 707 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 708 * @retval None
mbed_official 155:8435094ec241 709 */
mbed_official 155:8435094ec241 710 void HRTIM_SimpleOnePulseStart(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 711 uint32_t TimerIdx,
mbed_official 155:8435094ec241 712 uint32_t OnePulseChannel)
mbed_official 155:8435094ec241 713 {
mbed_official 155:8435094ec241 714 /* Check the parameters */
mbed_official 155:8435094ec241 715 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, OnePulseChannel));
mbed_official 155:8435094ec241 716
mbed_official 155:8435094ec241 717 /* Enable the timer output */
mbed_official 155:8435094ec241 718 HRTIMx->HRTIM_COMMON.OENR |= OnePulseChannel;
mbed_official 155:8435094ec241 719
mbed_official 155:8435094ec241 720 /* Enable the timer counter */
mbed_official 155:8435094ec241 721 __HRTIM_ENABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 722 }
mbed_official 155:8435094ec241 723
mbed_official 155:8435094ec241 724 /**
mbed_official 155:8435094ec241 725 * @brief Disables the basic one pulse signal generation on the designed output
mbed_official 155:8435094ec241 726 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 727 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 728 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 729 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 730 * @param OnePulseChannel: Timer output
mbed_official 155:8435094ec241 731 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 732 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 733 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 734 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 735 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 736 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 737 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 738 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 739 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 740 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 741 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 742 * @retval None
mbed_official 155:8435094ec241 743 */
mbed_official 155:8435094ec241 744 void HRTIM_SimpleOnePulseStop(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 745 uint32_t TimerIdx,
mbed_official 155:8435094ec241 746 uint32_t OnePulseChannel)
mbed_official 155:8435094ec241 747 {
mbed_official 155:8435094ec241 748 /* Check the parameters */
mbed_official 155:8435094ec241 749 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, OnePulseChannel));
mbed_official 155:8435094ec241 750
mbed_official 155:8435094ec241 751 /* Disable the timer output */
mbed_official 155:8435094ec241 752 HRTIMx->HRTIM_COMMON.DISR |= OnePulseChannel;
mbed_official 155:8435094ec241 753
mbed_official 155:8435094ec241 754 /* Disable the timer counter */
mbed_official 155:8435094ec241 755 __HRTIM_DISABLE(HRTIMx, TimerIdxToTimerId[TimerIdx]);
mbed_official 155:8435094ec241 756 }
mbed_official 155:8435094ec241 757
mbed_official 155:8435094ec241 758 /**
mbed_official 155:8435094ec241 759 * @brief Starts the counter of the designated timer(s) operating in waveform mode
mbed_official 155:8435094ec241 760 * Timers can be combined (ORed) to allow for simultaneous counter start
mbed_official 155:8435094ec241 761 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 762 * @param TimersToStart: Timer counter(s) to start
mbed_official 155:8435094ec241 763 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 764 * @arg HRTIM_TIMERID_MASTER
mbed_official 155:8435094ec241 765 * @arg HRTIM_TIMERID_TIMER_A
mbed_official 155:8435094ec241 766 * @arg HRTIM_TIMERID_TIMER_B
mbed_official 155:8435094ec241 767 * @arg HRTIM_TIMERID_TIMER_C
mbed_official 155:8435094ec241 768 * @arg HRTIM_TIMERID_TIMER_D
mbed_official 155:8435094ec241 769 * @arg HRTIM_TIMERID_TIMER_E
mbed_official 155:8435094ec241 770 * @retval None
mbed_official 155:8435094ec241 771 */
mbed_official 155:8435094ec241 772 void HRTIM_WaveformCounterStart(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 773 uint32_t TimersToStart)
mbed_official 155:8435094ec241 774 {
mbed_official 155:8435094ec241 775 /* Enable timer(s) counter */
mbed_official 155:8435094ec241 776 HRTIMx->HRTIM_MASTER.MCR |= TimersToStart;
mbed_official 155:8435094ec241 777 }
mbed_official 155:8435094ec241 778
mbed_official 155:8435094ec241 779 /**
mbed_official 155:8435094ec241 780 * @brief Stops the counter of the designated timer(s) operating in waveform mode
mbed_official 155:8435094ec241 781 * Timers can be combined (ORed) to allow for simultaneous counter stop
mbed_official 155:8435094ec241 782 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 783 * @param TimersToStop: Timer counter(s) to stop
mbed_official 155:8435094ec241 784 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 785 * @arg HRTIM_TIMER_MASTER
mbed_official 155:8435094ec241 786 * @arg HRTIM_TIMER_A
mbed_official 155:8435094ec241 787 * @arg HRTIM_TIMER_B
mbed_official 155:8435094ec241 788 * @arg HRTIM_TIMER_C
mbed_official 155:8435094ec241 789 * @arg HRTIM_TIMER_D
mbed_official 155:8435094ec241 790 * @arg HRTIM_TIMER_E
mbed_official 155:8435094ec241 791 * @retval None
mbed_official 155:8435094ec241 792 */
mbed_official 155:8435094ec241 793 void HRTIM_WaveformCounterStop(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 794 uint32_t TimersToStop)
mbed_official 155:8435094ec241 795 {
mbed_official 155:8435094ec241 796 /* Disable timer(s) counter */
mbed_official 155:8435094ec241 797 HRTIMx->HRTIM_MASTER.MCR &= ~TimersToStop;
mbed_official 155:8435094ec241 798 }
mbed_official 155:8435094ec241 799
mbed_official 155:8435094ec241 800 /**
mbed_official 155:8435094ec241 801 * @brief Enables the generation of the waveform signal on the designated output(s)
mbed_official 155:8435094ec241 802 * Outputs can be combined (ORed) to allow for simultaneous output enabling
mbed_official 155:8435094ec241 803 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 804 * @param OutputsToStart: Timer output(s) to enable
mbed_official 155:8435094ec241 805 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 806 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 807 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 808 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 809 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 810 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 811 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 812 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 813 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 814 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 815 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 816 * @retval None
mbed_official 155:8435094ec241 817 */
mbed_official 155:8435094ec241 818 void HRTIM_WaveformOutputStart(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 819 uint32_t OutputsToStart)
mbed_official 155:8435094ec241 820 {
mbed_official 155:8435094ec241 821 /* Enable the HRTIM outputs */
mbed_official 155:8435094ec241 822 HRTIMx->HRTIM_COMMON.OENR = OutputsToStart;
mbed_official 155:8435094ec241 823 }
mbed_official 155:8435094ec241 824
mbed_official 155:8435094ec241 825 /**
mbed_official 155:8435094ec241 826 * @brief Disables the generation of the waveform signal on the designated output(s)
mbed_official 155:8435094ec241 827 * Outputs can be combined (ORed) to allow for simultaneous output disabling
mbed_official 155:8435094ec241 828 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 829 * @param OutputsToStop: Timer output(s) to disable
mbed_official 155:8435094ec241 830 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 831 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 832 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 833 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 834 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 835 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 836 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 837 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 838 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 839 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 840 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 841 * @retval None
mbed_official 155:8435094ec241 842 */
mbed_official 155:8435094ec241 843 void HRTIM_WaveformOutputStop(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 844 uint32_t OutputsToStop)
mbed_official 155:8435094ec241 845 {
mbed_official 155:8435094ec241 846 /* Disable the HRTIM outputs */
mbed_official 155:8435094ec241 847 HRTIMx->HRTIM_COMMON.DISR = OutputsToStop;
mbed_official 155:8435094ec241 848 }
mbed_official 155:8435094ec241 849
mbed_official 155:8435094ec241 850 /**
mbed_official 155:8435094ec241 851 * @brief Enables or disables the Master and slaves interrupt request
mbed_official 155:8435094ec241 852 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 853 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 854 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 855 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 856 * @param HRTIM_IT: specifies the HRTIM interrupts sources to be enabled or disabled.
mbed_official 155:8435094ec241 857 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 858 * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt source
mbed_official 155:8435094ec241 859 * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt source
mbed_official 155:8435094ec241 860 * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt Interrupt source
mbed_official 155:8435094ec241 861 * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 Interrupt source
mbed_official 155:8435094ec241 862 * @arg HRTIM_MASTER_IT_MREP: Master Repetition Interrupt source
mbed_official 155:8435094ec241 863 * @arg HRTIM_MASTER_IT_SYNC: Synchronization input Interrupt source
mbed_official 155:8435094ec241 864 * @arg HRTIM_MASTER_IT_MUPD: Master update Interrupt source
mbed_official 155:8435094ec241 865 * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 Interrupt source
mbed_official 155:8435094ec241 866 * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 Interrupt source
mbed_official 155:8435094ec241 867 * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 Interrupt source
mbed_official 155:8435094ec241 868 * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 Interrupt source
mbed_official 155:8435094ec241 869 * @arg HRTIM_TIM_IT_REP: Timer repetition Interrupt source
mbed_official 155:8435094ec241 870 * @arg HRTIM_TIM_IT_UPD: Timer update Interrupt source
mbed_official 155:8435094ec241 871 * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 Interrupt source
mbed_official 155:8435094ec241 872 * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 Interrupt source
mbed_official 155:8435094ec241 873 * @arg HRTIM_TIM_IT_SET1: Timer output 1 set Interrupt source
mbed_official 155:8435094ec241 874 * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset Interrupt source
mbed_official 155:8435094ec241 875 * @arg HRTIM_TIM_IT_SET2: Timer output 2 set Interrupt source
mbed_official 155:8435094ec241 876 * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset Interrupt source
mbed_official 155:8435094ec241 877 * @arg HRTIM_TIM_IT_RST: Timer reset Interrupt source
mbed_official 155:8435094ec241 878 * @arg HRTIM_TIM_IT_DLYPRT1: Timer delay protection Interrupt source
mbed_official 155:8435094ec241 879 * @param NewState: new state of the TIM interrupts.
mbed_official 155:8435094ec241 880 * This parameter can be: ENABLE or DISABLE.
mbed_official 155:8435094ec241 881 * @retval None
mbed_official 155:8435094ec241 882 */
mbed_official 155:8435094ec241 883 void HRTIM_ITConfig(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_IT, FunctionalState NewState)
mbed_official 155:8435094ec241 884 {
mbed_official 155:8435094ec241 885 if(TimerIdx != HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 886 {
mbed_official 155:8435094ec241 887 if(NewState != DISABLE)
mbed_official 155:8435094ec241 888 {
mbed_official 155:8435094ec241 889 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxDIER |= HRTIM_IT;
mbed_official 155:8435094ec241 890 }
mbed_official 155:8435094ec241 891 else
mbed_official 155:8435094ec241 892 {
mbed_official 155:8435094ec241 893 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxDIER &= ~HRTIM_IT;
mbed_official 155:8435094ec241 894 }
mbed_official 155:8435094ec241 895 }
mbed_official 155:8435094ec241 896 else
mbed_official 155:8435094ec241 897 {
mbed_official 155:8435094ec241 898 if(NewState != DISABLE)
mbed_official 155:8435094ec241 899 {
mbed_official 155:8435094ec241 900 HRTIMx->HRTIM_MASTER.MDIER |= HRTIM_IT;
mbed_official 155:8435094ec241 901 }
mbed_official 155:8435094ec241 902 else
mbed_official 155:8435094ec241 903 {
mbed_official 155:8435094ec241 904 HRTIMx->HRTIM_MASTER.MDIER &= ~HRTIM_IT;
mbed_official 155:8435094ec241 905 }
mbed_official 155:8435094ec241 906 }
mbed_official 155:8435094ec241 907 }
mbed_official 155:8435094ec241 908
mbed_official 155:8435094ec241 909 /**
mbed_official 155:8435094ec241 910 * @brief Enables or disables the common interrupt request
mbed_official 155:8435094ec241 911 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 912 * @param HRTIM_IT: specifies the HRTIM interrupts sources to be enabled or disabled.
mbed_official 155:8435094ec241 913 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 914 * @arg HRTIM_IT_FLT1: Fault 1 interrupt source
mbed_official 155:8435094ec241 915 * @arg HRTIM_IT_FLT2: Fault 2 interrupt source
mbed_official 155:8435094ec241 916 * @arg HRTIM_IT_FLT3: Fault 3 interrupt Interrupt source
mbed_official 155:8435094ec241 917 * @arg HRTIM_IT_FLT4: Fault 4 Interrupt source
mbed_official 155:8435094ec241 918 * @arg HRTIM_IT_FLT5: Fault 5 Interrupt source
mbed_official 155:8435094ec241 919 * @arg HRTIM_IT_SYSFLT: System Fault Interrupt source
mbed_official 155:8435094ec241 920 * @arg HRTIM_IT_DLLRDY: DLL ready Interrupt source
mbed_official 155:8435094ec241 921 * @arg HRTIM_IT_BMPER: Burst mode period Interrupt source
mbed_official 155:8435094ec241 922 * @param NewState: new state of the TIM interrupts.
mbed_official 155:8435094ec241 923 * This parameter can be: ENABLE or DISABLE.
mbed_official 155:8435094ec241 924 * @retval None
mbed_official 155:8435094ec241 925 */
mbed_official 155:8435094ec241 926 void HRTIM_ITCommonConfig(HRTIM_TypeDef * HRTIMx, uint32_t HRTIM_CommonIT, FunctionalState NewState)
mbed_official 155:8435094ec241 927 {
mbed_official 155:8435094ec241 928 if(NewState != DISABLE)
mbed_official 155:8435094ec241 929 {
mbed_official 155:8435094ec241 930 HRTIMx->HRTIM_COMMON.IER |= HRTIM_CommonIT;
mbed_official 155:8435094ec241 931 }
mbed_official 155:8435094ec241 932 else
mbed_official 155:8435094ec241 933 {
mbed_official 155:8435094ec241 934 HRTIMx->HRTIM_COMMON.IER &= ~HRTIM_CommonIT;
mbed_official 155:8435094ec241 935 }
mbed_official 155:8435094ec241 936 }
mbed_official 155:8435094ec241 937
mbed_official 155:8435094ec241 938 /**
mbed_official 155:8435094ec241 939 * @brief Clears the Master and slaves interrupt flags
mbed_official 155:8435094ec241 940 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 941 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 942 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 943 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 944 * @param HRTIM_FLAG: specifies the HRTIM flags sources to be cleared.
mbed_official 155:8435094ec241 945 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 946 * @arg HRTIM_MASTER_FLAG_MCMP1: Master compare 1 interrupt flag
mbed_official 155:8435094ec241 947 * @arg HRTIM_MASTER_FLAG_MCMP2: Master compare 2 interrupt flag
mbed_official 155:8435094ec241 948 * @arg HRTIM_MASTER_FLAG_MCMP3: Master compare 3 interrupt Interrupt flag
mbed_official 155:8435094ec241 949 * @arg HRTIM_MASTER_FLAG_MCMP4: Master compare 4 Interrupt flag
mbed_official 155:8435094ec241 950 * @arg HRTIM_MASTER_FLAG_MREP: Master Repetition Interrupt flag
mbed_official 155:8435094ec241 951 * @arg HRTIM_MASTER_FLAG_SYNC: Synchronization input Interrupt flag
mbed_official 155:8435094ec241 952 * @arg HRTIM_MASTER_FLAG_MUPD: Master update Interrupt flag
mbed_official 155:8435094ec241 953 * @arg HRTIM_TIM_FLAG_CMP1: Timer compare 1 Interrupt flag
mbed_official 155:8435094ec241 954 * @arg HRTIM_TIM_FLAG_CMP2: Timer compare 2 Interrupt flag
mbed_official 155:8435094ec241 955 * @arg HRTIM_TIM_FLAG_CMP3: Timer compare 3 Interrupt flag
mbed_official 155:8435094ec241 956 * @arg HRTIM_TIM_FLAG_CMP4: Timer compare 4 Interrupt flag
mbed_official 155:8435094ec241 957 * @arg HRTIM_TIM_FLAG_REP: Timer repetition Interrupt flag
mbed_official 155:8435094ec241 958 * @arg HRTIM_TIM_FLAG_UPD: Timer update Interrupt flag
mbed_official 155:8435094ec241 959 * @arg HRTIM_TIM_FLAG_CPT1: Timer capture 1 Interrupt flag
mbed_official 155:8435094ec241 960 * @arg HRTIM_TIM_FLAG_CPT2: Timer capture 2 Interrupt flag
mbed_official 155:8435094ec241 961 * @arg HRTIM_TIM_FLAG_SET1: Timer output 1 set Interrupt flag
mbed_official 155:8435094ec241 962 * @arg HRTIM_TIM_FLAG_RST1: Timer output 1 reset Interrupt flag
mbed_official 155:8435094ec241 963 * @arg HRTIM_TIM_FLAG_SET2: Timer output 2 set Interrupt flag
mbed_official 155:8435094ec241 964 * @arg HRTIM_TIM_FLAG_RST2: Timer output 2 reset Interrupt flag
mbed_official 155:8435094ec241 965 * @arg HRTIM_TIM_FLAG_RST: Timer reset Interrupt flag
mbed_official 155:8435094ec241 966 * @arg HRTIM_TIM_FLAG_DLYPRT1: Timer delay protection Interrupt flag
mbed_official 155:8435094ec241 967 * @retval None
mbed_official 155:8435094ec241 968 */
mbed_official 155:8435094ec241 969 void HRTIM_ClearFlag(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
mbed_official 155:8435094ec241 970 {
mbed_official 155:8435094ec241 971 if(TimerIdx != HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 972 {
mbed_official 155:8435094ec241 973 HRTIMx->HRTIM_MASTER.MICR |= HRTIM_FLAG;
mbed_official 155:8435094ec241 974 }
mbed_official 155:8435094ec241 975 else
mbed_official 155:8435094ec241 976 {
mbed_official 155:8435094ec241 977 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxICR |= HRTIM_FLAG;
mbed_official 155:8435094ec241 978 }
mbed_official 155:8435094ec241 979 }
mbed_official 155:8435094ec241 980
mbed_official 155:8435094ec241 981 /**
mbed_official 155:8435094ec241 982 * @brief Clears the common interrupt flags
mbed_official 155:8435094ec241 983 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 984 * @param HRTIM_FLAG: specifies the HRTIM flags to be cleared.
mbed_official 155:8435094ec241 985 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 986 * @arg HRTIM_FLAG_FLT1: Fault 1 interrupt flag
mbed_official 155:8435094ec241 987 * @arg HRTIM_FLAG_FLT2: Fault 2 interrupt flag
mbed_official 155:8435094ec241 988 * @arg HRTIM_FLAG_FLT3: Fault 3 interrupt Interrupt flag
mbed_official 155:8435094ec241 989 * @arg HRTIM_FLAG_FLT4: Fault 4 Interrupt flag
mbed_official 155:8435094ec241 990 * @arg HRTIM_FLAG_FLT5: Fault 5 Interrupt flag
mbed_official 155:8435094ec241 991 * @arg HRTIM_FLAG_SYSFLT: System Fault Interrupt flag
mbed_official 155:8435094ec241 992 * @arg HRTIM_FLAG_DLLRDY: DLL ready Interrupt flag
mbed_official 155:8435094ec241 993 * @arg HRTIM_FLAG_BMPER: Burst mode period Interrupt flag
mbed_official 155:8435094ec241 994 * @retval None
mbed_official 155:8435094ec241 995 */
mbed_official 155:8435094ec241 996 void HRTIM_ClearCommonFlag(HRTIM_TypeDef * HRTIMx, uint32_t HRTIM_CommonFLAG)
mbed_official 155:8435094ec241 997 {
mbed_official 155:8435094ec241 998 HRTIMx->HRTIM_COMMON.ICR |= HRTIM_CommonFLAG;
mbed_official 155:8435094ec241 999 }
mbed_official 155:8435094ec241 1000
mbed_official 155:8435094ec241 1001 /**
mbed_official 155:8435094ec241 1002 * @brief Clears the Master and slaves interrupt request pending bits
mbed_official 155:8435094ec241 1003 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1004 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1005 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1006 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1007 * @param HRTIM_IT: specifies the HRTIM interrupts sources to be enabled or disabled.
mbed_official 155:8435094ec241 1008 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1009 * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt source
mbed_official 155:8435094ec241 1010 * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt source
mbed_official 155:8435094ec241 1011 * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt Interrupt source
mbed_official 155:8435094ec241 1012 * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 Interrupt source
mbed_official 155:8435094ec241 1013 * @arg HRTIM_MASTER_IT_MREP: Master Repetition Interrupt source
mbed_official 155:8435094ec241 1014 * @arg HRTIM_MASTER_IT_SYNC: Synchronization input Interrupt source
mbed_official 155:8435094ec241 1015 * @arg HRTIM_MASTER_IT_MUPD: Master update Interrupt source
mbed_official 155:8435094ec241 1016 * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 Interrupt source
mbed_official 155:8435094ec241 1017 * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 Interrupt source
mbed_official 155:8435094ec241 1018 * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 Interrupt source
mbed_official 155:8435094ec241 1019 * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 Interrupt source
mbed_official 155:8435094ec241 1020 * @arg HRTIM_TIM_IT_REP: Timer repetition Interrupt source
mbed_official 155:8435094ec241 1021 * @arg HRTIM_TIM_IT_UPD: Timer update Interrupt source
mbed_official 155:8435094ec241 1022 * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 Interrupt source
mbed_official 155:8435094ec241 1023 * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 Interrupt source
mbed_official 155:8435094ec241 1024 * @arg HRTIM_TIM_IT_SET1: Timer output 1 set Interrupt source
mbed_official 155:8435094ec241 1025 * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset Interrupt source
mbed_official 155:8435094ec241 1026 * @arg HRTIM_TIM_IT_SET2: Timer output 2 set Interrupt source
mbed_official 155:8435094ec241 1027 * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset Interrupt source
mbed_official 155:8435094ec241 1028 * @arg HRTIM_TIM_IT_RST: Timer reset Interrupt source
mbed_official 155:8435094ec241 1029 * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection Interrupt source
mbed_official 155:8435094ec241 1030 * @retval None
mbed_official 155:8435094ec241 1031 */
mbed_official 155:8435094ec241 1032 void HRTIM_ClearITPendingBit(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_IT)
mbed_official 155:8435094ec241 1033 {
mbed_official 155:8435094ec241 1034 if(TimerIdx != HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 1035 {
mbed_official 155:8435094ec241 1036 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxICR |= HRTIM_IT;
mbed_official 155:8435094ec241 1037 }
mbed_official 155:8435094ec241 1038 else
mbed_official 155:8435094ec241 1039 {
mbed_official 155:8435094ec241 1040 HRTIMx->HRTIM_MASTER.MICR |= HRTIM_IT;
mbed_official 155:8435094ec241 1041 }
mbed_official 155:8435094ec241 1042 }
mbed_official 155:8435094ec241 1043
mbed_official 155:8435094ec241 1044 /**
mbed_official 155:8435094ec241 1045 * @brief Clears the common interrupt pending bits
mbed_official 155:8435094ec241 1046 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1047 * @param HRTIM_IT: specifies the HRTIM interrupts sources to be cleared.
mbed_official 155:8435094ec241 1048 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1049 * @arg HRTIM_IT_FLT1: Fault 1 interrupt source
mbed_official 155:8435094ec241 1050 * @arg HRTIM_IT_FLT2: Fault 2 interrupt source
mbed_official 155:8435094ec241 1051 * @arg HRTIM_IT_FLT3: Fault 3 interrupt Interrupt source
mbed_official 155:8435094ec241 1052 * @arg HRTIM_IT_FLT4: Fault 4 Interrupt source
mbed_official 155:8435094ec241 1053 * @arg HRTIM_IT_FLT5: Fault 5 Interrupt source
mbed_official 155:8435094ec241 1054 * @arg HRTIM_IT_SYSFLT: System Fault Interrupt source
mbed_official 155:8435094ec241 1055 * @arg HRTIM_IT_DLLRDY: DLL ready Interrupt source
mbed_official 155:8435094ec241 1056 * @arg HRTIM_IT_BMPER: Burst mode period Interrupt source
mbed_official 155:8435094ec241 1057 * @retval None
mbed_official 155:8435094ec241 1058 */
mbed_official 155:8435094ec241 1059 void HRTIM_ClearCommonITPendingBit(HRTIM_TypeDef * HRTIMx, uint32_t HRTIM_CommonIT)
mbed_official 155:8435094ec241 1060 {
mbed_official 155:8435094ec241 1061 HRTIMx->HRTIM_COMMON.ICR |= HRTIM_CommonIT;
mbed_official 155:8435094ec241 1062 }
mbed_official 155:8435094ec241 1063
mbed_official 155:8435094ec241 1064
mbed_official 155:8435094ec241 1065 /**
mbed_official 155:8435094ec241 1066 * @brief Checks whether the specified HRTIM flag is set or not.
mbed_official 155:8435094ec241 1067 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1068 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1069 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1070 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1071 * @param HRTIM_FLAG: specifies the HRTIM flags to check.
mbed_official 155:8435094ec241 1072 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1073 * @arg HRTIM_MASTER_FLAG_MCMP1: Master compare 1 interrupt flag
mbed_official 155:8435094ec241 1074 * @arg HRTIM_MASTER_FLAG_MCMP2: Master compare 2 interrupt flag
mbed_official 155:8435094ec241 1075 * @arg HRTIM_MASTER_FLAG_MCMP3: Master compare 3 interrupt Interrupt flag
mbed_official 155:8435094ec241 1076 * @arg HRTIM_MASTER_FLAG_MCMP4: Master compare 4 Interrupt flag
mbed_official 155:8435094ec241 1077 * @arg HRTIM_MASTER_FLAG_MREP: Master Repetition Interrupt flag
mbed_official 155:8435094ec241 1078 * @arg HRTIM_MASTER_FLAG_SYNC: Synchronization input Interrupt flag
mbed_official 155:8435094ec241 1079 * @arg HRTIM_MASTER_FLAG_MUPD: Master update Interrupt flag
mbed_official 155:8435094ec241 1080 * @arg HRTIM_TIM_FLAG_CMP1: Timer compare 1 Interrupt flag
mbed_official 155:8435094ec241 1081 * @arg HRTIM_TIM_FLAG_CMP2: Timer compare 2 Interrupt flag
mbed_official 155:8435094ec241 1082 * @arg HRTIM_TIM_FLAG_CMP3: Timer compare 3 Interrupt flag
mbed_official 155:8435094ec241 1083 * @arg HRTIM_TIM_FLAG_CMP4: Timer compare 4 Interrupt flag
mbed_official 155:8435094ec241 1084 * @arg HRTIM_TIM_FLAG_REP: Timer repetition Interrupt flag
mbed_official 155:8435094ec241 1085 * @arg HRTIM_TIM_FLAG_UPD: Timer update Interrupt flag
mbed_official 155:8435094ec241 1086 * @arg HRTIM_TIM_FLAG_CPT1: Timer capture 1 Interrupt flag
mbed_official 155:8435094ec241 1087 * @arg HRTIM_TIM_FLAG_CPT2: Timer capture 2 Interrupt flag
mbed_official 155:8435094ec241 1088 * @arg HRTIM_TIM_FLAG_SET1: Timer output 1 set Interrupt flag
mbed_official 155:8435094ec241 1089 * @arg HRTIM_TIM_FLAG_RST1: Timer output 1 reset Interrupt flag
mbed_official 155:8435094ec241 1090 * @arg HRTIM_TIM_FLAG_SET2: Timer output 2 set Interrupt flag
mbed_official 155:8435094ec241 1091 * @arg HRTIM_TIM_FLAG_RST2: Timer output 2 reset Interrupt flag
mbed_official 155:8435094ec241 1092 * @arg HRTIM_TIM_FLAG_RST: Timer reset Interrupt flag
mbed_official 155:8435094ec241 1093 * @arg HRTIM_TIM_FLAG_DLYPRT: Timer delay protection Interrupt flag
mbed_official 155:8435094ec241 1094 * @retval The new state of HRTIM_FLAG (SET or RESET).
mbed_official 155:8435094ec241 1095 */
mbed_official 155:8435094ec241 1096 FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
mbed_official 155:8435094ec241 1097 {
mbed_official 155:8435094ec241 1098 FlagStatus bitstatus = RESET;
mbed_official 155:8435094ec241 1099
mbed_official 155:8435094ec241 1100 if(TimerIdx != HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 1101 {
mbed_official 155:8435094ec241 1102 if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
mbed_official 155:8435094ec241 1103 {
mbed_official 155:8435094ec241 1104 bitstatus = SET;
mbed_official 155:8435094ec241 1105 }
mbed_official 155:8435094ec241 1106 else
mbed_official 155:8435094ec241 1107 {
mbed_official 155:8435094ec241 1108 bitstatus = RESET;
mbed_official 155:8435094ec241 1109 }
mbed_official 155:8435094ec241 1110 }
mbed_official 155:8435094ec241 1111 else
mbed_official 155:8435094ec241 1112 {
mbed_official 155:8435094ec241 1113 if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
mbed_official 155:8435094ec241 1114 {
mbed_official 155:8435094ec241 1115 bitstatus = SET;
mbed_official 155:8435094ec241 1116 }
mbed_official 155:8435094ec241 1117 else
mbed_official 155:8435094ec241 1118 {
mbed_official 155:8435094ec241 1119 bitstatus = RESET;
mbed_official 155:8435094ec241 1120 }
mbed_official 155:8435094ec241 1121 }
mbed_official 155:8435094ec241 1122 return bitstatus;
mbed_official 155:8435094ec241 1123 }
mbed_official 155:8435094ec241 1124
mbed_official 155:8435094ec241 1125 /**
mbed_official 155:8435094ec241 1126 * @brief Checks whether the specified HRTIM common flag is set or not.
mbed_official 155:8435094ec241 1127 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1128 * @param HRTIM_FLAG: specifies the HRTIM flags to check.
mbed_official 155:8435094ec241 1129 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1130 * @arg HRTIM_FLAG_FLT1: Fault 1 interrupt flag
mbed_official 155:8435094ec241 1131 * @arg HRTIM_FLAG_FLT2: Fault 2 interrupt flag
mbed_official 155:8435094ec241 1132 * @arg HRTIM_FLAG_FLT3: Fault 3 interrupt Interrupt flag
mbed_official 155:8435094ec241 1133 * @arg HRTIM_FLAG_FLT4: Fault 4 Interrupt flag
mbed_official 155:8435094ec241 1134 * @arg HRTIM_FLAG_FLT5: Fault 5 Interrupt flag
mbed_official 155:8435094ec241 1135 * @arg HRTIM_FLAG_SYSFLT: System Fault Interrupt flag
mbed_official 155:8435094ec241 1136 * @arg HRTIM_FLAG_DLLRDY: DLL ready Interrupt flag
mbed_official 155:8435094ec241 1137 * @arg HRTIM_FLAG_BMPER: Burst mode period Interrupt flag
mbed_official 155:8435094ec241 1138 * @retval The new state of HRTIM_FLAG (SET or RESET).
mbed_official 155:8435094ec241 1139 */
mbed_official 155:8435094ec241 1140 FlagStatus HRTIM_GetCommonFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t HRTIM_CommonFLAG)
mbed_official 155:8435094ec241 1141 {
mbed_official 155:8435094ec241 1142 FlagStatus bitstatus = RESET;
mbed_official 155:8435094ec241 1143
mbed_official 155:8435094ec241 1144 if((HRTIMx->HRTIM_COMMON.ISR & HRTIM_CommonFLAG) != RESET)
mbed_official 155:8435094ec241 1145 {
mbed_official 155:8435094ec241 1146 bitstatus = SET;
mbed_official 155:8435094ec241 1147 }
mbed_official 155:8435094ec241 1148 else
mbed_official 155:8435094ec241 1149 {
mbed_official 155:8435094ec241 1150 bitstatus = RESET;
mbed_official 155:8435094ec241 1151 }
mbed_official 155:8435094ec241 1152 return bitstatus;
mbed_official 155:8435094ec241 1153 }
mbed_official 155:8435094ec241 1154
mbed_official 155:8435094ec241 1155 /**
mbed_official 155:8435094ec241 1156 * @brief Checks whether the specified HRTIM interrupt has occurred or not.
mbed_official 155:8435094ec241 1157 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1158 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1159 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1160 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1161 * @param HRTIM_IT: specifies the HRTIM flags sources to be cleared.
mbed_official 155:8435094ec241 1162 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1163 * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt
mbed_official 155:8435094ec241 1164 * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt
mbed_official 155:8435094ec241 1165 * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt Interrupt
mbed_official 155:8435094ec241 1166 * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 Interrupt
mbed_official 155:8435094ec241 1167 * @arg HRTIM_MASTER_IT_MREP: Master Repetition Interrupt
mbed_official 155:8435094ec241 1168 * @arg HRTIM_MASTER_IT_SYNC: Synchronization input Interrupt
mbed_official 155:8435094ec241 1169 * @arg HRTIM_MASTER_IT_MUPD: Master update Interrupt
mbed_official 155:8435094ec241 1170 * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 Interrupt
mbed_official 155:8435094ec241 1171 * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 Interrupt
mbed_official 155:8435094ec241 1172 * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 Interrupt
mbed_official 155:8435094ec241 1173 * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 Interrupt
mbed_official 155:8435094ec241 1174 * @arg HRTIM_TIM_IT_REP: Timer repetition Interrupt
mbed_official 155:8435094ec241 1175 * @arg HRTIM_TIM_IT_UPD: Timer update Interrupt
mbed_official 155:8435094ec241 1176 * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 Interrupt
mbed_official 155:8435094ec241 1177 * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 Interrupt
mbed_official 155:8435094ec241 1178 * @arg HRTIM_TIM_IT_SET1: Timer output 1 set Interrupt
mbed_official 155:8435094ec241 1179 * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset Interrupt
mbed_official 155:8435094ec241 1180 * @arg HRTIM_TIM_IT_SET2: Timer output 2 set Interrupt
mbed_official 155:8435094ec241 1181 * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset Interrupt
mbed_official 155:8435094ec241 1182 * @arg HRTIM_TIM_IT_RST: Timer reset Interrupt
mbed_official 155:8435094ec241 1183 * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection Interrupt
mbed_official 155:8435094ec241 1184 * @retval The new state of the HRTIM_IT(SET or RESET).
mbed_official 155:8435094ec241 1185 */
mbed_official 155:8435094ec241 1186 ITStatus HRTIM_GetITStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_IT)
mbed_official 155:8435094ec241 1187 {
mbed_official 155:8435094ec241 1188 ITStatus bitstatus = RESET;
mbed_official 155:8435094ec241 1189 uint16_t itstatus = 0x0, itenable = 0x0;
mbed_official 155:8435094ec241 1190
mbed_official 155:8435094ec241 1191 if(TimerIdx != HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 1192 {
mbed_official 155:8435094ec241 1193 itstatus = HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_IT;
mbed_official 155:8435094ec241 1194
mbed_official 155:8435094ec241 1195 itenable = HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxDIER & HRTIM_IT;
mbed_official 155:8435094ec241 1196 if ((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET))
mbed_official 155:8435094ec241 1197 {
mbed_official 155:8435094ec241 1198 bitstatus = SET;
mbed_official 155:8435094ec241 1199 }
mbed_official 155:8435094ec241 1200 else
mbed_official 155:8435094ec241 1201 {
mbed_official 155:8435094ec241 1202 bitstatus = RESET;
mbed_official 155:8435094ec241 1203 }
mbed_official 155:8435094ec241 1204 }
mbed_official 155:8435094ec241 1205 else
mbed_official 155:8435094ec241 1206 {
mbed_official 155:8435094ec241 1207 itstatus = HRTIMx->HRTIM_MASTER.MISR & HRTIM_IT;
mbed_official 155:8435094ec241 1208
mbed_official 155:8435094ec241 1209 itenable = HRTIMx->HRTIM_MASTER.MDIER & HRTIM_IT;
mbed_official 155:8435094ec241 1210 if ((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET))
mbed_official 155:8435094ec241 1211 {
mbed_official 155:8435094ec241 1212 bitstatus = SET;
mbed_official 155:8435094ec241 1213 }
mbed_official 155:8435094ec241 1214 else
mbed_official 155:8435094ec241 1215 {
mbed_official 155:8435094ec241 1216 bitstatus = RESET;
mbed_official 155:8435094ec241 1217 }
mbed_official 155:8435094ec241 1218 }
mbed_official 155:8435094ec241 1219 return bitstatus;
mbed_official 155:8435094ec241 1220 }
mbed_official 155:8435094ec241 1221
mbed_official 155:8435094ec241 1222 /**
mbed_official 155:8435094ec241 1223 * @brief Checks whether the specified HRTIM common interrupt has occurred or not.
mbed_official 155:8435094ec241 1224 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1225 * @param HRTIM_IT: specifies the HRTIM interrupt source to check.
mbed_official 155:8435094ec241 1226 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1227 * @arg HRTIM_IT_FLT1: Fault 1 interrupt
mbed_official 155:8435094ec241 1228 * @arg HRTIM_IT_FLT2: Fault 2 interrupt
mbed_official 155:8435094ec241 1229 * @arg HRTIM_IT_FLT3: Fault 3 interrupt Interrupt
mbed_official 155:8435094ec241 1230 * @arg HRTIM_IT_FLT4: Fault 4 Interrupt
mbed_official 155:8435094ec241 1231 * @arg HRTIM_IT_FLT5: Fault 5 Interrupt
mbed_official 155:8435094ec241 1232 * @arg HRTIM_IT_SYSFLT: System Fault Interrupt
mbed_official 155:8435094ec241 1233 * @arg HRTIM_IT_DLLRDY: DLL ready Interrupt flag
mbed_official 155:8435094ec241 1234 * @arg HRTIM_IT_BMPER: Burst mode period Interrupt
mbed_official 155:8435094ec241 1235 * @retval The new state of HRTIM_FLAG (SET or RESET).
mbed_official 155:8435094ec241 1236 */
mbed_official 155:8435094ec241 1237 ITStatus HRTIM_GetCommonITStatus(HRTIM_TypeDef * HRTIMx, uint32_t HRTIM_CommonIT)
mbed_official 155:8435094ec241 1238 {
mbed_official 155:8435094ec241 1239 ITStatus bitstatus = RESET;
mbed_official 155:8435094ec241 1240 uint16_t itstatus = 0x0, itenable = 0x0;
mbed_official 155:8435094ec241 1241
mbed_official 155:8435094ec241 1242 itstatus = HRTIMx->HRTIM_COMMON.ISR & HRTIM_CommonIT;
mbed_official 155:8435094ec241 1243 itenable = HRTIMx->HRTIM_COMMON.IER & HRTIM_CommonIT;
mbed_official 155:8435094ec241 1244
mbed_official 155:8435094ec241 1245 if ((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET))
mbed_official 155:8435094ec241 1246 {
mbed_official 155:8435094ec241 1247 bitstatus = SET;
mbed_official 155:8435094ec241 1248 }
mbed_official 155:8435094ec241 1249 else
mbed_official 155:8435094ec241 1250 {
mbed_official 155:8435094ec241 1251 bitstatus = RESET;
mbed_official 155:8435094ec241 1252 }
mbed_official 155:8435094ec241 1253
mbed_official 155:8435094ec241 1254 return bitstatus;
mbed_official 155:8435094ec241 1255 }
mbed_official 155:8435094ec241 1256
mbed_official 155:8435094ec241 1257 /**
mbed_official 155:8435094ec241 1258 * @brief Enables or disables the HRTIMx's DMA Requests.
mbed_official 155:8435094ec241 1259 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1260 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1261 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1262 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1263 * @param HRTIM_DMA: specifies the DMA Request sources.
mbed_official 155:8435094ec241 1264 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 1265 * @arg HRTIM_MASTER_DMA_MCMP1: Master compare 1 DMA request source
mbed_official 155:8435094ec241 1266 * @arg HRTIM_MASTER_DMA_MCMP2: Master compare 2 DMA request source
mbed_official 155:8435094ec241 1267 * @arg HRTIM_MASTER_DMA_MCMP3: Master compare 3 DMA request source
mbed_official 155:8435094ec241 1268 * @arg HRTIM_MASTER_DMA_MCMP4: Master compare 4 DMA request source
mbed_official 155:8435094ec241 1269 * @arg HRTIM_MASTER_DMA_MREP: Master Repetition DMA request source
mbed_official 155:8435094ec241 1270 * @arg HRTIM_MASTER_DMA_SYNC: Synchronization input DMA request source
mbed_official 155:8435094ec241 1271 * @arg HRTIM_MASTER_DMA_MUPD:Master update DMA request source
mbed_official 155:8435094ec241 1272 * @arg HRTIM_TIM_DMA_CMP1: Timer compare 1 DMA request source
mbed_official 155:8435094ec241 1273 * @arg HRTIM_TIM_DMA_CMP2: Timer compare 2 DMA request source
mbed_official 155:8435094ec241 1274 * @arg HRTIM_TIM_DMA_CMP3: Timer compare 3 DMA request source
mbed_official 155:8435094ec241 1275 * @arg HRTIM_TIM_DMA_CMP4: Timer compare 4 DMA request source
mbed_official 155:8435094ec241 1276 * @arg HRTIM_TIM_DMA_REP: Timer repetition DMA request source
mbed_official 155:8435094ec241 1277 * @arg HRTIM_TIM_DMA_UPD: Timer update DMA request source
mbed_official 155:8435094ec241 1278 * @arg HRTIM_TIM_DMA_CPT1: Timer capture 1 DMA request source
mbed_official 155:8435094ec241 1279 * @arg HRTIM_TIM_DMA_CPT2: Timer capture 2 DMA request source
mbed_official 155:8435094ec241 1280 * @arg HRTIM_TIM_DMA_SET1: Timer output 1 set DMA request source
mbed_official 155:8435094ec241 1281 * @arg HRTIM_TIM_DMA_RST1: Timer output 1 reset DMA request source
mbed_official 155:8435094ec241 1282 * @arg HRTIM_TIM_DMA_SET2: Timer output 2 set DMA request source
mbed_official 155:8435094ec241 1283 * @arg HRTIM_TIM_DMA_RST2: Timer output 2 reset DMA request source
mbed_official 155:8435094ec241 1284 * @arg HRTIM_TIM_DMA_RST: Timer reset DMA request source
mbed_official 155:8435094ec241 1285 * @arg HRTIM_TIM_DMA_DLYPRT: Timer delay protection DMA request source
mbed_official 155:8435094ec241 1286 * @param NewState: new state of the DMA Request sources.
mbed_official 155:8435094ec241 1287 * This parameter can be: ENABLE or DISABLE.
mbed_official 155:8435094ec241 1288 * @retval None
mbed_official 155:8435094ec241 1289 */
mbed_official 155:8435094ec241 1290 void HRTIM_DMACmd(HRTIM_TypeDef* HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_DMA, FunctionalState NewState)
mbed_official 155:8435094ec241 1291 {
mbed_official 155:8435094ec241 1292 if(TimerIdx != HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 1293 {
mbed_official 155:8435094ec241 1294 if(NewState != DISABLE)
mbed_official 155:8435094ec241 1295 {
mbed_official 155:8435094ec241 1296 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxDIER |= HRTIM_DMA;
mbed_official 155:8435094ec241 1297 }
mbed_official 155:8435094ec241 1298 else
mbed_official 155:8435094ec241 1299 {
mbed_official 155:8435094ec241 1300 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxDIER &= ~HRTIM_DMA;
mbed_official 155:8435094ec241 1301 }
mbed_official 155:8435094ec241 1302 }
mbed_official 155:8435094ec241 1303 else
mbed_official 155:8435094ec241 1304 {
mbed_official 155:8435094ec241 1305 if(NewState != DISABLE)
mbed_official 155:8435094ec241 1306 {
mbed_official 155:8435094ec241 1307 HRTIMx->HRTIM_MASTER.MDIER |= HRTIM_DMA;
mbed_official 155:8435094ec241 1308 }
mbed_official 155:8435094ec241 1309 else
mbed_official 155:8435094ec241 1310 {
mbed_official 155:8435094ec241 1311 HRTIMx->HRTIM_MASTER.MDIER &= ~HRTIM_DMA;
mbed_official 155:8435094ec241 1312 }
mbed_official 155:8435094ec241 1313 }
mbed_official 155:8435094ec241 1314 }
mbed_official 155:8435094ec241 1315
mbed_official 155:8435094ec241 1316 /**
mbed_official 155:8435094ec241 1317 * @}
mbed_official 155:8435094ec241 1318 */
mbed_official 155:8435094ec241 1319
mbed_official 155:8435094ec241 1320 /** @defgroup HRTIM_Group3 Peripheral Control methods
mbed_official 155:8435094ec241 1321 * @brief management functions
mbed_official 155:8435094ec241 1322 *
mbed_official 155:8435094ec241 1323 @verbatim
mbed_official 155:8435094ec241 1324 ===============================================================================
mbed_official 155:8435094ec241 1325 ##### Peripheral Control methods #####
mbed_official 155:8435094ec241 1326 ===============================================================================
mbed_official 155:8435094ec241 1327 [..]
mbed_official 155:8435094ec241 1328 This subsection provides a set of functions allowing to control the HRTIMx data
mbed_official 155:8435094ec241 1329 transfers.
mbed_official 155:8435094ec241 1330
mbed_official 155:8435094ec241 1331 @endverbatim
mbed_official 155:8435094ec241 1332 * @{
mbed_official 155:8435094ec241 1333 */
mbed_official 155:8435094ec241 1334
mbed_official 155:8435094ec241 1335 /**
mbed_official 155:8435094ec241 1336 * @brief Configures an output in basic output compare mode
mbed_official 155:8435094ec241 1337 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1338 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1339 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1340 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1341 * @param OCChannel: Timer output
mbed_official 155:8435094ec241 1342 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1343 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 1344 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 1345 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 1346 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 1347 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 1348 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 1349 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 1350 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 1351 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 1352 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 1353 * @param pBasicOCChannelCfg: pointer to the basic output compare output configuration structure
mbed_official 155:8435094ec241 1354 * @note When the timer operates in basic output compare mode:
mbed_official 155:8435094ec241 1355 * Output 1 is implicitely controled by the compare unit 1
mbed_official 155:8435094ec241 1356 * Output 2 is implicitely controled by the compare unit 2
mbed_official 155:8435094ec241 1357 * Output Set/Reset crossbar is set according to the selected output compare mode:
mbed_official 155:8435094ec241 1358 * Toggle: SETxyR = RSTxyR = CMPy
mbed_official 155:8435094ec241 1359 * Active: SETxyR = CMPy, RSTxyR = 0
mbed_official 155:8435094ec241 1360 * Inactive: SETxy =0, RSTxy = CMPy
mbed_official 155:8435094ec241 1361 * @retval None
mbed_official 155:8435094ec241 1362 */
mbed_official 155:8435094ec241 1363 void HRTIM_SimpleOCChannelConfig(HRTIM_TypeDef * HRTIM_,
mbed_official 155:8435094ec241 1364 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1365 uint32_t OCChannel,
mbed_official 155:8435094ec241 1366 HRTIM_BasicOCChannelCfgTypeDef* pBasicOCChannelCfg)
mbed_official 155:8435094ec241 1367 {
mbed_official 155:8435094ec241 1368 uint32_t CompareUnit = HRTIM_COMPAREUNIT_1;
mbed_official 155:8435094ec241 1369 HRTIM_CompareCfgTypeDef CompareCfg;
mbed_official 155:8435094ec241 1370 HRTIM_OutputCfgTypeDef OutputCfg;
mbed_official 155:8435094ec241 1371
mbed_official 155:8435094ec241 1372 /* Check parameters */
mbed_official 155:8435094ec241 1373 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, OCChannel));
mbed_official 155:8435094ec241 1374 assert_param(IS_HRTIM_BASICOCMODE(pBasicOCChannelCfg->Mode));
mbed_official 155:8435094ec241 1375 assert_param(IS_HRTIM_OUTPUTPOLARITY(pBasicOCChannelCfg->Polarity));
mbed_official 155:8435094ec241 1376 assert_param(IS_HRTIM_OUTPUTIDLESTATE(pBasicOCChannelCfg->IdleState));
mbed_official 155:8435094ec241 1377
mbed_official 155:8435094ec241 1378 /* Configure timer compare unit */
mbed_official 155:8435094ec241 1379 switch (OCChannel)
mbed_official 155:8435094ec241 1380 {
mbed_official 155:8435094ec241 1381 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 1382 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 1383 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 1384 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 1385 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 1386 {
mbed_official 155:8435094ec241 1387 CompareUnit = HRTIM_COMPAREUNIT_1;
mbed_official 155:8435094ec241 1388 }
mbed_official 155:8435094ec241 1389 break;
mbed_official 155:8435094ec241 1390 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 1391 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 1392 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 1393 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 1394 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 1395 {
mbed_official 155:8435094ec241 1396 CompareUnit = HRTIM_COMPAREUNIT_2;
mbed_official 155:8435094ec241 1397 }
mbed_official 155:8435094ec241 1398 break;
mbed_official 155:8435094ec241 1399 default:
mbed_official 155:8435094ec241 1400 break;
mbed_official 155:8435094ec241 1401 }
mbed_official 155:8435094ec241 1402
mbed_official 155:8435094ec241 1403 CompareCfg.CompareValue = pBasicOCChannelCfg->Pulse;
mbed_official 155:8435094ec241 1404 CompareCfg.AutoDelayedMode = HRTIM_AUTODELAYEDMODE_REGULAR;
mbed_official 155:8435094ec241 1405 CompareCfg.AutoDelayedTimeout = 0;
mbed_official 155:8435094ec241 1406
mbed_official 155:8435094ec241 1407 HRTIM_CompareUnitConfig(HRTIM_,
mbed_official 155:8435094ec241 1408 TimerIdx,
mbed_official 155:8435094ec241 1409 CompareUnit,
mbed_official 155:8435094ec241 1410 &CompareCfg);
mbed_official 155:8435094ec241 1411
mbed_official 155:8435094ec241 1412 /* Configure timer output */
mbed_official 155:8435094ec241 1413 OutputCfg.Polarity = pBasicOCChannelCfg->Polarity;
mbed_official 155:8435094ec241 1414 OutputCfg.IdleState = pBasicOCChannelCfg->IdleState;
mbed_official 155:8435094ec241 1415 OutputCfg.FaultState = HRTIM_OUTPUTFAULTSTATE_NONE;
mbed_official 155:8435094ec241 1416 OutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE;
mbed_official 155:8435094ec241 1417 OutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED;
mbed_official 155:8435094ec241 1418 OutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;
mbed_official 155:8435094ec241 1419
mbed_official 155:8435094ec241 1420 switch (pBasicOCChannelCfg->Mode)
mbed_official 155:8435094ec241 1421 {
mbed_official 155:8435094ec241 1422 case HRTIM_BASICOCMODE_TOGGLE:
mbed_official 155:8435094ec241 1423 {
mbed_official 155:8435094ec241 1424 if (CompareUnit == HRTIM_COMPAREUNIT_1)
mbed_official 155:8435094ec241 1425 {
mbed_official 155:8435094ec241 1426 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP1;
mbed_official 155:8435094ec241 1427 }
mbed_official 155:8435094ec241 1428 else
mbed_official 155:8435094ec241 1429 {
mbed_official 155:8435094ec241 1430 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP2;
mbed_official 155:8435094ec241 1431 }
mbed_official 155:8435094ec241 1432 OutputCfg.ResetSource = OutputCfg.SetSource;
mbed_official 155:8435094ec241 1433 }
mbed_official 155:8435094ec241 1434 break;
mbed_official 155:8435094ec241 1435 case HRTIM_BASICOCMODE_ACTIVE:
mbed_official 155:8435094ec241 1436 {
mbed_official 155:8435094ec241 1437 if (CompareUnit == HRTIM_COMPAREUNIT_1)
mbed_official 155:8435094ec241 1438 {
mbed_official 155:8435094ec241 1439 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP1;
mbed_official 155:8435094ec241 1440 }
mbed_official 155:8435094ec241 1441 else
mbed_official 155:8435094ec241 1442 {
mbed_official 155:8435094ec241 1443 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP2;
mbed_official 155:8435094ec241 1444 }
mbed_official 155:8435094ec241 1445 OutputCfg.ResetSource = HRTIM_OUTPUTRESET_NONE;
mbed_official 155:8435094ec241 1446 }
mbed_official 155:8435094ec241 1447 break;
mbed_official 155:8435094ec241 1448 case HRTIM_BASICOCMODE_INACTIVE:
mbed_official 155:8435094ec241 1449 {
mbed_official 155:8435094ec241 1450 if (CompareUnit == HRTIM_COMPAREUNIT_1)
mbed_official 155:8435094ec241 1451 {
mbed_official 155:8435094ec241 1452 OutputCfg.ResetSource = HRTIM_OUTPUTRESET_TIMCMP1;
mbed_official 155:8435094ec241 1453 }
mbed_official 155:8435094ec241 1454 else
mbed_official 155:8435094ec241 1455 {
mbed_official 155:8435094ec241 1456 OutputCfg.ResetSource = HRTIM_OUTPUTRESET_TIMCMP2;
mbed_official 155:8435094ec241 1457 }
mbed_official 155:8435094ec241 1458 OutputCfg.SetSource = HRTIM_OUTPUTSET_NONE;
mbed_official 155:8435094ec241 1459 }
mbed_official 155:8435094ec241 1460 break;
mbed_official 155:8435094ec241 1461 default:
mbed_official 155:8435094ec241 1462 break;
mbed_official 155:8435094ec241 1463 }
mbed_official 155:8435094ec241 1464
mbed_official 155:8435094ec241 1465 HRTIM_OutputConfig(HRTIM_, TimerIdx, OCChannel, &OutputCfg);
mbed_official 155:8435094ec241 1466 }
mbed_official 155:8435094ec241 1467
mbed_official 155:8435094ec241 1468 /**
mbed_official 155:8435094ec241 1469 * @brief Configures an output in basic PWM mode
mbed_official 155:8435094ec241 1470 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1471 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1472 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1473 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1474 * @param PWMChannel: Timer output
mbed_official 155:8435094ec241 1475 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1476 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 1477 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 1478 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 1479 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 1480 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 1481 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 1482 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 1483 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 1484 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 1485 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 1486 * @param pBasicPWMChannelCfg: pointer to the basic PWM output configuration structure
mbed_official 155:8435094ec241 1487 * @note When the timer operates in basic PWM output mode:
mbed_official 155:8435094ec241 1488 * Output 1 is implicitly controled by the compare unit 1
mbed_official 155:8435094ec241 1489 * Output 2 is implicitly controled by the compare unit 2
mbed_official 155:8435094ec241 1490 * Output Set/Reset crossbar is set as follows:
mbed_official 155:8435094ec241 1491 * Output 1: SETx1R = CMP1, RSTx1R = PER
mbed_official 155:8435094ec241 1492 * Output 2: SETx2R = CMP2, RST2R = PER
mbed_official 155:8435094ec241 1493 * @retval None
mbed_official 155:8435094ec241 1494 */
mbed_official 155:8435094ec241 1495 void HRTIM_SimplePWMChannelConfig(HRTIM_TypeDef * HRTIM_,
mbed_official 155:8435094ec241 1496 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1497 uint32_t PWMChannel,
mbed_official 155:8435094ec241 1498 HRTIM_BasicPWMChannelCfgTypeDef* pBasicPWMChannelCfg)
mbed_official 155:8435094ec241 1499 {
mbed_official 155:8435094ec241 1500 uint32_t CompareUnit = HRTIM_COMPAREUNIT_1;
mbed_official 155:8435094ec241 1501 HRTIM_CompareCfgTypeDef CompareCfg;
mbed_official 155:8435094ec241 1502 HRTIM_OutputCfgTypeDef OutputCfg;
mbed_official 155:8435094ec241 1503
mbed_official 155:8435094ec241 1504 /* Check parameters */
mbed_official 155:8435094ec241 1505 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, PWMChannel));
mbed_official 155:8435094ec241 1506 assert_param(IS_HRTIM_OUTPUTPOLARITY(pBasicPWMChannelCfg->Polarity));
mbed_official 155:8435094ec241 1507 assert_param(IS_HRTIM_OUTPUTIDLESTATE(pBasicPWMChannelCfg->IdleState));
mbed_official 155:8435094ec241 1508
mbed_official 155:8435094ec241 1509 /* Configure timer compare unit */
mbed_official 155:8435094ec241 1510 switch (PWMChannel)
mbed_official 155:8435094ec241 1511 {
mbed_official 155:8435094ec241 1512 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 1513 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 1514 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 1515 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 1516 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 1517 {
mbed_official 155:8435094ec241 1518 CompareUnit = HRTIM_COMPAREUNIT_1;
mbed_official 155:8435094ec241 1519 }
mbed_official 155:8435094ec241 1520 break;
mbed_official 155:8435094ec241 1521 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 1522 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 1523 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 1524 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 1525 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 1526 {
mbed_official 155:8435094ec241 1527 CompareUnit = HRTIM_COMPAREUNIT_2;
mbed_official 155:8435094ec241 1528 }
mbed_official 155:8435094ec241 1529 break;
mbed_official 155:8435094ec241 1530 default:
mbed_official 155:8435094ec241 1531 break;
mbed_official 155:8435094ec241 1532 }
mbed_official 155:8435094ec241 1533
mbed_official 155:8435094ec241 1534 CompareCfg.CompareValue = pBasicPWMChannelCfg->Pulse;
mbed_official 155:8435094ec241 1535 CompareCfg.AutoDelayedMode = HRTIM_AUTODELAYEDMODE_REGULAR;
mbed_official 155:8435094ec241 1536 CompareCfg.AutoDelayedTimeout = 0;
mbed_official 155:8435094ec241 1537
mbed_official 155:8435094ec241 1538 HRTIM_CompareUnitConfig(HRTIM_,
mbed_official 155:8435094ec241 1539 TimerIdx,
mbed_official 155:8435094ec241 1540 CompareUnit,
mbed_official 155:8435094ec241 1541 &CompareCfg);
mbed_official 155:8435094ec241 1542
mbed_official 155:8435094ec241 1543 /* Configure timer output */
mbed_official 155:8435094ec241 1544 OutputCfg.Polarity = pBasicPWMChannelCfg->Polarity;
mbed_official 155:8435094ec241 1545 OutputCfg.IdleState = pBasicPWMChannelCfg->IdleState;
mbed_official 155:8435094ec241 1546 OutputCfg.FaultState = HRTIM_OUTPUTFAULTSTATE_NONE;
mbed_official 155:8435094ec241 1547 OutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE;
mbed_official 155:8435094ec241 1548 OutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED;
mbed_official 155:8435094ec241 1549 OutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;
mbed_official 155:8435094ec241 1550
mbed_official 155:8435094ec241 1551 if (CompareUnit == HRTIM_COMPAREUNIT_1)
mbed_official 155:8435094ec241 1552 {
mbed_official 155:8435094ec241 1553 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP1;
mbed_official 155:8435094ec241 1554 }
mbed_official 155:8435094ec241 1555 else
mbed_official 155:8435094ec241 1556 {
mbed_official 155:8435094ec241 1557 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP2;
mbed_official 155:8435094ec241 1558 }
mbed_official 155:8435094ec241 1559 OutputCfg.ResetSource = HRTIM_OUTPUTSET_TIMPER;
mbed_official 155:8435094ec241 1560
mbed_official 155:8435094ec241 1561 HRTIM_OutputConfig(HRTIM_, TimerIdx, PWMChannel, &OutputCfg);
mbed_official 155:8435094ec241 1562 }
mbed_official 155:8435094ec241 1563
mbed_official 155:8435094ec241 1564 /**
mbed_official 155:8435094ec241 1565 * @brief Configures a basic capture
mbed_official 155:8435094ec241 1566 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1567 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1568 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1569 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1570 * @param CaptureChannel: Capture unit
mbed_official 155:8435094ec241 1571 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1572 * @arg HRTIM_CAPTUREUNIT_1: Capture unit 1
mbed_official 155:8435094ec241 1573 * @arg HRTIM_CAPTUREUNIT_2: Capture unit 2
mbed_official 155:8435094ec241 1574 * @param pBasicCaptureChannelCfg: pointer to the basic capture configuration structure
mbed_official 155:8435094ec241 1575 * @note When the timer operates in basic capture mode the capture is triggered
mbed_official 155:8435094ec241 1576 * by the designated external event and GPIO input is implicitly used as event source.
mbed_official 155:8435094ec241 1577 * The cature can be triggered by a rising edge, a falling edge or both
mbed_official 155:8435094ec241 1578 * edges on event channel.
mbed_official 155:8435094ec241 1579 * @retval None
mbed_official 155:8435094ec241 1580 */
mbed_official 155:8435094ec241 1581 void HRTIM_SimpleCaptureChannelConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 1582 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1583 uint32_t CaptureChannel,
mbed_official 155:8435094ec241 1584 HRTIM_BasicCaptureChannelCfgTypeDef* pBasicCaptureChannelCfg)
mbed_official 155:8435094ec241 1585 {
mbed_official 155:8435094ec241 1586 HRTIM_EventCfgTypeDef EventCfg;
mbed_official 155:8435094ec241 1587
mbed_official 155:8435094ec241 1588 /* Check parameters */
mbed_official 155:8435094ec241 1589 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 1590 assert_param(IS_HRTIM_CAPTUREUNIT(CaptureChannel));
mbed_official 155:8435094ec241 1591 assert_param(IS_HRTIM_EVENT(pBasicCaptureChannelCfg->Event));
mbed_official 155:8435094ec241 1592 assert_param(IS_HRTIM_EVENTPOLARITY(pBasicCaptureChannelCfg->EventPolarity));
mbed_official 155:8435094ec241 1593 assert_param(IS_HRTIM_EVENTSENSITIVITY(pBasicCaptureChannelCfg->EventSensitivity));
mbed_official 155:8435094ec241 1594 assert_param(IS_HRTIM_EVENTFILTER(pBasicCaptureChannelCfg->EventFilter));
mbed_official 155:8435094ec241 1595
mbed_official 155:8435094ec241 1596 /* Configure external event channel */
mbed_official 155:8435094ec241 1597 EventCfg.FastMode = HRTIM_EVENTFASTMODE_DISABLE;
mbed_official 155:8435094ec241 1598 EventCfg.Filter = pBasicCaptureChannelCfg->EventFilter;
mbed_official 155:8435094ec241 1599 EventCfg.Polarity = pBasicCaptureChannelCfg->EventPolarity;
mbed_official 155:8435094ec241 1600 EventCfg.Sensitivity = pBasicCaptureChannelCfg->EventSensitivity;
mbed_official 155:8435094ec241 1601 EventCfg.Source = HRTIM_EVENTSRC_1;
mbed_official 155:8435094ec241 1602
mbed_official 155:8435094ec241 1603 HRTIM_ExternalEventConfig(HRTIMx,
mbed_official 155:8435094ec241 1604 pBasicCaptureChannelCfg->Event,
mbed_official 155:8435094ec241 1605 &EventCfg);
mbed_official 155:8435094ec241 1606
mbed_official 155:8435094ec241 1607 /* Memorize capture trigger (will be configured when the capture is started */
mbed_official 155:8435094ec241 1608 HRTIM_CaptureUnitConfig(HRTIMx,
mbed_official 155:8435094ec241 1609 TimerIdx,
mbed_official 155:8435094ec241 1610 CaptureChannel,
mbed_official 155:8435094ec241 1611 pBasicCaptureChannelCfg->Event);
mbed_official 155:8435094ec241 1612 }
mbed_official 155:8435094ec241 1613
mbed_official 155:8435094ec241 1614 /**
mbed_official 155:8435094ec241 1615 * @brief Configures an output basic one pulse mode
mbed_official 155:8435094ec241 1616 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1617 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1618 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1619 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1620 * @param OnePulseChannel: Timer output
mbed_official 155:8435094ec241 1621 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1622 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 1623 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 1624 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 1625 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 1626 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 1627 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 1628 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 1629 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 1630 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 1631 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 1632 * @param pBasicOnePulseChannelCfg: pointer to the basic one pulse output configuration structure
mbed_official 155:8435094ec241 1633 * @note When the timer operates in basic one pulse mode:
mbed_official 155:8435094ec241 1634 * the timer counter is implicitly started by the reset event,
mbed_official 155:8435094ec241 1635 * the reset of the timer counter is triggered by the designated external event
mbed_official 155:8435094ec241 1636 * GPIO input is implicitly used as event source,
mbed_official 155:8435094ec241 1637 * Output 1 is implicitly controled by the compare unit 1,
mbed_official 155:8435094ec241 1638 * Output 2 is implicitly controled by the compare unit 2.
mbed_official 155:8435094ec241 1639 * Output Set/Reset crossbar is set as follows:
mbed_official 155:8435094ec241 1640 * Output 1: SETx1R = CMP1, RSTx1R = PER
mbed_official 155:8435094ec241 1641 * Output 2: SETx2R = CMP2, RST2R = PER
mbed_official 155:8435094ec241 1642 * The counter mode should be HRTIM_MODE_SINGLESHOT_RETRIGGERABLE
mbed_official 155:8435094ec241 1643 * @retval None
mbed_official 155:8435094ec241 1644 */
mbed_official 155:8435094ec241 1645 void HRTIM_SimpleOnePulseChannelConfig(HRTIM_TypeDef * HRTIM_,
mbed_official 155:8435094ec241 1646 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1647 uint32_t OnePulseChannel,
mbed_official 155:8435094ec241 1648 HRTIM_BasicOnePulseChannelCfgTypeDef* pBasicOnePulseChannelCfg)
mbed_official 155:8435094ec241 1649 {
mbed_official 155:8435094ec241 1650 uint32_t CompareUnit = HRTIM_COMPAREUNIT_1;
mbed_official 155:8435094ec241 1651 HRTIM_CompareCfgTypeDef CompareCfg;
mbed_official 155:8435094ec241 1652 HRTIM_OutputCfgTypeDef OutputCfg;
mbed_official 155:8435094ec241 1653 HRTIM_EventCfgTypeDef EventCfg;
mbed_official 155:8435094ec241 1654
mbed_official 155:8435094ec241 1655 /* Check parameters */
mbed_official 155:8435094ec241 1656 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, OnePulseChannel));
mbed_official 155:8435094ec241 1657 assert_param(IS_HRTIM_OUTPUTPOLARITY(pBasicOnePulseChannelCfg->OutputPolarity));
mbed_official 155:8435094ec241 1658 assert_param(IS_HRTIM_OUTPUTIDLESTATE(pBasicOnePulseChannelCfg->OutputIdleState));
mbed_official 155:8435094ec241 1659 assert_param(IS_HRTIM_EVENT(pBasicOnePulseChannelCfg->Event));
mbed_official 155:8435094ec241 1660 assert_param(IS_HRTIM_EVENTPOLARITY(pBasicOnePulseChannelCfg->EventPolarity));
mbed_official 155:8435094ec241 1661 assert_param(IS_HRTIM_EVENTSENSITIVITY(pBasicOnePulseChannelCfg->EventSensitivity));
mbed_official 155:8435094ec241 1662 assert_param(IS_HRTIM_EVENTFILTER(pBasicOnePulseChannelCfg->EventFilter));
mbed_official 155:8435094ec241 1663
mbed_official 155:8435094ec241 1664 /* Configure timer compare unit */
mbed_official 155:8435094ec241 1665 switch (OnePulseChannel)
mbed_official 155:8435094ec241 1666 {
mbed_official 155:8435094ec241 1667 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 1668 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 1669 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 1670 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 1671 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 1672 {
mbed_official 155:8435094ec241 1673 CompareUnit = HRTIM_COMPAREUNIT_1;
mbed_official 155:8435094ec241 1674 }
mbed_official 155:8435094ec241 1675 break;
mbed_official 155:8435094ec241 1676 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 1677 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 1678 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 1679 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 1680 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 1681 {
mbed_official 155:8435094ec241 1682 CompareUnit = HRTIM_COMPAREUNIT_2;
mbed_official 155:8435094ec241 1683 }
mbed_official 155:8435094ec241 1684 break;
mbed_official 155:8435094ec241 1685 default:
mbed_official 155:8435094ec241 1686 break;
mbed_official 155:8435094ec241 1687 }
mbed_official 155:8435094ec241 1688
mbed_official 155:8435094ec241 1689 CompareCfg.CompareValue = pBasicOnePulseChannelCfg->Pulse;
mbed_official 155:8435094ec241 1690 CompareCfg.AutoDelayedMode = HRTIM_AUTODELAYEDMODE_REGULAR;
mbed_official 155:8435094ec241 1691 CompareCfg.AutoDelayedTimeout = 0;
mbed_official 155:8435094ec241 1692
mbed_official 155:8435094ec241 1693 HRTIM_CompareUnitConfig(HRTIM_,
mbed_official 155:8435094ec241 1694 TimerIdx,
mbed_official 155:8435094ec241 1695 CompareUnit,
mbed_official 155:8435094ec241 1696 &CompareCfg);
mbed_official 155:8435094ec241 1697
mbed_official 155:8435094ec241 1698 /* Configure timer output */
mbed_official 155:8435094ec241 1699 OutputCfg.Polarity = pBasicOnePulseChannelCfg->OutputPolarity;
mbed_official 155:8435094ec241 1700 OutputCfg.IdleState = pBasicOnePulseChannelCfg->OutputIdleState;
mbed_official 155:8435094ec241 1701 OutputCfg.FaultState = HRTIM_OUTPUTFAULTSTATE_NONE;
mbed_official 155:8435094ec241 1702 OutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE;
mbed_official 155:8435094ec241 1703 OutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED;
mbed_official 155:8435094ec241 1704 OutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;
mbed_official 155:8435094ec241 1705
mbed_official 155:8435094ec241 1706 if (CompareUnit == HRTIM_COMPAREUNIT_1)
mbed_official 155:8435094ec241 1707 {
mbed_official 155:8435094ec241 1708 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP1;
mbed_official 155:8435094ec241 1709 }
mbed_official 155:8435094ec241 1710 else
mbed_official 155:8435094ec241 1711 {
mbed_official 155:8435094ec241 1712 OutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP2;
mbed_official 155:8435094ec241 1713 }
mbed_official 155:8435094ec241 1714 OutputCfg.ResetSource = HRTIM_OUTPUTSET_TIMPER;
mbed_official 155:8435094ec241 1715
mbed_official 155:8435094ec241 1716 HRTIM_OutputConfig(HRTIM_,
mbed_official 155:8435094ec241 1717 TimerIdx,
mbed_official 155:8435094ec241 1718 OnePulseChannel,
mbed_official 155:8435094ec241 1719 &OutputCfg);
mbed_official 155:8435094ec241 1720
mbed_official 155:8435094ec241 1721 /* Configure external event channel */
mbed_official 155:8435094ec241 1722 EventCfg.FastMode = HRTIM_EVENTFASTMODE_DISABLE;
mbed_official 155:8435094ec241 1723 EventCfg.Filter = pBasicOnePulseChannelCfg->EventFilter;
mbed_official 155:8435094ec241 1724 EventCfg.Polarity = pBasicOnePulseChannelCfg->EventPolarity;
mbed_official 155:8435094ec241 1725 EventCfg.Sensitivity = pBasicOnePulseChannelCfg->EventSensitivity;
mbed_official 155:8435094ec241 1726 EventCfg.Source = HRTIM_EVENTSRC_1;
mbed_official 155:8435094ec241 1727
mbed_official 155:8435094ec241 1728 HRTIM_ExternalEventConfig(HRTIM_,
mbed_official 155:8435094ec241 1729 pBasicOnePulseChannelCfg->Event,
mbed_official 155:8435094ec241 1730 &EventCfg);
mbed_official 155:8435094ec241 1731
mbed_official 155:8435094ec241 1732 /* Configure the timer reset register */
mbed_official 155:8435094ec241 1733 HRTIM_TIM_ResetConfig(HRTIM_,
mbed_official 155:8435094ec241 1734 TimerIdx,
mbed_official 155:8435094ec241 1735 pBasicOnePulseChannelCfg->Event);
mbed_official 155:8435094ec241 1736 }
mbed_official 155:8435094ec241 1737
mbed_official 155:8435094ec241 1738 /**
mbed_official 155:8435094ec241 1739 * @brief Configures the general behavior of a timer operating in waveform mode
mbed_official 155:8435094ec241 1740 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1741 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1742 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1743 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1744 * @param pTimerCfg: pointer to the timer configuration structure
mbed_official 155:8435094ec241 1745 * @note When the timer operates in waveform mode, all the features supported by
mbed_official 155:8435094ec241 1746 * the HRTIMx are available without any limitation.
mbed_official 155:8435094ec241 1747 * @retval None
mbed_official 155:8435094ec241 1748 */
mbed_official 155:8435094ec241 1749 void HRTIM_WaveformTimerConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 1750 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1751 HRTIM_TimerCfgTypeDef * pTimerCfg)
mbed_official 155:8435094ec241 1752 {
mbed_official 155:8435094ec241 1753 uint32_t HRTIM_timcr;
mbed_official 155:8435094ec241 1754 uint32_t HRTIM_timfltr;
mbed_official 155:8435094ec241 1755 uint32_t HRTIM_timoutr;
mbed_official 155:8435094ec241 1756 uint32_t HRTIM_timrstr;
mbed_official 155:8435094ec241 1757
mbed_official 155:8435094ec241 1758 /* Check parameters */
mbed_official 155:8435094ec241 1759 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 1760 assert_param(IS_HRTIM_TIMPUSHPULLMODE(pTimerCfg->PushPull));
mbed_official 155:8435094ec241 1761 assert_param(IS_HRTIM_TIMFAULTENABLE(pTimerCfg->FaultEnable));
mbed_official 155:8435094ec241 1762 assert_param(IS_HRTIM_TIMFAULTLOCK(pTimerCfg->FaultLock));
mbed_official 155:8435094ec241 1763 assert_param(IS_HRTIM_TIMDEADTIMEINSERTION(pTimerCfg->DeadTimeInsertion));
mbed_official 155:8435094ec241 1764 assert_param(IS_HRTIM_TIMDELAYEDPROTECTION(pTimerCfg->DelayedProtectionMode));
mbed_official 155:8435094ec241 1765 assert_param(IS_HRTIM_TIMUPDATETRIGGER(pTimerCfg->UpdateTrigger));
mbed_official 155:8435094ec241 1766 assert_param(IS_HRTIM_TIMRESETTRIGGER(pTimerCfg->ResetTrigger));
mbed_official 155:8435094ec241 1767 assert_param(IS_HRTIM_TIMUPDATEONRESET(pTimerCfg->ResetUpdate));
mbed_official 155:8435094ec241 1768
mbed_official 155:8435094ec241 1769 /* Configure timing unit (Timer A to Timer E) */
mbed_official 155:8435094ec241 1770 HRTIM_timcr = HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR;
mbed_official 155:8435094ec241 1771 HRTIM_timfltr = HRTIMx->HRTIM_TIMERx[TimerIdx].FLTxR;
mbed_official 155:8435094ec241 1772 HRTIM_timoutr = HRTIMx->HRTIM_TIMERx[TimerIdx].OUTxR;
mbed_official 155:8435094ec241 1773 HRTIM_timrstr = HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR;
mbed_official 155:8435094ec241 1774
mbed_official 155:8435094ec241 1775 /* Set the push-pull mode */
mbed_official 155:8435094ec241 1776 HRTIM_timcr &= ~(HRTIM_TIMCR_PSHPLL);
mbed_official 155:8435094ec241 1777 HRTIM_timcr |= pTimerCfg->PushPull;
mbed_official 155:8435094ec241 1778
mbed_official 155:8435094ec241 1779 /* Enable/Disable registers update on timer counter reset */
mbed_official 155:8435094ec241 1780 HRTIM_timcr &= ~(HRTIM_TIMCR_TRSTU);
mbed_official 155:8435094ec241 1781 HRTIM_timcr |= pTimerCfg->ResetUpdate;
mbed_official 155:8435094ec241 1782
mbed_official 155:8435094ec241 1783 /* Set the timer update trigger */
mbed_official 155:8435094ec241 1784 HRTIM_timcr &= ~(HRTIM_TIMCR_TIMUPDATETRIGGER);
mbed_official 155:8435094ec241 1785 HRTIM_timcr |= pTimerCfg->UpdateTrigger;
mbed_official 155:8435094ec241 1786
mbed_official 155:8435094ec241 1787 /* Enable/Disable the fault channel at timer level */
mbed_official 155:8435094ec241 1788 HRTIM_timfltr &= ~(HRTIM_FLTR_FLTxEN);
mbed_official 155:8435094ec241 1789 HRTIM_timfltr |= (pTimerCfg->FaultEnable & HRTIM_FLTR_FLTxEN);
mbed_official 155:8435094ec241 1790
mbed_official 155:8435094ec241 1791 /* Lock/Unlock fault sources at timer level */
mbed_official 155:8435094ec241 1792 HRTIM_timfltr &= ~(HRTIM_FLTR_FLTCLK);
mbed_official 155:8435094ec241 1793 HRTIM_timfltr |= pTimerCfg->FaultLock;
mbed_official 155:8435094ec241 1794
mbed_official 155:8435094ec241 1795 /* Enable/Disable dead time insertion at timer level */
mbed_official 155:8435094ec241 1796 HRTIM_timoutr &= ~(HRTIM_OUTR_DTEN);
mbed_official 155:8435094ec241 1797 HRTIM_timoutr |= pTimerCfg->DeadTimeInsertion;
mbed_official 155:8435094ec241 1798
mbed_official 155:8435094ec241 1799 /* Enable/Disable delayed protection at timer level */
mbed_official 155:8435094ec241 1800 HRTIM_timoutr &= ~(HRTIM_OUTR_DLYPRT| HRTIM_OUTR_DLYPRTEN);
mbed_official 155:8435094ec241 1801 HRTIM_timoutr |= pTimerCfg->DelayedProtectionMode;
mbed_official 155:8435094ec241 1802
mbed_official 155:8435094ec241 1803 /* Set the timer counter reset trigger */
mbed_official 155:8435094ec241 1804 HRTIM_timrstr = pTimerCfg->ResetTrigger;
mbed_official 155:8435094ec241 1805
mbed_official 155:8435094ec241 1806 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 1807 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR = HRTIM_timcr;
mbed_official 155:8435094ec241 1808 HRTIMx->HRTIM_TIMERx[TimerIdx].FLTxR = HRTIM_timfltr;
mbed_official 155:8435094ec241 1809 HRTIMx->HRTIM_TIMERx[TimerIdx].OUTxR = HRTIM_timoutr;
mbed_official 155:8435094ec241 1810 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_timrstr;
mbed_official 155:8435094ec241 1811 }
mbed_official 155:8435094ec241 1812
mbed_official 155:8435094ec241 1813 /**
mbed_official 155:8435094ec241 1814 * @brief Configures the compare unit of a timer operating in waveform mode
mbed_official 155:8435094ec241 1815 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1816 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1817 * 0xFF for master timer
mbed_official 155:8435094ec241 1818 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1819 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1820 * @param CompareUnit: Compare unit to configure
mbed_official 155:8435094ec241 1821 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1822 * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
mbed_official 155:8435094ec241 1823 * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
mbed_official 155:8435094ec241 1824 * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
mbed_official 155:8435094ec241 1825 * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
mbed_official 155:8435094ec241 1826 * @param pCompareCfg: pointer to the compare unit configuration structure
mbed_official 155:8435094ec241 1827 * @note When auto delayed mode is required for compare unit 2 or compare unit 4,
mbed_official 155:8435094ec241 1828 * application has to configure separately the capture unit. Capture unit
mbed_official 155:8435094ec241 1829 * to configure in that case depends on the compare unit auto delayed mode
mbed_official 155:8435094ec241 1830 * is applied to (see below):
mbed_official 155:8435094ec241 1831 * Auto delayed on output compare 2: capture unit 1 must be configured
mbed_official 155:8435094ec241 1832 * Auto delayed on output compare 4: capture unit 2 must be configured
mbed_official 155:8435094ec241 1833 * @retval None
mbed_official 155:8435094ec241 1834 */
mbed_official 155:8435094ec241 1835 void HRTIM_WaveformCompareConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 1836 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1837 uint32_t CompareUnit,
mbed_official 155:8435094ec241 1838 HRTIM_CompareCfgTypeDef* pCompareCfg)
mbed_official 155:8435094ec241 1839 {
mbed_official 155:8435094ec241 1840 uint32_t HRTIM_timcr;
mbed_official 155:8435094ec241 1841
mbed_official 155:8435094ec241 1842 /* Check parameters */
mbed_official 155:8435094ec241 1843 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 1844 assert_param(IS_HRTIM_COMPAREUNIT_AUTODELAYEDMODE(CompareUnit, pCompareCfg->AutoDelayedMode));
mbed_official 155:8435094ec241 1845
mbed_official 155:8435094ec241 1846 /* Configure the compare unit */
mbed_official 155:8435094ec241 1847 switch (CompareUnit)
mbed_official 155:8435094ec241 1848 {
mbed_official 155:8435094ec241 1849 case HRTIM_COMPAREUNIT_1:
mbed_official 155:8435094ec241 1850 {
mbed_official 155:8435094ec241 1851 /* Set the compare value */
mbed_official 155:8435094ec241 1852 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP1xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 1853 }
mbed_official 155:8435094ec241 1854 break;
mbed_official 155:8435094ec241 1855 case HRTIM_COMPAREUNIT_2:
mbed_official 155:8435094ec241 1856 {
mbed_official 155:8435094ec241 1857 /* Set the compare value */
mbed_official 155:8435094ec241 1858 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP2xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 1859
mbed_official 155:8435094ec241 1860 if (pCompareCfg->AutoDelayedMode != HRTIM_AUTODELAYEDMODE_REGULAR)
mbed_official 155:8435094ec241 1861 {
mbed_official 155:8435094ec241 1862 /* Configure auto-delayed mode */
mbed_official 155:8435094ec241 1863 HRTIM_timcr = HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR;
mbed_official 155:8435094ec241 1864 HRTIM_timcr &= ~HRTIM_TIMCR_DELCMP2;
mbed_official 155:8435094ec241 1865 HRTIM_timcr |= pCompareCfg->AutoDelayedMode;
mbed_official 155:8435094ec241 1866 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR = HRTIM_timcr;
mbed_official 155:8435094ec241 1867
mbed_official 155:8435094ec241 1868 /* Set the compare value for timeout compare unit (if any) */
mbed_official 155:8435094ec241 1869 if (pCompareCfg->AutoDelayedMode == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1)
mbed_official 155:8435094ec241 1870 {
mbed_official 155:8435094ec241 1871 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP1xR = pCompareCfg->AutoDelayedTimeout;
mbed_official 155:8435094ec241 1872 }
mbed_official 155:8435094ec241 1873 else if (pCompareCfg->AutoDelayedMode == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3)
mbed_official 155:8435094ec241 1874 {
mbed_official 155:8435094ec241 1875 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP3xR = pCompareCfg->AutoDelayedTimeout;
mbed_official 155:8435094ec241 1876 }
mbed_official 155:8435094ec241 1877 }
mbed_official 155:8435094ec241 1878 }
mbed_official 155:8435094ec241 1879 break;
mbed_official 155:8435094ec241 1880 case HRTIM_COMPAREUNIT_3:
mbed_official 155:8435094ec241 1881 {
mbed_official 155:8435094ec241 1882 /* Set the compare value */
mbed_official 155:8435094ec241 1883 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP3xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 1884 }
mbed_official 155:8435094ec241 1885 break;
mbed_official 155:8435094ec241 1886 case HRTIM_COMPAREUNIT_4:
mbed_official 155:8435094ec241 1887 {
mbed_official 155:8435094ec241 1888 /* Set the compare value */
mbed_official 155:8435094ec241 1889 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP4xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 1890
mbed_official 155:8435094ec241 1891 if (pCompareCfg->AutoDelayedMode != HRTIM_AUTODELAYEDMODE_REGULAR)
mbed_official 155:8435094ec241 1892 {
mbed_official 155:8435094ec241 1893 /* Configure auto-delayed mode */
mbed_official 155:8435094ec241 1894 HRTIM_timcr = HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR;
mbed_official 155:8435094ec241 1895 HRTIM_timcr &= ~HRTIM_TIMCR_DELCMP4;
mbed_official 155:8435094ec241 1896 HRTIM_timcr |= (pCompareCfg->AutoDelayedMode << 2);
mbed_official 155:8435094ec241 1897 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR = HRTIM_timcr;
mbed_official 155:8435094ec241 1898
mbed_official 155:8435094ec241 1899 /* Set the compare value for timeout compare unit (if any) */
mbed_official 155:8435094ec241 1900 if (pCompareCfg->AutoDelayedMode == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1)
mbed_official 155:8435094ec241 1901 {
mbed_official 155:8435094ec241 1902 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP1xR = pCompareCfg->AutoDelayedTimeout;
mbed_official 155:8435094ec241 1903 }
mbed_official 155:8435094ec241 1904 else if (pCompareCfg->AutoDelayedMode == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3)
mbed_official 155:8435094ec241 1905 {
mbed_official 155:8435094ec241 1906 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP3xR = pCompareCfg->AutoDelayedTimeout;
mbed_official 155:8435094ec241 1907 }
mbed_official 155:8435094ec241 1908 }
mbed_official 155:8435094ec241 1909 }
mbed_official 155:8435094ec241 1910 break;
mbed_official 155:8435094ec241 1911 default:
mbed_official 155:8435094ec241 1912 break;
mbed_official 155:8435094ec241 1913 }
mbed_official 155:8435094ec241 1914 }
mbed_official 155:8435094ec241 1915
mbed_official 155:8435094ec241 1916 /**
mbed_official 155:8435094ec241 1917 * @brief Sets the HRTIMx Master Comparex Register value
mbed_official 155:8435094ec241 1918 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1919 * @param CompareUnit: Compare unit to configure
mbed_official 155:8435094ec241 1920 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1921 * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
mbed_official 155:8435094ec241 1922 * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
mbed_official 155:8435094ec241 1923 * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
mbed_official 155:8435094ec241 1924 * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
mbed_official 155:8435094ec241 1925 * @param Compare: specifies the Comparex register new value
mbed_official 155:8435094ec241 1926 * @retval None
mbed_official 155:8435094ec241 1927 */
mbed_official 155:8435094ec241 1928 void HRTIM_MasterSetCompare(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 1929 uint32_t CompareUnit,
mbed_official 155:8435094ec241 1930 uint32_t Compare)
mbed_official 155:8435094ec241 1931 {
mbed_official 155:8435094ec241 1932 /* Check parameters */
mbed_official 155:8435094ec241 1933 assert_param(IS_HRTIM_COMPAREUNIT(CompareUnit));
mbed_official 155:8435094ec241 1934
mbed_official 155:8435094ec241 1935 /* Configure the compare unit */
mbed_official 155:8435094ec241 1936 switch (CompareUnit)
mbed_official 155:8435094ec241 1937 {
mbed_official 155:8435094ec241 1938 case HRTIM_COMPAREUNIT_1:
mbed_official 155:8435094ec241 1939 {
mbed_official 155:8435094ec241 1940 /* Set the compare value */
mbed_official 155:8435094ec241 1941 HRTIMx->HRTIM_MASTER.MCMP1R = Compare;
mbed_official 155:8435094ec241 1942 }
mbed_official 155:8435094ec241 1943 break;
mbed_official 155:8435094ec241 1944 case HRTIM_COMPAREUNIT_2:
mbed_official 155:8435094ec241 1945 {
mbed_official 155:8435094ec241 1946 /* Set the compare value */
mbed_official 155:8435094ec241 1947 HRTIMx->HRTIM_MASTER.MCMP2R = Compare;
mbed_official 155:8435094ec241 1948 }
mbed_official 155:8435094ec241 1949 break;
mbed_official 155:8435094ec241 1950 case HRTIM_COMPAREUNIT_3:
mbed_official 155:8435094ec241 1951 {
mbed_official 155:8435094ec241 1952 /* Set the compare value */
mbed_official 155:8435094ec241 1953 HRTIMx->HRTIM_MASTER.MCMP3R = Compare;
mbed_official 155:8435094ec241 1954 }
mbed_official 155:8435094ec241 1955 break;
mbed_official 155:8435094ec241 1956 case HRTIM_COMPAREUNIT_4:
mbed_official 155:8435094ec241 1957 {
mbed_official 155:8435094ec241 1958 /* Set the compare value */
mbed_official 155:8435094ec241 1959 HRTIMx->HRTIM_MASTER.MCMP4R = Compare;
mbed_official 155:8435094ec241 1960 }
mbed_official 155:8435094ec241 1961 break;
mbed_official 155:8435094ec241 1962 default:
mbed_official 155:8435094ec241 1963 break;
mbed_official 155:8435094ec241 1964 }
mbed_official 155:8435094ec241 1965 }
mbed_official 155:8435094ec241 1966 /**
mbed_official 155:8435094ec241 1967 * @brief Configures the capture unit of a timer operating in waveform mode
mbed_official 155:8435094ec241 1968 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 1969 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 1970 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1971 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 1972 * @param CaptureChannel: Capture unit to configure
mbed_official 155:8435094ec241 1973 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 1974 * @arg HRTIM_CAPTUREUNIT_1: Capture unit 1
mbed_official 155:8435094ec241 1975 * @arg HRTIM_CAPTUREUNIT_2: Capture unit 2
mbed_official 155:8435094ec241 1976 * @param pCaptureCfg: pointer to the compare unit configuration structure
mbed_official 155:8435094ec241 1977 * @retval None
mbed_official 155:8435094ec241 1978 */
mbed_official 155:8435094ec241 1979 void HRTIM_WaveformCaptureConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 1980 uint32_t TimerIdx,
mbed_official 155:8435094ec241 1981 uint32_t CaptureUnit,
mbed_official 155:8435094ec241 1982 HRTIM_CaptureCfgTypeDef* pCaptureCfg)
mbed_official 155:8435094ec241 1983 {
mbed_official 155:8435094ec241 1984 /* Configure the capture unit */
mbed_official 155:8435094ec241 1985 switch (CaptureUnit)
mbed_official 155:8435094ec241 1986 {
mbed_official 155:8435094ec241 1987 case HRTIM_CAPTUREUNIT_1:
mbed_official 155:8435094ec241 1988 {
mbed_official 155:8435094ec241 1989 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT1xCR = pCaptureCfg->Trigger;
mbed_official 155:8435094ec241 1990 }
mbed_official 155:8435094ec241 1991 break;
mbed_official 155:8435094ec241 1992 case HRTIM_CAPTUREUNIT_2:
mbed_official 155:8435094ec241 1993 {
mbed_official 155:8435094ec241 1994 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT2xCR = pCaptureCfg->Trigger;
mbed_official 155:8435094ec241 1995 }
mbed_official 155:8435094ec241 1996 break;
mbed_official 155:8435094ec241 1997 default:
mbed_official 155:8435094ec241 1998 break;
mbed_official 155:8435094ec241 1999 }
mbed_official 155:8435094ec241 2000 }
mbed_official 155:8435094ec241 2001
mbed_official 155:8435094ec241 2002 /**
mbed_official 155:8435094ec241 2003 * @brief Configures the output of a timer operating in waveform mode
mbed_official 155:8435094ec241 2004 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2005 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2006 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2007 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2008 * @param Output: Timer output
mbed_official 155:8435094ec241 2009 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2010 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 2011 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 2012 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 2013 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 2014 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 2015 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 2016 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 2017 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 2018 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 2019 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 2020 * @param pOutputCfg: pointer to the timer output configuration structure
mbed_official 155:8435094ec241 2021 * @retval None
mbed_official 155:8435094ec241 2022 */
mbed_official 155:8435094ec241 2023 void HRTIM_WaveformOutputConfig(HRTIM_TypeDef * HRTIM_,
mbed_official 155:8435094ec241 2024 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2025 uint32_t Output,
mbed_official 155:8435094ec241 2026 HRTIM_OutputCfgTypeDef * pOutputCfg)
mbed_official 155:8435094ec241 2027 {
mbed_official 155:8435094ec241 2028 /* Check parameters */
mbed_official 155:8435094ec241 2029 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, Output));
mbed_official 155:8435094ec241 2030 assert_param(IS_HRTIM_OUTPUTPOLARITY(pOutputCfg->Polarity));
mbed_official 155:8435094ec241 2031 assert_param(IS_HRTIM_OUTPUTIDLESTATE(pOutputCfg->IdleState));
mbed_official 155:8435094ec241 2032 assert_param(IS_HRTIM_OUTPUTIDLEMODE(pOutputCfg->IdleMode));
mbed_official 155:8435094ec241 2033 assert_param(IS_HRTIM_OUTPUTFAULTSTATE(pOutputCfg->FaultState));
mbed_official 155:8435094ec241 2034 assert_param(IS_HRTIM_OUTPUTCHOPPERMODE(pOutputCfg->ChopperModeEnable));
mbed_official 155:8435094ec241 2035 assert_param(IS_HRTIM_OUTPUTBURSTMODEENTRY(pOutputCfg->BurstModeEntryDelayed));
mbed_official 155:8435094ec241 2036
mbed_official 155:8435094ec241 2037 /* Configure the timer output */
mbed_official 155:8435094ec241 2038 HRTIM_OutputConfig(HRTIM_, TimerIdx, Output, pOutputCfg);
mbed_official 155:8435094ec241 2039 }
mbed_official 155:8435094ec241 2040
mbed_official 155:8435094ec241 2041 /**
mbed_official 155:8435094ec241 2042 * @brief Configures the event filtering capabilities of a timer (blanking, windowing)
mbed_official 155:8435094ec241 2043 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2044 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2045 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2046 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2047 * @param Event: external event for which timer event filtering must be configured
mbed_official 155:8435094ec241 2048 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2049 * @arg HRTIM_EVENT_1: External event 1
mbed_official 155:8435094ec241 2050 * @arg HRTIM_EVENT_2: External event 2
mbed_official 155:8435094ec241 2051 * @arg HRTIM_EVENT_3: External event 3
mbed_official 155:8435094ec241 2052 * @arg HRTIM_EVENT_4: External event 4
mbed_official 155:8435094ec241 2053 * @arg HRTIM_EVENT_5: External event 5
mbed_official 155:8435094ec241 2054 * @arg HRTIM_EVENT_6: External event 6
mbed_official 155:8435094ec241 2055 * @arg HRTIM_EVENT_7: External event 7
mbed_official 155:8435094ec241 2056 * @arg HRTIM_EVENT_8: External event 8
mbed_official 155:8435094ec241 2057 * @arg HRTIM_EVENT_9: External event 9
mbed_official 155:8435094ec241 2058 * @arg HRTIM_EVENT_10: External event 10
mbed_official 155:8435094ec241 2059 * @param pTimerEventFilteringCfg: pointer to the timer event filtering configuration structure
mbed_official 155:8435094ec241 2060 * @retval None
mbed_official 155:8435094ec241 2061 */
mbed_official 155:8435094ec241 2062 void HRTIM_TimerEventFilteringConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2063 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2064 uint32_t Event,
mbed_official 155:8435094ec241 2065 HRTIM_TimerEventFilteringCfgTypeDef* pTimerEventFilteringCfg)
mbed_official 155:8435094ec241 2066 {
mbed_official 155:8435094ec241 2067 uint32_t HRTIM_eefr;
mbed_official 155:8435094ec241 2068
mbed_official 155:8435094ec241 2069 /* Check parameters */
mbed_official 155:8435094ec241 2070 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 2071 assert_param(IS_HRTIM_EVENT(Event));
mbed_official 155:8435094ec241 2072 assert_param(IS_HRTIM_TIMEVENTFILTER(pTimerEventFilteringCfg->Filter));
mbed_official 155:8435094ec241 2073 assert_param(IS_HRTIM_TIMEVENTLATCH(pTimerEventFilteringCfg->Latch));
mbed_official 155:8435094ec241 2074
mbed_official 155:8435094ec241 2075 /* Configure timer event filtering capabilities */
mbed_official 155:8435094ec241 2076 switch (Event)
mbed_official 155:8435094ec241 2077 {
mbed_official 155:8435094ec241 2078 case HRTIM_TIMEVENTFILTER_NONE:
mbed_official 155:8435094ec241 2079 {
mbed_official 155:8435094ec241 2080 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1 = 0;
mbed_official 155:8435094ec241 2081 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2 = 0;
mbed_official 155:8435094ec241 2082 }
mbed_official 155:8435094ec241 2083 break;
mbed_official 155:8435094ec241 2084 case HRTIM_EVENT_1:
mbed_official 155:8435094ec241 2085 {
mbed_official 155:8435094ec241 2086 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1;
mbed_official 155:8435094ec241 2087 HRTIM_eefr &= ~(HRTIM_EEFR1_EE1FLTR | HRTIM_EEFR1_EE1LTCH);
mbed_official 155:8435094ec241 2088 HRTIM_eefr |= (pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch);
mbed_official 155:8435094ec241 2089 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1 = HRTIM_eefr;
mbed_official 155:8435094ec241 2090 }
mbed_official 155:8435094ec241 2091 break;
mbed_official 155:8435094ec241 2092 case HRTIM_EVENT_2:
mbed_official 155:8435094ec241 2093 {
mbed_official 155:8435094ec241 2094 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1;
mbed_official 155:8435094ec241 2095 HRTIM_eefr &= ~(HRTIM_EEFR1_EE2FLTR | HRTIM_EEFR1_EE2LTCH);
mbed_official 155:8435094ec241 2096 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 6);
mbed_official 155:8435094ec241 2097 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1 = HRTIM_eefr;
mbed_official 155:8435094ec241 2098 }
mbed_official 155:8435094ec241 2099 break;
mbed_official 155:8435094ec241 2100 case HRTIM_EVENT_3:
mbed_official 155:8435094ec241 2101 {
mbed_official 155:8435094ec241 2102 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1;
mbed_official 155:8435094ec241 2103 HRTIM_eefr &= ~(HRTIM_EEFR1_EE3FLTR | HRTIM_EEFR1_EE3LTCH);
mbed_official 155:8435094ec241 2104 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 12);
mbed_official 155:8435094ec241 2105 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1 = HRTIM_eefr;
mbed_official 155:8435094ec241 2106 }
mbed_official 155:8435094ec241 2107 break;
mbed_official 155:8435094ec241 2108 case HRTIM_EVENT_4:
mbed_official 155:8435094ec241 2109 {
mbed_official 155:8435094ec241 2110 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1;
mbed_official 155:8435094ec241 2111 HRTIM_eefr &= ~(HRTIM_EEFR1_EE4FLTR | HRTIM_EEFR1_EE4LTCH);
mbed_official 155:8435094ec241 2112 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 18);
mbed_official 155:8435094ec241 2113 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1 = HRTIM_eefr;
mbed_official 155:8435094ec241 2114 }
mbed_official 155:8435094ec241 2115 break;
mbed_official 155:8435094ec241 2116 case HRTIM_EVENT_5:
mbed_official 155:8435094ec241 2117 {
mbed_official 155:8435094ec241 2118 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1;
mbed_official 155:8435094ec241 2119 HRTIM_eefr &= ~(HRTIM_EEFR1_EE5FLTR | HRTIM_EEFR1_EE5LTCH);
mbed_official 155:8435094ec241 2120 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 24);
mbed_official 155:8435094ec241 2121 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR1 = HRTIM_eefr;
mbed_official 155:8435094ec241 2122 }
mbed_official 155:8435094ec241 2123 break;
mbed_official 155:8435094ec241 2124 case HRTIM_EVENT_6:
mbed_official 155:8435094ec241 2125 {
mbed_official 155:8435094ec241 2126 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2;
mbed_official 155:8435094ec241 2127 HRTIM_eefr &= ~(HRTIM_EEFR2_EE6FLTR | HRTIM_EEFR2_EE6LTCH);
mbed_official 155:8435094ec241 2128 HRTIM_eefr |= (pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch);
mbed_official 155:8435094ec241 2129 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2 = HRTIM_eefr;
mbed_official 155:8435094ec241 2130 }
mbed_official 155:8435094ec241 2131 break;
mbed_official 155:8435094ec241 2132 case HRTIM_EVENT_7:
mbed_official 155:8435094ec241 2133 {
mbed_official 155:8435094ec241 2134 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2;
mbed_official 155:8435094ec241 2135 HRTIM_eefr &= ~(HRTIM_EEFR2_EE7FLTR | HRTIM_EEFR2_EE7LTCH);
mbed_official 155:8435094ec241 2136 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 6);
mbed_official 155:8435094ec241 2137 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2 = HRTIM_eefr;
mbed_official 155:8435094ec241 2138 }
mbed_official 155:8435094ec241 2139 break;
mbed_official 155:8435094ec241 2140 case HRTIM_EVENT_8:
mbed_official 155:8435094ec241 2141 {
mbed_official 155:8435094ec241 2142 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2;
mbed_official 155:8435094ec241 2143 HRTIM_eefr &= ~(HRTIM_EEFR2_EE8FLTR | HRTIM_EEFR2_EE8LTCH);
mbed_official 155:8435094ec241 2144 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 12);
mbed_official 155:8435094ec241 2145 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2 = HRTIM_eefr;
mbed_official 155:8435094ec241 2146 }
mbed_official 155:8435094ec241 2147 break;
mbed_official 155:8435094ec241 2148 case HRTIM_EVENT_9:
mbed_official 155:8435094ec241 2149 {
mbed_official 155:8435094ec241 2150 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2;
mbed_official 155:8435094ec241 2151 HRTIM_eefr &= ~(HRTIM_EEFR2_EE9FLTR | HRTIM_EEFR2_EE9LTCH);
mbed_official 155:8435094ec241 2152 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 18);
mbed_official 155:8435094ec241 2153 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2 = HRTIM_eefr;
mbed_official 155:8435094ec241 2154 }
mbed_official 155:8435094ec241 2155 break;
mbed_official 155:8435094ec241 2156 case HRTIM_EVENT_10:
mbed_official 155:8435094ec241 2157 {
mbed_official 155:8435094ec241 2158 HRTIM_eefr = HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2;
mbed_official 155:8435094ec241 2159 HRTIM_eefr &= ~(HRTIM_EEFR2_EE10FLTR | HRTIM_EEFR2_EE10LTCH);
mbed_official 155:8435094ec241 2160 HRTIM_eefr |= ((pTimerEventFilteringCfg->Filter | pTimerEventFilteringCfg->Latch) << 24);
mbed_official 155:8435094ec241 2161 HRTIMx->HRTIM_TIMERx[TimerIdx].EEFxR2 = HRTIM_eefr;
mbed_official 155:8435094ec241 2162 }
mbed_official 155:8435094ec241 2163 break;
mbed_official 155:8435094ec241 2164 default:
mbed_official 155:8435094ec241 2165 break;
mbed_official 155:8435094ec241 2166 }
mbed_official 155:8435094ec241 2167 }
mbed_official 155:8435094ec241 2168
mbed_official 155:8435094ec241 2169 /**
mbed_official 155:8435094ec241 2170 * @brief Configures the dead time insertion feature for a timer
mbed_official 155:8435094ec241 2171 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2172 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2173 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2174 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2175 * @param pDeadTimeCfg: pointer to the dead time insertion configuration structure
mbed_official 155:8435094ec241 2176 * @retval None
mbed_official 155:8435094ec241 2177 */
mbed_official 155:8435094ec241 2178 void HRTIM_DeadTimeConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2179 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2180 HRTIM_DeadTimeCfgTypeDef* pDeadTimeCfg)
mbed_official 155:8435094ec241 2181 {
mbed_official 155:8435094ec241 2182 uint32_t HRTIM_dtr;
mbed_official 155:8435094ec241 2183
mbed_official 155:8435094ec241 2184 /* Check parameters */
mbed_official 155:8435094ec241 2185 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 2186 assert_param(IS_HRTIM_TIMDEADTIME_RISINGSIGN(pDeadTimeCfg->RisingSign));
mbed_official 155:8435094ec241 2187 assert_param(IS_HRTIM_TIMDEADTIME_RISINGLOCK(pDeadTimeCfg->RisingLock));
mbed_official 155:8435094ec241 2188 assert_param(IS_HRTIM_TIMDEADTIME_RISINGSIGNLOCK(pDeadTimeCfg->RisingSignLock));
mbed_official 155:8435094ec241 2189 assert_param(IS_HRTIM_TIMDEADTIME_FALLINGSIGN(pDeadTimeCfg->FallingSign));
mbed_official 155:8435094ec241 2190 assert_param(IS_HRTIM_TIMDEADTIME_FALLINGLOCK(pDeadTimeCfg->FallingLock));
mbed_official 155:8435094ec241 2191 assert_param(IS_HRTIM_TIMDEADTIME_FALLINGSIGNLOCK(pDeadTimeCfg->FallingSignLock));
mbed_official 155:8435094ec241 2192
mbed_official 155:8435094ec241 2193 HRTIM_dtr = HRTIMx->HRTIM_TIMERx[TimerIdx].DTxR;
mbed_official 155:8435094ec241 2194
mbed_official 155:8435094ec241 2195 /* Clear timer dead times configuration */
mbed_official 155:8435094ec241 2196 HRTIM_dtr &= ~(HRTIM_DTR_DTR | HRTIM_DTR_SDTR | HRTIM_DTR_DTPRSC |
mbed_official 155:8435094ec241 2197 HRTIM_DTR_DTRSLK | HRTIM_DTR_DTRLK | HRTIM_DTR_SDTF |
mbed_official 155:8435094ec241 2198 HRTIM_DTR_SDTR | HRTIM_DTR_DTFSLK | HRTIM_DTR_DTFLK);
mbed_official 155:8435094ec241 2199
mbed_official 155:8435094ec241 2200 /* Set timer dead times configuration */
mbed_official 155:8435094ec241 2201 HRTIM_dtr |= (pDeadTimeCfg->Prescaler << 10);
mbed_official 155:8435094ec241 2202 HRTIM_dtr |= pDeadTimeCfg->RisingValue;
mbed_official 155:8435094ec241 2203 HRTIM_dtr |= pDeadTimeCfg->RisingSign;
mbed_official 155:8435094ec241 2204 HRTIM_dtr |= pDeadTimeCfg->RisingSignLock;
mbed_official 155:8435094ec241 2205 HRTIM_dtr |= pDeadTimeCfg->RisingLock;
mbed_official 155:8435094ec241 2206 HRTIM_dtr |= (pDeadTimeCfg->FallingValue << 16);
mbed_official 155:8435094ec241 2207 HRTIM_dtr |= pDeadTimeCfg->FallingSign;
mbed_official 155:8435094ec241 2208 HRTIM_dtr |= pDeadTimeCfg->FallingSignLock;
mbed_official 155:8435094ec241 2209 HRTIM_dtr |= pDeadTimeCfg->FallingLock;
mbed_official 155:8435094ec241 2210
mbed_official 155:8435094ec241 2211 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2212 HRTIMx->HRTIM_TIMERx[TimerIdx].DTxR = HRTIM_dtr;
mbed_official 155:8435094ec241 2213 }
mbed_official 155:8435094ec241 2214
mbed_official 155:8435094ec241 2215 /**
mbed_official 155:8435094ec241 2216 * @brief Configures the chopper mode feature for a timer
mbed_official 155:8435094ec241 2217 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2218 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2219 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2220 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2221 * @param pChopperModeCfg: pointer to the chopper mode configuration structure
mbed_official 155:8435094ec241 2222 * @retval None
mbed_official 155:8435094ec241 2223 */
mbed_official 155:8435094ec241 2224 void HRTIM_ChopperModeConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2225 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2226 HRTIM_ChopperModeCfgTypeDef* pChopperModeCfg)
mbed_official 155:8435094ec241 2227 {
mbed_official 155:8435094ec241 2228 uint32_t HRTIM_chpr;
mbed_official 155:8435094ec241 2229
mbed_official 155:8435094ec241 2230 /* Check parameters */
mbed_official 155:8435094ec241 2231 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 2232
mbed_official 155:8435094ec241 2233 HRTIM_chpr = HRTIMx->HRTIM_TIMERx[TimerIdx].CHPxR;
mbed_official 155:8435094ec241 2234
mbed_official 155:8435094ec241 2235 /* Clear timer chopper mode configuration */
mbed_official 155:8435094ec241 2236 HRTIM_chpr &= ~(HRTIM_CHPR_CARFRQ | HRTIM_CHPR_CARDTY | HRTIM_CHPR_STRPW);
mbed_official 155:8435094ec241 2237
mbed_official 155:8435094ec241 2238 /* Set timer chopper mode configuration */
mbed_official 155:8435094ec241 2239 HRTIM_chpr |= pChopperModeCfg->CarrierFreq;
mbed_official 155:8435094ec241 2240 HRTIM_chpr |= (pChopperModeCfg->DutyCycle << 4);
mbed_official 155:8435094ec241 2241 HRTIM_chpr |= (pChopperModeCfg->StartPulse << 7);
mbed_official 155:8435094ec241 2242
mbed_official 155:8435094ec241 2243 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2244 HRTIMx->HRTIM_TIMERx[TimerIdx].CHPxR = HRTIM_chpr;
mbed_official 155:8435094ec241 2245 }
mbed_official 155:8435094ec241 2246
mbed_official 155:8435094ec241 2247 /**
mbed_official 155:8435094ec241 2248 * @brief Configures the burst DMA controller for a timer
mbed_official 155:8435094ec241 2249 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2250 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2251 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2252 * @arg 0x5 for master timer
mbed_official 155:8435094ec241 2253 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2254 * @param RegistersToUpdate: registers to be written by DMA
mbed_official 155:8435094ec241 2255 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 2256 * @arg HRTIM_BURSTDMA_CR: HRTIM_MCR or HRTIM_TIMxCR
mbed_official 155:8435094ec241 2257 * @arg HRTIM_BURSTDMA_ICR: HRTIM_MICR or HRTIM_TIMxICR
mbed_official 155:8435094ec241 2258 * @arg HRTIM_BURSTDMA_DIER: HRTIM_MDIER or HRTIM_TIMxDIER
mbed_official 155:8435094ec241 2259 * @arg HRTIM_BURSTDMA_CNT: HRTIM_MCNT or HRTIM_TIMxCNT
mbed_official 155:8435094ec241 2260 * @arg HRTIM_BURSTDMA_PER: HRTIM_MPER or HRTIM_TIMxPER
mbed_official 155:8435094ec241 2261 * @arg HRTIM_BURSTDMA_REP: HRTIM_MREP or HRTIM_TIMxREP
mbed_official 155:8435094ec241 2262 * @arg HRTIM_BURSTDMA_CMP1: HRTIM_MCMP1 or HRTIM_TIMxCMP1
mbed_official 155:8435094ec241 2263 * @arg HRTIM_BURSTDMA_CMP2: HRTIM_MCMP2 or HRTIM_TIMxCMP2
mbed_official 155:8435094ec241 2264 * @arg HRTIM_BURSTDMA_CMP3: HRTIM_MCMP3 or HRTIM_TIMxCMP3
mbed_official 155:8435094ec241 2265 * @arg HRTIM_BURSTDMA_CMP4: HRTIM_MCMP4 or HRTIM_TIMxCMP4
mbed_official 155:8435094ec241 2266 * @arg HRTIM_BURSTDMA_DTR: HRTIM_TIMxDTR
mbed_official 155:8435094ec241 2267 * @arg HRTIM_BURSTDMA_SET1R: HRTIM_TIMxSET1R
mbed_official 155:8435094ec241 2268 * @arg HRTIM_BURSTDMA_RST1R: HRTIM_TIMxRST1R
mbed_official 155:8435094ec241 2269 * @arg HRTIM_BURSTDMA_SET2R: HRTIM_TIMxSET2R
mbed_official 155:8435094ec241 2270 * @arg HRTIM_BURSTDMA_RST2R: HRTIM_TIMxRST2R
mbed_official 155:8435094ec241 2271 * @arg HRTIM_BURSTDMA_EEFR1: HRTIM_TIMxEEFR1
mbed_official 155:8435094ec241 2272 * @arg HRTIM_BURSTDMA_EEFR2: HRTIM_TIMxEEFR2
mbed_official 155:8435094ec241 2273 * @arg HRTIM_BURSTDMA_RSTR: HRTIM_TIMxRSTR
mbed_official 155:8435094ec241 2274 * @arg HRTIM_BURSTDMA_CHPR: HRTIM_TIMxCHPR
mbed_official 155:8435094ec241 2275 * @arg HRTIM_BURSTDMA_OUTR: HRTIM_TIMxOUTR
mbed_official 155:8435094ec241 2276 * @arg HRTIM_BURSTDMA_FLTR: HRTIM_TIMxFLTR
mbed_official 155:8435094ec241 2277 * @retval None
mbed_official 155:8435094ec241 2278 */
mbed_official 155:8435094ec241 2279 void HRTIM_BurstDMAConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2280 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2281 uint32_t RegistersToUpdate)
mbed_official 155:8435094ec241 2282 {
mbed_official 155:8435094ec241 2283 /* Check parameters */
mbed_official 155:8435094ec241 2284 assert_param(IS_HRTIM_TIMER_BURSTDMA(TimerIdx, RegistersToUpdate));
mbed_official 155:8435094ec241 2285
mbed_official 155:8435094ec241 2286 /* Set the burst DMA timer update register */
mbed_official 155:8435094ec241 2287 switch (TimerIdx)
mbed_official 155:8435094ec241 2288 {
mbed_official 155:8435094ec241 2289 case HRTIM_TIMERINDEX_TIMER_A:
mbed_official 155:8435094ec241 2290 {
mbed_official 155:8435094ec241 2291 HRTIMx->HRTIM_COMMON.BDTAUPR = RegistersToUpdate;
mbed_official 155:8435094ec241 2292 }
mbed_official 155:8435094ec241 2293 break;
mbed_official 155:8435094ec241 2294 case HRTIM_TIMERINDEX_TIMER_B:
mbed_official 155:8435094ec241 2295 {
mbed_official 155:8435094ec241 2296 HRTIMx->HRTIM_COMMON.BDTBUPR = RegistersToUpdate;
mbed_official 155:8435094ec241 2297 }
mbed_official 155:8435094ec241 2298 break;
mbed_official 155:8435094ec241 2299 case HRTIM_TIMERINDEX_TIMER_C:
mbed_official 155:8435094ec241 2300 {
mbed_official 155:8435094ec241 2301 HRTIMx->HRTIM_COMMON.BDTCUPR = RegistersToUpdate;
mbed_official 155:8435094ec241 2302 }
mbed_official 155:8435094ec241 2303 break;
mbed_official 155:8435094ec241 2304 case HRTIM_TIMERINDEX_TIMER_D:
mbed_official 155:8435094ec241 2305 {
mbed_official 155:8435094ec241 2306 HRTIMx->HRTIM_COMMON.BDTDUPR = RegistersToUpdate;
mbed_official 155:8435094ec241 2307 }
mbed_official 155:8435094ec241 2308 break;
mbed_official 155:8435094ec241 2309 case HRTIM_TIMERINDEX_TIMER_E:
mbed_official 155:8435094ec241 2310 {
mbed_official 155:8435094ec241 2311 HRTIMx->HRTIM_COMMON.BDTEUPR = RegistersToUpdate;
mbed_official 155:8435094ec241 2312 }
mbed_official 155:8435094ec241 2313 break;
mbed_official 155:8435094ec241 2314 case HRTIM_TIMERINDEX_MASTER:
mbed_official 155:8435094ec241 2315 {
mbed_official 155:8435094ec241 2316 HRTIMx->HRTIM_COMMON.BDMUPDR = RegistersToUpdate;
mbed_official 155:8435094ec241 2317 }
mbed_official 155:8435094ec241 2318 break;
mbed_official 155:8435094ec241 2319 default:
mbed_official 155:8435094ec241 2320 break;
mbed_official 155:8435094ec241 2321 }
mbed_official 155:8435094ec241 2322 }
mbed_official 155:8435094ec241 2323
mbed_official 155:8435094ec241 2324 /**
mbed_official 155:8435094ec241 2325 * @brief Configures the external input/output synchronization of the HRTIMx
mbed_official 155:8435094ec241 2326 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2327 * @param pSynchroCfg: pointer to the input/output synchronization configuration structure
mbed_official 155:8435094ec241 2328 * @retval None
mbed_official 155:8435094ec241 2329 */
mbed_official 155:8435094ec241 2330 void HRTIM_SynchronizationConfig(HRTIM_TypeDef *HRTIMx, HRTIM_SynchroCfgTypeDef * pSynchroCfg)
mbed_official 155:8435094ec241 2331 {
mbed_official 155:8435094ec241 2332 uint32_t HRTIM_mcr;
mbed_official 155:8435094ec241 2333
mbed_official 155:8435094ec241 2334 /* Check parameters */
mbed_official 155:8435094ec241 2335 assert_param(IS_HRTIM_SYNCINPUTSOURCE(pSynchroCfg->SyncInputSource));
mbed_official 155:8435094ec241 2336 assert_param(IS_HRTIM_SYNCOUTPUTSOURCE(pSynchroCfg->SyncOutputSource));
mbed_official 155:8435094ec241 2337 assert_param(IS_HRTIM_SYNCOUTPUTPOLARITY(pSynchroCfg->SyncOutputPolarity));
mbed_official 155:8435094ec241 2338
mbed_official 155:8435094ec241 2339 HRTIM_mcr = HRTIMx->HRTIM_MASTER.MCR;
mbed_official 155:8435094ec241 2340
mbed_official 155:8435094ec241 2341 /* Set the synchronization input source */
mbed_official 155:8435094ec241 2342 HRTIM_mcr &= ~(HRTIM_MCR_SYNC_IN);
mbed_official 155:8435094ec241 2343 HRTIM_mcr |= pSynchroCfg->SyncInputSource;
mbed_official 155:8435094ec241 2344
mbed_official 155:8435094ec241 2345 /* Set the event to be sent on the synchronization output */
mbed_official 155:8435094ec241 2346 HRTIM_mcr &= ~(HRTIM_MCR_SYNC_SRC);
mbed_official 155:8435094ec241 2347 HRTIM_mcr |= pSynchroCfg->SyncOutputSource;
mbed_official 155:8435094ec241 2348
mbed_official 155:8435094ec241 2349 /* Set the polarity of the synchronization output */
mbed_official 155:8435094ec241 2350 HRTIM_mcr &= ~(HRTIM_MCR_SYNC_OUT);
mbed_official 155:8435094ec241 2351 HRTIM_mcr |= pSynchroCfg->SyncOutputPolarity;
mbed_official 155:8435094ec241 2352
mbed_official 155:8435094ec241 2353 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2354 HRTIMx->HRTIM_MASTER.MCR = HRTIM_mcr;
mbed_official 155:8435094ec241 2355 }
mbed_official 155:8435094ec241 2356
mbed_official 155:8435094ec241 2357 /**
mbed_official 155:8435094ec241 2358 * @brief Configures the burst mode feature of the HRTIMx
mbed_official 155:8435094ec241 2359 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2360 * @param pBurstModeCfg: pointer to the burst mode configuration structure
mbed_official 155:8435094ec241 2361 * @retval None
mbed_official 155:8435094ec241 2362 */
mbed_official 155:8435094ec241 2363 void HRTIM_BurstModeConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2364 HRTIM_BurstModeCfgTypeDef* pBurstModeCfg)
mbed_official 155:8435094ec241 2365 {
mbed_official 155:8435094ec241 2366 uint32_t HRTIM_bmcr;
mbed_official 155:8435094ec241 2367
mbed_official 155:8435094ec241 2368 /* Check parameters */
mbed_official 155:8435094ec241 2369 assert_param(IS_HRTIM_BURSTMODE(pBurstModeCfg->Mode));
mbed_official 155:8435094ec241 2370 assert_param(IS_HRTIM_BURSTMODECLOCKSOURCE(pBurstModeCfg->ClockSource));
mbed_official 155:8435094ec241 2371 assert_param(IS_HRTIM_HRTIM_BURSTMODEPRESCALER(pBurstModeCfg->Prescaler));
mbed_official 155:8435094ec241 2372 assert_param(IS_HRTIM_BURSTMODEPRELOAD(pBurstModeCfg->PreloadEnable));
mbed_official 155:8435094ec241 2373
mbed_official 155:8435094ec241 2374 HRTIM_bmcr = HRTIMx->HRTIM_COMMON.BMCR;
mbed_official 155:8435094ec241 2375
mbed_official 155:8435094ec241 2376 /* Set the burst mode operating mode */
mbed_official 155:8435094ec241 2377 HRTIM_bmcr &= ~(HRTIM_BMCR_BMOM);
mbed_official 155:8435094ec241 2378 HRTIM_bmcr |= pBurstModeCfg->Mode;
mbed_official 155:8435094ec241 2379
mbed_official 155:8435094ec241 2380 /* Set the burst mode clock source */
mbed_official 155:8435094ec241 2381 HRTIM_bmcr &= ~(HRTIM_BMCR_BMCLK);
mbed_official 155:8435094ec241 2382 HRTIM_bmcr |= pBurstModeCfg->ClockSource;
mbed_official 155:8435094ec241 2383
mbed_official 155:8435094ec241 2384 /* Set the burst mode prescaler */
mbed_official 155:8435094ec241 2385 HRTIM_bmcr &= ~(HRTIM_BMCR_BMPSC);
mbed_official 155:8435094ec241 2386 HRTIM_bmcr |= pBurstModeCfg->Prescaler;
mbed_official 155:8435094ec241 2387
mbed_official 155:8435094ec241 2388 /* Enable/disable burst mode registers preload */
mbed_official 155:8435094ec241 2389 HRTIM_bmcr &= ~(HRTIM_BMCR_BMPREN);
mbed_official 155:8435094ec241 2390 HRTIM_bmcr |= pBurstModeCfg->PreloadEnable;
mbed_official 155:8435094ec241 2391
mbed_official 155:8435094ec241 2392 /* Set the burst mode trigger */
mbed_official 155:8435094ec241 2393 HRTIMx->HRTIM_COMMON.BMTRGR = pBurstModeCfg->Trigger;
mbed_official 155:8435094ec241 2394
mbed_official 155:8435094ec241 2395 /* Set the burst mode compare value */
mbed_official 155:8435094ec241 2396 HRTIMx->HRTIM_COMMON.BMCMPR = pBurstModeCfg->IdleDuration;
mbed_official 155:8435094ec241 2397
mbed_official 155:8435094ec241 2398 /* Set the burst mode period */
mbed_official 155:8435094ec241 2399 HRTIMx->HRTIM_COMMON.BMPER = pBurstModeCfg->Period;
mbed_official 155:8435094ec241 2400
mbed_official 155:8435094ec241 2401 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2402 HRTIMx->HRTIM_COMMON.BMCR = HRTIM_bmcr;
mbed_official 155:8435094ec241 2403 }
mbed_official 155:8435094ec241 2404
mbed_official 155:8435094ec241 2405 /**
mbed_official 155:8435094ec241 2406 * @brief Configures the conditioning of an external event
mbed_official 155:8435094ec241 2407 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2408 * @param Event: external event to configure
mbed_official 155:8435094ec241 2409 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2410 * @arg HRTIM_EVENT_1: External event 1
mbed_official 155:8435094ec241 2411 * @arg HRTIM_EVENT_2: External event 2
mbed_official 155:8435094ec241 2412 * @arg HRTIM_EVENT_3: External event 3
mbed_official 155:8435094ec241 2413 * @arg HRTIM_EVENT_4: External event 4
mbed_official 155:8435094ec241 2414 * @arg HRTIM_EVENT_5: External event 5
mbed_official 155:8435094ec241 2415 * @arg HRTIM_EVENT_6: External event 6
mbed_official 155:8435094ec241 2416 * @arg HRTIM_EVENT_7: External event 7
mbed_official 155:8435094ec241 2417 * @arg HRTIM_EVENT_8: External event 8
mbed_official 155:8435094ec241 2418 * @arg HRTIM_EVENT_9: External event 9
mbed_official 155:8435094ec241 2419 * @arg HRTIM_EVENT_10: External event 10
mbed_official 155:8435094ec241 2420 * @param pEventCfg: pointer to the event conditioning configuration structure
mbed_official 155:8435094ec241 2421 * @retval None
mbed_official 155:8435094ec241 2422 */
mbed_official 155:8435094ec241 2423 void HRTIM_EventConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2424 uint32_t Event,
mbed_official 155:8435094ec241 2425 HRTIM_EventCfgTypeDef* pEventCfg)
mbed_official 155:8435094ec241 2426 {
mbed_official 155:8435094ec241 2427 /* Check parameters */
mbed_official 155:8435094ec241 2428 assert_param(IS_HRTIM_EVENTSRC(pEventCfg->Source));
mbed_official 155:8435094ec241 2429 assert_param(IS_HRTIM_EVENTPOLARITY(pEventCfg->Polarity));
mbed_official 155:8435094ec241 2430 assert_param(IS_HRTIM_EVENTSENSITIVITY(pEventCfg->Sensitivity));
mbed_official 155:8435094ec241 2431 assert_param(IS_HRTIM_EVENTFASTMODE(pEventCfg->FastMode));
mbed_official 155:8435094ec241 2432 assert_param(IS_HRTIM_EVENTFILTER(pEventCfg->Filter));
mbed_official 155:8435094ec241 2433
mbed_official 155:8435094ec241 2434 /* Configure the event channel */
mbed_official 155:8435094ec241 2435 HRTIM_ExternalEventConfig(HRTIMx, Event, pEventCfg);
mbed_official 155:8435094ec241 2436
mbed_official 155:8435094ec241 2437 }
mbed_official 155:8435094ec241 2438
mbed_official 155:8435094ec241 2439 /**
mbed_official 155:8435094ec241 2440 * @brief Configures the external event conditioning block prescaler
mbed_official 155:8435094ec241 2441 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2442 * @param Prescaler: Prescaler value
mbed_official 155:8435094ec241 2443 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2444 * @arg HRTIM_EVENTPRESCALER_DIV1: fEEVS=fHRTIMx
mbed_official 155:8435094ec241 2445 * @arg HRTIM_EVENTPRESCALER_DIV2: fEEVS=fHRTIMx / 2
mbed_official 155:8435094ec241 2446 * @arg HRTIM_EVENTPRESCALER_DIV4: fEEVS=fHRTIMx / 4
mbed_official 155:8435094ec241 2447 * @arg HRTIM_EVENTPRESCALER_DIV8: fEEVS=fHRTIMx / 8
mbed_official 155:8435094ec241 2448 * @retval None
mbed_official 155:8435094ec241 2449 */
mbed_official 155:8435094ec241 2450 void HRTIM_EventPrescalerConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2451 uint32_t Prescaler)
mbed_official 155:8435094ec241 2452 {
mbed_official 155:8435094ec241 2453 uint32_t HRTIM_eecr3;
mbed_official 155:8435094ec241 2454
mbed_official 155:8435094ec241 2455 /* Check parameters */
mbed_official 155:8435094ec241 2456 assert_param(IS_HRTIM_EVENTPRESCALER(Prescaler));
mbed_official 155:8435094ec241 2457
mbed_official 155:8435094ec241 2458 /* Set the external event prescaler */
mbed_official 155:8435094ec241 2459 HRTIM_eecr3 = HRTIMx->HRTIM_COMMON.EECR3;
mbed_official 155:8435094ec241 2460 HRTIM_eecr3 &= ~(HRTIM_EECR3_EEVSD);
mbed_official 155:8435094ec241 2461 HRTIM_eecr3 |= Prescaler;
mbed_official 155:8435094ec241 2462
mbed_official 155:8435094ec241 2463 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2464 HRTIMx->HRTIM_COMMON.EECR3 = HRTIM_eecr3;
mbed_official 155:8435094ec241 2465 }
mbed_official 155:8435094ec241 2466
mbed_official 155:8435094ec241 2467 /**
mbed_official 155:8435094ec241 2468 * @brief Configures the conditioning of fault input
mbed_official 155:8435094ec241 2469 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2470 * @param Fault: fault input to configure
mbed_official 155:8435094ec241 2471 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2472 * @arg HRTIM_FAULT_1: Fault input 1
mbed_official 155:8435094ec241 2473 * @arg HRTIM_FAULT_2: Fault input 2
mbed_official 155:8435094ec241 2474 * @arg HRTIM_FAULT_3: Fault input 3
mbed_official 155:8435094ec241 2475 * @arg HRTIM_FAULT_4: Fault input 4
mbed_official 155:8435094ec241 2476 * @arg HRTIM_FAULT_5: Fault input 5
mbed_official 155:8435094ec241 2477 * @param pFaultCfg: pointer to the fault conditioning configuration structure
mbed_official 155:8435094ec241 2478 * @retval None
mbed_official 155:8435094ec241 2479 */
mbed_official 155:8435094ec241 2480 void HRTIM_FaultConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2481 HRTIM_FaultCfgTypeDef* pFaultCfg,
mbed_official 155:8435094ec241 2482 uint32_t Fault)
mbed_official 155:8435094ec241 2483 {
mbed_official 155:8435094ec241 2484 uint32_t HRTIM_fltinr1;
mbed_official 155:8435094ec241 2485 uint32_t HRTIM_fltinr2;
mbed_official 155:8435094ec241 2486
mbed_official 155:8435094ec241 2487 /* Check parameters */
mbed_official 155:8435094ec241 2488 assert_param(IS_HRTIM_FAULT(Fault));
mbed_official 155:8435094ec241 2489 assert_param(IS_HRTIM_FAULTSOURCE(pFaultCfg->Source));
mbed_official 155:8435094ec241 2490 assert_param(IS_HRTIM_FAULTPOLARITY(pFaultCfg->Polarity));
mbed_official 155:8435094ec241 2491 assert_param(IS_HRTIM_FAULTFILTER(pFaultCfg->Filter));
mbed_official 155:8435094ec241 2492 assert_param(IS_HRTIM_FAULTLOCK(pFaultCfg->Lock));
mbed_official 155:8435094ec241 2493
mbed_official 155:8435094ec241 2494 /* Configure fault channel */
mbed_official 155:8435094ec241 2495 HRTIM_fltinr1 = HRTIMx->HRTIM_COMMON.FLTINxR1;
mbed_official 155:8435094ec241 2496 HRTIM_fltinr2 = HRTIMx->HRTIM_COMMON.FLTINxR2;
mbed_official 155:8435094ec241 2497
mbed_official 155:8435094ec241 2498 switch (Fault)
mbed_official 155:8435094ec241 2499 {
mbed_official 155:8435094ec241 2500 case HRTIM_FAULT_1:
mbed_official 155:8435094ec241 2501 {
mbed_official 155:8435094ec241 2502 HRTIM_fltinr1 &= ~(HRTIM_FLTINR1_FLT1P | HRTIM_FLTINR1_FLT1SRC | HRTIM_FLTINR1_FLT1F | HRTIM_FLTINR1_FLT1LCK);
mbed_official 155:8435094ec241 2503 HRTIM_fltinr1 |= pFaultCfg->Polarity;
mbed_official 155:8435094ec241 2504 HRTIM_fltinr1 |= pFaultCfg->Source;
mbed_official 155:8435094ec241 2505 HRTIM_fltinr1 |= pFaultCfg->Filter;
mbed_official 155:8435094ec241 2506 HRTIM_fltinr1 |= pFaultCfg->Lock;
mbed_official 155:8435094ec241 2507 }
mbed_official 155:8435094ec241 2508 break;
mbed_official 155:8435094ec241 2509 case HRTIM_FAULT_2:
mbed_official 155:8435094ec241 2510 {
mbed_official 155:8435094ec241 2511 HRTIM_fltinr1 &= ~(HRTIM_FLTINR1_FLT2P | HRTIM_FLTINR1_FLT2SRC | HRTIM_FLTINR1_FLT2F | HRTIM_FLTINR1_FLT2LCK);
mbed_official 155:8435094ec241 2512 HRTIM_fltinr1 |= (pFaultCfg->Polarity << 8);
mbed_official 155:8435094ec241 2513 HRTIM_fltinr1 |= (pFaultCfg->Source << 8);
mbed_official 155:8435094ec241 2514 HRTIM_fltinr1 |= (pFaultCfg->Filter << 8);
mbed_official 155:8435094ec241 2515 HRTIM_fltinr1 |= (pFaultCfg->Lock << 8);
mbed_official 155:8435094ec241 2516 }
mbed_official 155:8435094ec241 2517 break;
mbed_official 155:8435094ec241 2518 case HRTIM_FAULT_3:
mbed_official 155:8435094ec241 2519 {
mbed_official 155:8435094ec241 2520 HRTIM_fltinr1 &= ~(HRTIM_FLTINR1_FLT3P | HRTIM_FLTINR1_FLT3SRC | HRTIM_FLTINR1_FLT3F | HRTIM_FLTINR1_FLT3LCK);
mbed_official 155:8435094ec241 2521 HRTIM_fltinr1 |= (pFaultCfg->Polarity << 16);
mbed_official 155:8435094ec241 2522 HRTIM_fltinr1 |= (pFaultCfg->Source << 16);
mbed_official 155:8435094ec241 2523 HRTIM_fltinr1 |= (pFaultCfg->Filter << 16);
mbed_official 155:8435094ec241 2524 HRTIM_fltinr1 |= (pFaultCfg->Lock << 16);
mbed_official 155:8435094ec241 2525 }
mbed_official 155:8435094ec241 2526 break;
mbed_official 155:8435094ec241 2527 case HRTIM_FAULT_4:
mbed_official 155:8435094ec241 2528 {
mbed_official 155:8435094ec241 2529 HRTIM_fltinr1 &= ~(HRTIM_FLTINR1_FLT4P | HRTIM_FLTINR1_FLT4SRC | HRTIM_FLTINR1_FLT4F | HRTIM_FLTINR1_FLT4LCK);
mbed_official 155:8435094ec241 2530 HRTIM_fltinr1 |= (pFaultCfg->Polarity << 24);
mbed_official 155:8435094ec241 2531 HRTIM_fltinr1 |= (pFaultCfg->Source << 24);
mbed_official 155:8435094ec241 2532 HRTIM_fltinr1 |= (pFaultCfg->Filter << 24);
mbed_official 155:8435094ec241 2533 HRTIM_fltinr1 |= (pFaultCfg->Lock << 24);
mbed_official 155:8435094ec241 2534 }
mbed_official 155:8435094ec241 2535 break;
mbed_official 155:8435094ec241 2536 case HRTIM_FAULT_5:
mbed_official 155:8435094ec241 2537 {
mbed_official 155:8435094ec241 2538 HRTIM_fltinr2 &= ~(HRTIM_FLTINR2_FLT5P | HRTIM_FLTINR2_FLT5SRC | HRTIM_FLTINR2_FLT5F | HRTIM_FLTINR2_FLT5LCK);
mbed_official 155:8435094ec241 2539 HRTIM_fltinr2 |= pFaultCfg->Polarity;
mbed_official 155:8435094ec241 2540 HRTIM_fltinr2 |= pFaultCfg->Source;
mbed_official 155:8435094ec241 2541 HRTIM_fltinr2 |= pFaultCfg->Filter;
mbed_official 155:8435094ec241 2542 HRTIM_fltinr2 |= pFaultCfg->Lock;
mbed_official 155:8435094ec241 2543 }
mbed_official 155:8435094ec241 2544 break;
mbed_official 155:8435094ec241 2545 default:
mbed_official 155:8435094ec241 2546 break;
mbed_official 155:8435094ec241 2547 }
mbed_official 155:8435094ec241 2548
mbed_official 155:8435094ec241 2549 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2550 HRTIMx->HRTIM_COMMON.FLTINxR1 = HRTIM_fltinr1;
mbed_official 155:8435094ec241 2551 HRTIMx->HRTIM_COMMON.FLTINxR2 = HRTIM_fltinr2;
mbed_official 155:8435094ec241 2552 }
mbed_official 155:8435094ec241 2553
mbed_official 155:8435094ec241 2554 /**
mbed_official 155:8435094ec241 2555 * @brief Configures the fault conditioning block prescaler
mbed_official 155:8435094ec241 2556 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2557 * @param Prescaler: Prescaler value
mbed_official 155:8435094ec241 2558 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2559 * @arg HRTIM_FAULTPRESCALER_DIV1: fFLTS=fHRTIMx
mbed_official 155:8435094ec241 2560 * @arg HRTIM_FAULTPRESCALER_DIV2: fFLTS=fHRTIMx / 2
mbed_official 155:8435094ec241 2561 * @arg HRTIM_FAULTPRESCALER_DIV4: fFLTS=fHRTIMx / 4
mbed_official 155:8435094ec241 2562 * @arg HRTIM_FAULTPRESCALER_DIV8: fFLTS=fHRTIMx / 8
mbed_official 155:8435094ec241 2563 * @retval None
mbed_official 155:8435094ec241 2564 */
mbed_official 155:8435094ec241 2565 void HRTIM_FaultPrescalerConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2566 uint32_t Prescaler)
mbed_official 155:8435094ec241 2567 {
mbed_official 155:8435094ec241 2568 uint32_t HRTIM_fltinr2;
mbed_official 155:8435094ec241 2569
mbed_official 155:8435094ec241 2570 /* Check parameters */
mbed_official 155:8435094ec241 2571 assert_param(IS_HRTIM_FAULTPRESCALER(Prescaler));
mbed_official 155:8435094ec241 2572
mbed_official 155:8435094ec241 2573 /* Set the external event prescaler */
mbed_official 155:8435094ec241 2574 HRTIM_fltinr2 = HRTIMx->HRTIM_COMMON.FLTINxR2;
mbed_official 155:8435094ec241 2575 HRTIM_fltinr2 &= ~(HRTIM_FLTINR2_FLTSD);
mbed_official 155:8435094ec241 2576 HRTIM_fltinr2 |= Prescaler;
mbed_official 155:8435094ec241 2577
mbed_official 155:8435094ec241 2578 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2579 HRTIMx->HRTIM_COMMON.FLTINxR2 = HRTIM_fltinr2;
mbed_official 155:8435094ec241 2580 }
mbed_official 155:8435094ec241 2581
mbed_official 155:8435094ec241 2582 /**
mbed_official 155:8435094ec241 2583 * @brief Enables or disables the HRTIMx Fault mode.
mbed_official 155:8435094ec241 2584 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2585 * @param Fault: fault input to configure
mbed_official 155:8435094ec241 2586 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2587 * @arg HRTIM_FAULT_1: Fault input 1
mbed_official 155:8435094ec241 2588 * @arg HRTIM_FAULT_2: Fault input 2
mbed_official 155:8435094ec241 2589 * @arg HRTIM_FAULT_3: Fault input 3
mbed_official 155:8435094ec241 2590 * @arg HRTIM_FAULT_4: Fault input 4
mbed_official 155:8435094ec241 2591 * @arg HRTIM_FAULT_5: Fault input 5
mbed_official 155:8435094ec241 2592 * @param Enable: Fault mode controller enabling
mbed_official 155:8435094ec241 2593 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2594 * @arg HRTIM_FAULT_ENABLED: Fault mode enabled
mbed_official 155:8435094ec241 2595 * @arg HRTIM_FAULT_DISABLED: Fault mode disabled
mbed_official 155:8435094ec241 2596 * @retval None
mbed_official 155:8435094ec241 2597 */
mbed_official 155:8435094ec241 2598 void HRTIM_FaultModeCtl(HRTIM_TypeDef * HRTIMx, uint32_t Fault, uint32_t Enable)
mbed_official 155:8435094ec241 2599 {
mbed_official 155:8435094ec241 2600 uint32_t HRTIM_fltinr1;
mbed_official 155:8435094ec241 2601 uint32_t HRTIM_fltinr2;
mbed_official 155:8435094ec241 2602
mbed_official 155:8435094ec241 2603 /* Check parameters */
mbed_official 155:8435094ec241 2604 assert_param(IS_HRTIM_FAULT(Fault));
mbed_official 155:8435094ec241 2605 assert_param(IS_HRTIM_FAULTCTL(Enable));
mbed_official 155:8435094ec241 2606
mbed_official 155:8435094ec241 2607 /* Configure fault channel */
mbed_official 155:8435094ec241 2608 HRTIM_fltinr1 = HRTIMx->HRTIM_COMMON.FLTINxR1;
mbed_official 155:8435094ec241 2609 HRTIM_fltinr2 = HRTIMx->HRTIM_COMMON.FLTINxR2;
mbed_official 155:8435094ec241 2610
mbed_official 155:8435094ec241 2611 switch (Fault)
mbed_official 155:8435094ec241 2612 {
mbed_official 155:8435094ec241 2613 case HRTIM_FAULT_1:
mbed_official 155:8435094ec241 2614 {
mbed_official 155:8435094ec241 2615 HRTIM_fltinr1 &= ~HRTIM_FLTINR1_FLT1E;
mbed_official 155:8435094ec241 2616 HRTIM_fltinr1 |= Enable;
mbed_official 155:8435094ec241 2617 }
mbed_official 155:8435094ec241 2618 break;
mbed_official 155:8435094ec241 2619 case HRTIM_FAULT_2:
mbed_official 155:8435094ec241 2620 {
mbed_official 155:8435094ec241 2621 HRTIM_fltinr1 &= ~HRTIM_FLTINR1_FLT2E;
mbed_official 155:8435094ec241 2622 HRTIM_fltinr1 |= (Enable<< 8);
mbed_official 155:8435094ec241 2623 }
mbed_official 155:8435094ec241 2624 break;
mbed_official 155:8435094ec241 2625 case HRTIM_FAULT_3:
mbed_official 155:8435094ec241 2626 {
mbed_official 155:8435094ec241 2627 HRTIM_fltinr1 &= ~HRTIM_FLTINR1_FLT3E;
mbed_official 155:8435094ec241 2628 HRTIM_fltinr1 |= (Enable << 16);
mbed_official 155:8435094ec241 2629 }
mbed_official 155:8435094ec241 2630 break;
mbed_official 155:8435094ec241 2631 case HRTIM_FAULT_4:
mbed_official 155:8435094ec241 2632 {
mbed_official 155:8435094ec241 2633 HRTIM_fltinr1 &= ~HRTIM_FLTINR1_FLT4E;
mbed_official 155:8435094ec241 2634 HRTIM_fltinr1 |= (Enable << 24);
mbed_official 155:8435094ec241 2635 }
mbed_official 155:8435094ec241 2636 break;
mbed_official 155:8435094ec241 2637 case HRTIM_FAULT_5:
mbed_official 155:8435094ec241 2638 {
mbed_official 155:8435094ec241 2639 HRTIM_fltinr2 &= ~HRTIM_FLTINR2_FLT5E;
mbed_official 155:8435094ec241 2640 HRTIM_fltinr2 |= Enable;
mbed_official 155:8435094ec241 2641 }
mbed_official 155:8435094ec241 2642 break;
mbed_official 155:8435094ec241 2643 default:
mbed_official 155:8435094ec241 2644 break;
mbed_official 155:8435094ec241 2645 }
mbed_official 155:8435094ec241 2646
mbed_official 155:8435094ec241 2647 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2648 HRTIMx->HRTIM_COMMON.FLTINxR1 = HRTIM_fltinr1;
mbed_official 155:8435094ec241 2649 HRTIMx->HRTIM_COMMON.FLTINxR2 = HRTIM_fltinr2;
mbed_official 155:8435094ec241 2650 }
mbed_official 155:8435094ec241 2651
mbed_official 155:8435094ec241 2652 /**
mbed_official 155:8435094ec241 2653 * @brief Configures both the ADC trigger register update source and the ADC
mbed_official 155:8435094ec241 2654 * trigger source.
mbed_official 155:8435094ec241 2655 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2656 * @param ADC trigger: ADC trigger to configure
mbed_official 155:8435094ec241 2657 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2658 * @arg HRTIM_ADCTRIGGER_1: ADC trigger 1
mbed_official 155:8435094ec241 2659 * @arg HRTIM_ADCTRIGGER_2: ADC trigger 2
mbed_official 155:8435094ec241 2660 * @arg HRTIM_ADCTRIGGER_3: ADC trigger 3
mbed_official 155:8435094ec241 2661 * @arg HRTIM_ADCTRIGGER_4: ADC trigger 4
mbed_official 155:8435094ec241 2662 * @param pADCTriggerCfg: pointer to the ADC trigger configuration structure
mbed_official 155:8435094ec241 2663 * @retval None
mbed_official 155:8435094ec241 2664 */
mbed_official 155:8435094ec241 2665 void HRTIM_ADCTriggerConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2666 uint32_t ADCTrigger,
mbed_official 155:8435094ec241 2667 HRTIM_ADCTriggerCfgTypeDef* pADCTriggerCfg)
mbed_official 155:8435094ec241 2668 {
mbed_official 155:8435094ec241 2669 uint32_t HRTIM_cr1;
mbed_official 155:8435094ec241 2670
mbed_official 155:8435094ec241 2671 /* Check parameters */
mbed_official 155:8435094ec241 2672 assert_param(IS_HRTIM_ADCTRIGGER(ADCTrigger));
mbed_official 155:8435094ec241 2673 assert_param(IS_HRTIM_ADCTRIGGERUPDATE(pADCTriggerCfg->UpdateSource));
mbed_official 155:8435094ec241 2674
mbed_official 155:8435094ec241 2675 /* Set the ADC trigger update source */
mbed_official 155:8435094ec241 2676 HRTIM_cr1 = HRTIMx->HRTIM_COMMON.CR1;
mbed_official 155:8435094ec241 2677
mbed_official 155:8435094ec241 2678 switch (ADCTrigger)
mbed_official 155:8435094ec241 2679 {
mbed_official 155:8435094ec241 2680 case HRTIM_ADCTRIGGER_1:
mbed_official 155:8435094ec241 2681 {
mbed_official 155:8435094ec241 2682 HRTIM_cr1 &= ~(HRTIM_CR1_ADC1USRC);
mbed_official 155:8435094ec241 2683 HRTIM_cr1 |= pADCTriggerCfg->UpdateSource;
mbed_official 155:8435094ec241 2684
mbed_official 155:8435094ec241 2685 /* Set the ADC trigger 1 source */
mbed_official 155:8435094ec241 2686 HRTIMx->HRTIM_COMMON.ADC1R = pADCTriggerCfg->Trigger;
mbed_official 155:8435094ec241 2687 }
mbed_official 155:8435094ec241 2688 break;
mbed_official 155:8435094ec241 2689 case HRTIM_ADCTRIGGER_2:
mbed_official 155:8435094ec241 2690 {
mbed_official 155:8435094ec241 2691 HRTIM_cr1 &= ~(HRTIM_CR1_ADC2USRC);
mbed_official 155:8435094ec241 2692 HRTIM_cr1 |= (pADCTriggerCfg->UpdateSource << 3);
mbed_official 155:8435094ec241 2693
mbed_official 155:8435094ec241 2694 /* Set the ADC trigger 2 source */
mbed_official 155:8435094ec241 2695 HRTIMx->HRTIM_COMMON.ADC2R = pADCTriggerCfg->Trigger;
mbed_official 155:8435094ec241 2696 }
mbed_official 155:8435094ec241 2697 break;
mbed_official 155:8435094ec241 2698 case HRTIM_ADCTRIGGER_3:
mbed_official 155:8435094ec241 2699 {
mbed_official 155:8435094ec241 2700 HRTIM_cr1 &= ~(HRTIM_CR1_ADC3USRC);
mbed_official 155:8435094ec241 2701 HRTIM_cr1 |= (pADCTriggerCfg->UpdateSource << 6);
mbed_official 155:8435094ec241 2702
mbed_official 155:8435094ec241 2703 /* Set the ADC trigger 3 source */
mbed_official 155:8435094ec241 2704 HRTIMx->HRTIM_COMMON.ADC3R = pADCTriggerCfg->Trigger;
mbed_official 155:8435094ec241 2705 }
mbed_official 155:8435094ec241 2706 case HRTIM_ADCTRIGGER_4:
mbed_official 155:8435094ec241 2707 {
mbed_official 155:8435094ec241 2708 HRTIM_cr1 &= ~(HRTIM_CR1_ADC4USRC);
mbed_official 155:8435094ec241 2709 HRTIM_cr1 |= (pADCTriggerCfg->UpdateSource << 9);
mbed_official 155:8435094ec241 2710
mbed_official 155:8435094ec241 2711 /* Set the ADC trigger 4 source */
mbed_official 155:8435094ec241 2712 HRTIMx->HRTIM_COMMON.ADC4R = pADCTriggerCfg->Trigger;
mbed_official 155:8435094ec241 2713 }
mbed_official 155:8435094ec241 2714 break;
mbed_official 155:8435094ec241 2715 default:
mbed_official 155:8435094ec241 2716 break;
mbed_official 155:8435094ec241 2717 }
mbed_official 155:8435094ec241 2718
mbed_official 155:8435094ec241 2719 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2720 HRTIMx->HRTIM_COMMON.CR1 = HRTIM_cr1;
mbed_official 155:8435094ec241 2721 }
mbed_official 155:8435094ec241 2722
mbed_official 155:8435094ec241 2723
mbed_official 155:8435094ec241 2724 /**
mbed_official 155:8435094ec241 2725 * @brief Enables or disables the HRTIMx burst mode controller.
mbed_official 155:8435094ec241 2726 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2727 * @param Enable: Burst mode controller enabling
mbed_official 155:8435094ec241 2728 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2729 * @arg HRTIM_BURSTMODECTL_ENABLED: Burst mode enabled
mbed_official 155:8435094ec241 2730 * @arg HRTIM_BURSTMODECTL_DISABLED: Burst mode disabled
mbed_official 155:8435094ec241 2731 * @retval None
mbed_official 155:8435094ec241 2732 */
mbed_official 155:8435094ec241 2733 void HRTIM_BurstModeCtl(HRTIM_TypeDef * HRTIMx, uint32_t Enable)
mbed_official 155:8435094ec241 2734 {
mbed_official 155:8435094ec241 2735 uint32_t HRTIM_bmcr;
mbed_official 155:8435094ec241 2736
mbed_official 155:8435094ec241 2737 /* Check parameters */
mbed_official 155:8435094ec241 2738 assert_param(IS_HRTIM_BURSTMODECTL(Enable));
mbed_official 155:8435094ec241 2739
mbed_official 155:8435094ec241 2740 /* Enable/Disable the burst mode controller */
mbed_official 155:8435094ec241 2741 HRTIM_bmcr = HRTIMx->HRTIM_COMMON.BMCR;
mbed_official 155:8435094ec241 2742 HRTIM_bmcr &= ~(HRTIM_BMCR_BME);
mbed_official 155:8435094ec241 2743 HRTIM_bmcr |= Enable;
mbed_official 155:8435094ec241 2744
mbed_official 155:8435094ec241 2745 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 2746 HRTIMx->HRTIM_COMMON.BMCR = HRTIM_bmcr;
mbed_official 155:8435094ec241 2747 }
mbed_official 155:8435094ec241 2748
mbed_official 155:8435094ec241 2749 /**
mbed_official 155:8435094ec241 2750 * @brief Triggers a software capture on the designed capture unit
mbed_official 155:8435094ec241 2751 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2752 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2753 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2754 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2755 * @param CaptureUnit: Capture unit to trig
mbed_official 155:8435094ec241 2756 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2757 * @arg HRTIM_CAPTUREUNIT_1: Capture unit 1
mbed_official 155:8435094ec241 2758 * @arg HRTIM_CAPTUREUNIT_2: Capture unit 2
mbed_official 155:8435094ec241 2759 * @retval None
mbed_official 155:8435094ec241 2760 * @note The 'software capture' bit in the capure configuration register is
mbed_official 155:8435094ec241 2761 * automatically reset by hardware
mbed_official 155:8435094ec241 2762 */
mbed_official 155:8435094ec241 2763 void HRTIM_SoftwareCapture(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2764 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2765 uint32_t CaptureUnit)
mbed_official 155:8435094ec241 2766 {
mbed_official 155:8435094ec241 2767 /* Check parameters */
mbed_official 155:8435094ec241 2768 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 2769 assert_param(IS_HRTIM_CAPTUREUNIT(CaptureUnit));
mbed_official 155:8435094ec241 2770
mbed_official 155:8435094ec241 2771 /* Force a software capture on concerned capture unit */
mbed_official 155:8435094ec241 2772 switch (CaptureUnit)
mbed_official 155:8435094ec241 2773 {
mbed_official 155:8435094ec241 2774 case HRTIM_CAPTUREUNIT_1:
mbed_official 155:8435094ec241 2775 {
mbed_official 155:8435094ec241 2776 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT1xCR |= HRTIM_CPT1CR_SWCPT;
mbed_official 155:8435094ec241 2777 }
mbed_official 155:8435094ec241 2778 break;
mbed_official 155:8435094ec241 2779 case HRTIM_CAPTUREUNIT_2:
mbed_official 155:8435094ec241 2780 {
mbed_official 155:8435094ec241 2781 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT2xCR |= HRTIM_CPT2CR_SWCPT;
mbed_official 155:8435094ec241 2782 }
mbed_official 155:8435094ec241 2783 break;
mbed_official 155:8435094ec241 2784 default:
mbed_official 155:8435094ec241 2785 break;
mbed_official 155:8435094ec241 2786 }
mbed_official 155:8435094ec241 2787 }
mbed_official 155:8435094ec241 2788
mbed_official 155:8435094ec241 2789 /**
mbed_official 155:8435094ec241 2790 * @brief Triggers the update of the registers of one or several timers
mbed_official 155:8435094ec241 2791 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2792 * @param TimersToUpdate: timers concerned with the software register update
mbed_official 155:8435094ec241 2793 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 2794 * @arg HRTIM_TIMERUPDATE_MASTER
mbed_official 155:8435094ec241 2795 * @arg HRTIM_TIMERUPDATE_A
mbed_official 155:8435094ec241 2796 * @arg HRTIM_TIMERUPDATE_B
mbed_official 155:8435094ec241 2797 * @arg HRTIM_TIMERUPDATE_C
mbed_official 155:8435094ec241 2798 * @arg HRTIM_TIMERUPDATE_D
mbed_official 155:8435094ec241 2799 * @arg HRTIM_TIMERUPDATE_E
mbed_official 155:8435094ec241 2800 * @retval None
mbed_official 155:8435094ec241 2801 * @note The 'software update' bits in the HRTIMx control register 2 register are
mbed_official 155:8435094ec241 2802 * automatically reset by hardware
mbed_official 155:8435094ec241 2803 */
mbed_official 155:8435094ec241 2804 void HRTIM_SoftwareUpdate(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2805 uint32_t TimersToUpdate)
mbed_official 155:8435094ec241 2806 {
mbed_official 155:8435094ec241 2807 /* Check parameters */
mbed_official 155:8435094ec241 2808 assert_param(IS_HRTIM_TIMERUPDATE(TimersToUpdate));
mbed_official 155:8435094ec241 2809
mbed_official 155:8435094ec241 2810 /* Force timer(s) registers update */
mbed_official 155:8435094ec241 2811 HRTIMx->HRTIM_COMMON.CR2 |= TimersToUpdate;
mbed_official 155:8435094ec241 2812
mbed_official 155:8435094ec241 2813 }
mbed_official 155:8435094ec241 2814
mbed_official 155:8435094ec241 2815 /**
mbed_official 155:8435094ec241 2816 * @brief Triggers the reset of one or several timers
mbed_official 155:8435094ec241 2817 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2818 * @param TimersToUpdate: timers concerned with the software counter reset
mbed_official 155:8435094ec241 2819 * This parameter can be any combination of the following values:
mbed_official 155:8435094ec241 2820 * @arg HRTIM_TIMER_MASTER
mbed_official 155:8435094ec241 2821 * @arg HRTIM_TIMER_A
mbed_official 155:8435094ec241 2822 * @arg HRTIM_TIMER_B
mbed_official 155:8435094ec241 2823 * @arg HRTIM_TIMER_C
mbed_official 155:8435094ec241 2824 * @arg HRTIM_TIMER_D
mbed_official 155:8435094ec241 2825 * @arg HRTIM_TIMER_E
mbed_official 155:8435094ec241 2826 * @retval None
mbed_official 155:8435094ec241 2827 * @note The 'software reset' bits in the HRTIMx control register 2 are
mbed_official 155:8435094ec241 2828 * automatically reset by hardware
mbed_official 155:8435094ec241 2829 */
mbed_official 155:8435094ec241 2830 void HRTIM_SoftwareReset(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2831 uint32_t TimersToReset)
mbed_official 155:8435094ec241 2832 {
mbed_official 155:8435094ec241 2833 /* Check parameters */
mbed_official 155:8435094ec241 2834 assert_param(IS_HRTIM_TIMERRESET(TimersToReset));
mbed_official 155:8435094ec241 2835
mbed_official 155:8435094ec241 2836 /* Force timer(s) registers update */
mbed_official 155:8435094ec241 2837 HRTIMx->HRTIM_COMMON.CR2 |= TimersToReset;
mbed_official 155:8435094ec241 2838
mbed_official 155:8435094ec241 2839 }
mbed_official 155:8435094ec241 2840
mbed_official 155:8435094ec241 2841 /**
mbed_official 155:8435094ec241 2842 * @brief Forces the timer output to its active or inactive state
mbed_official 155:8435094ec241 2843 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2844 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2845 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2846 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2847 * @param Output: Timer output
mbed_official 155:8435094ec241 2848 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2849 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 2850 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 2851 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 2852 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 2853 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 2854 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 2855 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 2856 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 2857 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 2858 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 2859 * @param OutputLevel: indicates whether the output is forced to its active or inactive state
mbed_official 155:8435094ec241 2860 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2861 * @arg HRTIM_OUTPUTLEVEL_ACTIVE: output is forced to its active state
mbed_official 155:8435094ec241 2862 * @arg HRTIM_OUTPUTLEVEL_INACTIVE: output is forced to its inactive state
mbed_official 155:8435094ec241 2863 * @retval None
mbed_official 155:8435094ec241 2864 * @note The 'software set/reset trigger' bit in the output set/reset registers
mbed_official 155:8435094ec241 2865 * is automatically reset by hardware
mbed_official 155:8435094ec241 2866 */
mbed_official 155:8435094ec241 2867 void HRTIM_WaveformSetOutputLevel(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2868 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2869 uint32_t Output,
mbed_official 155:8435094ec241 2870 uint32_t OutputLevel)
mbed_official 155:8435094ec241 2871 {
mbed_official 155:8435094ec241 2872 /* Check parameters */
mbed_official 155:8435094ec241 2873 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, Output));
mbed_official 155:8435094ec241 2874 assert_param(IS_HRTIM_OUTPUTLEVEL(OutputLevel));
mbed_official 155:8435094ec241 2875
mbed_official 155:8435094ec241 2876 /* Force timer output level */
mbed_official 155:8435094ec241 2877 switch (Output)
mbed_official 155:8435094ec241 2878 {
mbed_official 155:8435094ec241 2879 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 2880 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 2881 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 2882 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 2883 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 2884 {
mbed_official 155:8435094ec241 2885 if (OutputLevel == HRTIM_OUTPUTLEVEL_ACTIVE)
mbed_official 155:8435094ec241 2886 {
mbed_official 155:8435094ec241 2887 /* Force output to its active state */
mbed_official 155:8435094ec241 2888 HRTIMx->HRTIM_TIMERx[TimerIdx].SETx1R |= HRTIM_SET1R_SST;
mbed_official 155:8435094ec241 2889 }
mbed_official 155:8435094ec241 2890 else
mbed_official 155:8435094ec241 2891 {
mbed_official 155:8435094ec241 2892 /* Force output to its inactive state */
mbed_official 155:8435094ec241 2893 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTx1R |= HRTIM_RST1R_SRT;
mbed_official 155:8435094ec241 2894 }
mbed_official 155:8435094ec241 2895 }
mbed_official 155:8435094ec241 2896 break;
mbed_official 155:8435094ec241 2897 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 2898 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 2899 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 2900 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 2901 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 2902 {
mbed_official 155:8435094ec241 2903 if (OutputLevel == HRTIM_OUTPUTLEVEL_ACTIVE)
mbed_official 155:8435094ec241 2904 {
mbed_official 155:8435094ec241 2905 /* Force output to its active state */
mbed_official 155:8435094ec241 2906 HRTIMx->HRTIM_TIMERx[TimerIdx].SETx2R |= HRTIM_SET2R_SST;
mbed_official 155:8435094ec241 2907 }
mbed_official 155:8435094ec241 2908 else
mbed_official 155:8435094ec241 2909 {
mbed_official 155:8435094ec241 2910 /* Force output to its inactive state */
mbed_official 155:8435094ec241 2911 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTx2R |= HRTIM_RST2R_SRT;
mbed_official 155:8435094ec241 2912 }
mbed_official 155:8435094ec241 2913 }
mbed_official 155:8435094ec241 2914 break;
mbed_official 155:8435094ec241 2915 default:
mbed_official 155:8435094ec241 2916 break;
mbed_official 155:8435094ec241 2917 }
mbed_official 155:8435094ec241 2918 }
mbed_official 155:8435094ec241 2919
mbed_official 155:8435094ec241 2920
mbed_official 155:8435094ec241 2921 /**
mbed_official 155:8435094ec241 2922 * @}
mbed_official 155:8435094ec241 2923 */
mbed_official 155:8435094ec241 2924
mbed_official 155:8435094ec241 2925 /** @defgroup HRTIM_Group4 Peripheral State methods
mbed_official 155:8435094ec241 2926 * @brief Peripheral State functions
mbed_official 155:8435094ec241 2927 *
mbed_official 155:8435094ec241 2928 @verbatim
mbed_official 155:8435094ec241 2929 ===============================================================================
mbed_official 155:8435094ec241 2930 ##### Peripheral State methods #####
mbed_official 155:8435094ec241 2931 ===============================================================================
mbed_official 155:8435094ec241 2932 [..]
mbed_official 155:8435094ec241 2933 This subsection permit to get in run-time the status of the peripheral
mbed_official 155:8435094ec241 2934 and the data flow.
mbed_official 155:8435094ec241 2935
mbed_official 155:8435094ec241 2936 @endverbatim
mbed_official 155:8435094ec241 2937 * @{
mbed_official 155:8435094ec241 2938 */
mbed_official 155:8435094ec241 2939
mbed_official 155:8435094ec241 2940 /**
mbed_official 155:8435094ec241 2941 * @brief Returns actual value of the capture register of the designated capture unit
mbed_official 155:8435094ec241 2942 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2943 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2944 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2945 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2946 * @param CaptureUnit: Capture unit to trig
mbed_official 155:8435094ec241 2947 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2948 * @arg HRTIM_CAPTUREUNIT_1: Capture unit 1
mbed_official 155:8435094ec241 2949 * @arg HRTIM_CAPTUREUNIT_2: Capture unit 2
mbed_official 155:8435094ec241 2950 * @retval Captured value
mbed_official 155:8435094ec241 2951 */
mbed_official 155:8435094ec241 2952 uint32_t HRTIM_GetCapturedValue(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 2953 uint32_t TimerIdx,
mbed_official 155:8435094ec241 2954 uint32_t CaptureUnit)
mbed_official 155:8435094ec241 2955 {
mbed_official 155:8435094ec241 2956 uint32_t captured_value = 0;
mbed_official 155:8435094ec241 2957
mbed_official 155:8435094ec241 2958 /* Check parameters */
mbed_official 155:8435094ec241 2959 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 2960 assert_param(IS_HRTIM_CAPTUREUNIT(CaptureUnit));
mbed_official 155:8435094ec241 2961
mbed_official 155:8435094ec241 2962 /* Read captured value */
mbed_official 155:8435094ec241 2963 switch (CaptureUnit)
mbed_official 155:8435094ec241 2964 {
mbed_official 155:8435094ec241 2965 case HRTIM_CAPTUREUNIT_1:
mbed_official 155:8435094ec241 2966 {
mbed_official 155:8435094ec241 2967 captured_value = HRTIMx->HRTIM_TIMERx[TimerIdx].CPT1xR;
mbed_official 155:8435094ec241 2968 }
mbed_official 155:8435094ec241 2969 break;
mbed_official 155:8435094ec241 2970 case HRTIM_CAPTUREUNIT_2:
mbed_official 155:8435094ec241 2971 {
mbed_official 155:8435094ec241 2972 captured_value = HRTIMx->HRTIM_TIMERx[TimerIdx].CPT2xR;
mbed_official 155:8435094ec241 2973 }
mbed_official 155:8435094ec241 2974 break;
mbed_official 155:8435094ec241 2975 default:
mbed_official 155:8435094ec241 2976 break;
mbed_official 155:8435094ec241 2977 }
mbed_official 155:8435094ec241 2978
mbed_official 155:8435094ec241 2979 return captured_value;
mbed_official 155:8435094ec241 2980 }
mbed_official 155:8435094ec241 2981
mbed_official 155:8435094ec241 2982 /**
mbed_official 155:8435094ec241 2983 * @brief Returns actual level (active or inactive) of the designated output
mbed_official 155:8435094ec241 2984 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 2985 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 2986 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2987 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 2988 * @param Output: Timer output
mbed_official 155:8435094ec241 2989 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 2990 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 2991 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 2992 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 2993 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 2994 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 2995 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 2996 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 2997 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 2998 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 2999 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 3000 * @retval Output level
mbed_official 155:8435094ec241 3001 * @note Returned output level is taken before the output stage (chopper,
mbed_official 155:8435094ec241 3002 * polarity).
mbed_official 155:8435094ec241 3003 */
mbed_official 155:8435094ec241 3004 uint32_t HRTIM_WaveformGetOutputLevel(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3005 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3006 uint32_t Output)
mbed_official 155:8435094ec241 3007 {
mbed_official 155:8435094ec241 3008 uint32_t output_level = HRTIM_OUTPUTLEVEL_INACTIVE;
mbed_official 155:8435094ec241 3009
mbed_official 155:8435094ec241 3010 /* Check parameters */
mbed_official 155:8435094ec241 3011 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, Output));
mbed_official 155:8435094ec241 3012
mbed_official 155:8435094ec241 3013 /* Read the output level */
mbed_official 155:8435094ec241 3014 switch (Output)
mbed_official 155:8435094ec241 3015 {
mbed_official 155:8435094ec241 3016 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 3017 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 3018 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 3019 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 3020 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 3021 {
mbed_official 155:8435094ec241 3022 if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_TIMISR_O1CPY) != RESET)
mbed_official 155:8435094ec241 3023 {
mbed_official 155:8435094ec241 3024 output_level = HRTIM_OUTPUTLEVEL_ACTIVE;
mbed_official 155:8435094ec241 3025 }
mbed_official 155:8435094ec241 3026 else
mbed_official 155:8435094ec241 3027 {
mbed_official 155:8435094ec241 3028 output_level = HRTIM_OUTPUTLEVEL_INACTIVE;
mbed_official 155:8435094ec241 3029 }
mbed_official 155:8435094ec241 3030 }
mbed_official 155:8435094ec241 3031 break;
mbed_official 155:8435094ec241 3032 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 3033 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 3034 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 3035 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 3036 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 3037 {
mbed_official 155:8435094ec241 3038 if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_TIMISR_O2CPY) != RESET)
mbed_official 155:8435094ec241 3039 {
mbed_official 155:8435094ec241 3040 output_level = HRTIM_OUTPUTLEVEL_ACTIVE;
mbed_official 155:8435094ec241 3041 }
mbed_official 155:8435094ec241 3042 else
mbed_official 155:8435094ec241 3043 {
mbed_official 155:8435094ec241 3044 output_level = HRTIM_OUTPUTLEVEL_INACTIVE;
mbed_official 155:8435094ec241 3045 }
mbed_official 155:8435094ec241 3046 }
mbed_official 155:8435094ec241 3047 break;
mbed_official 155:8435094ec241 3048 default:
mbed_official 155:8435094ec241 3049 break;
mbed_official 155:8435094ec241 3050 }
mbed_official 155:8435094ec241 3051
mbed_official 155:8435094ec241 3052 return output_level;
mbed_official 155:8435094ec241 3053 }
mbed_official 155:8435094ec241 3054
mbed_official 155:8435094ec241 3055 /**
mbed_official 155:8435094ec241 3056 * @brief Returns actual state (RUN, IDLE, FAULT) of the designated output
mbed_official 155:8435094ec241 3057 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3058 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3059 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 3060 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 3061 * @param Output: Timer output
mbed_official 155:8435094ec241 3062 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 3063 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 3064 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 3065 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 3066 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 3067 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 3068 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 3069 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 3070 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 3071 * @arg HRTIM_OUTPUT_TE1: Timer E - Output 1
mbed_official 155:8435094ec241 3072 * @arg HRTIM_OUTPUT_TE2: Timer E - Output 2
mbed_official 155:8435094ec241 3073 * @retval Output state
mbed_official 155:8435094ec241 3074 */
mbed_official 155:8435094ec241 3075 uint32_t HRTIM_WaveformGetOutputState(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3076 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3077 uint32_t Output)
mbed_official 155:8435094ec241 3078 {
mbed_official 155:8435094ec241 3079 uint32_t output_bit = 0;
mbed_official 155:8435094ec241 3080 uint32_t output_state = HRTIM_OUTPUTSTATE_IDLE;
mbed_official 155:8435094ec241 3081
mbed_official 155:8435094ec241 3082 /* Check parameters */
mbed_official 155:8435094ec241 3083 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, Output));
mbed_official 155:8435094ec241 3084
mbed_official 155:8435094ec241 3085 /* Set output state according to output control status and output disable status */
mbed_official 155:8435094ec241 3086 switch (Output)
mbed_official 155:8435094ec241 3087 {
mbed_official 155:8435094ec241 3088 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 3089 {
mbed_official 155:8435094ec241 3090 output_bit = HRTIM_OENR_TA1OEN;
mbed_official 155:8435094ec241 3091 }
mbed_official 155:8435094ec241 3092 break;
mbed_official 155:8435094ec241 3093 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 3094 {
mbed_official 155:8435094ec241 3095 output_bit = HRTIM_OENR_TA2OEN;
mbed_official 155:8435094ec241 3096 }
mbed_official 155:8435094ec241 3097 break;
mbed_official 155:8435094ec241 3098 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 3099 {
mbed_official 155:8435094ec241 3100 output_bit = HRTIM_OENR_TB1OEN;
mbed_official 155:8435094ec241 3101 }
mbed_official 155:8435094ec241 3102 break;
mbed_official 155:8435094ec241 3103 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 3104 {
mbed_official 155:8435094ec241 3105 output_bit = HRTIM_OENR_TB2OEN;
mbed_official 155:8435094ec241 3106 }
mbed_official 155:8435094ec241 3107 break;
mbed_official 155:8435094ec241 3108 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 3109 {
mbed_official 155:8435094ec241 3110 output_bit = HRTIM_OENR_TC1OEN;
mbed_official 155:8435094ec241 3111 }
mbed_official 155:8435094ec241 3112 break;
mbed_official 155:8435094ec241 3113 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 3114 {
mbed_official 155:8435094ec241 3115 output_bit = HRTIM_OENR_TC2OEN;
mbed_official 155:8435094ec241 3116 }
mbed_official 155:8435094ec241 3117 break;
mbed_official 155:8435094ec241 3118 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 3119 {
mbed_official 155:8435094ec241 3120 output_bit = HRTIM_OENR_TD1OEN;
mbed_official 155:8435094ec241 3121 }
mbed_official 155:8435094ec241 3122 break;
mbed_official 155:8435094ec241 3123 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 3124 {
mbed_official 155:8435094ec241 3125 output_bit = HRTIM_OENR_TD2OEN;
mbed_official 155:8435094ec241 3126 }
mbed_official 155:8435094ec241 3127 break;
mbed_official 155:8435094ec241 3128 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 3129 {
mbed_official 155:8435094ec241 3130 output_bit = HRTIM_OENR_TE1OEN;
mbed_official 155:8435094ec241 3131 }
mbed_official 155:8435094ec241 3132 break;
mbed_official 155:8435094ec241 3133 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 3134 {
mbed_official 155:8435094ec241 3135 output_bit = HRTIM_OENR_TE2OEN;
mbed_official 155:8435094ec241 3136 }
mbed_official 155:8435094ec241 3137 break;
mbed_official 155:8435094ec241 3138 default:
mbed_official 155:8435094ec241 3139 break;
mbed_official 155:8435094ec241 3140 }
mbed_official 155:8435094ec241 3141
mbed_official 155:8435094ec241 3142 if ((HRTIMx->HRTIM_COMMON.OENR & output_bit) != RESET)
mbed_official 155:8435094ec241 3143 {
mbed_official 155:8435094ec241 3144 /* Output is enabled: output in RUN state (whatever ouput disable status is)*/
mbed_official 155:8435094ec241 3145 output_state = HRTIM_OUTPUTSTATE_RUN;
mbed_official 155:8435094ec241 3146 }
mbed_official 155:8435094ec241 3147 else
mbed_official 155:8435094ec241 3148 {
mbed_official 155:8435094ec241 3149 if ((HRTIMx->HRTIM_COMMON.ODSR & output_bit) != RESET)
mbed_official 155:8435094ec241 3150 {
mbed_official 155:8435094ec241 3151 /* Output is disabled: output in FAULT state */
mbed_official 155:8435094ec241 3152 output_state = HRTIM_OUTPUTSTATE_FAULT;
mbed_official 155:8435094ec241 3153 }
mbed_official 155:8435094ec241 3154 else
mbed_official 155:8435094ec241 3155 {
mbed_official 155:8435094ec241 3156 /* Output is disabled: output in IDLE state */
mbed_official 155:8435094ec241 3157 output_state = HRTIM_OUTPUTSTATE_IDLE;
mbed_official 155:8435094ec241 3158 }
mbed_official 155:8435094ec241 3159 }
mbed_official 155:8435094ec241 3160
mbed_official 155:8435094ec241 3161 return(output_state);
mbed_official 155:8435094ec241 3162 }
mbed_official 155:8435094ec241 3163
mbed_official 155:8435094ec241 3164 /**
mbed_official 155:8435094ec241 3165 * @brief Returns the level (active or inactive) of the designated output
mbed_official 155:8435094ec241 3166 * when the delayed protection was triggered
mbed_official 155:8435094ec241 3167 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3168 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3169 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 3170 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 3171 * @param Output: Timer output
mbed_official 155:8435094ec241 3172 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 3173 * @arg HRTIM_OUTPUT_TA1: Timer A - Output 1
mbed_official 155:8435094ec241 3174 * @arg HRTIM_OUTPUT_TA2: Timer A - Output 2
mbed_official 155:8435094ec241 3175 * @arg HRTIM_OUTPUT_TB1: Timer B - Output 1
mbed_official 155:8435094ec241 3176 * @arg HRTIM_OUTPUT_TB2: Timer B - Output 2
mbed_official 155:8435094ec241 3177 * @arg HRTIM_OUTPUT_TC1: Timer C - Output 1
mbed_official 155:8435094ec241 3178 * @arg HRTIM_OUTPUT_TC2: Timer C - Output 2
mbed_official 155:8435094ec241 3179 * @arg HRTIM_OUTPUT_TD1: Timer D - Output 1
mbed_official 155:8435094ec241 3180 * @arg HRTIM_OUTPUT_TD2: Timer D - Output 2
mbed_official 155:8435094ec241 3181 * @arg HRTIM_OUTPUT_TD1: Timer E - Output 1
mbed_official 155:8435094ec241 3182 * @arg HRTIM_OUTPUT_TD2: Timer E - Output 2
mbed_official 155:8435094ec241 3183 * @retval Delayed protection status
mbed_official 155:8435094ec241 3184 */
mbed_official 155:8435094ec241 3185 uint32_t HRTIM_GetDelayedProtectionStatus(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3186 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3187 uint32_t Output)
mbed_official 155:8435094ec241 3188 {
mbed_official 155:8435094ec241 3189 uint32_t delayed_protection_status = HRTIM_OUTPUTLEVEL_INACTIVE;
mbed_official 155:8435094ec241 3190
mbed_official 155:8435094ec241 3191 /* Check parameters */
mbed_official 155:8435094ec241 3192 assert_param(IS_HRTIM_TIMER_OUTPUT(TimerIdx, Output));
mbed_official 155:8435094ec241 3193
mbed_official 155:8435094ec241 3194 /* Read the delayed protection status */
mbed_official 155:8435094ec241 3195 switch (Output)
mbed_official 155:8435094ec241 3196 {
mbed_official 155:8435094ec241 3197 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 3198 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 3199 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 3200 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 3201 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 3202 {
mbed_official 155:8435094ec241 3203 if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_TIMISR_O1STAT) != RESET)
mbed_official 155:8435094ec241 3204 {
mbed_official 155:8435094ec241 3205 /* Output 1 was active when the delayed idle protection was triggered */
mbed_official 155:8435094ec241 3206 delayed_protection_status = HRTIM_OUTPUTLEVEL_ACTIVE;
mbed_official 155:8435094ec241 3207 }
mbed_official 155:8435094ec241 3208 else
mbed_official 155:8435094ec241 3209 {
mbed_official 155:8435094ec241 3210 /* Output 1 was inactive when the delayed idle protection was triggered */
mbed_official 155:8435094ec241 3211 delayed_protection_status = HRTIM_OUTPUTLEVEL_INACTIVE;
mbed_official 155:8435094ec241 3212 }
mbed_official 155:8435094ec241 3213 }
mbed_official 155:8435094ec241 3214 break;
mbed_official 155:8435094ec241 3215 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 3216 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 3217 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 3218 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 3219 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 3220 {
mbed_official 155:8435094ec241 3221 if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_TIMISR_O2STAT) != RESET)
mbed_official 155:8435094ec241 3222 {
mbed_official 155:8435094ec241 3223 /* Output 2 was active when the delayed idle protection was triggered */
mbed_official 155:8435094ec241 3224 delayed_protection_status = HRTIM_OUTPUTLEVEL_ACTIVE;
mbed_official 155:8435094ec241 3225 }
mbed_official 155:8435094ec241 3226 else
mbed_official 155:8435094ec241 3227 {
mbed_official 155:8435094ec241 3228 /* Output 2 was inactive when the delayed idle protection was triggered */
mbed_official 155:8435094ec241 3229 delayed_protection_status = HRTIM_OUTPUTLEVEL_INACTIVE;
mbed_official 155:8435094ec241 3230 }
mbed_official 155:8435094ec241 3231 }
mbed_official 155:8435094ec241 3232 break;
mbed_official 155:8435094ec241 3233 default:
mbed_official 155:8435094ec241 3234 break;
mbed_official 155:8435094ec241 3235 }
mbed_official 155:8435094ec241 3236
mbed_official 155:8435094ec241 3237 return delayed_protection_status;
mbed_official 155:8435094ec241 3238 }
mbed_official 155:8435094ec241 3239
mbed_official 155:8435094ec241 3240 /**
mbed_official 155:8435094ec241 3241 * @brief Returns the actual status (active or inactive) of the burst mode controller
mbed_official 155:8435094ec241 3242 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3243 * @retval Burst mode controller status
mbed_official 155:8435094ec241 3244 */
mbed_official 155:8435094ec241 3245 uint32_t HRTIM_GetBurstStatus(HRTIM_TypeDef * HRTIMx)
mbed_official 155:8435094ec241 3246 {
mbed_official 155:8435094ec241 3247 uint32_t burst_mode_status;
mbed_official 155:8435094ec241 3248
mbed_official 155:8435094ec241 3249 /* Read burst mode status */
mbed_official 155:8435094ec241 3250 burst_mode_status = (HRTIMx->HRTIM_COMMON.BMCR & HRTIM_BMCR_BMSTAT);
mbed_official 155:8435094ec241 3251
mbed_official 155:8435094ec241 3252 return burst_mode_status;
mbed_official 155:8435094ec241 3253 }
mbed_official 155:8435094ec241 3254
mbed_official 155:8435094ec241 3255 /**
mbed_official 155:8435094ec241 3256 * @brief Indicates on which output the signal is currently active (when the
mbed_official 155:8435094ec241 3257 * push pull mode is enabled)
mbed_official 155:8435094ec241 3258 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3259 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3260 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 3261 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 3262 * @retval Burst mode controller status
mbed_official 155:8435094ec241 3263 */
mbed_official 155:8435094ec241 3264 uint32_t HRTIM_GetCurrentPushPullStatus(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3265 uint32_t TimerIdx)
mbed_official 155:8435094ec241 3266 {
mbed_official 155:8435094ec241 3267 uint32_t current_pushpull_status;
mbed_official 155:8435094ec241 3268
mbed_official 155:8435094ec241 3269 /* Check the parameters */
mbed_official 155:8435094ec241 3270 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 3271
mbed_official 155:8435094ec241 3272 /* Read current push pull status */
mbed_official 155:8435094ec241 3273 current_pushpull_status = (HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_TIMISR_CPPSTAT);
mbed_official 155:8435094ec241 3274
mbed_official 155:8435094ec241 3275 return current_pushpull_status;
mbed_official 155:8435094ec241 3276 }
mbed_official 155:8435094ec241 3277
mbed_official 155:8435094ec241 3278
mbed_official 155:8435094ec241 3279 /**
mbed_official 155:8435094ec241 3280 * @brief Indicates on which output the signal was applied, in push-pull mode
mbed_official 155:8435094ec241 3281 balanced fault mode or delayed idle mode, when the protection was triggered
mbed_official 155:8435094ec241 3282 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3283 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3284 * This parameter can be one of the following values:
mbed_official 155:8435094ec241 3285 * @arg 0x0 to 0x4 for timers A to E
mbed_official 155:8435094ec241 3286 * @retval Idle Push Pull Status
mbed_official 155:8435094ec241 3287 */
mbed_official 155:8435094ec241 3288 uint32_t HRTIM_GetIdlePushPullStatus(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3289 uint32_t TimerIdx)
mbed_official 155:8435094ec241 3290 {
mbed_official 155:8435094ec241 3291 uint32_t idle_pushpull_status;
mbed_official 155:8435094ec241 3292
mbed_official 155:8435094ec241 3293 /* Check the parameters */
mbed_official 155:8435094ec241 3294 assert_param(IS_HRTIM_TIMING_UNIT(TimerIdx));
mbed_official 155:8435094ec241 3295
mbed_official 155:8435094ec241 3296 /* Read current push pull status */
mbed_official 155:8435094ec241 3297 idle_pushpull_status = (HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_TIMISR_IPPSTAT);
mbed_official 155:8435094ec241 3298
mbed_official 155:8435094ec241 3299 return idle_pushpull_status;
mbed_official 155:8435094ec241 3300 }
mbed_official 155:8435094ec241 3301
mbed_official 155:8435094ec241 3302 /**
mbed_official 155:8435094ec241 3303 * @brief Configures the master timer time base
mbed_official 155:8435094ec241 3304 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3305 * @retval None
mbed_official 155:8435094ec241 3306 */
mbed_official 155:8435094ec241 3307 void HRTIM_MasterBase_Config(HRTIM_TypeDef * HRTIMx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 3308 {
mbed_official 155:8435094ec241 3309 /* Set the prescaler ratio */
mbed_official 155:8435094ec241 3310 HRTIMx->HRTIM_MASTER.MCR &= (uint32_t) ~(HRTIM_MCR_CK_PSC);
mbed_official 155:8435094ec241 3311 HRTIMx->HRTIM_MASTER.MCR |= (uint32_t)HRTIM_BaseInitStruct->PrescalerRatio;
mbed_official 155:8435094ec241 3312
mbed_official 155:8435094ec241 3313 /* Set the operating mode */
mbed_official 155:8435094ec241 3314 HRTIMx->HRTIM_MASTER.MCR &= (uint32_t) ~(HRTIM_MCR_CONT | HRTIM_MCR_RETRIG);
mbed_official 155:8435094ec241 3315 HRTIMx->HRTIM_MASTER.MCR |= (uint32_t)HRTIM_BaseInitStruct->Mode;
mbed_official 155:8435094ec241 3316
mbed_official 155:8435094ec241 3317 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 3318 HRTIMx->HRTIM_MASTER.MPER = HRTIM_BaseInitStruct->Period;
mbed_official 155:8435094ec241 3319 HRTIMx->HRTIM_MASTER.MREP = HRTIM_BaseInitStruct->RepetitionCounter;
mbed_official 155:8435094ec241 3320 }
mbed_official 155:8435094ec241 3321
mbed_official 155:8435094ec241 3322 /**
mbed_official 155:8435094ec241 3323 * @brief Configures timing unit (timer A to timer E) time base
mbed_official 155:8435094ec241 3324 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3325 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3326 * @retval None
mbed_official 155:8435094ec241 3327 */
mbed_official 155:8435094ec241 3328 void HRTIM_TimingUnitBase_Config(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, HRTIM_BaseInitTypeDef* HRTIM_BaseInitStruct)
mbed_official 155:8435094ec241 3329 {
mbed_official 155:8435094ec241 3330 /* Set the prescaler ratio */
mbed_official 155:8435094ec241 3331 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR &= (uint32_t) ~(HRTIM_TIMCR_CK_PSC);
mbed_official 155:8435094ec241 3332 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR |= (uint32_t)HRTIM_BaseInitStruct->PrescalerRatio;
mbed_official 155:8435094ec241 3333
mbed_official 155:8435094ec241 3334 /* Set the operating mode */
mbed_official 155:8435094ec241 3335 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR &= (uint32_t) ~(HRTIM_TIMCR_CONT | HRTIM_TIMCR_RETRIG);
mbed_official 155:8435094ec241 3336 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR |= (uint32_t)HRTIM_BaseInitStruct->Mode;
mbed_official 155:8435094ec241 3337
mbed_official 155:8435094ec241 3338 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 3339 HRTIMx->HRTIM_TIMERx[TimerIdx].PERxR = HRTIM_BaseInitStruct->Period;
mbed_official 155:8435094ec241 3340 HRTIMx->HRTIM_TIMERx[TimerIdx].REPxR = HRTIM_BaseInitStruct->RepetitionCounter;
mbed_official 155:8435094ec241 3341 }
mbed_official 155:8435094ec241 3342
mbed_official 155:8435094ec241 3343 /**
mbed_official 155:8435094ec241 3344 * @brief Configures the master timer in waveform mode
mbed_official 155:8435094ec241 3345 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3346 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3347 * @param pTimerInit: pointer to the timer initialization data structure
mbed_official 155:8435094ec241 3348 * @retval None
mbed_official 155:8435094ec241 3349 */
mbed_official 155:8435094ec241 3350 void HRTIM_MasterWaveform_Config(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3351 HRTIM_TimerInitTypeDef * pTimerInit)
mbed_official 155:8435094ec241 3352 {
mbed_official 155:8435094ec241 3353 uint32_t HRTIM_mcr;
mbed_official 155:8435094ec241 3354 uint32_t HRTIM_bmcr;
mbed_official 155:8435094ec241 3355
mbed_official 155:8435094ec241 3356 /* Configure master timer */
mbed_official 155:8435094ec241 3357 HRTIM_mcr = HRTIMx->HRTIM_MASTER.MCR;
mbed_official 155:8435094ec241 3358 HRTIM_bmcr = HRTIMx->HRTIM_COMMON.BMCR;
mbed_official 155:8435094ec241 3359
mbed_official 155:8435094ec241 3360 /* Enable/Disable the half mode */
mbed_official 155:8435094ec241 3361 HRTIM_mcr &= ~(HRTIM_MCR_HALF);
mbed_official 155:8435094ec241 3362 HRTIM_mcr |= pTimerInit->HalfModeEnable;
mbed_official 155:8435094ec241 3363
mbed_official 155:8435094ec241 3364 /* Enable/Disable the timer start upon synchronization event reception */
mbed_official 155:8435094ec241 3365 HRTIM_mcr &= ~(HRTIM_MCR_SYNCSTRTM);
mbed_official 155:8435094ec241 3366 HRTIM_mcr |= pTimerInit->StartOnSync;
mbed_official 155:8435094ec241 3367
mbed_official 155:8435094ec241 3368 /* Enable/Disable the timer reset upon synchronization event reception */
mbed_official 155:8435094ec241 3369 HRTIM_mcr &= ~(HRTIM_MCR_SYNCRSTM);
mbed_official 155:8435094ec241 3370 HRTIM_mcr |= pTimerInit->ResetOnSync;
mbed_official 155:8435094ec241 3371
mbed_official 155:8435094ec241 3372 /* Enable/Disable the DAC synchronization event generation */
mbed_official 155:8435094ec241 3373 HRTIM_mcr &= ~(HRTIM_MCR_DACSYNC);
mbed_official 155:8435094ec241 3374 HRTIM_mcr |= pTimerInit->DACSynchro;
mbed_official 155:8435094ec241 3375
mbed_official 155:8435094ec241 3376 /* Enable/Disable preload mechanism for timer registers */
mbed_official 155:8435094ec241 3377 HRTIM_mcr &= ~(HRTIM_MCR_PREEN);
mbed_official 155:8435094ec241 3378 HRTIM_mcr |= pTimerInit->PreloadEnable;
mbed_official 155:8435094ec241 3379
mbed_official 155:8435094ec241 3380 /* Master timer registers update handling */
mbed_official 155:8435094ec241 3381 HRTIM_mcr &= ~(HRTIM_MCR_BRSTDMA);
mbed_official 155:8435094ec241 3382 HRTIM_mcr |= (pTimerInit->UpdateGating << 2);
mbed_official 155:8435094ec241 3383
mbed_official 155:8435094ec241 3384 /* Enable/Disable registers update on repetition */
mbed_official 155:8435094ec241 3385 HRTIM_mcr &= ~(HRTIM_MCR_MREPU);
mbed_official 155:8435094ec241 3386 HRTIM_mcr |= pTimerInit->RepetitionUpdate;
mbed_official 155:8435094ec241 3387
mbed_official 155:8435094ec241 3388 /* Set the timer burst mode */
mbed_official 155:8435094ec241 3389 HRTIM_bmcr &= ~(HRTIM_BMCR_MTBM);
mbed_official 155:8435094ec241 3390 HRTIM_bmcr |= pTimerInit->BurstMode;
mbed_official 155:8435094ec241 3391
mbed_official 155:8435094ec241 3392 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 3393 HRTIMx->HRTIM_MASTER.MCR = HRTIM_mcr;
mbed_official 155:8435094ec241 3394 HRTIMx->HRTIM_COMMON.BMCR = HRTIM_bmcr;
mbed_official 155:8435094ec241 3395
mbed_official 155:8435094ec241 3396 }
mbed_official 155:8435094ec241 3397
mbed_official 155:8435094ec241 3398 /**
mbed_official 155:8435094ec241 3399 * @brief Configures timing unit (timer A to timer E) in waveform mode
mbed_official 155:8435094ec241 3400 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3401 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3402 * @param pTimerInit: pointer to the timer initialization data structure
mbed_official 155:8435094ec241 3403 * @retval None
mbed_official 155:8435094ec241 3404 */
mbed_official 155:8435094ec241 3405 void HRTIM_TimingUnitWaveform_Config(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3406 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3407 HRTIM_TimerInitTypeDef * pTimerInit)
mbed_official 155:8435094ec241 3408 {
mbed_official 155:8435094ec241 3409 uint32_t HRTIM_timcr;
mbed_official 155:8435094ec241 3410 uint32_t HRTIM_bmcr;
mbed_official 155:8435094ec241 3411
mbed_official 155:8435094ec241 3412 /* Configure timing unit */
mbed_official 155:8435094ec241 3413 HRTIM_timcr = HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR;
mbed_official 155:8435094ec241 3414 HRTIM_bmcr = HRTIMx->HRTIM_COMMON.BMCR;
mbed_official 155:8435094ec241 3415
mbed_official 155:8435094ec241 3416 /* Enable/Disable the half mode */
mbed_official 155:8435094ec241 3417 HRTIM_timcr &= ~(HRTIM_TIMCR_HALF);
mbed_official 155:8435094ec241 3418 HRTIM_timcr |= pTimerInit->HalfModeEnable;
mbed_official 155:8435094ec241 3419
mbed_official 155:8435094ec241 3420 /* Enable/Disable the timer start upon synchronization event reception */
mbed_official 155:8435094ec241 3421 HRTIM_timcr &= ~(HRTIM_TIMCR_SYNCSTRT);
mbed_official 155:8435094ec241 3422 HRTIM_timcr |= pTimerInit->StartOnSync;
mbed_official 155:8435094ec241 3423
mbed_official 155:8435094ec241 3424 /* Enable/Disable the timer reset upon synchronization event reception */
mbed_official 155:8435094ec241 3425 HRTIM_timcr &= ~(HRTIM_TIMCR_SYNCRST);
mbed_official 155:8435094ec241 3426 HRTIM_timcr |= pTimerInit->ResetOnSync;
mbed_official 155:8435094ec241 3427
mbed_official 155:8435094ec241 3428 /* Enable/Disable the DAC synchronization event generation */
mbed_official 155:8435094ec241 3429 HRTIM_timcr &= ~(HRTIM_TIMCR_DACSYNC);
mbed_official 155:8435094ec241 3430 HRTIM_timcr |= pTimerInit->DACSynchro;
mbed_official 155:8435094ec241 3431
mbed_official 155:8435094ec241 3432 /* Enable/Disable preload mechanism for timer registers */
mbed_official 155:8435094ec241 3433 HRTIM_timcr &= ~(HRTIM_TIMCR_PREEN);
mbed_official 155:8435094ec241 3434 HRTIM_timcr |= pTimerInit->PreloadEnable;
mbed_official 155:8435094ec241 3435
mbed_official 155:8435094ec241 3436 /* Timing unit registers update handling */
mbed_official 155:8435094ec241 3437 HRTIM_timcr &= ~(HRTIM_TIMCR_UPDGAT);
mbed_official 155:8435094ec241 3438 HRTIM_timcr |= pTimerInit->UpdateGating;
mbed_official 155:8435094ec241 3439
mbed_official 155:8435094ec241 3440 /* Enable/Disable registers update on repetition */
mbed_official 155:8435094ec241 3441 HRTIM_timcr &= ~(HRTIM_TIMCR_TREPU);
mbed_official 155:8435094ec241 3442 if (pTimerInit->RepetitionUpdate == HRTIM_UPDATEONREPETITION_ENABLED)
mbed_official 155:8435094ec241 3443 {
mbed_official 155:8435094ec241 3444 HRTIM_timcr |= HRTIM_TIMCR_TREPU;
mbed_official 155:8435094ec241 3445 }
mbed_official 155:8435094ec241 3446
mbed_official 155:8435094ec241 3447 /* Set the timer burst mode */
mbed_official 155:8435094ec241 3448 switch (TimerIdx)
mbed_official 155:8435094ec241 3449 {
mbed_official 155:8435094ec241 3450 case HRTIM_TIMERINDEX_TIMER_A:
mbed_official 155:8435094ec241 3451 {
mbed_official 155:8435094ec241 3452 HRTIM_bmcr &= ~(HRTIM_BMCR_TABM);
mbed_official 155:8435094ec241 3453 HRTIM_bmcr |= ( pTimerInit->BurstMode << 1);
mbed_official 155:8435094ec241 3454 }
mbed_official 155:8435094ec241 3455 break;
mbed_official 155:8435094ec241 3456 case HRTIM_TIMERINDEX_TIMER_B:
mbed_official 155:8435094ec241 3457 {
mbed_official 155:8435094ec241 3458 HRTIM_bmcr &= ~(HRTIM_BMCR_TBBM);
mbed_official 155:8435094ec241 3459 HRTIM_bmcr |= ( pTimerInit->BurstMode << 2);
mbed_official 155:8435094ec241 3460 }
mbed_official 155:8435094ec241 3461 break;
mbed_official 155:8435094ec241 3462 case HRTIM_TIMERINDEX_TIMER_C:
mbed_official 155:8435094ec241 3463 {
mbed_official 155:8435094ec241 3464 HRTIM_bmcr &= ~(HRTIM_BMCR_TCBM);
mbed_official 155:8435094ec241 3465 HRTIM_bmcr |= ( pTimerInit->BurstMode << 3);
mbed_official 155:8435094ec241 3466 }
mbed_official 155:8435094ec241 3467 break;
mbed_official 155:8435094ec241 3468 case HRTIM_TIMERINDEX_TIMER_D:
mbed_official 155:8435094ec241 3469 {
mbed_official 155:8435094ec241 3470 HRTIM_bmcr &= ~(HRTIM_BMCR_TDBM);
mbed_official 155:8435094ec241 3471 HRTIM_bmcr |= ( pTimerInit->BurstMode << 4);
mbed_official 155:8435094ec241 3472 }
mbed_official 155:8435094ec241 3473 break;
mbed_official 155:8435094ec241 3474 case HRTIM_TIMERINDEX_TIMER_E:
mbed_official 155:8435094ec241 3475 {
mbed_official 155:8435094ec241 3476 HRTIM_bmcr &= ~(HRTIM_BMCR_TEBM);
mbed_official 155:8435094ec241 3477 HRTIM_bmcr |= ( pTimerInit->BurstMode << 5);
mbed_official 155:8435094ec241 3478 }
mbed_official 155:8435094ec241 3479 break;
mbed_official 155:8435094ec241 3480 default:
mbed_official 155:8435094ec241 3481 break;
mbed_official 155:8435094ec241 3482 }
mbed_official 155:8435094ec241 3483
mbed_official 155:8435094ec241 3484 /* Update the HRTIMx registers */
mbed_official 155:8435094ec241 3485 HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxCR = HRTIM_timcr;
mbed_official 155:8435094ec241 3486 HRTIMx->HRTIM_COMMON.BMCR = HRTIM_bmcr;
mbed_official 155:8435094ec241 3487 }
mbed_official 155:8435094ec241 3488
mbed_official 155:8435094ec241 3489 /**
mbed_official 155:8435094ec241 3490 * @brief Configures a compare unit
mbed_official 155:8435094ec241 3491 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3492 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3493 * @param CompareUnit: Compare unit identifier
mbed_official 155:8435094ec241 3494 * @param pCompareCfg: pointer to the compare unit configuration data structure
mbed_official 155:8435094ec241 3495 * @retval None
mbed_official 155:8435094ec241 3496 */
mbed_official 155:8435094ec241 3497 void HRTIM_CompareUnitConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3498 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3499 uint32_t CompareUnit,
mbed_official 155:8435094ec241 3500 HRTIM_CompareCfgTypeDef * pCompareCfg)
mbed_official 155:8435094ec241 3501 {
mbed_official 155:8435094ec241 3502 if (TimerIdx == HRTIM_TIMERINDEX_MASTER)
mbed_official 155:8435094ec241 3503 {
mbed_official 155:8435094ec241 3504 /* Configure the compare unit of the master timer */
mbed_official 155:8435094ec241 3505 switch (CompareUnit)
mbed_official 155:8435094ec241 3506 {
mbed_official 155:8435094ec241 3507 case HRTIM_COMPAREUNIT_1:
mbed_official 155:8435094ec241 3508 {
mbed_official 155:8435094ec241 3509 HRTIMx->HRTIM_MASTER.MCMP1R = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3510 }
mbed_official 155:8435094ec241 3511 break;
mbed_official 155:8435094ec241 3512 case HRTIM_COMPAREUNIT_2:
mbed_official 155:8435094ec241 3513 {
mbed_official 155:8435094ec241 3514 HRTIMx->HRTIM_MASTER.MCMP2R = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3515 }
mbed_official 155:8435094ec241 3516 break;
mbed_official 155:8435094ec241 3517 case HRTIM_COMPAREUNIT_3:
mbed_official 155:8435094ec241 3518 {
mbed_official 155:8435094ec241 3519 HRTIMx->HRTIM_MASTER.MCMP3R = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3520 }
mbed_official 155:8435094ec241 3521 break;
mbed_official 155:8435094ec241 3522 case HRTIM_COMPAREUNIT_4:
mbed_official 155:8435094ec241 3523 {
mbed_official 155:8435094ec241 3524 HRTIMx->HRTIM_MASTER.MCMP4R = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3525 }
mbed_official 155:8435094ec241 3526 break;
mbed_official 155:8435094ec241 3527 default:
mbed_official 155:8435094ec241 3528 break;
mbed_official 155:8435094ec241 3529 }
mbed_official 155:8435094ec241 3530 }
mbed_official 155:8435094ec241 3531 else
mbed_official 155:8435094ec241 3532 {
mbed_official 155:8435094ec241 3533 /* Configure the compare unit of the timing unit */
mbed_official 155:8435094ec241 3534 switch (CompareUnit)
mbed_official 155:8435094ec241 3535 {
mbed_official 155:8435094ec241 3536 case HRTIM_COMPAREUNIT_1:
mbed_official 155:8435094ec241 3537 {
mbed_official 155:8435094ec241 3538 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP1xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3539 }
mbed_official 155:8435094ec241 3540 break;
mbed_official 155:8435094ec241 3541 case HRTIM_COMPAREUNIT_2:
mbed_official 155:8435094ec241 3542 {
mbed_official 155:8435094ec241 3543 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP2xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3544 }
mbed_official 155:8435094ec241 3545 break;
mbed_official 155:8435094ec241 3546 case HRTIM_COMPAREUNIT_3:
mbed_official 155:8435094ec241 3547 {
mbed_official 155:8435094ec241 3548 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP3xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3549 }
mbed_official 155:8435094ec241 3550 break;
mbed_official 155:8435094ec241 3551 case HRTIM_COMPAREUNIT_4:
mbed_official 155:8435094ec241 3552 {
mbed_official 155:8435094ec241 3553 HRTIMx->HRTIM_TIMERx[TimerIdx].CMP4xR = pCompareCfg->CompareValue;
mbed_official 155:8435094ec241 3554 }
mbed_official 155:8435094ec241 3555 break;
mbed_official 155:8435094ec241 3556 default:
mbed_official 155:8435094ec241 3557 break;
mbed_official 155:8435094ec241 3558 }
mbed_official 155:8435094ec241 3559 }
mbed_official 155:8435094ec241 3560 }
mbed_official 155:8435094ec241 3561
mbed_official 155:8435094ec241 3562 /**
mbed_official 155:8435094ec241 3563 * @brief Configures a capture unit
mbed_official 155:8435094ec241 3564 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3565 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3566 * @param CaptureUnit: Capture unit identifier
mbed_official 155:8435094ec241 3567 * @param pCaptureCfg: pointer to the compare unit configuration data structure
mbed_official 155:8435094ec241 3568 * @retval None
mbed_official 155:8435094ec241 3569 */
mbed_official 155:8435094ec241 3570 void HRTIM_CaptureUnitConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3571 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3572 uint32_t CaptureUnit,
mbed_official 155:8435094ec241 3573 uint32_t Event)
mbed_official 155:8435094ec241 3574 {
mbed_official 155:8435094ec241 3575 uint32_t CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_1;
mbed_official 155:8435094ec241 3576
mbed_official 155:8435094ec241 3577 switch (Event)
mbed_official 155:8435094ec241 3578 {
mbed_official 155:8435094ec241 3579 case HRTIM_EVENT_1:
mbed_official 155:8435094ec241 3580 {
mbed_official 155:8435094ec241 3581 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_1;
mbed_official 155:8435094ec241 3582 }
mbed_official 155:8435094ec241 3583 break;
mbed_official 155:8435094ec241 3584 case HRTIM_EVENT_2:
mbed_official 155:8435094ec241 3585 {
mbed_official 155:8435094ec241 3586 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_2;
mbed_official 155:8435094ec241 3587 }
mbed_official 155:8435094ec241 3588 break;
mbed_official 155:8435094ec241 3589 case HRTIM_EVENT_3:
mbed_official 155:8435094ec241 3590 {
mbed_official 155:8435094ec241 3591 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_3;
mbed_official 155:8435094ec241 3592 }
mbed_official 155:8435094ec241 3593 break;
mbed_official 155:8435094ec241 3594 case HRTIM_EVENT_4:
mbed_official 155:8435094ec241 3595 {
mbed_official 155:8435094ec241 3596 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_4;
mbed_official 155:8435094ec241 3597 }
mbed_official 155:8435094ec241 3598 break;
mbed_official 155:8435094ec241 3599 case HRTIM_EVENT_5:
mbed_official 155:8435094ec241 3600 {
mbed_official 155:8435094ec241 3601 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_5;
mbed_official 155:8435094ec241 3602 }
mbed_official 155:8435094ec241 3603 break;
mbed_official 155:8435094ec241 3604 case HRTIM_EVENT_6:
mbed_official 155:8435094ec241 3605 {
mbed_official 155:8435094ec241 3606 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_6;
mbed_official 155:8435094ec241 3607 }
mbed_official 155:8435094ec241 3608 break;
mbed_official 155:8435094ec241 3609 case HRTIM_EVENT_7:
mbed_official 155:8435094ec241 3610 {
mbed_official 155:8435094ec241 3611 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_7;
mbed_official 155:8435094ec241 3612 }
mbed_official 155:8435094ec241 3613 break;
mbed_official 155:8435094ec241 3614 case HRTIM_EVENT_8:
mbed_official 155:8435094ec241 3615 {
mbed_official 155:8435094ec241 3616 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_8;
mbed_official 155:8435094ec241 3617 }
mbed_official 155:8435094ec241 3618 break;
mbed_official 155:8435094ec241 3619 case HRTIM_EVENT_9:
mbed_official 155:8435094ec241 3620 {
mbed_official 155:8435094ec241 3621 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_9;
mbed_official 155:8435094ec241 3622 }
mbed_official 155:8435094ec241 3623 break;
mbed_official 155:8435094ec241 3624 case HRTIM_EVENT_10:
mbed_official 155:8435094ec241 3625 {
mbed_official 155:8435094ec241 3626 CaptureTrigger = HRTIM_CAPTURETRIGGER_EEV_10;
mbed_official 155:8435094ec241 3627 }
mbed_official 155:8435094ec241 3628 break;
mbed_official 155:8435094ec241 3629 default:
mbed_official 155:8435094ec241 3630 break;
mbed_official 155:8435094ec241 3631
mbed_official 155:8435094ec241 3632 }
mbed_official 155:8435094ec241 3633 switch (CaptureUnit)
mbed_official 155:8435094ec241 3634 {
mbed_official 155:8435094ec241 3635 case HRTIM_CAPTUREUNIT_1:
mbed_official 155:8435094ec241 3636 {
mbed_official 155:8435094ec241 3637 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT1xCR = CaptureTrigger;
mbed_official 155:8435094ec241 3638 }
mbed_official 155:8435094ec241 3639 break;
mbed_official 155:8435094ec241 3640 case HRTIM_CAPTUREUNIT_2:
mbed_official 155:8435094ec241 3641 {
mbed_official 155:8435094ec241 3642 HRTIMx->HRTIM_TIMERx[TimerIdx].CPT2xCR = CaptureTrigger;
mbed_official 155:8435094ec241 3643 }
mbed_official 155:8435094ec241 3644 break;
mbed_official 155:8435094ec241 3645 default:
mbed_official 155:8435094ec241 3646 break;
mbed_official 155:8435094ec241 3647 }
mbed_official 155:8435094ec241 3648 }
mbed_official 155:8435094ec241 3649
mbed_official 155:8435094ec241 3650 /**
mbed_official 155:8435094ec241 3651 * @brief Configures the output of a timing unit
mbed_official 155:8435094ec241 3652 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3653 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3654 * @param Output: timing unit output identifier
mbed_official 155:8435094ec241 3655 * @param pOutputCfg: pointer to the output configuration data structure
mbed_official 155:8435094ec241 3656 * @retval None
mbed_official 155:8435094ec241 3657 */
mbed_official 155:8435094ec241 3658 void HRTIM_OutputConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3659 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3660 uint32_t Output,
mbed_official 155:8435094ec241 3661 HRTIM_OutputCfgTypeDef * pOutputCfg)
mbed_official 155:8435094ec241 3662 {
mbed_official 155:8435094ec241 3663 uint32_t HRTIM_outr;
mbed_official 155:8435094ec241 3664 uint32_t shift = 0;
mbed_official 155:8435094ec241 3665
mbed_official 155:8435094ec241 3666 HRTIM_outr = HRTIMx->HRTIM_TIMERx[TimerIdx].OUTxR;
mbed_official 155:8435094ec241 3667
mbed_official 155:8435094ec241 3668 switch (Output)
mbed_official 155:8435094ec241 3669 {
mbed_official 155:8435094ec241 3670 case HRTIM_OUTPUT_TA1:
mbed_official 155:8435094ec241 3671 case HRTIM_OUTPUT_TB1:
mbed_official 155:8435094ec241 3672 case HRTIM_OUTPUT_TC1:
mbed_official 155:8435094ec241 3673 case HRTIM_OUTPUT_TD1:
mbed_official 155:8435094ec241 3674 case HRTIM_OUTPUT_TE1:
mbed_official 155:8435094ec241 3675 {
mbed_official 155:8435094ec241 3676 /* Set the output set/reset crossbar */
mbed_official 155:8435094ec241 3677 HRTIMx->HRTIM_TIMERx[TimerIdx].SETx1R = pOutputCfg->SetSource;
mbed_official 155:8435094ec241 3678 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTx1R = pOutputCfg->ResetSource;
mbed_official 155:8435094ec241 3679
mbed_official 155:8435094ec241 3680 shift = 0;
mbed_official 155:8435094ec241 3681 }
mbed_official 155:8435094ec241 3682 break;
mbed_official 155:8435094ec241 3683 case HRTIM_OUTPUT_TA2:
mbed_official 155:8435094ec241 3684 case HRTIM_OUTPUT_TB2:
mbed_official 155:8435094ec241 3685 case HRTIM_OUTPUT_TC2:
mbed_official 155:8435094ec241 3686 case HRTIM_OUTPUT_TD2:
mbed_official 155:8435094ec241 3687 case HRTIM_OUTPUT_TE2:
mbed_official 155:8435094ec241 3688 {
mbed_official 155:8435094ec241 3689 /* Set the output set/reset crossbar */
mbed_official 155:8435094ec241 3690 HRTIMx->HRTIM_TIMERx[TimerIdx].SETx2R = pOutputCfg->SetSource;
mbed_official 155:8435094ec241 3691 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTx2R = pOutputCfg->ResetSource;
mbed_official 155:8435094ec241 3692
mbed_official 155:8435094ec241 3693 shift = 16;
mbed_official 155:8435094ec241 3694 }
mbed_official 155:8435094ec241 3695 break;
mbed_official 155:8435094ec241 3696 default:
mbed_official 155:8435094ec241 3697 break;
mbed_official 155:8435094ec241 3698 }
mbed_official 155:8435094ec241 3699
mbed_official 155:8435094ec241 3700 /* Clear output config */
mbed_official 155:8435094ec241 3701 HRTIM_outr &= ~((HRTIM_OUTR_POL1 |
mbed_official 155:8435094ec241 3702 HRTIM_OUTR_IDLM1 |
mbed_official 155:8435094ec241 3703 HRTIM_OUTR_IDLES1|
mbed_official 155:8435094ec241 3704 HRTIM_OUTR_FAULT1|
mbed_official 155:8435094ec241 3705 HRTIM_OUTR_CHP1 |
mbed_official 155:8435094ec241 3706 HRTIM_OUTR_DIDL1) << shift);
mbed_official 155:8435094ec241 3707
mbed_official 155:8435094ec241 3708 /* Set the polarity */
mbed_official 155:8435094ec241 3709 HRTIM_outr |= (pOutputCfg->Polarity << shift);
mbed_official 155:8435094ec241 3710
mbed_official 155:8435094ec241 3711 /* Set the IDLE mode */
mbed_official 155:8435094ec241 3712 HRTIM_outr |= (pOutputCfg->IdleMode << shift);
mbed_official 155:8435094ec241 3713
mbed_official 155:8435094ec241 3714 /* Set the IDLE state */
mbed_official 155:8435094ec241 3715 HRTIM_outr |= (pOutputCfg->IdleState << shift);
mbed_official 155:8435094ec241 3716
mbed_official 155:8435094ec241 3717 /* Set the FAULT state */
mbed_official 155:8435094ec241 3718 HRTIM_outr |= (pOutputCfg->FaultState << shift);
mbed_official 155:8435094ec241 3719
mbed_official 155:8435094ec241 3720 /* Set the chopper mode */
mbed_official 155:8435094ec241 3721 HRTIM_outr |= (pOutputCfg->ChopperModeEnable << shift);
mbed_official 155:8435094ec241 3722
mbed_official 155:8435094ec241 3723 /* Set the burst mode entry mode */
mbed_official 155:8435094ec241 3724 HRTIM_outr |= (pOutputCfg->BurstModeEntryDelayed << shift);
mbed_official 155:8435094ec241 3725
mbed_official 155:8435094ec241 3726 /* Update HRTIMx register */
mbed_official 155:8435094ec241 3727 HRTIMx->HRTIM_TIMERx[TimerIdx].OUTxR = HRTIM_outr;
mbed_official 155:8435094ec241 3728 }
mbed_official 155:8435094ec241 3729
mbed_official 155:8435094ec241 3730 /**
mbed_official 155:8435094ec241 3731 * @brief Configures an external event channel
mbed_official 155:8435094ec241 3732 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3733 * @param Event: Event channel identifier
mbed_official 155:8435094ec241 3734 * @param pEventCfg: pointer to the event channel configuration data structure
mbed_official 155:8435094ec241 3735 * @retval None
mbed_official 155:8435094ec241 3736 */
mbed_official 155:8435094ec241 3737 static void HRTIM_ExternalEventConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3738 uint32_t Event,
mbed_official 155:8435094ec241 3739 HRTIM_EventCfgTypeDef *pEventCfg)
mbed_official 155:8435094ec241 3740 {
mbed_official 155:8435094ec241 3741 uint32_t hrtim_eecr1;
mbed_official 155:8435094ec241 3742 uint32_t hrtim_eecr2;
mbed_official 155:8435094ec241 3743 uint32_t hrtim_eecr3;
mbed_official 155:8435094ec241 3744
mbed_official 155:8435094ec241 3745 /* Configure external event channel */
mbed_official 155:8435094ec241 3746 hrtim_eecr1 = HRTIMx->HRTIM_COMMON.EECR1;
mbed_official 155:8435094ec241 3747 hrtim_eecr2 = HRTIMx->HRTIM_COMMON.EECR2;
mbed_official 155:8435094ec241 3748 hrtim_eecr3 = HRTIMx->HRTIM_COMMON.EECR3;
mbed_official 155:8435094ec241 3749
mbed_official 155:8435094ec241 3750 switch (Event)
mbed_official 155:8435094ec241 3751 {
mbed_official 155:8435094ec241 3752 case HRTIM_EVENT_1:
mbed_official 155:8435094ec241 3753 {
mbed_official 155:8435094ec241 3754 hrtim_eecr1 &= ~(HRTIM_EECR1_EE1SRC | HRTIM_EECR1_EE1POL | HRTIM_EECR1_EE1SNS | HRTIM_EECR1_EE1FAST);
mbed_official 155:8435094ec241 3755 hrtim_eecr1 |= pEventCfg->Source;
mbed_official 155:8435094ec241 3756 hrtim_eecr1 |= pEventCfg->Polarity;
mbed_official 155:8435094ec241 3757 hrtim_eecr1 |= pEventCfg->Sensitivity;
mbed_official 155:8435094ec241 3758 /* Update the HRTIM registers (all bit fields but EE1FAST bit) */
mbed_official 155:8435094ec241 3759 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3760 /* Update the HRTIM registers (EE1FAST bit) */
mbed_official 155:8435094ec241 3761 hrtim_eecr1 |= pEventCfg->FastMode;
mbed_official 155:8435094ec241 3762 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3763 }
mbed_official 155:8435094ec241 3764 break;
mbed_official 155:8435094ec241 3765 case HRTIM_EVENT_2:
mbed_official 155:8435094ec241 3766 {
mbed_official 155:8435094ec241 3767 hrtim_eecr1 &= ~(HRTIM_EECR1_EE2SRC | HRTIM_EECR1_EE2POL | HRTIM_EECR1_EE2SNS | HRTIM_EECR1_EE2FAST);
mbed_official 155:8435094ec241 3768 hrtim_eecr1 |= (pEventCfg->Source << 6);
mbed_official 155:8435094ec241 3769 hrtim_eecr1 |= (pEventCfg->Polarity << 6);
mbed_official 155:8435094ec241 3770 hrtim_eecr1 |= (pEventCfg->Sensitivity << 6);
mbed_official 155:8435094ec241 3771 /* Update the HRTIM registers (all bit fields but EE2FAST bit) */
mbed_official 155:8435094ec241 3772 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3773 /* Update the HRTIM registers (EE2FAST bit) */
mbed_official 155:8435094ec241 3774 hrtim_eecr1 |= (pEventCfg->FastMode << 6);
mbed_official 155:8435094ec241 3775 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3776 }
mbed_official 155:8435094ec241 3777 break;
mbed_official 155:8435094ec241 3778 case HRTIM_EVENT_3:
mbed_official 155:8435094ec241 3779 {
mbed_official 155:8435094ec241 3780 hrtim_eecr1 &= ~(HRTIM_EECR1_EE3SRC | HRTIM_EECR1_EE3POL | HRTIM_EECR1_EE3SNS | HRTIM_EECR1_EE3FAST);
mbed_official 155:8435094ec241 3781 hrtim_eecr1 |= (pEventCfg->Source << 12);
mbed_official 155:8435094ec241 3782 hrtim_eecr1 |= (pEventCfg->Polarity << 12);
mbed_official 155:8435094ec241 3783 hrtim_eecr1 |= (pEventCfg->Sensitivity << 12);
mbed_official 155:8435094ec241 3784 /* Update the HRTIM registers (all bit fields but EE3FAST bit) */
mbed_official 155:8435094ec241 3785 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3786 /* Update the HRTIM registers (EE3FAST bit) */
mbed_official 155:8435094ec241 3787 hrtim_eecr1 |= (pEventCfg->FastMode << 12);
mbed_official 155:8435094ec241 3788 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3789 }
mbed_official 155:8435094ec241 3790 break;
mbed_official 155:8435094ec241 3791 case HRTIM_EVENT_4:
mbed_official 155:8435094ec241 3792 {
mbed_official 155:8435094ec241 3793 hrtim_eecr1 &= ~(HRTIM_EECR1_EE4SRC | HRTIM_EECR1_EE4POL | HRTIM_EECR1_EE4SNS | HRTIM_EECR1_EE4FAST);
mbed_official 155:8435094ec241 3794 hrtim_eecr1 |= (pEventCfg->Source << 18);
mbed_official 155:8435094ec241 3795 hrtim_eecr1 |= (pEventCfg->Polarity << 18);
mbed_official 155:8435094ec241 3796 hrtim_eecr1 |= (pEventCfg->Sensitivity << 18);
mbed_official 155:8435094ec241 3797 /* Update the HRTIM registers (all bit fields but EE4FAST bit) */
mbed_official 155:8435094ec241 3798 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3799 /* Update the HRTIM registers (EE4FAST bit) */
mbed_official 155:8435094ec241 3800 hrtim_eecr1 |= (pEventCfg->FastMode << 18);
mbed_official 155:8435094ec241 3801 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3802 }
mbed_official 155:8435094ec241 3803 break;
mbed_official 155:8435094ec241 3804 case HRTIM_EVENT_5:
mbed_official 155:8435094ec241 3805 {
mbed_official 155:8435094ec241 3806 hrtim_eecr1 &= ~(HRTIM_EECR1_EE5SRC | HRTIM_EECR1_EE5POL | HRTIM_EECR1_EE5SNS | HRTIM_EECR1_EE5FAST);
mbed_official 155:8435094ec241 3807 hrtim_eecr1 |= (pEventCfg->Source << 24);
mbed_official 155:8435094ec241 3808 hrtim_eecr1 |= (pEventCfg->Polarity << 24);
mbed_official 155:8435094ec241 3809 hrtim_eecr1 |= (pEventCfg->Sensitivity << 24);
mbed_official 155:8435094ec241 3810 /* Update the HRTIM registers (all bit fields but EE5FAST bit) */
mbed_official 155:8435094ec241 3811 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3812 /* Update the HRTIM registers (EE5FAST bit) */
mbed_official 155:8435094ec241 3813 hrtim_eecr1 |= (pEventCfg->FastMode << 24);
mbed_official 155:8435094ec241 3814 HRTIMx->HRTIM_COMMON.EECR1 = hrtim_eecr1;
mbed_official 155:8435094ec241 3815 }
mbed_official 155:8435094ec241 3816 break;
mbed_official 155:8435094ec241 3817 case HRTIM_EVENT_6:
mbed_official 155:8435094ec241 3818 {
mbed_official 155:8435094ec241 3819 hrtim_eecr2 &= ~(HRTIM_EECR2_EE6SRC | HRTIM_EECR2_EE6POL | HRTIM_EECR2_EE6SNS);
mbed_official 155:8435094ec241 3820 hrtim_eecr2 |= pEventCfg->Source;
mbed_official 155:8435094ec241 3821 hrtim_eecr2 |= pEventCfg->Polarity;
mbed_official 155:8435094ec241 3822 hrtim_eecr2 |= pEventCfg->Sensitivity;
mbed_official 155:8435094ec241 3823 hrtim_eecr3 &= ~(HRTIM_EECR3_EE6F);
mbed_official 155:8435094ec241 3824 hrtim_eecr3 |= pEventCfg->Filter;
mbed_official 155:8435094ec241 3825 /* Update the HRTIM registers */
mbed_official 155:8435094ec241 3826 HRTIMx->HRTIM_COMMON.EECR2 = hrtim_eecr2;
mbed_official 155:8435094ec241 3827 HRTIMx->HRTIM_COMMON.EECR3 = hrtim_eecr3;
mbed_official 155:8435094ec241 3828 }
mbed_official 155:8435094ec241 3829 break;
mbed_official 155:8435094ec241 3830 case HRTIM_EVENT_7:
mbed_official 155:8435094ec241 3831 {
mbed_official 155:8435094ec241 3832 hrtim_eecr2 &= ~(HRTIM_EECR2_EE7SRC | HRTIM_EECR2_EE7POL | HRTIM_EECR2_EE7SNS);
mbed_official 155:8435094ec241 3833 hrtim_eecr2 |= (pEventCfg->Source << 6);
mbed_official 155:8435094ec241 3834 hrtim_eecr2 |= (pEventCfg->Polarity << 6);
mbed_official 155:8435094ec241 3835 hrtim_eecr2 |= (pEventCfg->Sensitivity << 6);
mbed_official 155:8435094ec241 3836 hrtim_eecr3 &= ~(HRTIM_EECR3_EE7F);
mbed_official 155:8435094ec241 3837 hrtim_eecr3 |= (pEventCfg->Filter << 6);
mbed_official 155:8435094ec241 3838 /* Update the HRTIM registers */
mbed_official 155:8435094ec241 3839 HRTIMx->HRTIM_COMMON.EECR2 = hrtim_eecr2;
mbed_official 155:8435094ec241 3840 HRTIMx->HRTIM_COMMON.EECR3 = hrtim_eecr3;
mbed_official 155:8435094ec241 3841 }
mbed_official 155:8435094ec241 3842 break;
mbed_official 155:8435094ec241 3843 case HRTIM_EVENT_8:
mbed_official 155:8435094ec241 3844 {
mbed_official 155:8435094ec241 3845 hrtim_eecr2 &= ~(HRTIM_EECR2_EE8SRC | HRTIM_EECR2_EE8POL | HRTIM_EECR2_EE8SNS);
mbed_official 155:8435094ec241 3846 hrtim_eecr2 |= (pEventCfg->Source << 12);
mbed_official 155:8435094ec241 3847 hrtim_eecr2 |= (pEventCfg->Polarity << 12);
mbed_official 155:8435094ec241 3848 hrtim_eecr2 |= (pEventCfg->Sensitivity << 12);
mbed_official 155:8435094ec241 3849 hrtim_eecr3 &= ~(HRTIM_EECR3_EE8F);
mbed_official 155:8435094ec241 3850 hrtim_eecr3 |= (pEventCfg->Filter << 12);
mbed_official 155:8435094ec241 3851 /* Update the HRTIM registers */
mbed_official 155:8435094ec241 3852 HRTIMx->HRTIM_COMMON.EECR2 = hrtim_eecr2;
mbed_official 155:8435094ec241 3853 HRTIMx->HRTIM_COMMON.EECR3 = hrtim_eecr3;
mbed_official 155:8435094ec241 3854 }
mbed_official 155:8435094ec241 3855 break;
mbed_official 155:8435094ec241 3856 case HRTIM_EVENT_9:
mbed_official 155:8435094ec241 3857 {
mbed_official 155:8435094ec241 3858 hrtim_eecr2 &= ~(HRTIM_EECR2_EE9SRC | HRTIM_EECR2_EE9POL | HRTIM_EECR2_EE9SNS);
mbed_official 155:8435094ec241 3859 hrtim_eecr2 |= (pEventCfg->Source << 18);
mbed_official 155:8435094ec241 3860 hrtim_eecr2 |= (pEventCfg->Polarity << 18);
mbed_official 155:8435094ec241 3861 hrtim_eecr2 |= (pEventCfg->Sensitivity << 18);
mbed_official 155:8435094ec241 3862 hrtim_eecr3 &= ~(HRTIM_EECR3_EE9F);
mbed_official 155:8435094ec241 3863 hrtim_eecr3 |= (pEventCfg->Filter << 18);
mbed_official 155:8435094ec241 3864 /* Update the HRTIM registers */
mbed_official 155:8435094ec241 3865 HRTIMx->HRTIM_COMMON.EECR2 = hrtim_eecr2;
mbed_official 155:8435094ec241 3866 HRTIMx->HRTIM_COMMON.EECR3 = hrtim_eecr3;
mbed_official 155:8435094ec241 3867 }
mbed_official 155:8435094ec241 3868 break;
mbed_official 155:8435094ec241 3869 case HRTIM_EVENT_10:
mbed_official 155:8435094ec241 3870 {
mbed_official 155:8435094ec241 3871 hrtim_eecr2 &= ~(HRTIM_EECR2_EE10SRC | HRTIM_EECR2_EE10POL | HRTIM_EECR2_EE10SNS);
mbed_official 155:8435094ec241 3872 hrtim_eecr2 |= (pEventCfg->Source << 24);
mbed_official 155:8435094ec241 3873 hrtim_eecr2 |= (pEventCfg->Polarity << 24);
mbed_official 155:8435094ec241 3874 hrtim_eecr2 |= (pEventCfg->Sensitivity << 24);
mbed_official 155:8435094ec241 3875 hrtim_eecr3 &= ~(HRTIM_EECR3_EE10F);
mbed_official 155:8435094ec241 3876 hrtim_eecr3 |= (pEventCfg->Filter << 24);
mbed_official 155:8435094ec241 3877 /* Update the HRTIM registers */
mbed_official 155:8435094ec241 3878 HRTIMx->HRTIM_COMMON.EECR2 = hrtim_eecr2;
mbed_official 155:8435094ec241 3879 HRTIMx->HRTIM_COMMON.EECR3 = hrtim_eecr3;
mbed_official 155:8435094ec241 3880 }
mbed_official 155:8435094ec241 3881 break;
mbed_official 155:8435094ec241 3882 default:
mbed_official 155:8435094ec241 3883 break;
mbed_official 155:8435094ec241 3884 }
mbed_official 155:8435094ec241 3885 }
mbed_official 155:8435094ec241 3886
mbed_official 155:8435094ec241 3887 /**
mbed_official 155:8435094ec241 3888 * @brief Configures the timer counter reset
mbed_official 155:8435094ec241 3889 * @param HRTIMx: pointer to HRTIMx peripheral
mbed_official 155:8435094ec241 3890 * @param TimerIdx: Timer index
mbed_official 155:8435094ec241 3891 * @param Event: Event channel identifier
mbed_official 155:8435094ec241 3892 * @retval None
mbed_official 155:8435094ec241 3893 */
mbed_official 155:8435094ec241 3894 void HRTIM_TIM_ResetConfig(HRTIM_TypeDef * HRTIMx,
mbed_official 155:8435094ec241 3895 uint32_t TimerIdx,
mbed_official 155:8435094ec241 3896 uint32_t Event)
mbed_official 155:8435094ec241 3897 {
mbed_official 155:8435094ec241 3898 switch (Event)
mbed_official 155:8435094ec241 3899 {
mbed_official 155:8435094ec241 3900 case HRTIM_EVENT_1:
mbed_official 155:8435094ec241 3901 {
mbed_official 155:8435094ec241 3902 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_1;
mbed_official 155:8435094ec241 3903 }
mbed_official 155:8435094ec241 3904 break;
mbed_official 155:8435094ec241 3905 case HRTIM_EVENT_2:
mbed_official 155:8435094ec241 3906 {
mbed_official 155:8435094ec241 3907 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_2;
mbed_official 155:8435094ec241 3908 }
mbed_official 155:8435094ec241 3909 break;
mbed_official 155:8435094ec241 3910 case HRTIM_EVENT_3:
mbed_official 155:8435094ec241 3911 {
mbed_official 155:8435094ec241 3912 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_3;
mbed_official 155:8435094ec241 3913 }
mbed_official 155:8435094ec241 3914 break;
mbed_official 155:8435094ec241 3915 case HRTIM_EVENT_4:
mbed_official 155:8435094ec241 3916 {
mbed_official 155:8435094ec241 3917 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_4;
mbed_official 155:8435094ec241 3918 }
mbed_official 155:8435094ec241 3919 break;
mbed_official 155:8435094ec241 3920 case HRTIM_EVENT_5:
mbed_official 155:8435094ec241 3921 {
mbed_official 155:8435094ec241 3922 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_5;
mbed_official 155:8435094ec241 3923 }
mbed_official 155:8435094ec241 3924 break;
mbed_official 155:8435094ec241 3925 case HRTIM_EVENT_6:
mbed_official 155:8435094ec241 3926 {
mbed_official 155:8435094ec241 3927 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_6;
mbed_official 155:8435094ec241 3928 }
mbed_official 155:8435094ec241 3929 break;
mbed_official 155:8435094ec241 3930 case HRTIM_EVENT_7:
mbed_official 155:8435094ec241 3931 {
mbed_official 155:8435094ec241 3932 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_7;
mbed_official 155:8435094ec241 3933 }
mbed_official 155:8435094ec241 3934 break;
mbed_official 155:8435094ec241 3935 case HRTIM_EVENT_8:
mbed_official 155:8435094ec241 3936 {
mbed_official 155:8435094ec241 3937 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_8;
mbed_official 155:8435094ec241 3938 }
mbed_official 155:8435094ec241 3939 break;
mbed_official 155:8435094ec241 3940 case HRTIM_EVENT_9:
mbed_official 155:8435094ec241 3941 {
mbed_official 155:8435094ec241 3942 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_9;
mbed_official 155:8435094ec241 3943 }
mbed_official 155:8435094ec241 3944 break;
mbed_official 155:8435094ec241 3945 case HRTIM_EVENT_10:
mbed_official 155:8435094ec241 3946 {
mbed_official 155:8435094ec241 3947 HRTIMx->HRTIM_TIMERx[TimerIdx].RSTxR = HRTIM_TIMRESETTRIGGER_EEV_10;
mbed_official 155:8435094ec241 3948 }
mbed_official 155:8435094ec241 3949 break;
mbed_official 155:8435094ec241 3950 default:
mbed_official 155:8435094ec241 3951 break;
mbed_official 155:8435094ec241 3952 }
mbed_official 155:8435094ec241 3953 }
mbed_official 155:8435094ec241 3954 /**
mbed_official 155:8435094ec241 3955 * @}
mbed_official 155:8435094ec241 3956 */
mbed_official 155:8435094ec241 3957 /**
mbed_official 155:8435094ec241 3958 * @}
mbed_official 155:8435094ec241 3959 */
mbed_official 155:8435094ec241 3960
mbed_official 155:8435094ec241 3961 /**
mbed_official 155:8435094ec241 3962 * @}
mbed_official 155:8435094ec241 3963 */
mbed_official 155:8435094ec241 3964
mbed_official 155:8435094ec241 3965 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 155:8435094ec241 3966
mbed_official 155:8435094ec241 3967
mbed_official 155:8435094ec241 3968