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

📄 stm8l15x_tim3.h

📁 STM8L的tim4定时器使用
💻 H
📖 第 1 页 / 共 2 页
字号:
  * @{
  */
typedef enum
{
  TIM3_FLAG_Update   = ((uint16_t)0x0001), /*!< Update Flag */
  TIM3_FLAG_CC1      = ((uint16_t)0x0002), /*!< Capture compare 1 Flag */
  TIM3_FLAG_CC2      = ((uint16_t)0x0004), /*!< Capture compare 2 Flag */
  TIM3_FLAG_Trigger  = ((uint16_t)0x0040), /*!< Trigger Flag */
  TIM3_FLAG_Break    = ((uint16_t)0x0080), /*!< Break Flag */
  TIM3_FLAG_CC1OF    = ((uint16_t)0x0200), /*!< Capture compare 1 over capture Flag */
  TIM3_FLAG_CC2OF    = ((uint16_t)0x0400)  /*!< Capture compare 2 over capture Flag */
}TIM3_FLAG_TypeDef;

/**
  * @}
  */

/** @defgroup TIM3_DMA_Source_Requests
  * @{
  */
typedef enum
{
  TIM3_DMASource_Update   = ((uint8_t)0x01),  /*!< TIM3 DMA Update Request*/
  TIM3_DMASource_CC1      = ((uint8_t)0x02),
  TIM3_DMASource_CC2      = ((uint8_t)0x04)
}TIM3_DMASource_TypeDef;

/**
  * @}
  */

/**
  * @}
  */

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

/** @defgroup TIM3_Exported_Macros
  * @{
  */

/**
  * @brief Macro used by the assert function to check the different functions parameters.
  */

/**
  * @brief Macro TIM3 Forced Action
  */
#define IS_TIM3_FORCED_ACTION(ACTION) \
  (((ACTION) == TIM3_ForcedAction_Active) || \
   ((ACTION) == TIM3_ForcedAction_Inactive))

/**
  * @brief Macro TIM3 Prescaler
  */
#define IS_TIM3_PRESCALER(PRESCALER) \
  (((PRESCALER) == TIM3_Prescaler_1)  || \
   ((PRESCALER) == TIM3_Prescaler_2)  || \
   ((PRESCALER) == TIM3_Prescaler_4)  || \
   ((PRESCALER) == TIM3_Prescaler_8)  || \
   ((PRESCALER) == TIM3_Prescaler_16) || \
   ((PRESCALER) == TIM3_Prescaler_32) || \
   ((PRESCALER) == TIM3_Prescaler_64) || \
   ((PRESCALER) == TIM3_Prescaler_128))

/**
  * @brief Macro TIM3 Output Compare and PWM modes
  */
#define IS_TIM3_OC_MODE(MODE) \
  (((MODE) ==  TIM3_OCMode_Timing)  || \
   ((MODE) == TIM3_OCMode_Active)   || \
   ((MODE) == TIM3_OCMode_Inactive) || \
   ((MODE) == TIM3_OCMode_Toggle)   || \
   ((MODE) == TIM3_OCMode_PWM1)     || \
   ((MODE) == TIM3_OCMode_PWM2))

#define IS_TIM3_OCM(MODE)   \
  (((MODE) ==  TIM3_OCMode_Timing)  || \
   ((MODE) == TIM3_OCMode_Active)   || \
   ((MODE) == TIM3_OCMode_Inactive) || \
   ((MODE) == TIM3_OCMode_Toggle)   || \
   ((MODE) == TIM3_OCMode_PWM1)     || \
   ((MODE) == TIM3_OCMode_PWM2)     || \
   ((MODE) == (uint8_t)TIM3_ForcedAction_Active) || \
   ((MODE) == (uint8_t)TIM3_ForcedAction_Inactive))
/**
  * @brief Macro TIM3 One Pulse Mode
  */
#define IS_TIM3_OPM_MODE(MODE) \
  (((MODE) == TIM3_OPMode_Single) || \
   ((MODE) == TIM3_OPMode_Repetitive))

/**
  * @brief Macro TIM3 Channel
  */
#define IS_TIM3_CHANNEL(CHANNEL) \
  (((CHANNEL) == TIM3_Channel_1) || \
   ((CHANNEL) == TIM3_Channel_2) )

/**
  * @brief Macro TIM3 Counter Mode
  */
#define IS_TIM3_COUNTER_MODE(MODE) \
  (((MODE) == TIM3_CounterMode_Up)   || \
   ((MODE) == TIM3_CounterMode_Down) || \
   ((MODE) == TIM3_CounterMode_CenterAligned1) || \
   ((MODE) == TIM3_CounterMode_CenterAligned2) || \
   ((MODE) == TIM3_CounterMode_CenterAligned3))

/**
  * @brief Macro TIM3 Output Compare Polarity
  */
#define IS_TIM3_OC_POLARITY(POLARITY) \
  (((POLARITY) == TIM3_OCPolarity_High) || \
   ((POLARITY) == TIM3_OCPolarity_Low))

/**
  * @brief Macro TIM3 Output Compare states
  */
#define IS_TIM3_OUTPUT_STATE(STATE) \
  (((STATE) == TIM3_OutputState_Disable) || \
   ((STATE) == TIM3_OutputState_Enable))


/**
  * @brief Macro Break Input enable/disable
  */
#define IS_TIM3_BREAK_STATE(STATE) \
  (((STATE) == TIM3_BreakState_Enable) || \
   ((STATE) == TIM3_BreakState_Disable))

/**
  * @brief Macro Break Polarity
  */
#define IS_TIM3_BREAK_POLARITY(POLARITY) \
  (((POLARITY) == TIM3_BreakPolarity_Low) || \
   ((POLARITY) == TIM3_BreakPolarity_High))

/**
  * @brief Macro TIM3 AOE Bit Set/Reset
  */
#define IS_TIM3_AUTOMATIC_OUTPUT_STATE(STATE) \
  (((STATE) == TIM3_AutomaticOutput_Enable) || \
   ((STATE) == TIM3_AutomaticOutput_Disable))

/**
  * @brief Macro Lock levels
  */
#define IS_TIM3_LOCK_LEVEL(LEVEL) \
  (((LEVEL) == TIM3_LockLevel_Off) || \
   ((LEVEL) == TIM3_LockLevel_1)   || \
   ((LEVEL) == TIM3_LockLevel_2)   || \
   ((LEVEL) == TIM3_LockLevel_3))

/**
  * @brief Macro OSSI: Off-State Selection for Idle mode states
  */
#define IS_TIM3_OSSI_STATE(STATE) \
  (((STATE) == TIM3_OSSIState_Enable) || \
   ((STATE) == TIM3_OSSIState_Disable))

/**
  * @brief Macro TIM3 OC IDLE STATE
  */
#define IS_TIM3_OCIDLE_STATE(STATE) \
  (((STATE) == TIM3_OCIdleState_Set) || \
   ((STATE) == TIM3_OCIdleState_Reset))

/**
  * @brief Macro TIM3 IC POLARITY
  */

#define IS_TIM3_IC_POLARITY(POLARITY) \
  (((POLARITY) == TIM3_ICPolarity_Rising) || \
   ((POLARITY) == TIM3_ICPolarity_Falling))

/**
  * @brief Macro TIM3 IC SELECTION
  */
#define IS_TIM3_IC_SELECTION(SELECTION) \
  (((SELECTION) == TIM3_ICSelection_DirectTI)   || \
   ((SELECTION) == TIM3_ICSelection_IndirectTI) || \
   ((SELECTION) == TIM3_ICSelection_TRGI))


/**
  * @brief Macro TIM3 IC PRESCALER
  */
#define IS_TIM3_IC_PRESCALER(PRESCALER) \
  (((PRESCALER) == TIM3_ICPSC_DIV1) || \
   ((PRESCALER) == TIM3_ICPSC_DIV2) || \
   ((PRESCALER) == TIM3_ICPSC_DIV4) || \
   ((PRESCALER) == TIM3_ICPSC_DIV8))

/**
  * @brief Macro TIM3 Input Capture Filter Value
  */
#define IS_TIM3_IC_FILTER(ICFILTER) \
  ((ICFILTER) <= 0x0F)

/**
  * @brief Macro TIM3 Interrupts
  */
#define IS_TIM3_IT(IT) \
  ((IT) != 0x00)

#define IS_TIM3_GET_IT(IT) \
  (((IT) == TIM3_IT_Update)  || \
   ((IT) == TIM3_IT_CC1)     || \
   ((IT) == TIM3_IT_CC2)     || \
   ((IT) == TIM3_IT_Trigger) || \
   ((IT) == TIM3_IT_Break))

/**
  * @brief Macro TIM3 external trigger prescaler
  */
#define IS_TIM3_EXT_PRESCALER(PRESCALER) \
  (((PRESCALER) == TIM3_ExtTRGPSC_OFF)  || \
   ((PRESCALER) == TIM3_ExtTRGPSC_DIV2) || \
   ((PRESCALER) == TIM3_ExtTRGPSC_DIV4) || \
   ((PRESCALER) == TIM3_ExtTRGPSC_DIV8))

/**
  * @brief Macro TIM3  Trigger Selection
  */
#define IS_TIM3_TRIGGER_SELECTION(SELECTION) \
  (((SELECTION) == TIM3_TRGSelection_TI1F_ED) || \
   ((SELECTION) == TIM3_TRGSelection_TI1FP1)  || \
   ((SELECTION) == TIM3_TRGSelection_TI2FP2)  || \
   ((SELECTION) == TIM3_TRGSelection_TIM4) || \
   ((SELECTION) == TIM3_TRGSelection_TIM1) || \
   ((SELECTION) == TIM3_TRGSelection_TIM5) || \
   ((SELECTION) == TIM3_TRGSelection_TIM2) || \
   ((SELECTION) == TIM3_TRGSelection_ETRF))


#define IS_TIM3_TIX_TRIGGER_SELECTION(SELECTION) \
  (((SELECTION) == TIM3_TRGSelection_TI1F_ED) || \
   ((SELECTION) == TIM3_TRGSelection_TI1FP1)  || \
   ((SELECTION) == TIM3_TRGSelection_TI2FP2))

/**
  * @brief Macro TIM3  TIx external Clock Selection
  */
#define IS_TIM3_TIXCLK_SOURCE(SOURCE)  \
  (((SOURCE) == TIM3_TIxExternalCLK1Source_TI1ED) || \
   ((SOURCE) == TIM3_TIxExternalCLK1Source_TI2)   || \
   ((SOURCE) == TIM3_TIxExternalCLK1Source_TI1))

/**
  * @brief Macro TIM3  Trigger Polarity
  */
#define IS_TIM3_EXT_POLARITY(POLARITY) \
  (((POLARITY) == TIM3_ExtTRGPolarity_Inverted) || \
   ((POLARITY) == TIM3_ExtTRGPolarity_NonInverted))

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

/**
  * @brief Macro TIM3 Prescaler Reload
  */
#define IS_TIM3_PRESCALER_RELOAD(RELOAD) \
  (((RELOAD) == TIM3_PSCReloadMode_Update) || \
   ((RELOAD) == TIM3_PSCReloadMode_Immediate))

/**
  * @brief Macro TIM3 encoder mode
  */
#define IS_TIM3_ENCODER_MODE(MODE) \
  (((MODE) == TIM3_EncoderMode_TI1) || \
   ((MODE) == TIM3_EncoderMode_TI2) || \
   ((MODE) == TIM3_EncoderMode_TI12))

/**
  * @brief Macro TIM3 event source
  */
#define IS_TIM3_EVENT_SOURCE(SOURCE) \
  ((((SOURCE) & (uint8_t)0x18) == 0x00) && ((SOURCE) != 0x00))

/**
  * @brief Macro TIM3 update source
  */
#define IS_TIM3_UPDATE_SOURCE(SOURCE) \
  (((SOURCE) == TIM3_UpdateSource_Global) || \
   ((SOURCE) == TIM3_UpdateSource_Regular))

/**
  * @brief Macro TIM3 TRGO source
  */
#define IS_TIM3_TRGO_SOURCE(SOURCE) \
  (((SOURCE) == TIM3_TRGOSource_Reset)  || \
   ((SOURCE) == TIM3_TRGOSource_Enable) || \
   ((SOURCE) == TIM3_TRGOSource_Update) || \
   ((SOURCE) == TIM3_TRGOSource_OC1)    || \
   ((SOURCE) == TIM3_TRGOSource_OC1REF) || \
   ((SOURCE) == TIM3_TRGOSource_OC2REF))
/**
  * @brief Macro TIM3 Slave mode
  */
#define IS_TIM3_SLAVE_MODE(MODE) \
  (((MODE) == TIM3_SlaveMode_Reset)   || \
   ((MODE) == TIM3_SlaveMode_Gated)   || \
   ((MODE) == TIM3_SlaveMode_Trigger) || \
   ((MODE) == TIM3_SlaveMode_External1))
/**
  * @brief Macro TIM3 Flags
  */
#define IS_TIM3_GET_FLAG(FLAG) \
  (((FLAG) == TIM3_FLAG_Update)  || \
   ((FLAG) == TIM3_FLAG_CC1)     || \
   ((FLAG) == TIM3_FLAG_CC2)     || \
   ((FLAG) == TIM3_FLAG_Trigger) || \
   ((FLAG) == TIM3_FLAG_Break)   || \
   ((FLAG) == TIM3_FLAG_CC1OF)   || \
   ((FLAG) == TIM3_FLAG_CC2OF))

#define IS_TIM3_CLEAR_FLAG(FLAG) \
  ((((FLAG) & (uint16_t)0xE100) == 0x0000) && ((FLAG) != 0x0000))

/**
  * @brief Macro TIM3 DMA sources
  */

#define IS_TIM3_DMA_SOURCE(SOURCE) \
  (((SOURCE) == TIM3_DMASource_Update) || \
   ((SOURCE) == TIM3_DMASource_CC1) || \
   ((SOURCE) == TIM3_DMASource_CC2))

/**
  * @}
  */

/* Exported functions ------------------------------------------------------- */
/* TimeBase management ********************************************************/
void TIM3_DeInit(void);
void TIM3_TimeBaseInit(TIM3_Prescaler_TypeDef TIM3_Prescaler,
                       TIM3_CounterMode_TypeDef TIM3_CounterMode,
                       uint16_t TIM3_Period);
void TIM3_PrescalerConfig(TIM3_Prescaler_TypeDef Prescaler,
                          TIM3_PSCReloadMode_TypeDef TIM3_PSCReloadMode);
void TIM3_CounterModeConfig(TIM3_CounterMode_TypeDef TIM3_CounterMode);
void TIM3_SetCounter(uint16_t Counter);
void TIM3_SetAutoreload(uint16_t Autoreload);
uint16_t TIM3_GetCounter(void);
TIM3_Prescaler_TypeDef TIM3_GetPrescaler(void);
void TIM3_UpdateDisableConfig(FunctionalState NewState);
void TIM3_UpdateRequestConfig(TIM3_UpdateSource_TypeDef TIM3_UpdateSource);
void TIM3_ARRPreloadConfig(FunctionalState NewState);
void TIM3_SelectOnePulseMode(TIM3_OPMode_TypeDef TIM3_OPMode);
void TIM3_Cmd(FunctionalState NewState);

/* Output Compare management **************************************************/
void TIM3_OC1Init(TIM3_OCMode_TypeDef TIM3_OCMode,
                  TIM3_OutputState_TypeDef TIM3_OutputState,
                  uint16_t TIM3_Pulse,
                  TIM3_OCPolarity_TypeDef TIM3_OCPolarity,
                  TIM3_OCIdleState_TypeDef TIM3_OCIdleState);
void TIM3_OC2Init(TIM3_OCMode_TypeDef TIM3_OCMode,
                  TIM3_OutputState_TypeDef TIM3_OutputState,
                  uint16_t TIM3_Pulse,
                  TIM3_OCPolarity_TypeDef TIM3_OCPolarity,
                  TIM3_OCIdleState_TypeDef TIM3_OCIdleState);
void TIM3_BKRConfig(TIM3_OSSIState_TypeDef TIM3_OSSIState,
                    TIM3_LockLevel_TypeDef TIM3_LockLevel,
                    TIM3_BreakState_TypeDef TIM3_BreakState,
                    TIM3_BreakPolarity_TypeDef TIM3_BreakPolarity,
                    TIM3_AutomaticOutput_TypeDef TIM3_AutomaticOutput);
void TIM3_CtrlPWMOutputs(FunctionalState NewState);
void TIM3_SelectOCxM(TIM3_Channel_TypeDef TIM3_Channel,
                     TIM3_OCMode_TypeDef TIM3_OCMode);
void TIM3_SetCompare1(uint16_t Compare);
void TIM3_SetCompare2(uint16_t Compare);
void TIM3_ForcedOC1Config(TIM3_ForcedAction_TypeDef TIM3_ForcedAction);
void TIM3_ForcedOC2Config(TIM3_ForcedAction_TypeDef TIM3_ForcedAction);
void TIM3_OC1PreloadConfig(FunctionalState NewState);
void TIM3_OC2PreloadConfig(FunctionalState NewState);
void TIM3_OC1FastConfig(FunctionalState NewState);
void TIM3_OC2FastConfig(FunctionalState NewState);
void TIM3_OC1PolarityConfig(TIM3_OCPolarity_TypeDef TIM3_OCPolarity);
void TIM3_OC2PolarityConfig(TIM3_OCPolarity_TypeDef TIM3_OCPolarity);
void TIM3_CCxCmd(TIM3_Channel_TypeDef TIM3_Channel, FunctionalState NewState);

/* Input Capture management ***************************************************/
void TIM3_ICInit(TIM3_Channel_TypeDef TIM3_Channel,
                 TIM3_ICPolarity_TypeDef TIM3_ICPolarity,
                 TIM3_ICSelection_TypeDef TIM3_ICSelection,
                 TIM3_ICPSC_TypeDef TIM3_ICPrescaler,
                 uint8_t TIM3_ICFilter);
void TIM3_PWMIConfig(TIM3_Channel_TypeDef TIM3_Channel,
                     TIM3_ICPolarity_TypeDef TIM3_ICPolarity,
                     TIM3_ICSelection_TypeDef TIM3_ICSelection,
                     TIM3_ICPSC_TypeDef TIM3_ICPrescaler,
                     uint8_t TIM3_ICFilter);
uint16_t TIM3_GetCapture1(void);
uint16_t TIM3_GetCapture2(void);
void TIM3_SetIC1Prescaler(TIM3_ICPSC_TypeDef TIM3_IC1Prescaler);
void TIM3_SetIC2Prescaler(TIM3_ICPSC_TypeDef TIM3_IC2Prescaler);

/* Interrupts, DMA and flags management ***************************************/
void TIM3_ITConfig(TIM3_IT_TypeDef TIM3_IT, FunctionalState NewState);
void TIM3_GenerateEvent(TIM3_EventSource_TypeDef TIM3_EventSource);
FlagStatus TIM3_GetFlagStatus(TIM3_FLAG_TypeDef TIM3_FLAG);
void TIM3_ClearFlag(TIM3_FLAG_TypeDef TIM3_FLAG);
ITStatus TIM3_GetITStatus(TIM3_IT_TypeDef TIM3_IT);
void TIM3_ClearITPendingBit(TIM3_IT_TypeDef TIM3_IT);
void TIM3_DMACmd(TIM3_DMASource_TypeDef TIM3_DMASource, FunctionalState NewState);
void TIM3_SelectCCDMA(FunctionalState NewState);

/* Clocks management **********************************************************/
void TIM3_InternalClockConfig(void);
void TIM3_TIxExternalClockConfig(TIM3_TIxExternalCLK1Source_TypeDef TIM3_TIxExternalCLKSource,
                                 TIM3_ICPolarity_TypeDef TIM3_ICPolarity,
                                 uint8_t ICFilter);
void TIM3_ETRClockMode1Config(TIM3_ExtTRGPSC_TypeDef TIM3_ExtTRGPrescaler,
                              TIM3_ExtTRGPolarity_TypeDef TIM3_ExtTRGPolarity,
                              uint8_t ExtTRGFilter);
void TIM3_ETRClockMode2Config(TIM3_ExtTRGPSC_TypeDef TIM3_ExtTRGPrescaler,
                              TIM3_ExtTRGPolarity_TypeDef TIM3_ExtTRGPolarity,
                              uint8_t ExtTRGFilter);

/* Synchronization management *************************************************/
void TIM3_SelectInputTrigger(TIM3_TRGSelection_TypeDef TIM3_InputTriggerSource);
void TIM3_SelectOutputTrigger(TIM3_TRGOSource_TypeDef TIM3_TRGOSource);
void TIM3_SelectSlaveMode(TIM3_SlaveMode_TypeDef TIM3_SlaveMode);
void TIM3_SelectMasterSlaveMode(FunctionalState NewState);
void TIM3_ETRConfig(TIM3_ExtTRGPSC_TypeDef TIM3_ExtTRGPrescaler,
                    TIM3_ExtTRGPolarity_TypeDef TIM3_ExtTRGPolarity,
                    uint8_t ExtTRGFilter);

/* Specific interface management **********************************************/
void TIM3_EncoderInterfaceConfig(TIM3_EncoderMode_TypeDef TIM3_EncoderMode,
                                 TIM3_ICPolarity_TypeDef TIM3_IC1Polarity,
                                 TIM3_ICPolarity_TypeDef TIM3_IC2Polarity);
void TIM3_SelectHallSensor(FunctionalState NewState);

#endif /* __STM8L15x_TIM3_H */

/**
  * @}
  */
  
/**
  * @}
  */

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

⌨️ 快捷键说明

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