tdse-tp4_02-pwm

FIUBA - Electrónica - Taller de Sistemas Embebidos - Trabajo Práctico N°: 4 - PWM
Index Commits Files Refs README
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h (9578B)
   1 /**
   2   ******************************************************************************
   3   * @file    stm32f1xx_hal_tim_ex.h
   4   * @author  MCD Application Team
   5   * @brief   Header file of TIM HAL Extended module.
   6   ******************************************************************************
   7   * @attention
   8   *
   9   * Copyright (c) 2016 STMicroelectronics.
  10   * All rights reserved.
  11   *
  12   * This software is licensed under terms that can be found in the LICENSE file
  13   * in the root directory of this software component.
  14   * If no LICENSE file comes with this software, it is provided AS-IS.
  15   *
  16   ******************************************************************************
  17   */
  18 
  19 /* Define to prevent recursive inclusion -------------------------------------*/
  20 #ifndef STM32F1xx_HAL_TIM_EX_H
  21 #define STM32F1xx_HAL_TIM_EX_H
  22 
  23 #ifdef __cplusplus
  24 extern "C" {
  25 #endif
  26 
  27 /* Includes ------------------------------------------------------------------*/
  28 #include "stm32f1xx_hal_def.h"
  29 
  30 /** @addtogroup STM32F1xx_HAL_Driver
  31   * @{
  32   */
  33 
  34 /** @addtogroup TIMEx
  35   * @{
  36   */
  37 
  38 /* Exported types ------------------------------------------------------------*/
  39 /** @defgroup TIMEx_Exported_Types TIM Extended Exported Types
  40   * @{
  41   */
  42 
  43 /**
  44   * @brief  TIM Hall sensor Configuration Structure definition
  45   */
  46 
  47 typedef struct
  48 {
  49   uint32_t IC1Polarity;         /*!< Specifies the active edge of the input signal.
  50                                      This parameter can be a value of @ref TIM_Input_Capture_Polarity */
  51 
  52   uint32_t IC1Prescaler;        /*!< Specifies the Input Capture Prescaler.
  53                                      This parameter can be a value of @ref TIM_Input_Capture_Prescaler */
  54 
  55   uint32_t IC1Filter;           /*!< Specifies the input capture filter.
  56                                      This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
  57 
  58   uint32_t Commutation_Delay;   /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
  59                                      This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */
  60 } TIM_HallSensor_InitTypeDef;
  61 /**
  62   * @}
  63   */
  64 /* End of exported types -----------------------------------------------------*/
  65 
  66 /* Exported constants --------------------------------------------------------*/
  67 /** @defgroup TIMEx_Exported_Constants TIM Extended Exported Constants
  68   * @{
  69   */
  70 
  71 /** @defgroup TIMEx_Remap TIM Extended Remapping
  72   * @{
  73   */
  74 /**
  75   * @}
  76   */
  77 
  78 /**
  79   * @}
  80   */
  81 /* End of exported constants -------------------------------------------------*/
  82 
  83 /* Exported macro ------------------------------------------------------------*/
  84 /** @defgroup TIMEx_Exported_Macros TIM Extended Exported Macros
  85   * @{
  86   */
  87 
  88 /**
  89   * @}
  90   */
  91 /* End of exported macro -----------------------------------------------------*/
  92 
  93 /* Private macro -------------------------------------------------------------*/
  94 /** @defgroup TIMEx_Private_Macros TIM Extended Private Macros
  95   * @{
  96   */
  97 
  98 /**
  99   * @}
 100   */
 101 /* End of private macro ------------------------------------------------------*/
 102 
 103 /* Exported functions --------------------------------------------------------*/
 104 /** @addtogroup TIMEx_Exported_Functions TIM Extended Exported Functions
 105   * @{
 106   */
 107 
 108 /** @addtogroup TIMEx_Exported_Functions_Group1 Extended Timer Hall Sensor functions
 109   *  @brief    Timer Hall Sensor functions
 110   * @{
 111   */
 112 /*  Timer Hall Sensor functions  **********************************************/
 113 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, const TIM_HallSensor_InitTypeDef *sConfig);
 114 HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim);
 115 
 116 void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim);
 117 void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim);
 118 
 119 /* Blocking mode: Polling */
 120 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim);
 121 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim);
 122 /* Non-Blocking mode: Interrupt */
 123 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim);
 124 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim);
 125 /* Non-Blocking mode: DMA */
 126 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length);
 127 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim);
 128 /**
 129   * @}
 130   */
 131 
 132 /** @addtogroup TIMEx_Exported_Functions_Group2 Extended Timer Complementary Output Compare functions
 133   *  @brief   Timer Complementary Output Compare functions
 134   * @{
 135   */
 136 /*  Timer Complementary Output Compare functions  *****************************/
 137 /* Blocking mode: Polling */
 138 HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
 139 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
 140 
 141 /* Non-Blocking mode: Interrupt */
 142 HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
 143 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
 144 
 145 /* Non-Blocking mode: DMA */
 146 HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
 147                                           uint16_t Length);
 148 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
 149 /**
 150   * @}
 151   */
 152 
 153 /** @addtogroup TIMEx_Exported_Functions_Group3 Extended Timer Complementary PWM functions
 154   *  @brief    Timer Complementary PWM functions
 155   * @{
 156   */
 157 /*  Timer Complementary PWM functions  ****************************************/
 158 /* Blocking mode: Polling */
 159 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
 160 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
 161 
 162 /* Non-Blocking mode: Interrupt */
 163 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
 164 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
 165 /* Non-Blocking mode: DMA */
 166 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
 167                                            uint16_t Length);
 168 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
 169 /**
 170   * @}
 171   */
 172 
 173 /** @addtogroup TIMEx_Exported_Functions_Group4 Extended Timer Complementary One Pulse functions
 174   *  @brief    Timer Complementary One Pulse functions
 175   * @{
 176   */
 177 /*  Timer Complementary One Pulse functions  **********************************/
 178 /* Blocking mode: Polling */
 179 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
 180 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
 181 
 182 /* Non-Blocking mode: Interrupt */
 183 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
 184 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
 185 /**
 186   * @}
 187   */
 188 
 189 /** @addtogroup TIMEx_Exported_Functions_Group5 Extended Peripheral Control functions
 190   *  @brief    Peripheral Control functions
 191   * @{
 192   */
 193 /* Extended Control functions  ************************************************/
 194 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, uint32_t  InputTrigger,
 195                                               uint32_t  CommutationSource);
 196 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim, uint32_t  InputTrigger,
 197                                                  uint32_t  CommutationSource);
 198 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *htim, uint32_t  InputTrigger,
 199                                                   uint32_t  CommutationSource);
 200 HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
 201                                                         const TIM_MasterConfigTypeDef *sMasterConfig);
 202 HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim,
 203                                                 const TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig);
 204 HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap);
 205 /**
 206   * @}
 207   */
 208 
 209 /** @addtogroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions
 210   * @brief    Extended Callbacks functions
 211   * @{
 212   */
 213 /* Extended Callback **********************************************************/
 214 void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim);
 215 void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim);
 216 void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim);
 217 /**
 218   * @}
 219   */
 220 
 221 /** @addtogroup TIMEx_Exported_Functions_Group7 Extended Peripheral State functions
 222   * @brief    Extended Peripheral State functions
 223   * @{
 224   */
 225 /* Extended Peripheral State functions  ***************************************/
 226 HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(const TIM_HandleTypeDef *htim);
 227 HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(const TIM_HandleTypeDef *htim,  uint32_t ChannelN);
 228 /**
 229   * @}
 230   */
 231 
 232 /**
 233   * @}
 234   */
 235 /* End of exported functions -------------------------------------------------*/
 236 
 237 /* Private functions----------------------------------------------------------*/
 238 /** @addtogroup TIMEx_Private_Functions TIM Extended Private Functions
 239   * @{
 240   */
 241 void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma);
 242 void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma);
 243 /**
 244   * @}
 245   */
 246 /* End of private functions --------------------------------------------------*/
 247 
 248 /**
 249   * @}
 250   */
 251 
 252 /**
 253   * @}
 254   */
 255 
 256 #ifdef __cplusplus
 257 }
 258 #endif
 259 
 260 
 261 #endif /* STM32F1xx_HAL_TIM_EX_H */