123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758 |
- /**
- ******************************************************************************
- * @brief TIMER header file of the firmware library
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __GD32F10X_TIMER_H
- #define __GD32F10X_TIMER_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "gd32f10x.h"
- /** @addtogroup GD32F10x_Firmware
- * @{
- */
- /** @addtogroup TIMER
- * @{
- */
- /** @defgroup TIMER_Exported_Types
- * @{
- */
- /**
- * @brief Timer base init structure
- */
- typedef struct {
- uint16_t TIMER_Prescaler; /*!< Clock prescaler value . */
- uint16_t TIMER_CounterMode; /*!< Counter mode ,
- a value of @ref TIMER_Counter_Mode. */
- uint32_t TIMER_Period; /*!< Value to be loaded into the active CARL at the next update event. */
- uint16_t TIMER_ClockDivision; /*!< Clock division ,
- a value of @ref TIMER_Clock_Division_CDIV. */
- uint8_t TIMER_RepetitionCounter; /*!< Repetition counter value , only valid in TIMER1/8. */
- } TIMER_BaseInitPara;
- /**
- * @brief Timer output compare init structure
- */
- typedef struct {
- uint16_t TIMER_OCMode; /*!< Out mode,
- a value of @ref TIMER_Output_Compare_and_PWM_modes */
- uint16_t TIMER_OutputState; /*!< Output Compare state ,
- a value of @ref TIMER_Output_Compare_State */
- uint16_t TIMER_OutputNState; /*!< Complementary Output Compare state ,
- a value of @ref TIMER_Output_Compare_N_State,
- valid only for TIMER1. */
- uint32_t TIMER_Pulse; /*!< Pulse value to be loaded into the CHCCx. */
- uint16_t TIMER_OCPolarity; /*!< Output polarity ,
- a value of @ref TIMER_Output_Compare_Polarity */
- uint16_t TIMER_OCNPolarity; /*!< Complementary output polarity ,
- a value of @ref TIMER_Output_Compare_N_Polarity */
- uint16_t TIMER_OCIdleState; /*!< TIM Output Compare pin state during Idle state ,
- a value of @ref TIMER_Output_Compare_Idle_State,
- valid only for TIMER1. */
- uint16_t TIMER_OCNIdleState; /*!< TIM Complementary Output Compare pin state during Idle state.
- a value of @ref TIMER_Output_Compare_N_Idle_State ,
- valid only for TIMER1. */
- } TIMER_OCInitPara;
- /**
- * @brief Timer input capture init structure
- */
- typedef struct {
- uint16_t TIMER_CH; /*!< TIMER channel ,
- a value of @ref TIMER_Channel */
- uint16_t TIMER_ICPolarity; /*!< Active edge of the input signal ,
- a value of @ref TIMER_Input_Capture_Polarity */
- uint16_t TIMER_ICSelection; /*!< Input Selection ,
- a value of @ref TIMER_Input_Capture_Selection */
- uint16_t TIMER_ICPrescaler; /*!< Input Capture Prescaler ,
- a value of @ref TIMER_Input_Capture_Prescaler */
- uint16_t TIMER_ICFilter; /*!< Input capture filter ,
- a number between 0x0 and 0xF */
- } TIMER_ICInitPara;
- /**
- * @brief Timer break and dead-time structure , valid only for TIMER1.
- */
- typedef struct {
- uint16_t TIMER_ROSState; /*!< Off-State selection used in Run mode ,
- a value of @ref TIMER_ROS_Off_State_Selection_for_Run_mode_State */
- uint16_t TIMER_IOSState; /*!< Off-State used in Idle state ,
- a value of @ref TIMER_IOS_Off_State_Selection_for_Idle_mode_State */
- uint16_t TIMER_LOCKLevel; /*!< LOCK level ,
- a value of @ref TIMER_Lock_level */
- uint16_t TIMER_DeadTime; /*!< delay time between the switching off and on of the outputs.
- a number between 0x00 and 0xFF */
- uint16_t TIMER_Break; /*!< Break input is enabled or disable,
- a value of @ref TIMER_Break_Input_State */
- uint16_t TIMER_BreakPolarity; /*!< Break Input pin polarity ,
- a value of @ref TIMER_Break_Input_Polarity */
- uint16_t TIMER_OutAuto; /*!< Automatic Output is enabled or disable.
- a value of @ref TIMER_OAE_Bit_State */
- } TIMER_BKDTInitPara;
- /**
- * @}
- */
- /** @defgroup TIMER_Exported_Constants
- * @{
- */
- /** @defgroup TIMER_Output_Compare_and_PWM_modes
- * @{
- */
- #define TIMER_OC_MODE_TIMING ((uint16_t)0x0000)
- #define TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010)
- #define TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020)
- #define TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030)
- #define TIMER_OC_MODE_PWM1 ((uint16_t)0x0060)
- #define TIMER_OC_MODE_PWM2 ((uint16_t)0x0070)
- /**
- * @}
- */
- /** @defgroup TIMER_Single_Pulse_Mode
- * @{
- */
- #define TIMER_SP_MODE_SINGLE ((uint16_t)0x0008)
- #define TIMER_SP_MODE_REPETITIVE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Channel
- * @{
- */
- #define TIMER_CH_1 ((uint16_t)0x0000)
- #define TIMER_CH_2 ((uint16_t)0x0004)
- #define TIMER_CH_3 ((uint16_t)0x0008)
- #define TIMER_CH_4 ((uint16_t)0x000C)
- /**
- * @}
- */
- /** @defgroup TIMER_Clock_Division_CDIV
- * @{
- */
- #define TIMER_CDIV_DIV1 ((uint16_t)0x0000)
- #define TIMER_CDIV_DIV2 ((uint16_t)0x0100)
- #define TIMER_CDIV_DIV4 ((uint16_t)0x0200)
- /**
- * @}
- */
- /** @defgroup TIMER_Counter_Mode
- * @{
- */
- #define TIMER_COUNTER_UP ((uint16_t)0x0000)
- #define TIMER_COUNTER_DOWN ((uint16_t)0x0010)
- #define TIMER_COUNTER_CENTER_ALIGNED1 ((uint16_t)0x0020)
- #define TIMER_COUNTER_CENTER_ALIGNED2 ((uint16_t)0x0040)
- #define TIMER_COUNTER_CENTER_ALIGNED3 ((uint16_t)0x0060)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_Polarity
- * @{
- */
- #define TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000)
- #define TIMER_OC_POLARITY_LOW ((uint16_t)0x0002)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_N_Polarity
- * @{
- */
- #define TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000)
- #define TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_State
- * @{
- */
- #define TIMER_OUTPUT_STATE_DISABLE ((uint16_t)0x0000)
- #define TIMER_OUTPUT_STATE_ENABLE ((uint16_t)0x0001)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_N_State
- * @{
- */
- #define TIMER_OUTPUTN_STATE_DISABLE ((uint16_t)0x0000)
- #define TIMER_OUTPUTN_STATE_ENABLE ((uint16_t)0x0004)
- /**
- * @}
- */
- /** @defgroup TIMER_Capture_Compare_State
- * @{
- */
- #define TIMER_CCX_ENABLE ((uint16_t)0x0001)
- #define TIMER_CCX_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Capture_Compare_N_State
- * @{
- */
- #define TIMER_CCXN_ENABLE ((uint16_t)0x0004)
- #define TIMER_CCXN_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Break_Input_State
- * @{
- */
- #define TIMER_BREAK_ENABLE ((uint16_t)0x1000)
- #define TIMER_BREAK_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Break_Input_Polarity
- * @{
- */
- #define TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000)
- #define TIMER_BREAK_POLARITY_HIGH ((uint16_t)0x2000)
- /**
- * @}
- */
- /** @defgroup TIMER_OAE_Bit_State
- * @{
- */
- #define TIMER_OUTAUTO_ENABLE ((uint16_t)0x4000)
- #define TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Lock_level
- * @{
- */
- #define TIMER_LOCK_LEVEL_OFF ((uint16_t)0x0000)
- #define TIMER_LOCK_LEVEL_1 ((uint16_t)0x0100)
- #define TIMER_LOCK_LEVEL_2 ((uint16_t)0x0200)
- #define TIMER_LOCK_LEVEL_3 ((uint16_t)0x0300)
- /**
- * @}
- */
- /** @defgroup TIMER_IOS_Off_State_Selection_for_Idle_mode_State
- * @{
- */
- #define TIMER_IOS_STATE_ENABLE ((uint16_t)0x0400)
- #define TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_ROS_Off_State_Selection_for_Run_mode_State
- * @{
- */
- #define TIMER_ROS_STATE_ENABLE ((uint16_t)0x0800)
- #define TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_Idle_State
- * @{
- */
- #define TIMER_OC_IDLE_STATE_SET ((uint16_t)0x0100)
- #define TIMER_OC_IDLE_STATE_RESET ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_N_Idle_State
- * @{
- */
- #define TIMER_OCN_IDLE_STATE_SET ((uint16_t)0x0200)
- #define TIMER_OCN_IDLE_STATE_RESET ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Input_Capture_Polarity
- * @{
- */
- #define TIMER_IC_POLARITY_RISING ((uint16_t)0x0000)
- #define TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002)
- /**
- * @}
- */
- /** @defgroup TIMER_Input_Capture_Selection
- * @{
- */
- #define TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001)
- #define TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002)
- #define TIMER_IC_SELECTION_TRC ((uint16_t)0x0003)
- /**
- * @}
- */
- /** @defgroup TIMER_Input_Capture_Prescaler
- * @{
- */
- #define TIMER_IC_PSC_DIV1 ((uint16_t)0x0000)
- #define TIMER_IC_PSC_DIV2 ((uint16_t)0x0004)
- #define TIMER_IC_PSC_DIV4 ((uint16_t)0x0008)
- #define TIMER_IC_PSC_DIV8 ((uint16_t)0x000C)
- /**
- * @}
- */
- /** @defgroup TIMER_interrupt_sources
- * @{
- */
- #define TIMER_INT_UPDATE ((uint16_t)0x0001)
- #define TIMER_INT_CH1 ((uint16_t)0x0002)
- #define TIMER_INT_CH2 ((uint16_t)0x0004)
- #define TIMER_INT_CH3 ((uint16_t)0x0008)
- #define TIMER_INT_CH4 ((uint16_t)0x0010)
- #define TIMER_INT_CCUG ((uint16_t)0x0020)
- #define TIMER_INT_TRIGGER ((uint16_t)0x0040)
- #define TIMER_INT_BREAK ((uint16_t)0x0080)
- /**
- * @}
- */
- /** @defgroup TIMER_DMA_Base_address
- * @{
- */
- #define TIMER_DMA_BASE_ADDR_CTLR1 ((uint16_t)0x0000)
- #define TIMER_DMA_BASE_ADDR_CTLR2 ((uint16_t)0x0001)
- #define TIMER_DMA_BASE_ADDR_SMC ((uint16_t)0x0002)
- #define TIMER_DMA_BASE_ADDR_DIE ((uint16_t)0x0003)
- #define TIMER_DMA_BASE_ADDR_STR ((uint16_t)0x0004)
- #define TIMER_DMA_BASE_ADDR_EVG ((uint16_t)0x0005)
- #define TIMER_DMA_BASE_ADDR_CHCTLR1 ((uint16_t)0x0006)
- #define TIMER_DMA_BASE_ADDR_CHCTLR2 ((uint16_t)0x0007)
- #define TIMER_DMA_BASE_ADDR_CHE ((uint16_t)0x0008)
- #define TIMER_DMA_BASE_ADDR_CNT ((uint16_t)0x0009)
- #define TIMER_DMA_BASE_ADDR_PSC ((uint16_t)0x000A)
- #define TIMER_DMA_BASE_ADDR_CARL ((uint16_t)0x000B)
- #define TIMER_DMA_BASE_ADDR_CREP ((uint16_t)0x000C)
- #define TIMER_DMA_BASE_ADDR_CHCC1 ((uint16_t)0x000D)
- #define TIMER_DMA_BASE_ADDR_CHCC2 ((uint16_t)0x000E)
- #define TIMER_DMA_BASE_ADDR_CHCC3 ((uint16_t)0x000F)
- #define TIMER_DMA_BASE_ADDR_CHCC4 ((uint16_t)0x0010)
- #define TIMER_DMA_BASE_ADDR_BKDT ((uint16_t)0x0011)
- #define TIMER_DMA_BASE_ADDR_DCTLR ((uint16_t)0x0012)
- /**
- * @}
- */
- /** @defgroup TIMER_DMA_Burst_Transfer_Length
- * @{
- */
- #define TIMER_DMA_BURST_1TRANSFER ((uint16_t)0x0000)
- #define TIMER_DMA_BURST_2TRANSFERS ((uint16_t)0x0100)
- #define TIMER_DMA_BURST_3TRANSFERS ((uint16_t)0x0200)
- #define TIMER_DMA_BURST_4TRANSFERS ((uint16_t)0x0300)
- #define TIMER_DMA_BURST_5TRANSFERS ((uint16_t)0x0400)
- #define TIMER_DMA_BURST_6TRANSFERS ((uint16_t)0x0500)
- #define TIMER_DMA_BURST_7TRANSFERS ((uint16_t)0x0600)
- #define TIMER_DMA_BURST_8TRANSFERS ((uint16_t)0x0700)
- #define TIMER_DMA_BURST_9TRANSFERS ((uint16_t)0x0800)
- #define TIMER_DMA_BURST_10TRANSFERS ((uint16_t)0x0900)
- #define TIMER_DMA_BURST_11TRANSFERS ((uint16_t)0x0A00)
- #define TIMER_DMA_BURST_12TRANSFERS ((uint16_t)0x0B00)
- #define TIMER_DMA_BURST_13TRANSFERS ((uint16_t)0x0C00)
- #define TIMER_DMA_BURST_14TRANSFERS ((uint16_t)0x0D00)
- #define TIMER_DMA_BURST_15TRANSFERS ((uint16_t)0x0E00)
- #define TIMER_DMA_BURST_16TRANSFERS ((uint16_t)0x0F00)
- #define TIMER_DMA_BURST_17TRANSFERS ((uint16_t)0x1000)
- #define TIMER_DMA_BURST_18TRANSFERS ((uint16_t)0x1100)
- /**
- * @}
- */
- /** @defgroup TIMER_DMA_sources
- * @{
- */
- #define TIMER_DMA_UPDATE ((uint16_t)0x0100)
- #define TIMER_DMA_CH1 ((uint16_t)0x0200)
- #define TIMER_DMA_CH2 ((uint16_t)0x0400)
- #define TIMER_DMA_CH3 ((uint16_t)0x0800)
- #define TIMER_DMA_CH4 ((uint16_t)0x1000)
- #define TIMER_DMA_COM ((uint16_t)0x2000)
- #define TIMER_DMA_TRIGGER ((uint16_t)0x4000)
- /**
- * @}
- */
- /** @defgroup TIMER_External_Trigger_Prescaler
- * @{
- */
- #define TIMER_EXT_TRI_PSC_OFF ((uint16_t)0x0000)
- #define TIMER_EXT_TRI_PSC_DIV2 ((uint16_t)0x1000)
- #define TIMER_EXT_TRI_PSC_DIV4 ((uint16_t)0x2000)
- #define TIMER_EXT_TRI_PSC_DIV8 ((uint16_t)0x3000)
- /**
- * @}
- */
- /** @defgroup TIMER_Internal_Trigger_Selection
- * @{
- */
- #define TIMER_TS_ITR0 ((uint16_t)0x0000)
- #define TIMER_TS_ITR1 ((uint16_t)0x0010)
- #define TIMER_TS_ITR2 ((uint16_t)0x0020)
- #define TIMER_TS_ITR3 ((uint16_t)0x0030)
- #define TIMER_TS_TI1F_ED ((uint16_t)0x0040)
- #define TIMER_TS_TI1FP1 ((uint16_t)0x0050)
- #define TIMER_TS_TI2FP2 ((uint16_t)0x0060)
- #define TIMER_TS_ETRF ((uint16_t)0x0070)
- /**
- * @}
- */
- /** @defgroup TIMER_TIx_External_Clock_Source
- * @{
- */
- #define TIMER_TIX_EXCLK1_SRC_TI1 ((uint16_t)0x0050)
- #define TIMER_TIX_EXCLK1_SRC_TI2 ((uint16_t)0x0060)
- #define TIMER_TIX_EXCLK1_SRC_TI1ED ((uint16_t)0x0040)
- /**
- * @}
- */
- /** @defgroup TIMER_External_Trigger_Polarity
- * @{
- */
- #define TIMER_EXT_TRI_POLARITY_INVERTED ((uint16_t)0x8000)
- #define TIMER_EXT_TRI_POLARITY_NONINVERTED ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Prescaler_Reload_Mode
- * @{
- */
- #define TIMER_PSC_RELOAD_UPDATE ((uint16_t)0x0000)
- #define TIMER_PSC_RELOAD_NOW ((uint16_t)0x0001)
- /**
- * @}
- */
- /** @defgroup TIMER_Forced_Output
- * @{
- */
- #define TIMER_FORCED_HIGH ((uint16_t)0x0050)
- #define TIMER_FORCED_LOW ((uint16_t)0x0040)
- /**
- * @}
- */
- /** @defgroup TIMER_Encoder_Mode
- * @{
- */
- #define TIMER_ENCODER_MODE_TI1 ((uint16_t)0x0001)
- #define TIMER_ENCODER_MODE_TI2 ((uint16_t)0x0002)
- #define TIMER_ENCODER_MODE_TI12 ((uint16_t)0x0003)
- /**
- * @}
- */
- /** @defgroup TIMER_Event_Source
- * @{
- */
- #define TIMER_EVENT_SRC_UPDATE ((uint16_t)0x0001)
- #define TIMER_EVENT_SRC_CH1 ((uint16_t)0x0002)
- #define TIMER_EVENT_SRC_CH2 ((uint16_t)0x0004)
- #define TIMER_EVENT_SRC_CH3 ((uint16_t)0x0008)
- #define TIMER_EVENT_SRC_CH4 ((uint16_t)0x0010)
- #define TIMER_EVENT_SRC_COM ((uint16_t)0x0020)
- #define TIMER_EVENT_SRC_TRIGGER ((uint16_t)0x0040)
- #define TIMER_EVENT_SRC_BREAK ((uint16_t)0x0080)
- /**
- * @}
- */
- /** @defgroup TIMER_Update_Source
- * @{
- */
- #define TIMER_UPDATE_SRC_GLOBAL ((uint16_t)0x0000)
- #define TIMER_UPDATE_SRC_REGULAR ((uint16_t)0x0001)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_Preload_State
- * @{
- */
- #define TIMER_OC_PRELOAD_ENABLE ((uint16_t)0x0008)
- #define TIMER_OC_PRELOAD_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_Fast_State
- * @{
- */
- #define TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)
- #define TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Output_Compare_Clear_State
- * @{
- */
- #define TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080)
- #define TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Trigger_Output_Source
- * @{
- */
- #define TIMER_TRI_OUT_SRC_RESET ((uint16_t)0x0000)
- #define TIMER_TRI_OUT_SRC_ENABLE ((uint16_t)0x0010)
- #define TIMER_TRI_OUT_SRC_UPDATE ((uint16_t)0x0020)
- #define TIMER_TRI_OUT_SRC_OC1 ((uint16_t)0x0030)
- #define TIMER_TRI_OUT_SRC_OC1REF ((uint16_t)0x0040)
- #define TIMER_TRI_OUT_SRC_OC2REF ((uint16_t)0x0050)
- #define TIMER_TRI_OUT_SRC_OC3REF ((uint16_t)0x0060)
- #define TIMER_TRI_OUT_SRC_OC4REF ((uint16_t)0x0070)
- /**
- * @}
- */
- /** @defgroup TIMER_Slave_Mode
- * @{
- */
- #define TIMER_SLAVE_MODE_RESET ((uint16_t)0x0004)
- #define TIMER_SLAVE_MODE_GATED ((uint16_t)0x0005)
- #define TIMER_SLAVE_MODE_TRIGGER ((uint16_t)0x0006)
- #define TIMER_SLAVE_MODE_EXTERNAL1 ((uint16_t)0x0007)
- /**
- * @}
- */
- /** @defgroup TIMER_Master_Slave_Mode
- * @{
- */
- #define TIMER_MASTER_SLAVE_MODE_ENABLE ((uint16_t)0x0080)
- #define TIMER_MASTER_SLAVE_MODE_DISABLE ((uint16_t)0x0000)
- /**
- * @}
- */
- /** @defgroup TIMER_Flags
- * @{
- */
- #define TIMER_FLAG_UPDATE ((uint16_t)0x0001)
- #define TIMER_FLAG_CH1 ((uint16_t)0x0002)
- #define TIMER_FLAG_CH2 ((uint16_t)0x0004)
- #define TIMER_FLAG_CH3 ((uint16_t)0x0008)
- #define TIMER_FLAG_CH4 ((uint16_t)0x0010)
- #define TIMER_FLAG_COM ((uint16_t)0x0020)
- #define TIMER_FLAG_TRIGGER ((uint16_t)0x0040)
- #define TIMER_FLAG_BREAK ((uint16_t)0x0080)
- #define TIMER_FLAG_CH1OF ((uint16_t)0x0200)
- #define TIMER_FLAG_CH2OF ((uint16_t)0x0400)
- #define TIMER_FLAG_CH3OF ((uint16_t)0x0800)
- #define TIMER_FLAG_CH4OF ((uint16_t)0x1000)
- /**
- * @}
- */
- /**
- * @}
- */
- /** @defgroup TIMER_Exported_Functions
- * @{
- */
- /* TimeBase management ********************************************************/
- void TIMER_DeInit(TIMER_TypeDef *TIMERx);
- void TIMER_BaseInit(TIMER_TypeDef *TIMERx, TIMER_BaseInitPara *TIMER_Init);
- void TIMER_BaseStructInit(TIMER_BaseInitPara *TIMER_Init);
- void TIMER_PrescalerConfig(TIMER_TypeDef *TIMERx, uint16_t Prescaler, uint16_t TIMER_PSCReloadMode);
- void TIMER_CounterMode(TIMER_TypeDef *TIMERx, uint16_t TIMER_CounterMode);
- void TIMER_SetCounter(TIMER_TypeDef *TIMERx, uint32_t Counter);
- void TIMER_SetAutoreload(TIMER_TypeDef *TIMERx, uint32_t AutoReloadValue);
- uint32_t TIMER_GetCounter(TIMER_TypeDef *TIMERx);
- uint16_t TIMER_GetPrescaler(TIMER_TypeDef *TIMERx);
- void TIMER_UpdateDisableConfig(TIMER_TypeDef *TIMERx, TypeState NewValue);
- void TIMER_UpdateRequestConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_UpdateSrc);
- void TIMER_CARLPreloadConfig(TIMER_TypeDef *TIMERx, TypeState NewValue);
- void TIMER_SinglePulseMode(TIMER_TypeDef *TIMERx, uint16_t TIMER_SPMode);
- void TIMER_SetClockDivision(TIMER_TypeDef *TIMERx, uint16_t TIMER_CDIV);
- void TIMER_Enable(TIMER_TypeDef *TIMERx, TypeState NewValue);
- /* Advanced timer features*******************/
- void TIMER_BKDTConfig(TIMER_TypeDef *TIMERx, TIMER_BKDTInitPara *TIMER_BKDTInit);
- void TIMER_BKDTStructInit(TIMER_BKDTInitPara *TIMER_BKDTInit);
- void TIMER_CtrlPWMOutputs(TIMER_TypeDef *TIMERx, TypeState NewValue);
- /* Output Compare management **************************************************/
- void TIMER_OC1_Init(TIMER_TypeDef *TIMERx, TIMER_OCInitPara *TIMER_OCInit);
- void TIMER_OC2_Init(TIMER_TypeDef *TIMERx, TIMER_OCInitPara *TIMER_OCInit);
- void TIMER_OC3_Init(TIMER_TypeDef *TIMERx, TIMER_OCInitPara *TIMER_OCInit);
- void TIMER_OC4_Init(TIMER_TypeDef *TIMERx, TIMER_OCInitPara *TIMER_OCInit);
- void TIMER_OCStructInit(TIMER_OCInitPara *TIMER_OCInit);
- void TIMER_OCxModeConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_Ch, uint16_t TIMER_OCMode);
- void TIMER_Compare1Config(TIMER_TypeDef *TIMERx, uint32_t CompValue1);
- void TIMER_Compare2Config(TIMER_TypeDef *TIMERx, uint32_t CompValue2);
- void TIMER_Compare3Config(TIMER_TypeDef *TIMERx, uint32_t CompValue3);
- void TIMER_Compare4Config(TIMER_TypeDef *TIMERx, uint32_t CompValue4);
- void TIMER_Forced_OC1(TIMER_TypeDef *TIMERx, uint16_t TIMER_Forced);
- void TIMER_Forced_OC2(TIMER_TypeDef *TIMERx, uint16_t TIMER_Forced);
- void TIMER_Forced_OC3(TIMER_TypeDef *TIMERx, uint16_t TIMER_Forced);
- void TIMER_Forced_OC4(TIMER_TypeDef *TIMERx, uint16_t TIMER_Forced);
- void TIMER_CC_PreloadControl(TIMER_TypeDef *TIMERx, TypeState NewValue);
- void TIMER_OC1_Preload(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPreload);
- void TIMER_OC2_Preload(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPreload);
- void TIMER_OC3_Preload(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPreload);
- void TIMER_OC4_Preload(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPreload);
- void TIMER_OC1_FastConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCFast);
- void TIMER_OC2_FastConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCFast);
- void TIMER_OC3_FastConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCFast);
- void TIMER_OC4_FastConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCFast);
- void TIMER_OC1_RefClear(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCClear);
- void TIMER_OC2_RefClear(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCClear);
- void TIMER_OC3_RefClear(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCClear);
- void TIMER_OC4_RefClear(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCClear);
- void TIMER_OC1_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPolarity);
- void TIMER_OC1N_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCNPolarity);
- void TIMER_OC2_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPolarity);
- void TIMER_OC2N_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCNPolarity);
- void TIMER_OC3_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPolarity);
- void TIMER_OC3N_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCNPolarity);
- void TIMER_OC4_Polarity(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCPolarity);
- void TIMER_SelectOCRefClear(TIMER_TypeDef *TIMERx, uint16_t TIMER_OCRef_Clear);
- void TIMER_CCxCmd(TIMER_TypeDef *TIMERx, uint16_t TIMER_Ch, uint16_t TIMER_CCx);
- void TIMER_CCxNCmd(TIMER_TypeDef *TIMERx, uint16_t TIMER_Ch, uint16_t TIMER_CCxN);
- void TIMER_SelectCOM(TIMER_TypeDef *TIMERx, TypeState NewValue);
- /* Input Capture management ***************************************************/
- void TIMER_ICInit(TIMER_TypeDef *TIMERx, TIMER_ICInitPara *TIMER_ICInit);
- void TIMER_ICStructInit(TIMER_ICInitPara *TIMER_ICInit);
- void TIMER_PWMCaptureConfig(TIMER_TypeDef *TIMERx, TIMER_ICInitPara *TIMER_ICInit);
- uint32_t TIMER_GetCapture1(TIMER_TypeDef *TIMERx);
- uint32_t TIMER_GetCapture2(TIMER_TypeDef *TIMERx);
- uint32_t TIMER_GetCapture3(TIMER_TypeDef *TIMERx);
- uint32_t TIMER_GetCapture4(TIMER_TypeDef *TIMERx);
- void TIMER_Set_IC1_Prescaler(TIMER_TypeDef *TIMERx, uint16_t TIMER_ICPSC);
- void TIMER_Set_IC2_Prescaler(TIMER_TypeDef *TIMERx, uint16_t TIMER_ICPSC);
- void TIMER_Set_IC3_Prescaler(TIMER_TypeDef *TIMERx, uint16_t TIMER_ICPSC);
- void TIMER_Set_IC4_Prescaler(TIMER_TypeDef *TIMERx, uint16_t TIMER_ICPSC);
- /* Interrupts, DMA and flags management ***************************************/
- void TIMER_INTConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_INT, TypeState NewValue);
- void TIMER_GenerateEvent(TIMER_TypeDef *TIMERx, uint16_t TIMER_EventSrc);
- TypeState TIMER_GetBitState(TIMER_TypeDef *TIMERx, uint16_t TIMER_FLAG);
- void TIMER_ClearBitState(TIMER_TypeDef *TIMERx, uint16_t TIMER_FLAG);
- TypeState TIMER_GetIntBitState(TIMER_TypeDef *TIMERx, uint16_t TIMER_INT);
- void TIMER_ClearIntBitState(TIMER_TypeDef *TIMERx, uint16_t TIMER_INT);
- void TIMER_DMAConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_DMABase, uint16_t TIMER_DMABurstLength);
- void TIMER_DMACmd(TIMER_TypeDef *TIMERx, uint16_t TIMER_DMASrc, TypeState NewValue);
- void TIMER_CC_DMA(TIMER_TypeDef *TIMERx, TypeState NewValue);
- /* Clocks management **********************************************************/
- void TIMER_InternalClockConfig(TIMER_TypeDef *TIMERx);
- void TIMER_ITRxExtClock(TIMER_TypeDef *TIMERx, uint16_t TIMER_InputTriSrc);
- void TIMER_TIxExtCLkConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_TIxExCLKSrc,
- uint16_t TIMER_ICPolarity, uint16_t ICFilter);
- void TIMER_ETRClockMode1Config(TIMER_TypeDef *TIMERx, uint16_t TIMER_ExTriPrescaler, uint16_t TIMER_ExTriPolarity,
- uint16_t ExtTriFilter);
- void TIMER_ETRClockMode2Config(TIMER_TypeDef *TIMERx, uint16_t TIMER_ExTriPrescaler,
- uint16_t TIMER_ExTriPolarity, uint16_t ExtTriFilter);
- /* Synchronization management *************************************************/
- void TIMER_SelectInputTrigger(TIMER_TypeDef *TIMERx, uint16_t TIMER_InputTriSrc);
- void TIMER_SelectOutputTrigger(TIMER_TypeDef *TIMERx, uint16_t TIMER_TriOutSrc);
- void TIMER_SelectSlaveMode(TIMER_TypeDef *TIMERx, uint16_t TIMER_SlaveMode);
- void TIMER_SelectMasterSlaveMode(TIMER_TypeDef *TIMERx, uint16_t TIMER_MasterSlaveMode);
- void TIMER_ETRConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_ExTriPrescaler, uint16_t TIMER_ExTriPolarity,
- uint16_t ExtTriFilter);
- /* Specific interface management **********************************************/
- void TIMER_EncoderInterfaceConfig(TIMER_TypeDef *TIMERx, uint16_t TIMER_EncoderMode,
- uint16_t TIMER_IC1Polarity, uint16_t TIMER_IC2Polarity);
- void TIMER_SelectHallSensor(TIMER_TypeDef *TIMERx, TypeState NewValue);
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /*__GD32F10X_TIMER_H */
- /**
- * @}
- */
- /**
- * @}
- */
|