Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: stm32f4xx_tim_mort.h
- Revision:
- 0:34ee385f4d2d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stm32f4xx_tim_mort.h Sat Oct 23 05:49:09 2021 +0000
@@ -0,0 +1,1156 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_tim.h
+ * @author MCD Application Team
+ * @version V1.8.0
+ * @date 04-November-2016
+ * @brief This file contains all the functions prototypes for the TIM firmware
+ * library.
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>© COPYRIGHT 2016 STMicroelectronics</center></h2>
+ *
+ * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.st.com/software_license_agreement_liberty_v2
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_TIM_H_MORT_
+#define __STM32F4xx_TIM_H_MORT_
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_mort2.h"
+
+/** @addtogroup STM32F4xx_StdPeriph_Driver
+ * @{
+ */
+
+/** @addtogroup TIM
+ * @{
+ */
+
+/* Exported types ------------------------------------------------------------*/
+
+/**
+ * @brief TIM Time Base Init structure definition
+ * @note This structure is used with all TIMx except for TIM6_MORT and TIM7_MORT.
+ */
+
+typedef struct
+{
+ uint16_t TIM_Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock.
+ This parameter can be a number between 0x0000 and 0xFFFF */
+
+ uint16_t TIM_CounterMode; /*!< Specifies the counter mode.
+ This parameter can be a value of @ref TIM_Counter_Mode */
+
+ uint32_t TIM_Period; /*!< Specifies the period value to be loaded into the active
+ Auto-Reload Register at the next update event.
+ This parameter must be a number between 0x0000 and 0xFFFF. */
+
+ uint16_t TIM_ClockDivision; /*!< Specifies the clock division.
+ This parameter can be a value of @ref TIM_Clock_Division_CKD */
+
+ uint8_t TIM_RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter
+ reaches zero, an update event is generated and counting restarts
+ from the RCR value (N).
+ This means in PWM mode that (N+1) corresponds to:
+ - the number of PWM periods in edge-aligned mode
+ - the number of half PWM period in center-aligned mode
+ This parameter must be a number between 0x00 and 0xFF.
+ @note This parameter is valid only for TIM1_MORT and TIM8_MORT. */
+} TIM_TimeBaseInitTypeDef_mort;
+
+/**
+ * @brief TIM Output Compare Init structure definition
+ */
+
+typedef struct
+{
+ uint16_t TIM_OCMode; /*!< Specifies the TIM mode.
+ This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */
+
+ uint16_t TIM_OutputState; /*!< Specifies the TIM Output Compare state.
+ This parameter can be a value of @ref TIM_Output_Compare_State */
+
+ uint16_t TIM_OutputNState; /*!< Specifies the TIM complementary Output Compare state.
+ This parameter can be a value of @ref TIM_Output_Compare_N_State
+ @note This parameter is valid only for TIM1_MORT and TIM8_MORT. */
+
+ uint32_t TIM_Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
+ This parameter can be a number between 0x0000 and 0xFFFF */
+
+ uint16_t TIM_OCPolarity; /*!< Specifies the output polarity.
+ This parameter can be a value of @ref TIM_Output_Compare_Polarity */
+
+ uint16_t TIM_OCNPolarity; /*!< Specifies the complementary output polarity.
+ This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
+ @note This parameter is valid only for TIM1_MORT and TIM8_MORT. */
+
+ uint16_t TIM_OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.
+ This parameter can be a value of @ref TIM_Output_Compare_Idle_State
+ @note This parameter is valid only for TIM1_MORT and TIM8_MORT. */
+
+ uint16_t TIM_OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.
+ This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
+ @note This parameter is valid only for TIM1_MORT and TIM8_MORT. */
+} TIM_OCInitTypeDef_mort;
+
+/**
+ * @brief TIM Input Capture Init structure definition
+ */
+
+typedef struct
+{
+
+ uint16_t TIM_Channel; /*!< Specifies the TIM channel.
+ This parameter can be a value of @ref TIM_Channel */
+
+ uint16_t TIM_ICPolarity; /*!< Specifies the active edge of the input signal.
+ This parameter can be a value of @ref TIM_Input_Capture_Polarity */
+
+ uint16_t TIM_ICSelection; /*!< Specifies the input.
+ This parameter can be a value of @ref TIM_Input_Capture_Selection */
+
+ uint16_t TIM_ICPrescaler; /*!< Specifies the Input Capture Prescaler.
+ This parameter can be a value of @ref TIM_Input_Capture_Prescaler */
+
+ uint16_t TIM_ICFilter; /*!< Specifies the input capture filter.
+ This parameter can be a number between 0x0 and 0xF */
+} TIM_ICInitTypeDef_mort;
+
+/**
+ * @brief BDTR structure definition
+ * @note This structure is used only with TIM1_MORT and TIM8_MORT.
+ */
+
+typedef struct
+{
+
+ uint16_t TIM_OSSRState; /*!< Specifies the Off-State selection used in Run mode.
+ This parameter can be a value of @ref TIM_OSSR_Off_State_Selection_for_Run_mode_state */
+
+ uint16_t TIM_OSSIState; /*!< Specifies the Off-State used in Idle state.
+ This parameter can be a value of @ref TIM_OSSI_Off_State_Selection_for_Idle_mode_state */
+
+ uint16_t TIM_LOCKLevel; /*!< Specifies the LOCK level parameters.
+ This parameter can be a value of @ref TIM_Lock_level */
+
+ uint16_t TIM_DeadTime; /*!< Specifies the delay time between the switching-off and the
+ switching-on of the outputs.
+ This parameter can be a number between 0x00 and 0xFF */
+
+ uint16_t TIM_Break; /*!< Specifies whether the TIM Break input is enabled or not.
+ This parameter can be a value of @ref TIM_Break_Input_enable_disable */
+
+ uint16_t TIM_BreakPolarity; /*!< Specifies the TIM Break Input pin polarity.
+ This parameter can be a value of @ref TIM_Break_Polarity */
+
+ uint16_t TIM_AutomaticOutput; /*!< Specifies whether the TIM Automatic Output feature is enabled or not.
+ This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */
+} TIM_BDTRInitTypeDef_mort;
+
+/* Exported constants --------------------------------------------------------*/
+
+/** @defgroup TIM_Exported_constants
+ * @{
+ */
+
+#define IS_TIM_ALL_PERIPH_MORT(PERIPH) (((PERIPH) == TIM1_MORT) || \
+ ((PERIPH) == TIM2_MORT) || \
+ ((PERIPH) == TIM3_MORT) || \
+ ((PERIPH) == TIM4_MORT) || \
+ ((PERIPH) == TIM5_MORT) || \
+ ((PERIPH) == TIM6_MORT) || \
+ ((PERIPH) == TIM7_MORT) || \
+ ((PERIPH) == TIM8_MORT) || \
+ ((PERIPH) == TIM9_MORT) || \
+ ((PERIPH) == TIM10_MORT) || \
+ ((PERIPH) == TIM11_MORT) || \
+ ((PERIPH) == TIM12_MORT) || \
+ (((PERIPH) == TIM13_MORT) || \
+ ((PERIPH) == TIM14_MORT)))
+/* LIST1: TIM1_MORT, TIM2_MORT, TIM3_MORT, TIM4_MORT, TIM5_MORT, TIM8_MORT, TIM9_MORT, TIM10_MORT, TIM11_MORT, TIM12_MORT, TIM13_MORT and TIM14_MORT */
+#define IS_TIM_LIST1_PERIPH_MORT(PERIPH) (((PERIPH) == TIM1_MORT) || \
+ ((PERIPH) == TIM2_MORT) || \
+ ((PERIPH) == TIM3_MORT) || \
+ ((PERIPH) == TIM4_MORT) || \
+ ((PERIPH) == TIM5_MORT) || \
+ ((PERIPH) == TIM8_MORT) || \
+ ((PERIPH) == TIM9_MORT) || \
+ ((PERIPH) == TIM10_MORT) || \
+ ((PERIPH) == TIM11_MORT) || \
+ ((PERIPH) == TIM12_MORT) || \
+ ((PERIPH) == TIM13_MORT) || \
+ ((PERIPH) == TIM14_MORT))
+
+/* LIST2: TIM1_MORT, TIM2_MORT, TIM3_MORT, TIM4_MORT, TIM5_MORT, TIM8_MORT, TIM9_MORT and TIM12_MORT */
+#define IS_TIM_LIST2_PERIPH_MORT(PERIPH) (((PERIPH) == TIM1_MORT) || \
+ ((PERIPH) == TIM2_MORT) || \
+ ((PERIPH) == TIM3_MORT) || \
+ ((PERIPH) == TIM4_MORT) || \
+ ((PERIPH) == TIM5_MORT) || \
+ ((PERIPH) == TIM8_MORT) || \
+ ((PERIPH) == TIM9_MORT) || \
+ ((PERIPH) == TIM12_MORT))
+/* LIST3: TIM1_MORT, TIM2_MORT, TIM3_MORT, TIM4_MORT, TIM5_MORT and TIM8_MORT */
+#define IS_TIM_LIST3_PERIPH_MORT(PERIPH) (((PERIPH) == TIM1_MORT) || \
+ ((PERIPH) == TIM2_MORT) || \
+ ((PERIPH) == TIM3_MORT) || \
+ ((PERIPH) == TIM4_MORT) || \
+ ((PERIPH) == TIM5_MORT) || \
+ ((PERIPH) == TIM8_MORT))
+/* LIST4: TIM1_MORT and TIM8_MORT */
+#define IS_TIM_LIST4_PERIPH_MORT(PERIPH) (((PERIPH) == TIM1_MORT) || \
+ ((PERIPH) == TIM8_MORT))
+/* LIST5: TIM1_MORT, TIM2_MORT, TIM3_MORT, TIM4_MORT, TIM5_MORT, TIM6_MORT, TIM7_MORT and TIM8_MORT */
+#define IS_TIM_LIST5_PERIPH_MORT(PERIPH) (((PERIPH) == TIM1_MORT) || \
+ ((PERIPH) == TIM2_MORT) || \
+ ((PERIPH) == TIM3_MORT) || \
+ ((PERIPH) == TIM4_MORT) || \
+ ((PERIPH) == TIM5_MORT) || \
+ ((PERIPH) == TIM6_MORT) || \
+ ((PERIPH) == TIM7_MORT) || \
+ ((PERIPH) == TIM8_MORT))
+/* LIST6: TIM2_MORT, TIM5_MORT and TIM11_MORT */
+#define IS_TIM_LIST6_PERIPH_MORT(TIMx)(((TIMx) == TIM2_MORT) || \
+ ((TIMx) == TIM5_MORT) || \
+ ((TIMx) == TIM11_MORT))
+
+/** @defgroup TIM_Output_Compare_and_PWM_modes
+ * @{
+ */
+
+#define TIM_OCMode_Timing_MORT ((uint16_t)0x0000)
+#define TIM_OCMode_Active_MORT ((uint16_t)0x0010)
+#define TIM_OCMode_Inactive_MORT ((uint16_t)0x0020)
+#define TIM_OCMode_Toggle_MORT ((uint16_t)0x0030)
+#define TIM_OCMode_PWM1_MORT ((uint16_t)0x0060)
+#define TIM_OCMode_PWM2_MORT ((uint16_t)0x0070)
+#define IS_TIM_OC_MODE_MORT(MODE) (((MODE) == TIM_OCMode_Timing_MORT) || \
+ ((MODE) == TIM_OCMode_Active_MORT) || \
+ ((MODE) == TIM_OCMode_Inactive_MORT) || \
+ ((MODE) == TIM_OCMode_Toggle_MORT)|| \
+ ((MODE) == TIM_OCMode_PWM1_MORT) || \
+ ((MODE) == TIM_OCMode_PWM2_MORT))
+#define IS_TIM_OCM_MORT(MODE) (((MODE) == TIM_OCMode_Timing_MORT) || \
+ ((MODE) == TIM_OCMode_Active_MORT) || \
+ ((MODE) == TIM_OCMode_Inactive_MORT) || \
+ ((MODE) == TIM_OCMode_Toggle_MORT)|| \
+ ((MODE) == TIM_OCMode_PWM1_MORT) || \
+ ((MODE) == TIM_OCMode_PWM2_MORT) || \
+ ((MODE) == TIM_ForcedAction_Active_MORT) || \
+ ((MODE) == TIM_ForcedAction_InActive_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_One_Pulse_Mode
+ * @{
+ */
+
+#define TIM_OPMode_Single_MORT ((uint16_t)0x0008)
+#define TIM_OPMode_Repetitive_MORT ((uint16_t)0x0000)
+#define IS_TIM_OPM_MODE_MORT(MODE) (((MODE) == TIM_OPMode_Single_MORT) || \
+ ((MODE) == TIM_OPMode_Repetitive_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Channel
+ * @{
+ */
+
+#define TIM_Channel_1_MORT ((uint16_t)0x0000)
+#define TIM_Channel_2_MORT ((uint16_t)0x0004)
+#define TIM_Channel_3_MORT ((uint16_t)0x0008)
+#define TIM_Channel_4_MORT ((uint16_t)0x000C)
+
+#define IS_TIM_CHANNEL_MORT(CHANNEL) (((CHANNEL) == TIM_Channel_1_MORT) || \
+ ((CHANNEL) == TIM_Channel_2_MORT) || \
+ ((CHANNEL) == TIM_Channel_3_MORT) || \
+ ((CHANNEL) == TIM_Channel_4_MORT))
+
+#define IS_TIM_PWMI_CHANNEL_MORT(CHANNEL) (((CHANNEL) == TIM_Channel_1_MORT) || \
+ ((CHANNEL) == TIM_Channel_2_MORT))
+#define IS_TIM_COMPLEMENTARY_CHANNEL_MORT(CHANNEL) (((CHANNEL) == TIM_Channel_1_MORT) || \
+ ((CHANNEL) == TIM_Channel_2_MORT) || \
+ ((CHANNEL) == TIM_Channel_3_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Clock_Division_CKD
+ * @{
+ */
+
+#define TIM_CKD_DIV1_MORT ((uint16_t)0x0000)
+#define TIM_CKD_DIV2_MORT ((uint16_t)0x0100)
+#define TIM_CKD_DIV4_MORT ((uint16_t)0x0200)
+#define IS_TIM_CKD_DIV_MORT(DIV) (((DIV) == TIM_CKD_DIV1_MORT) || \
+ ((DIV) == TIM_CKD_DIV2_MORT) || \
+ ((DIV) == TIM_CKD_DIV4_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Counter_Mode
+ * @{
+ */
+
+#define TIM_CounterMode_Up_MORT ((uint16_t)0x0000)
+#define TIM_CounterMode_Down_MORT ((uint16_t)0x0010)
+#define TIM_CounterMode_CenterAligned1_MORT ((uint16_t)0x0020)
+#define TIM_CounterMode_CenterAligned2_MORT ((uint16_t)0x0040)
+#define TIM_CounterMode_CenterAligned3_MORT ((uint16_t)0x0060)
+#define IS_TIM_COUNTER_MODE_MORT(MODE) (((MODE) == TIM_CounterMode_Up_MORT) || \
+ ((MODE) == TIM_CounterMode_Down_MORT) || \
+ ((MODE) == TIM_CounterMode_CenterAligned1_MORT) || \
+ ((MODE) == TIM_CounterMode_CenterAligned2_MORT) || \
+ ((MODE) == TIM_CounterMode_CenterAligned3_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_Polarity
+ * @{
+ */
+
+#define TIM_OCPolarity_High_MORT ((uint16_t)0x0000)
+#define TIM_OCPolarity_Low_MORT ((uint16_t)0x0002)
+#define IS_TIM_OC_POLARITY_MORT(POLARITY) (((POLARITY) == TIM_OCPolarity_High_MORT) || \
+ ((POLARITY) == TIM_OCPolarity_Low_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_N_Polarity
+ * @{
+ */
+
+#define TIM_OCNPolarity_High_MORT ((uint16_t)0x0000)
+#define TIM_OCNPolarity_Low_MORT ((uint16_t)0x0008)
+#define IS_TIM_OCN_POLARITY_MORT(POLARITY) (((POLARITY) == TIM_OCNPolarity_High_MORT) || \
+ ((POLARITY) == TIM_OCNPolarity_Low_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_State
+ * @{
+ */
+
+#define TIM_OutputState_Disable_MORT ((uint16_t)0x0000)
+#define TIM_OutputState_Enable_MORT ((uint16_t)0x0001)
+#define IS_TIM_OUTPUT_STATE_MORT(STATE) (((STATE) == TIM_OutputState_Disable_MORT) || \
+ ((STATE) == TIM_OutputState_Enable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_N_State
+ * @{
+ */
+
+#define TIM_OutputNState_Disable_MORT ((uint16_t)0x0000)
+#define TIM_OutputNState_Enable_MORT ((uint16_t)0x0004)
+#define IS_TIM_OUTPUTN_STATE_MORT(STATE) (((STATE) == TIM_OutputNState_Disable_MORT) || \
+ ((STATE) == TIM_OutputNState_Enable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Capture_Compare_State
+ * @{
+ */
+
+#define TIM_CCx_Enable_MORT ((uint16_t)0x0001)
+#define TIM_CCx_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_CCX_MORT(CCX) (((CCX) == TIM_CCx_Enable_MORT) || \
+ ((CCX) == TIM_CCx_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Capture_Compare_N_State
+ * @{
+ */
+
+#define TIM_CCxN_Enable_MORT ((uint16_t)0x0004)
+#define TIM_CCxN_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_CCXN_MORT(CCXN) (((CCXN) == TIM_CCxN_Enable_MORT) || \
+ ((CCXN) == TIM_CCxN_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Break_Input_enable_disable
+ * @{
+ */
+
+#define TIM_Break_Enable_MORT ((uint16_t)0x1000)
+#define TIM_Break_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_BREAK_STATE_MORT(STATE) (((STATE) == TIM_Break_Enable_MORT) || \
+ ((STATE) == TIM_Break_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Break_Polarity
+ * @{
+ */
+
+#define TIM_BreakPolarity_Low_MORT ((uint16_t)0x0000)
+#define TIM_BreakPolarity_High_MORT ((uint16_t)0x2000)
+#define IS_TIM_BREAK_POLARITY_MORT(POLARITY) (((POLARITY) == TIM_BreakPolarity_Low_MORT) || \
+ ((POLARITY) == TIM_BreakPolarity_High_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_AOE_Bit_Set_Reset
+ * @{
+ */
+
+#define TIM_AutomaticOutput_Enable_MORT ((uint16_t)0x4000)
+#define TIM_AutomaticOutput_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_AUTOMATIC_OUTPUT_STATE_MORT(STATE) (((STATE) == TIM_AutomaticOutput_Enable_MORT) || \
+ ((STATE) == TIM_AutomaticOutput_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Lock_level
+ * @{
+ */
+
+#define TIM_LOCKLevel_OFF_MORT ((uint16_t)0x0000)
+#define TIM_LOCKLevel_1_MORT ((uint16_t)0x0100)
+#define TIM_LOCKLevel_2_MORT ((uint16_t)0x0200)
+#define TIM_LOCKLevel_3_MORT ((uint16_t)0x0300)
+#define IS_TIM_LOCK_LEVEL_MORT(LEVEL) (((LEVEL) == TIM_LOCKLevel_OFF_MORT) || \
+ ((LEVEL) == TIM_LOCKLevel_1_MORT) || \
+ ((LEVEL) == TIM_LOCKLevel_2_MORT) || \
+ ((LEVEL) == TIM_LOCKLevel_3_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state
+ * @{
+ */
+
+#define TIM_OSSIState_Enable_MORT ((uint16_t)0x0400)
+#define TIM_OSSIState_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_OSSI_STATE_MORT(STATE) (((STATE) == TIM_OSSIState_Enable_MORT) || \
+ ((STATE) == TIM_OSSIState_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state
+ * @{
+ */
+
+#define TIM_OSSRState_Enable_MORT ((uint16_t)0x0800)
+#define TIM_OSSRState_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_OSSR_STATE_MORT(STATE) (((STATE) == TIM_OSSRState_Enable_MORT) || \
+ ((STATE) == TIM_OSSRState_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_Idle_State
+ * @{
+ */
+
+#define TIM_OCIdleState_Set_MORT ((uint16_t)0x0100)
+#define TIM_OCIdleState_Reset_MORT ((uint16_t)0x0000)
+#define IS_TIM_OCIDLE_STATE_MORT(STATE) (((STATE) == TIM_OCIdleState_Set_MORT) || \
+ ((STATE) == TIM_OCIdleState_Reset_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_N_Idle_State
+ * @{
+ */
+
+#define TIM_OCNIdleState_Set_MORT ((uint16_t)0x0200)
+#define TIM_OCNIdleState_Reset_MORT ((uint16_t)0x0000)
+#define IS_TIM_OCNIDLE_STATE_MORT(STATE) (((STATE) == TIM_OCNIdleState_Set_MORT) || \
+ ((STATE) == TIM_OCNIdleState_Reset_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Input_Capture_Polarity
+ * @{
+ */
+
+#define TIM_ICPolarity_Rising_MORT ((uint16_t)0x0000)
+#define TIM_ICPolarity_Falling_MORT ((uint16_t)0x0002)
+#define TIM_ICPolarity_BothEdge_MORT ((uint16_t)0x000A)
+#define IS_TIM_IC_POLARITY_MORT(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising_MORT) || \
+ ((POLARITY) == TIM_ICPolarity_Falling_MORT)|| \
+ ((POLARITY) == TIM_ICPolarity_BothEdge_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Input_Capture_Selection
+ * @{
+ */
+
+#define TIM_ICSelection_DirectTI_MORT ((uint16_t)0x0001) /*!< TIM Input 1, 2, 3 or 4 is selected to be
+ connected to IC1, IC2, IC3 or IC4, respectively */
+#define TIM_ICSelection_IndirectTI_MORT ((uint16_t)0x0002) /*!< TIM Input 1, 2, 3 or 4 is selected to be
+ connected to IC2, IC1, IC4 or IC3, respectively. */
+#define TIM_ICSelection_TRC_MORT ((uint16_t)0x0003) /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC. */
+#define IS_TIM_IC_SELECTION_MORT(SELECTION) (((SELECTION) == TIM_ICSelection_DirectTI_MORT) || \
+ ((SELECTION) == TIM_ICSelection_IndirectTI_MORT) || \
+ ((SELECTION) == TIM_ICSelection_TRC_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Input_Capture_Prescaler
+ * @{
+ */
+
+#define TIM_ICPSC_DIV1_MORT ((uint16_t)0x0000) /*!< Capture performed each time an edge is detected on the capture input. */
+#define TIM_ICPSC_DIV2_MORT ((uint16_t)0x0004) /*!< Capture performed once every 2 events. */
+#define TIM_ICPSC_DIV4_MORT ((uint16_t)0x0008) /*!< Capture performed once every 4 events. */
+#define TIM_ICPSC_DIV8_MORT ((uint16_t)0x000C) /*!< Capture performed once every 8 events. */
+#define IS_TIM_IC_PRESCALER_MORT(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1_MORT) || \
+ ((PRESCALER) == TIM_ICPSC_DIV2_MORT) || \
+ ((PRESCALER) == TIM_ICPSC_DIV4_MORT) || \
+ ((PRESCALER) == TIM_ICPSC_DIV8_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_interrupt_sources
+ * @{
+ */
+
+#define TIM_IT_Update_MORT ((uint16_t)0x0001)
+#define TIM_IT_CC1_MORT ((uint16_t)0x0002)
+#define TIM_IT_CC2_MORT ((uint16_t)0x0004)
+#define TIM_IT_CC3_MORT ((uint16_t)0x0008)
+#define TIM_IT_CC4_MORT ((uint16_t)0x0010)
+#define TIM_IT_COM_MORT ((uint16_t)0x0020)
+#define TIM_IT_Trigger_MORT ((uint16_t)0x0040)
+#define TIM_IT_Break_MORT ((uint16_t)0x0080)
+#define IS_TIM_IT_MORT(IT) ((((IT) & (uint16_t)0xFF00) == 0x0000) && ((IT) != 0x0000))
+
+#define IS_TIM_GET_IT_MORT(IT) (((IT) == TIM_IT_Update_MORT) || \
+ ((IT) == TIM_IT_CC1_MORT) || \
+ ((IT) == TIM_IT_CC2_MORT) || \
+ ((IT) == TIM_IT_CC3_MORT) || \
+ ((IT) == TIM_IT_CC4_MORT) || \
+ ((IT) == TIM_IT_COM_MORT) || \
+ ((IT) == TIM_IT_Trigger_MORT) || \
+ ((IT) == TIM_IT_Break_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_DMA_Base_address
+ * @{
+ */
+
+#define TIM_DMABase_CR1_MORT ((uint16_t)0x0000)
+#define TIM_DMABase_CR2_MORT ((uint16_t)0x0001)
+#define TIM_DMABase_SMCR_MORT ((uint16_t)0x0002)
+#define TIM_DMABase_DIER_MORT ((uint16_t)0x0003)
+#define TIM_DMABase_SR_MORT ((uint16_t)0x0004)
+#define TIM_DMABase_EGR_MORT ((uint16_t)0x0005)
+#define TIM_DMABase_CCMR1_MORT ((uint16_t)0x0006)
+#define TIM_DMABase_CCMR2_MORT ((uint16_t)0x0007)
+#define TIM_DMABase_CCER_MORT ((uint16_t)0x0008)
+#define TIM_DMABase_CNT_MORT ((uint16_t)0x0009)
+#define TIM_DMABase_PSC_MORT ((uint16_t)0x000A)
+#define TIM_DMABase_ARR_MORT ((uint16_t)0x000B)
+#define TIM_DMABase_RCR_MORT ((uint16_t)0x000C)
+#define TIM_DMABase_CCR1_MORT ((uint16_t)0x000D)
+#define TIM_DMABase_CCR2_MORT ((uint16_t)0x000E)
+#define TIM_DMABase_CCR3_MORT ((uint16_t)0x000F)
+#define TIM_DMABase_CCR4_MORT ((uint16_t)0x0010)
+#define TIM_DMABase_BDTR_MORT ((uint16_t)0x0011)
+#define TIM_DMABase_DCR_MORT ((uint16_t)0x0012)
+#define TIM_DMABase_OR_MORT ((uint16_t)0x0013)
+#define IS_TIM_DMA_BASE_MORT(BASE) (((BASE) == TIM_DMABase_CR1_MORT) || \
+ ((BASE) == TIM_DMABase_CR2_MORT) || \
+ ((BASE) == TIM_DMABase_SMCR_MORT) || \
+ ((BASE) == TIM_DMABase_DIER_MORT) || \
+ ((BASE) == TIM_DMABase_SR_MORT) || \
+ ((BASE) == TIM_DMABase_EGR_MORT) || \
+ ((BASE) == TIM_DMABase_CCMR1_MORT) || \
+ ((BASE) == TIM_DMABase_CCMR2_MORT) || \
+ ((BASE) == TIM_DMABase_CCER_MORT) || \
+ ((BASE) == TIM_DMABase_CNT_MORT) || \
+ ((BASE) == TIM_DMABase_PSC_MORT) || \
+ ((BASE) == TIM_DMABase_ARR_MORT) || \
+ ((BASE) == TIM_DMABase_RCR_MORT) || \
+ ((BASE) == TIM_DMABase_CCR1_MORT) || \
+ ((BASE) == TIM_DMABase_CCR2_MORT) || \
+ ((BASE) == TIM_DMABase_CCR3_MORT) || \
+ ((BASE) == TIM_DMABase_CCR4_MORT) || \
+ ((BASE) == TIM_DMABase_BDTR_MORT) || \
+ ((BASE) == TIM_DMABase_DCR_MORT) || \
+ ((BASE) == TIM_DMABase_OR_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_DMA_Burst_Length
+ * @{
+ */
+
+#define TIM_DMABurstLength_1Transfer_MORT ((uint16_t)0x0000)
+#define TIM_DMABurstLength_2Transfers_MORT ((uint16_t)0x0100)
+#define TIM_DMABurstLength_3Transfers_MORT ((uint16_t)0x0200)
+#define TIM_DMABurstLength_4Transfers_MORT ((uint16_t)0x0300)
+#define TIM_DMABurstLength_5Transfers_MORT ((uint16_t)0x0400)
+#define TIM_DMABurstLength_6Transfers_MORT ((uint16_t)0x0500)
+#define TIM_DMABurstLength_7Transfers_MORT ((uint16_t)0x0600)
+#define TIM_DMABurstLength_8Transfers_MORT ((uint16_t)0x0700)
+#define TIM_DMABurstLength_9Transfers_MORT ((uint16_t)0x0800)
+#define TIM_DMABurstLength_10Transfers_MORT ((uint16_t)0x0900)
+#define TIM_DMABurstLength_11Transfers_MORT ((uint16_t)0x0A00)
+#define TIM_DMABurstLength_12Transfers_MORT ((uint16_t)0x0B00)
+#define TIM_DMABurstLength_13Transfers_MORT ((uint16_t)0x0C00)
+#define TIM_DMABurstLength_14Transfers_MORT ((uint16_t)0x0D00)
+#define TIM_DMABurstLength_15Transfers_MORT ((uint16_t)0x0E00)
+#define TIM_DMABurstLength_16Transfers_MORT ((uint16_t)0x0F00)
+#define TIM_DMABurstLength_17Transfers_MORT ((uint16_t)0x1000)
+#define TIM_DMABurstLength_18Transfers_MORT ((uint16_t)0x1100)
+#define IS_TIM_DMA_LENGTH_MORT(LENGTH) (((LENGTH) == TIM_DMABurstLength_1Transfer_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_2Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_3Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_4Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_5Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_6Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_7Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_8Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_9Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_10Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_11Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_12Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_13Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_14Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_15Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_16Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_17Transfers_MORT) || \
+ ((LENGTH) == TIM_DMABurstLength_18Transfers_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_DMA_sources
+ * @{
+ */
+
+#define TIM_DMA_Update_MORT ((uint16_t)0x0100)
+#define TIM_DMA_CC1_MORT ((uint16_t)0x0200)
+#define TIM_DMA_CC2_MORT ((uint16_t)0x0400)
+#define TIM_DMA_CC3_MORT ((uint16_t)0x0800)
+#define TIM_DMA_CC4_MORT ((uint16_t)0x1000)
+#define TIM_DMA_COM_MORT ((uint16_t)0x2000)
+#define TIM_DMA_Trigger_MORT ((uint16_t)0x4000)
+#define IS_TIM_DMA_SOURCE_MORT(SOURCE) ((((SOURCE) & (uint16_t)0x80FF) == 0x0000) && ((SOURCE) != 0x0000))
+
+/**
+ * @}
+ */
+
+/** @defgroup TIM_External_Trigger_Prescaler
+ * @{
+ */
+
+#define TIM_ExtTRGPSC_OFF_MORT ((uint16_t)0x0000)
+#define TIM_ExtTRGPSC_DIV2_MORT ((uint16_t)0x1000)
+#define TIM_ExtTRGPSC_DIV4_MORT ((uint16_t)0x2000)
+#define TIM_ExtTRGPSC_DIV8_MORT ((uint16_t)0x3000)
+#define IS_TIM_EXT_PRESCALER_MORT(PRESCALER) (((PRESCALER) == TIM_ExtTRGPSC_OFF_MORT) || \
+ ((PRESCALER) == TIM_ExtTRGPSC_DIV2_MORT) || \
+ ((PRESCALER) == TIM_ExtTRGPSC_DIV4_MORT) || \
+ ((PRESCALER) == TIM_ExtTRGPSC_DIV8_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Internal_Trigger_Selection
+ * @{
+ */
+
+#define TIM_TS_ITR0_MORT ((uint16_t)0x0000)
+#define TIM_TS_ITR1_MORT ((uint16_t)0x0010)
+#define TIM_TS_ITR2_MORT ((uint16_t)0x0020)
+#define TIM_TS_ITR3_MORT ((uint16_t)0x0030)
+#define TIM_TS_TI1F_ED_MORT ((uint16_t)0x0040)
+#define TIM_TS_TI1FP1_MORT ((uint16_t)0x0050)
+#define TIM_TS_TI2FP2_MORT ((uint16_t)0x0060)
+#define TIM_TS_ETRF_MORT ((uint16_t)0x0070)
+#define IS_TIM_TRIGGER_SELECTION_MORT(SELECTION) (((SELECTION) == TIM_TS_ITR0_MORT) || \
+ ((SELECTION) == TIM_TS_ITR1_MORT) || \
+ ((SELECTION) == TIM_TS_ITR2_MORT) || \
+ ((SELECTION) == TIM_TS_ITR3_MORT) || \
+ ((SELECTION) == TIM_TS_TI1F_ED_MORT) || \
+ ((SELECTION) == TIM_TS_TI1FP1_MORT) || \
+ ((SELECTION) == TIM_TS_TI2FP2_MORT) || \
+ ((SELECTION) == TIM_TS_ETRF_MORT))
+#define IS_TIM_INTERNAL_TRIGGER_SELECTION_MORT(SELECTION) (((SELECTION) == TIM_TS_ITR0_MORT) || \
+ ((SELECTION) == TIM_TS_ITR1_MORT) || \
+ ((SELECTION) == TIM_TS_ITR2_MORT) || \
+ ((SELECTION) == TIM_TS_ITR3_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_TIx_External_Clock_Source
+ * @{
+ */
+
+#define TIM_TIxExternalCLK1Source_TI1_MORT ((uint16_t)0x0050)
+#define TIM_TIxExternalCLK1Source_TI2_MORT ((uint16_t)0x0060)
+#define TIM_TIxExternalCLK1Source_TI1ED_MORT ((uint16_t)0x0040)
+
+/**
+ * @}
+ */
+
+/** @defgroup TIM_External_Trigger_Polarity
+ * @{
+ */
+#define TIM_ExtTRGPolarity_Inverted_MORT ((uint16_t)0x8000)
+#define TIM_ExtTRGPolarity_NonInverted_MORT ((uint16_t)0x0000)
+#define IS_TIM_EXT_POLARITY_MORT(POLARITY) (((POLARITY) == TIM_ExtTRGPolarity_Inverted_MORT) || \
+ ((POLARITY) == TIM_ExtTRGPolarity_NonInverted_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Prescaler_Reload_Mode
+ * @{
+ */
+
+#define TIM_PSCReloadMode_Update_MORT ((uint16_t)0x0000)
+#define TIM_PSCReloadMode_Immediate_MORT ((uint16_t)0x0001)
+#define IS_TIM_PRESCALER_RELOAD_MORT(RELOAD) (((RELOAD) == TIM_PSCReloadMode_Update_MORT) || \
+ ((RELOAD) == TIM_PSCReloadMode_Immediate_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Forced_Action
+ * @{
+ */
+
+#define TIM_ForcedAction_Active_MORT ((uint16_t)0x0050)
+#define TIM_ForcedAction_InActive_MORT ((uint16_t)0x0040)
+#define IS_TIM_FORCED_ACTION_MORT(ACTION) (((ACTION) == TIM_ForcedAction_Active_MORT) || \
+ ((ACTION) == TIM_ForcedAction_InActive_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Encoder_Mode
+ * @{
+ */
+
+#define TIM_EncoderMode_TI1_MORT ((uint16_t)0x0001)
+#define TIM_EncoderMode_TI2_MORT ((uint16_t)0x0002)
+#define TIM_EncoderMode_TI12_MORT ((uint16_t)0x0003)
+#define IS_TIM_ENCODER_MODE_MORT(MODE) (((MODE) == TIM_EncoderMode_TI1_MORT) || \
+ ((MODE) == TIM_EncoderMode_TI2_MORT) || \
+ ((MODE) == TIM_EncoderMode_TI12_MORT))
+/**
+ * @}
+ */
+
+
+/** @defgroup TIM_Event_Source
+ * @{
+ */
+
+#define TIM_EventSource_Update_MORT ((uint16_t)0x0001)
+#define TIM_EventSource_CC1_MORT ((uint16_t)0x0002)
+#define TIM_EventSource_CC2_MORT ((uint16_t)0x0004)
+#define TIM_EventSource_CC3_MORT ((uint16_t)0x0008)
+#define TIM_EventSource_CC4_MORT ((uint16_t)0x0010)
+#define TIM_EventSource_COM_MORT ((uint16_t)0x0020)
+#define TIM_EventSource_Trigger_MORT ((uint16_t)0x0040)
+#define TIM_EventSource_Break_MORT ((uint16_t)0x0080)
+#define IS_TIM_EVENT_SOURCE_MORT(SOURCE) ((((SOURCE) & (uint16_t)0xFF00) == 0x0000) && ((SOURCE) != 0x0000))
+
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Update_Source
+ * @{
+ */
+
+#define TIM_UpdateSource_Global_MORT ((uint16_t)0x0000) /*!< Source of update is the counter overflow/underflow
+ or the setting of UG bit, or an update generation
+ through the slave mode controller. */
+#define TIM_UpdateSource_Regular_MORT ((uint16_t)0x0001) /*!< Source of update is counter overflow/underflow. */
+#define IS_TIM_UPDATE_SOURCE_MORT(SOURCE) (((SOURCE) == TIM_UpdateSource_Global_MORT) || \
+ ((SOURCE) == TIM_UpdateSource_Regular_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_Preload_State
+ * @{
+ */
+
+#define TIM_OCPreload_Enable_MORT ((uint16_t)0x0008)
+#define TIM_OCPreload_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_OCPRELOAD_STATE_MORT(STATE) (((STATE) == TIM_OCPreload_Enable_MORT) || \
+ ((STATE) == TIM_OCPreload_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_Fast_State
+ * @{
+ */
+
+#define TIM_OCFast_Enable_MORT ((uint16_t)0x0004)
+#define TIM_OCFast_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_OCFAST_STATE_MORT(STATE) (((STATE) == TIM_OCFast_Enable_MORT) || \
+ ((STATE) == TIM_OCFast_Disable_MORT))
+
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Output_Compare_Clear_State
+ * @{
+ */
+
+#define TIM_OCClear_Enable_MORT ((uint16_t)0x0080)
+#define TIM_OCClear_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_OCCLEAR_STATE_MORT(STATE) (((STATE) == TIM_OCClear_Enable_MORT) || \
+ ((STATE) == TIM_OCClear_Disable_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Trigger_Output_Source
+ * @{
+ */
+
+#define TIM_TRGOSource_Reset_MORT ((uint16_t)0x0000)
+#define TIM_TRGOSource_Enable_MORT ((uint16_t)0x0010)
+#define TIM_TRGOSource_Update_MORT ((uint16_t)0x0020)
+#define TIM_TRGOSource_OC1_MORT ((uint16_t)0x0030)
+#define TIM_TRGOSource_OC1Ref_MORT ((uint16_t)0x0040)
+#define TIM_TRGOSource_OC2Ref_MORT ((uint16_t)0x0050)
+#define TIM_TRGOSource_OC3Ref_MORT ((uint16_t)0x0060)
+#define TIM_TRGOSource_OC4Ref_MORT ((uint16_t)0x0070)
+#define IS_TIM_TRGO_SOURCE_MORT(SOURCE) (((SOURCE) == TIM_TRGOSource_Reset_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_Enable_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_Update_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_OC1_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_OC1Ref_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_OC2Ref_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_OC3Ref_MORT) || \
+ ((SOURCE) == TIM_TRGOSource_OC4Ref_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Slave_Mode
+ * @{
+ */
+
+#define TIM_SlaveMode_Reset_MORT ((uint16_t)0x0004)
+#define TIM_SlaveMode_Gated_MORT ((uint16_t)0x0005)
+#define TIM_SlaveMode_Trigger_MORT ((uint16_t)0x0006)
+#define TIM_SlaveMode_External1_MORT ((uint16_t)0x0007)
+#define IS_TIM_SLAVE_MODE_MORT(MODE) (((MODE) == TIM_SlaveMode_Reset_MORT) || \
+ ((MODE) == TIM_SlaveMode_Gated_MORT) || \
+ ((MODE) == TIM_SlaveMode_Trigger_MORT) || \
+ ((MODE) == TIM_SlaveMode_External1_MORT))
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Master_Slave_Mode
+ * @{
+ */
+
+#define TIM_MasterSlaveMode_Enable_MORT ((uint16_t)0x0080)
+#define TIM_MasterSlaveMode_Disable_MORT ((uint16_t)0x0000)
+#define IS_TIM_MSM_STATE_MORT(STATE) (((STATE) == TIM_MasterSlaveMode_Enable_MORT) || \
+ ((STATE) == TIM_MasterSlaveMode_Disable_MORT))
+/**
+ * @}
+ */
+/** @defgroup TIM_Remap
+ * @{
+ */
+
+#define TIM2_TIM8_TRGO_MORT ((uint16_t)0x0000)
+#define TIM2_ETH_PTP_MORT ((uint16_t)0x0400)
+#define TIM2_USBFS_SOF_MORT ((uint16_t)0x0800)
+#define TIM2_USBHS_SOF_MORT ((uint16_t)0x0C00)
+
+#define TIM5_GPIO_MORT ((uint16_t)0x0000)
+#define TIM5_LSI_MORT ((uint16_t)0x0040)
+#define TIM5_LSE_MORT ((uint16_t)0x0080)
+#define TIM5_RTC_MORT ((uint16_t)0x00C0)
+
+#define TIM11_GPIO_MORT ((uint16_t)0x0000)
+#define TIM11_HSE_MORT ((uint16_t)0x0002)
+
+#define IS_TIM_REMAP_MORT(TIM_REMAP) (((TIM_REMAP) == TIM2_TIM8_TRGO_MORT)||\
+ ((TIM_REMAP) == TIM2_ETH_PTP_MORT)||\
+ ((TIM_REMAP) == TIM2_USBFS_SOF_MORT)||\
+ ((TIM_REMAP) == TIM2_USBHS_SOF_MORT)||\
+ ((TIM_REMAP) == TIM5_GPIO_MORT)||\
+ ((TIM_REMAP) == TIM5_LSI_MORT)||\
+ ((TIM_REMAP) == TIM5_LSE_MORT)||\
+ ((TIM_REMAP) == TIM5_RTC_MORT)||\
+ ((TIM_REMAP) == TIM11_GPIO_MORT)||\
+ ((TIM_REMAP) == TIM11_HSE_MORT))
+
+/**
+ * @}
+ */
+/** @defgroup TIM_Flags
+ * @{
+ */
+
+#define TIM_FLAG_Update_MORT ((uint16_t)0x0001)
+#define TIM_FLAG_CC1_MORT ((uint16_t)0x0002)
+#define TIM_FLAG_CC2_MORT ((uint16_t)0x0004)
+#define TIM_FLAG_CC3_MORT ((uint16_t)0x0008)
+#define TIM_FLAG_CC4_MORT ((uint16_t)0x0010)
+#define TIM_FLAG_COM_MORT ((uint16_t)0x0020)
+#define TIM_FLAG_Trigger_MORT ((uint16_t)0x0040)
+#define TIM_FLAG_Break_MORT ((uint16_t)0x0080)
+#define TIM_FLAG_CC1OF_MORT ((uint16_t)0x0200)
+#define TIM_FLAG_CC2OF_MORT ((uint16_t)0x0400)
+#define TIM_FLAG_CC3OF_MORT ((uint16_t)0x0800)
+#define TIM_FLAG_CC4OF_MORT ((uint16_t)0x1000)
+#define IS_TIM_GET_FLAG_MORT(FLAG) (((FLAG) == TIM_FLAG_Update_MORT) || \
+ ((FLAG) == TIM_FLAG_CC1_MORT) || \
+ ((FLAG) == TIM_FLAG_CC2_MORT) || \
+ ((FLAG) == TIM_FLAG_CC3_MORT) || \
+ ((FLAG) == TIM_FLAG_CC4_MORT) || \
+ ((FLAG) == TIM_FLAG_COM_MORT) || \
+ ((FLAG) == TIM_FLAG_Trigger_MORT) || \
+ ((FLAG) == TIM_FLAG_Break_MORT) || \
+ ((FLAG) == TIM_FLAG_CC1OF_MORT) || \
+ ((FLAG) == TIM_FLAG_CC2OF_MORT) || \
+ ((FLAG) == TIM_FLAG_CC3OF_MORT) || \
+ ((FLAG) == TIM_FLAG_CC4OF_MORT))
+
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Input_Capture_Filer_Value
+ * @{
+ */
+
+#define IS_TIM_IC_FILTER_MORT(ICFILTER) ((ICFILTER) <= 0xF)
+/**
+ * @}
+ */
+
+/** @defgroup TIM_External_Trigger_Filter
+ * @{
+ */
+
+#define IS_TIM_EXT_FILTER_MORT(EXTFILTER) ((EXTFILTER) <= 0xF)
+/**
+ * @}
+ */
+
+/** @defgroup TIM_Legacy
+ * @{
+ */
+
+#define TIM_DMABurstLength_1Byte_MORT TIM_DMABurstLength_1Transfer_MORT
+#define TIM_DMABurstLength_2Bytes_MORT TIM_DMABurstLength_2Transfers_MORT
+#define TIM_DMABurstLength_3Bytes_MORT TIM_DMABurstLength_3Transfers_MORT
+#define TIM_DMABurstLength_4Bytes_MORT TIM_DMABurstLength_4Transfers_MORT
+#define TIM_DMABurstLength_5Bytes_MORT TIM_DMABurstLength_5Transfers_MORT
+#define TIM_DMABurstLength_6Bytes_MORT TIM_DMABurstLength_6Transfers_MORT
+#define TIM_DMABurstLength_7Bytes_MORT TIM_DMABurstLength_7Transfers_MORT
+#define TIM_DMABurstLength_8Bytes_MORT TIM_DMABurstLength_8Transfers_MORT
+#define TIM_DMABurstLength_9Bytes_MORT TIM_DMABurstLength_9Transfers_MORT
+#define TIM_DMABurstLength_10Bytes_MORT TIM_DMABurstLength_10Transfers_MORT
+#define TIM_DMABurstLength_11Bytes_MORT TIM_DMABurstLength_11Transfers_MORT
+#define TIM_DMABurstLength_12Bytes_MORT TIM_DMABurstLength_12Transfers_MORT
+#define TIM_DMABurstLength_13Bytes_MORT TIM_DMABurstLength_13Transfers_MORT
+#define TIM_DMABurstLength_14Bytes_MORT TIM_DMABurstLength_14Transfers_MORT
+#define TIM_DMABurstLength_15Bytes_MORT TIM_DMABurstLength_15Transfers_MORT
+#define TIM_DMABurstLength_16Bytes_MORT TIM_DMABurstLength_16Transfers_MORT
+#define TIM_DMABurstLength_17Bytes_MORT TIM_DMABurstLength_17Transfers_MORT
+#define TIM_DMABurstLength_18Bytes_MORT TIM_DMABurstLength_18Transfers_MORT
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+
+/* TimeBase management ********************************************************/
+void TIM_DeInit_mort(TIM_TypeDef_mort* TIMx);
+void TIM_TimeBaseInit_mort(TIM_TypeDef_mort* TIMx, TIM_TimeBaseInitTypeDef_mort* TIM_TimeBaseInitStruct);
+void TIM_TimeBaseStructInit_mort(TIM_TimeBaseInitTypeDef_mort* TIM_TimeBaseInitStruct);
+void TIM_PrescalerConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode);
+void TIM_CounterModeConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_CounterMode);
+void TIM_SetCounter_mort(TIM_TypeDef_mort* TIMx, uint32_t Counter);
+void TIM_SetAutoreload_mort(TIM_TypeDef_mort* TIMx, uint32_t Autoreload);
+uint32_t TIM_GetCounter_mort(TIM_TypeDef_mort* TIMx);
+uint16_t TIM_GetPrescaler_mort(TIM_TypeDef_mort* TIMx);
+void TIM_UpdateDisableConfig_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+void TIM_UpdateRequestConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_UpdateSource);
+void TIM_ARRPreloadConfig_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+void TIM_SelectOnePulseMode_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OPMode);
+void TIM_SetClockDivision_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_CKD);
+void TIM_Cmd_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+
+/* Output Compare management **************************************************/
+void TIM_OC1Init_mort(TIM_TypeDef_mort* TIMx, TIM_OCInitTypeDef_mort* TIM_OCInitStruct);
+void TIM_OC2Init_mort(TIM_TypeDef_mort* TIMx, TIM_OCInitTypeDef_mort* TIM_OCInitStruct);
+void TIM_OC3Init_mort(TIM_TypeDef_mort* TIMx, TIM_OCInitTypeDef_mort* TIM_OCInitStruct);
+void TIM_OC4Init_mort(TIM_TypeDef_mort* TIMx, TIM_OCInitTypeDef_mort* TIM_OCInitStruct);
+void TIM_OCStructInit_mort(TIM_OCInitTypeDef_mort* TIM_OCInitStruct);
+void TIM_SelectOCxM_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode);
+void TIM_SetCompare1_mort(TIM_TypeDef_mort* TIMx, uint32_t Compare1);
+void TIM_SetCompare2_mort(TIM_TypeDef_mort* TIMx, uint32_t Compare2);
+void TIM_SetCompare3_mort(TIM_TypeDef_mort* TIMx, uint32_t Compare3);
+void TIM_SetCompare4_mort(TIM_TypeDef_mort* TIMx, uint32_t Compare4);
+void TIM_ForcedOC1Config_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ForcedAction);
+void TIM_ForcedOC2Config_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ForcedAction);
+void TIM_ForcedOC3Config_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ForcedAction);
+void TIM_ForcedOC4Config_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ForcedAction);
+void TIM_OC1PreloadConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPreload);
+void TIM_OC2PreloadConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPreload);
+void TIM_OC3PreloadConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPreload);
+void TIM_OC4PreloadConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPreload);
+void TIM_OC1FastConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCFast);
+void TIM_OC2FastConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCFast);
+void TIM_OC3FastConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCFast);
+void TIM_OC4FastConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCFast);
+void TIM_ClearOC1Ref_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCClear);
+void TIM_ClearOC2Ref_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCClear);
+void TIM_ClearOC3Ref_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCClear);
+void TIM_ClearOC4Ref_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCClear);
+void TIM_OC1PolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPolarity);
+void TIM_OC1NPolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCNPolarity);
+void TIM_OC2PolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPolarity);
+void TIM_OC2NPolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCNPolarity);
+void TIM_OC3PolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPolarity);
+void TIM_OC3NPolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCNPolarity);
+void TIM_OC4PolarityConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_OCPolarity);
+void TIM_CCxCmd_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx);
+void TIM_CCxNCmd_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN);
+
+/* Input Capture management ***************************************************/
+void TIM_ICInit_mort(TIM_TypeDef_mort* TIMx, TIM_ICInitTypeDef_mort* TIM_ICInitStruct);
+void TIM_ICStructInit_mort(TIM_ICInitTypeDef_mort* TIM_ICInitStruct);
+void TIM_PWMIConfig_mort(TIM_TypeDef_mort* TIMx, TIM_ICInitTypeDef_mort* TIM_ICInitStruct);
+uint32_t TIM_GetCapture1_mort(TIM_TypeDef_mort* TIMx);
+uint32_t TIM_GetCapture2_mort(TIM_TypeDef_mort* TIMx);
+uint32_t TIM_GetCapture3_mort(TIM_TypeDef_mort* TIMx);
+uint32_t TIM_GetCapture4_mort(TIM_TypeDef_mort* TIMx);
+void TIM_SetIC1Prescaler_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ICPSC);
+void TIM_SetIC2Prescaler_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ICPSC);
+void TIM_SetIC3Prescaler_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ICPSC);
+void TIM_SetIC4Prescaler_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ICPSC);
+
+/* Advanced-control timers (TIM1_MORT and TIM8_MORT) specific features ******************/
+void TIM_BDTRConfig_mort(TIM_TypeDef_mort* TIMx, TIM_BDTRInitTypeDef_mort *TIM_BDTRInitStruct);
+void TIM_BDTRStructInit_mort(TIM_BDTRInitTypeDef_mort* TIM_BDTRInitStruct);
+void TIM_CtrlPWMOutputs_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+void TIM_SelectCOM_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+void TIM_CCPreloadControl_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+
+/* Interrupts, DMA and flags management ***************************************/
+void TIM_ITConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_IT, FunctionalState NewState);
+void TIM_GenerateEvent_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_EventSource);
+FlagStatus TIM_GetFlagStatus_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_FLAG);
+void TIM_ClearFlag_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_FLAG);
+ITStatus TIM_GetITStatus_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_IT);
+void TIM_ClearITPendingBit_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_IT);
+void TIM_DMAConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength);
+void TIM_DMACmd_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_DMASource, FunctionalState NewState);
+void TIM_SelectCCDMA_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+
+/* Clocks management **********************************************************/
+void TIM_InternalClockConfig_mort(TIM_TypeDef_mort* TIMx);
+void TIM_ITRxExternalClockConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_InputTriggerSource);
+void TIM_TIxExternalClockConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_TIxExternalCLKSource,
+ uint16_t TIM_ICPolarity, uint16_t ICFilter);
+void TIM_ETRClockMode1Config_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,
+ uint16_t ExtTRGFilter);
+void TIM_ETRClockMode2Config_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ExtTRGPrescaler,
+ uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter);
+
+/* Synchronization management *************************************************/
+void TIM_SelectInputTrigger_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_InputTriggerSource);
+void TIM_SelectOutputTrigger_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_TRGOSource);
+void TIM_SelectSlaveMode_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_SlaveMode);
+void TIM_SelectMasterSlaveMode_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_MasterSlaveMode);
+void TIM_ETRConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,
+ uint16_t ExtTRGFilter);
+
+/* Specific interface management **********************************************/
+void TIM_EncoderInterfaceConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_EncoderMode,
+ uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);
+void TIM_SelectHallSensor_mort(TIM_TypeDef_mort* TIMx, FunctionalState NewState);
+
+/* Specific remapping management **********************************************/
+void TIM_RemapConfig_mort(TIM_TypeDef_mort* TIMx, uint16_t TIM_Remap);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__STM32F4xx_TIM_H */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
+
+
+
+
+