⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm8l15x_tim5.h

📁 STM8L的tim4定时器使用
💻 H
📖 第 1 页 / 共 2 页
字号:
  TIM5_ExtTRGPSC_DIV2  = ((uint8_t)0x10),   /*!< External Trigger prescaler = 2 (ETRP frequency divided by 2) */
  TIM5_ExtTRGPSC_DIV4  = ((uint8_t)0x20),   /*!< External Trigger prescaler = 4 (ETRP frequency divided by 4) */
  TIM5_ExtTRGPSC_DIV8  = ((uint8_t)0x30)    /*!< External Trigger prescaler = 8 (ETRP frequency divided by 8) */
}TIM5_ExtTRGPSC_TypeDef;

#define IS_TIM5_EXT_PRESCALER(PRESCALER) \
  (((PRESCALER) == TIM5_ExtTRGPSC_OFF)  || \
   ((PRESCALER) == TIM5_ExtTRGPSC_DIV2) || \
   ((PRESCALER) == TIM5_ExtTRGPSC_DIV4) || \
   ((PRESCALER) == TIM5_ExtTRGPSC_DIV8))
/**
  * @}
  */
  
/** @defgroup TIM5_Internal_Trigger_Selection
  * @{
  */
typedef enum
{
  TIM5_TRGSelection_TIM4     = ((uint8_t)0x00),  /*!< TRIG Input source =  TIM TRIG Output  */
  TIM5_TRGSelection_TIM1     = ((uint8_t)0x10),  /*!< TRIG Input source =  TIM TRIG Output  */
  TIM5_TRGSelection_TIM3     = ((uint8_t)0x20),  /*!< TRIG Input source =  TIM TRIG Output  */
  TIM5_TRGSelection_TIM2     = ((uint8_t)0x30),  /*!< TRIG Input source =  TIM TRIG Output  */
  TIM5_TRGSelection_TI1F_ED  = ((uint8_t)0x40),  /*!< TRIG Input source = TI1F_ED (TI1 Edge Detector)  */
  TIM5_TRGSelection_TI1FP1   = ((uint8_t)0x50),  /*!< TRIG Input source = TI1FP1 (Filtred Timer Input 1) */
  TIM5_TRGSelection_TI2FP2   = ((uint8_t)0x60),  /*!< TRIG Input source = TI2FP2 (Filtred Timer Input 2)  */
  TIM5_TRGSelection_ETRF     = ((uint8_t)0x70)   /*!< TRIG Input source =  ETRF (External Trigger Input ) */
}TIM5_TRGSelection_TypeDef;

#define IS_TIM5_TRIGGER_SELECTION(SELECTION) \
  (((SELECTION) == TIM5_TRGSelection_TIM4) || \
   ((SELECTION) == TIM5_TRGSelection_TIM1) || \
   ((SELECTION) == TIM5_TRGSelection_TIM3) || \
   ((SELECTION) == TIM5_TRGSelection_TIM2) || \
   ((SELECTION) == TIM5_TRGSelection_TI1F_ED) || \
   ((SELECTION) == TIM5_TRGSelection_TI1FP1)  || \
   ((SELECTION) == TIM5_TRGSelection_TI2FP2)  || \
   ((SELECTION) == TIM5_TRGSelection_ETRF))


#define IS_TIM5_TIX_TRIGGER_SELECTION(SELECTION) \
  (((SELECTION) == TIM5_TRGSelection_TI1F_ED) || \
   ((SELECTION) == TIM5_TRGSelection_TI1FP1)  || \
   ((SELECTION) == TIM5_TRGSelection_TI2FP2))
/**
  * @}
  */
  
/** @defgroup TIM5_TI_External_Clock_Source
  * @{
  */
typedef enum
{
  TIM5_TIxExternalCLK1Source_TI1ED  = ((uint8_t)0x40),   /*!< External Clock mode 1 source = TI1ED */
  TIM5_TIxExternalCLK1Source_TI1    = ((uint8_t)0x50),   /*!< External Clock mode 1 source = TI1 */
  TIM5_TIxExternalCLK1Source_TI2    = ((uint8_t)0x60)    /*!< External Clock mode 1 source = TI2 */
}TIM5_TIxExternalCLK1Source_TypeDef;

#define IS_TIM5_TIXCLK_SOURCE(SOURCE)  \
  (((SOURCE) == TIM5_TIxExternalCLK1Source_TI1ED) || \
   ((SOURCE) == TIM5_TIxExternalCLK1Source_TI2)   || \
   ((SOURCE) == TIM5_TIxExternalCLK1Source_TI1))

/**
  * @}
  */
  
/** @defgroup TIM5_External_Trigger_Polarity
  * @{
  */
typedef enum
{
  TIM5_ExtTRGPolarity_Inverted     = ((uint8_t)0x80),   /*!< External Trigger Polarity = inverted */
  TIM5_ExtTRGPolarity_NonInverted  = ((uint8_t)0x00)    /*!< External Trigger Polarity = non inverted */
}TIM5_ExtTRGPolarity_TypeDef;

#define IS_TIM5_EXT_POLARITY(POLARITY) \
  (((POLARITY) == TIM5_ExtTRGPolarity_Inverted) || \
   ((POLARITY) == TIM5_ExtTRGPolarity_NonInverted))
/**
  * @}
  */
  
/** @defgroup TIM5_Prescaler_Reload_Mode
  * @{
  */
typedef enum
{
  TIM5_PSCReloadMode_Update      = ((uint8_t)0x00),   /*!< Prescaler value is reloaded at every update*/
  TIM5_PSCReloadMode_Immediate   = ((uint8_t)0x01)    /*!< Prescaler value is reloaded immediatly*/
}TIM5_PSCReloadMode_TypeDef;

#define IS_TIM5_PRESCALER_RELOAD(RELOAD) \
  (((RELOAD) == TIM5_PSCReloadMode_Update) || \
   ((RELOAD) == TIM5_PSCReloadMode_Immediate))
/**
  * @}
  */
  
/** @defgroup TIM5_Encoder_Mode
  * @{
  */
typedef enum
{
  TIM5_EncoderMode_TI1     = ((uint8_t)0x01),   /*!< Encoder mode 1*/
  TIM5_EncoderMode_TI2     = ((uint8_t)0x02),   /*!< Encoder mode 2*/
  TIM5_EncoderMode_TI12    = ((uint8_t)0x03)    /*!< Encoder mode 3*/
}TIM5_EncoderMode_TypeDef;

#define IS_TIM5_ENCODER_MODE(MODE) \
  (((MODE) == TIM5_EncoderMode_TI1) || \
   ((MODE) == TIM5_EncoderMode_TI2) || \
   ((MODE) == TIM5_EncoderMode_TI12))
/**
  * @}
  */
  
/** @defgroup TIM5_Event_Source
  * @{
  */
typedef enum
{
  TIM5_EventSource_Update   = ((uint8_t)0x01),   /*!< Update Event*/
  TIM5_EventSource_CC1      = ((uint8_t)0x02),   /*!< Capture Compare Channel1  Event*/
  TIM5_EventSource_CC2      = ((uint8_t)0x04),   /*!< Capture Compare Channel2 Event*/
  TIM5_EventSource_Trigger  = ((uint8_t)0x40),   /*!< Trigger Event*/
  TIM5_EventSource_Break    = ((uint8_t)0x80)    /*!< Break Event*/
}TIM5_EventSource_TypeDef;

#define IS_TIM5_EVENT_SOURCE(SOURCE) ((((SOURCE) & (uint8_t)0x18) == 0x00) && \
                                      ((SOURCE) != 0x00))
/**
  * @}
  */
  
/** @defgroup TIM5_Update_Source
  * @{
  */
typedef enum
{
  TIM5_UpdateSource_Global   = ((uint8_t)0x00),   /*!< Global Update request source */
  TIM5_UpdateSource_Regular  = ((uint8_t)0x01)    /*!< Regular Update request source */
}TIM5_UpdateSource_TypeDef;

#define IS_TIM5_UPDATE_SOURCE(SOURCE) \
  (((SOURCE) == TIM5_UpdateSource_Global) || \
   ((SOURCE) == TIM5_UpdateSource_Regular))

/**
  * @}
  */
  
/** @defgroup TIM5_Trigger_Output_Source
  * @{
  */
typedef enum
{
  TIM5_TRGOSource_Reset    = ((uint8_t)0x00),   /*!< Trigger Output source = Reset*/
  TIM5_TRGOSource_Enable   = ((uint8_t)0x10),   /*!< Trigger Output source = TIM5 is enabled*/
  TIM5_TRGOSource_Update   = ((uint8_t)0x20),   /*!< Trigger Output source = Update event*/
  TIM5_TRGOSource_OC1      = ((uint8_t)0x30),   /*!< Trigger Output source = output compare channel1  */
  TIM5_TRGOSource_OC1REF   = ((uint8_t)0x40),   /*!< Trigger Output source = output compare channel 1 reference */
  TIM5_TRGOSource_OC2REF   = ((uint8_t)0x50)    /*!< Trigger Output source = output compare channel 2 reference */
}TIM5_TRGOSource_TypeDef;

#define IS_TIM5_TRGO_SOURCE(SOURCE) \
  (((SOURCE) == TIM5_TRGOSource_Reset)  || \
   ((SOURCE) == TIM5_TRGOSource_Enable) || \
   ((SOURCE) == TIM5_TRGOSource_Update) || \
   ((SOURCE) == TIM5_TRGOSource_OC1)    || \
   ((SOURCE) == TIM5_TRGOSource_OC1REF) || \
   ((SOURCE) == TIM5_TRGOSource_OC2REF))
/**
  * @}
  */
  
/** @defgroup TIM5_Slave_Mode
  * @{
  */
typedef enum
{
  TIM5_SlaveMode_Reset      = ((uint8_t)0x04),  /*!< Slave Mode Selection  = Reset*/
  TIM5_SlaveMode_Gated      = ((uint8_t)0x05),  /*!< Slave Mode Selection  = Gated*/
  TIM5_SlaveMode_Trigger    = ((uint8_t)0x06),  /*!< Slave Mode Selection  = Trigger*/
  TIM5_SlaveMode_External1  = ((uint8_t)0x07)   /*!< Slave Mode Selection  = External 1*/
}TIM5_SlaveMode_TypeDef;

#define IS_TIM5_SLAVE_MODE(MODE) \
  (((MODE) == TIM5_SlaveMode_Reset)   || \
   ((MODE) == TIM5_SlaveMode_Gated)   || \
   ((MODE) == TIM5_SlaveMode_Trigger) || \
   ((MODE) == TIM5_SlaveMode_External1))
/**
  * @}
  */
  
/** @defgroup TIM5_Flags
  * @{
  */
typedef enum
{
  TIM5_FLAG_Update   = ((uint16_t)0x0001),  /*!< Update Flag */
  TIM5_FLAG_CC1      = ((uint16_t)0x0002),  /*!< Capture compare 1 Flag */
  TIM5_FLAG_CC2      = ((uint16_t)0x0004),  /*!< Capture compare 2 Flag */
  TIM5_FLAG_Trigger  = ((uint16_t)0x0040),  /*!< Trigger Flag */
  TIM5_FLAG_Break    = ((uint16_t)0x0080),  /*!< Break Flag */
  TIM5_FLAG_CC1OF    = ((uint16_t)0x0200),  /*!< Capture compare 1 over capture Flag */
  TIM5_FLAG_CC2OF    = ((uint16_t)0x0400)   /*!< Capture compare 2 over capture Flag */
}TIM5_FLAG_TypeDef;

#define IS_TIM5_GET_FLAG(FLAG) \
  (((FLAG) == TIM5_FLAG_Update)  || \
   ((FLAG) == TIM5_FLAG_CC1)     || \
   ((FLAG) == TIM5_FLAG_CC2)     || \
   ((FLAG) == TIM5_FLAG_Trigger) || \
   ((FLAG) == TIM5_FLAG_Break)   || \
   ((FLAG) == TIM5_FLAG_CC1OF)   || \
   ((FLAG) == TIM5_FLAG_CC2OF))

#define IS_TIM5_CLEAR_FLAG(FLAG) \
  ((((FLAG) & (uint16_t)0xE100) == 0x0000) && ((FLAG) != 0x0000))
/**
  * @}
  */
  
/** @defgroup TIM5_DMA_Source_Requests
  * @{
  */
typedef enum
{
  TIM5_DMASource_Update   = ((uint8_t)0x01),  /*!< TIM5 DMA Update Request*/
  TIM5_DMASource_CC1      = ((uint8_t)0x02),  /*!< TIM5 DMA CC1 Request*/
  TIM5_DMASource_CC2      = ((uint8_t)0x04)   /*!< TIM5 DMA CC2 Request*/
}TIM5_DMASource_TypeDef;

#define IS_TIM5_DMA_SOURCE(SOURCE) \
  (((SOURCE) == TIM5_DMASource_Update) || \
   ((SOURCE) == TIM5_DMASource_CC1) || \
   ((SOURCE) == TIM5_DMASource_CC2))
/**
  * @}
  */
  
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macros -----------------------------------------------------------*/

/** @defgroup TIM5_Exported_Macros
  * @{
  */

/**
  * @brief Macro TIM5 Input Capture Filter Value
  */
#define IS_TIM5_IC_FILTER(ICFILTER) ((ICFILTER) <= 0x0F)

/**
  * @brief Macro TIM5 External Trigger Filter
  */
#define IS_TIM5_EXT_FILTER(EXTFILTER) \
  ((EXTFILTER) <= 0x0F)

/**
  * @}
  */

/* Exported functions ------------------------------------------------------- */

/* TimeBase management ********************************************************/
void TIM5_DeInit(void);
void TIM5_TimeBaseInit(TIM5_Prescaler_TypeDef TIM5_Prescaler,
                       TIM5_CounterMode_TypeDef TIM5_CounterMode, uint16_t TIM5_Period);
void TIM5_PrescalerConfig(TIM5_Prescaler_TypeDef Prescaler,
                          TIM5_PSCReloadMode_TypeDef TIM5_PSCReloadMode);
void TIM5_CounterModeConfig(TIM5_CounterMode_TypeDef TIM5_CounterMode);
void TIM5_SetCounter(uint16_t Counter);
void TIM5_SetAutoreload(uint16_t Autoreload);
uint16_t TIM5_GetCounter(void);
TIM5_Prescaler_TypeDef TIM5_GetPrescaler(void);
void TIM5_UpdateDisableConfig(FunctionalState NewState);
void TIM5_UpdateRequestConfig(TIM5_UpdateSource_TypeDef TIM5_UpdateSource);
void TIM5_ARRPreloadConfig(FunctionalState NewState);
void TIM5_SelectOnePulseMode(TIM5_OPMode_TypeDef TIM5_OPMode);
void TIM5_Cmd(FunctionalState NewState);

/* Output Compare management **************************************************/
void TIM5_OC1Init(TIM5_OCMode_TypeDef TIM5_OCMode,
                  TIM5_OutputState_TypeDef TIM5_OutputState,
                  uint16_t TIM5_Pulse,
                  TIM5_OCPolarity_TypeDef TIM5_OCPolarity,
                  TIM5_OCIdleState_TypeDef TIM5_OCIdleState);
void TIM5_OC2Init(TIM5_OCMode_TypeDef TIM5_OCMode,
                  TIM5_OutputState_TypeDef TIM5_OutputState,
                  uint16_t TIM5_Pulse,
                  TIM5_OCPolarity_TypeDef TIM5_OCPolarity,
                  TIM5_OCIdleState_TypeDef TIM5_OCIdleState);
void TIM5_BKRConfig(TIM5_OSSIState_TypeDef TIM5_OSSIState,
                    TIM5_LockLevel_TypeDef TIM5_LockLevel,
                    TIM5_BreakState_TypeDef TIM5_BreakState,
                    TIM5_BreakPolarity_TypeDef TIM5_BreakPolarity,
                    TIM5_AutomaticOutput_TypeDef TIM5_AutomaticOutput);
void TIM5_CtrlPWMOutputs(FunctionalState NewState);
void TIM5_SelectOCxM(TIM5_Channel_TypeDef TIM5_Channel, TIM5_OCMode_TypeDef TIM5_OCMode);
void TIM5_SetCompare1(uint16_t Compare);
void TIM5_SetCompare2(uint16_t Compare);
void TIM5_ForcedOC1Config(TIM5_ForcedAction_TypeDef TIM5_ForcedAction);
void TIM5_ForcedOC2Config(TIM5_ForcedAction_TypeDef TIM5_ForcedAction);
void TIM5_OC1PreloadConfig(FunctionalState NewState);
void TIM5_OC2PreloadConfig(FunctionalState NewState);
void TIM5_OC1FastConfig(FunctionalState NewState);
void TIM5_OC2FastConfig(FunctionalState NewState);
void TIM5_OC1PolarityConfig(TIM5_OCPolarity_TypeDef TIM5_OCPolarity);
void TIM5_OC2PolarityConfig(TIM5_OCPolarity_TypeDef TIM5_OCPolarity);
void TIM5_CCxCmd(TIM5_Channel_TypeDef TIM5_Channel, FunctionalState NewState);

/* Input Capture management ***************************************************/
void TIM5_ICInit(TIM5_Channel_TypeDef TIM5_Channel,
                 TIM5_ICPolarity_TypeDef TIM5_ICPolarity,
                 TIM5_ICSelection_TypeDef TIM5_ICSelection,
                 TIM5_ICPSC_TypeDef TIM5_ICPrescaler,
                 uint8_t TIM5_ICFilter);
void TIM5_PWMIConfig(TIM5_Channel_TypeDef TIM5_Channel,
                     TIM5_ICPolarity_TypeDef TIM5_ICPolarity,
                     TIM5_ICSelection_TypeDef TIM5_ICSelection,
                     TIM5_ICPSC_TypeDef TIM5_ICPrescaler,
                     uint8_t TIM5_ICFilter);
uint16_t TIM5_GetCapture1(void);
uint16_t TIM5_GetCapture2(void);
void TIM5_SetIC1Prescaler(TIM5_ICPSC_TypeDef TIM5_IC1Prescaler);
void TIM5_SetIC2Prescaler(TIM5_ICPSC_TypeDef TIM5_IC2Prescaler);

/* Interrupts, DMA and flags management ***************************************/
void TIM5_ITConfig(TIM5_IT_TypeDef TIM5_IT, FunctionalState NewState);
void TIM5_GenerateEvent(TIM5_EventSource_TypeDef TIM5_EventSource);
FlagStatus TIM5_GetFlagStatus(TIM5_FLAG_TypeDef TIM5_FLAG);
void TIM5_ClearFlag(TIM5_FLAG_TypeDef TIM5_FLAG);
ITStatus TIM5_GetITStatus(TIM5_IT_TypeDef TIM5_IT);
void TIM5_ClearITPendingBit(TIM5_IT_TypeDef TIM5_IT);
void TIM5_DMACmd(TIM5_DMASource_TypeDef TIM5_DMASource, FunctionalState NewState);
void TIM5_SelectCCDMA(FunctionalState NewState);

/* Clocks management **********************************************************/
void TIM5_InternalClockConfig(void);
void TIM5_TIxExternalClockConfig(TIM5_TIxExternalCLK1Source_TypeDef TIM5_TIxExternalCLKSource,
                                 TIM5_ICPolarity_TypeDef TIM5_ICPolarity,
                                 uint8_t ICFilter);
void TIM5_ETRClockMode1Config(TIM5_ExtTRGPSC_TypeDef TIM5_ExtTRGPrescaler,
                              TIM5_ExtTRGPolarity_TypeDef TIM5_ExtTRGPolarity,
                              uint8_t ExtTRGFilter);
void TIM5_ETRClockMode2Config(TIM5_ExtTRGPSC_TypeDef TIM5_ExtTRGPrescaler,
                              TIM5_ExtTRGPolarity_TypeDef TIM5_ExtTRGPolarity,
                              uint8_t ExtTRGFilter);

/* Synchronization management *************************************************/
void TIM5_SelectInputTrigger(TIM5_TRGSelection_TypeDef TIM5_InputTriggerSource);
void TIM5_SelectOutputTrigger(TIM5_TRGOSource_TypeDef TIM5_TRGOSource);
void TIM5_SelectSlaveMode(TIM5_SlaveMode_TypeDef TIM5_SlaveMode);
void TIM5_SelectMasterSlaveMode(FunctionalState NewState);
void TIM5_ETRConfig(TIM5_ExtTRGPSC_TypeDef TIM5_ExtTRGPrescaler,
                    TIM5_ExtTRGPolarity_TypeDef TIM5_ExtTRGPolarity,
                    uint8_t ExtTRGFilter);

/* Specific interface management **********************************************/
void TIM5_EncoderInterfaceConfig(TIM5_EncoderMode_TypeDef TIM5_EncoderMode,
                                 TIM5_ICPolarity_TypeDef TIM5_IC1Polarity,
                                 TIM5_ICPolarity_TypeDef TIM5_IC2Polarity);
void TIM5_SelectHallSensor(FunctionalState NewState);

#endif /* __STM8L15x_TIM5_H */

/**
  * @}
  */

/**
  * @}
  */

/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -