123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752 |
- #ifndef GD32F30X_TIMER_H
- #define GD32F30X_TIMER_H
- #include "gd32f30x.h"
- #define TIMER0 (TIMER_BASE + 0x00012C00U)
- #define TIMER1 (TIMER_BASE + 0x00000000U)
- #define TIMER2 (TIMER_BASE + 0x00000400U)
- #define TIMER3 (TIMER_BASE + 0x00000800U)
- #define TIMER4 (TIMER_BASE + 0x00000C00U)
- #define TIMER5 (TIMER_BASE + 0x00001000U)
- #define TIMER6 (TIMER_BASE + 0x00001400U)
- #define TIMER7 (TIMER_BASE + 0x00013400U)
- #define TIMER8 (TIMER_BASE + 0x00014C00U)
- #define TIMER9 (TIMER_BASE + 0x00015000U)
- #define TIMER10 (TIMER_BASE + 0x00015400U)
- #define TIMER11 (TIMER_BASE + 0x00001800U)
- #define TIMER12 (TIMER_BASE + 0x00001C00U)
- #define TIMER13 (TIMER_BASE + 0x00002000U)
- #define TIMER_CTL0(timerx) REG32((timerx) + 0x00U)
- #define TIMER_CTL1(timerx) REG32((timerx) + 0x04U)
- #define TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)
- #define TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)
- #define TIMER_INTF(timerx) REG32((timerx) + 0x10U)
- #define TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)
- #define TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)
- #define TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)
- #define TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)
- #define TIMER_CNT(timerx) REG32((timerx) + 0x24U)
- #define TIMER_PSC(timerx) REG32((timerx) + 0x28U)
- #define TIMER_CAR(timerx) REG32((timerx) + 0x2CU)
- #define TIMER_CREP(timerx) REG32((timerx) + 0x30U)
- #define TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)
- #define TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)
- #define TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)
- #define TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)
- #define TIMER_CCHP(timerx) REG32((timerx) + 0x44U)
- #define TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)
- #define TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)
- #define TIMER_IRMP(timerx) REG32((timerx) + 0x50U)
- #define TIMER_CFG(timerx) REG32((timerx) + 0xFCU)
- #define TIMER_CTL0_CEN BIT(0)
- #define TIMER_CTL0_UPDIS BIT(1)
- #define TIMER_CTL0_UPS BIT(2)
- #define TIMER_CTL0_SPM BIT(3)
- #define TIMER_CTL0_DIR BIT(4)
- #define TIMER_CTL0_CAM BITS(5,6)
- #define TIMER_CTL0_ARSE BIT(7)
- #define TIMER_CTL0_CKDIV BITS(8,9)
- #define TIMER_CTL1_CCSE BIT(0)
- #define TIMER_CTL1_CCUC BIT(2)
- #define TIMER_CTL1_DMAS BIT(3)
- #define TIMER_CTL1_MMC BITS(4,6)
- #define TIMER_CTL1_TI0S BIT(7)
- #define TIMER_CTL1_ISO0 BIT(8)
- #define TIMER_CTL1_ISO0N BIT(9)
- #define TIMER_CTL1_ISO1 BIT(10)
- #define TIMER_CTL1_ISO1N BIT(11)
- #define TIMER_CTL1_ISO2 BIT(12)
- #define TIMER_CTL1_ISO2N BIT(13)
- #define TIMER_CTL1_ISO3 BIT(14)
- #define TIMER_SMCFG_SMC BITS(0,2)
- #define TIMER_SMCFG_TRGS BITS(4,6)
- #define TIMER_SMCFG_MSM BIT(7)
- #define TIMER_SMCFG_ETFC BITS(8,11)
- #define TIMER_SMCFG_ETPSC BITS(12,13)
- #define TIMER_SMCFG_SMC1 BIT(14)
- #define TIMER_SMCFG_ETP BIT(15)
-
- #define TIMER_DMAINTEN_UPIE BIT(0)
- #define TIMER_DMAINTEN_CH0IE BIT(1)
- #define TIMER_DMAINTEN_CH1IE BIT(2)
- #define TIMER_DMAINTEN_CH2IE BIT(3)
- #define TIMER_DMAINTEN_CH3IE BIT(4)
- #define TIMER_DMAINTEN_CMTIE BIT(5)
- #define TIMER_DMAINTEN_TRGIE BIT(6)
- #define TIMER_DMAINTEN_BRKIE BIT(7)
- #define TIMER_DMAINTEN_UPDEN BIT(8)
- #define TIMER_DMAINTEN_CH0DEN BIT(9)
- #define TIMER_DMAINTEN_CH1DEN BIT(10)
- #define TIMER_DMAINTEN_CH2DEN BIT(11)
- #define TIMER_DMAINTEN_CH3DEN BIT(12)
- #define TIMER_DMAINTEN_CMTDEN BIT(13)
- #define TIMER_DMAINTEN_TRGDEN BIT(14)
- #define TIMER_INTF_UPIF BIT(0)
- #define TIMER_INTF_CH0IF BIT(1)
- #define TIMER_INTF_CH1IF BIT(2)
- #define TIMER_INTF_CH2IF BIT(3)
- #define TIMER_INTF_CH3IF BIT(4)
- #define TIMER_INTF_CMTIF BIT(5)
- #define TIMER_INTF_TRGIF BIT(6)
- #define TIMER_INTF_BRKIF BIT(7)
- #define TIMER_INTF_CH0OF BIT(9)
- #define TIMER_INTF_CH1OF BIT(10)
- #define TIMER_INTF_CH2OF BIT(11)
- #define TIMER_INTF_CH3OF BIT(12)
- #define TIMER_SWEVG_UPG BIT(0)
- #define TIMER_SWEVG_CH0G BIT(1)
- #define TIMER_SWEVG_CH1G BIT(2)
- #define TIMER_SWEVG_CH2G BIT(3)
- #define TIMER_SWEVG_CH3G BIT(4)
- #define TIMER_SWEVG_CMTG BIT(5)
- #define TIMER_SWEVG_TRGG BIT(6)
- #define TIMER_SWEVG_BRKG BIT(7)
- #define TIMER_CHCTL0_CH0MS BITS(0,1)
- #define TIMER_CHCTL0_CH0COMFEN BIT(2)
- #define TIMER_CHCTL0_CH0COMSEN BIT(3)
- #define TIMER_CHCTL0_CH0COMCTL BITS(4,6)
- #define TIMER_CHCTL0_CH0COMCEN BIT(7)
- #define TIMER_CHCTL0_CH1MS BITS(8,9)
- #define TIMER_CHCTL0_CH1COMFEN BIT(10)
- #define TIMER_CHCTL0_CH1COMSEN BIT(11)
- #define TIMER_CHCTL0_CH1COMCTL BITS(12,14)
- #define TIMER_CHCTL0_CH1COMCEN BIT(15)
- #define TIMER_CHCTL0_CH0CAPPSC BITS(2,3)
- #define TIMER_CHCTL0_CH0CAPFLT BITS(4,7)
- #define TIMER_CHCTL0_CH1CAPPSC BITS(10,11)
- #define TIMER_CHCTL0_CH1CAPFLT BITS(12,15)
- #define TIMER_CHCTL1_CH2MS BITS(0,1)
- #define TIMER_CHCTL1_CH2COMFEN BIT(2)
- #define TIMER_CHCTL1_CH2COMSEN BIT(3)
- #define TIMER_CHCTL1_CH2COMCTL BITS(4,6)
- #define TIMER_CHCTL1_CH2COMCEN BIT(7)
- #define TIMER_CHCTL1_CH3MS BITS(8,9)
- #define TIMER_CHCTL1_CH3COMFEN BIT(10)
- #define TIMER_CHCTL1_CH3COMSEN BIT(11)
- #define TIMER_CHCTL1_CH3COMCTL BITS(12,14)
- #define TIMER_CHCTL1_CH3COMCEN BIT(15)
- #define TIMER_CHCTL1_CH2CAPPSC BITS(2,3)
- #define TIMER_CHCTL1_CH2CAPFLT BITS(4,7)
- #define TIMER_CHCTL1_CH3CAPPSC BITS(10,11)
- #define TIMER_CHCTL1_CH3CAPFLT BITS(12,15)
- #define TIMER_CHCTL2_CH0EN BIT(0)
- #define TIMER_CHCTL2_CH0P BIT(1)
- #define TIMER_CHCTL2_CH0NEN BIT(2)
- #define TIMER_CHCTL2_CH0NP BIT(3)
- #define TIMER_CHCTL2_CH1EN BIT(4)
- #define TIMER_CHCTL2_CH1P BIT(5)
- #define TIMER_CHCTL2_CH1NEN BIT(6)
- #define TIMER_CHCTL2_CH1NP BIT(7)
- #define TIMER_CHCTL2_CH2EN BIT(8)
- #define TIMER_CHCTL2_CH2P BIT(9)
- #define TIMER_CHCTL2_CH2NEN BIT(10)
- #define TIMER_CHCTL2_CH2NP BIT(11)
- #define TIMER_CHCTL2_CH3EN BIT(12)
- #define TIMER_CHCTL2_CH3P BIT(13)
- #define TIMER_CNT_CNT BITS(0,15)
- #define TIMER_PSC_PSC BITS(0,15)
- #define TIMER_CAR_CARL BITS(0,15)
- #define TIMER_CREP_CREP BITS(0,7)
- #define TIMER_CH0CV_CH0VAL BITS(0,15)
- #define TIMER_CH1CV_CH1VAL BITS(0,15)
- #define TIMER_CH2CV_CH2VAL BITS(0,15)
- #define TIMER_CH3CV_CH3VAL BITS(0,15)
- #define TIMER_CCHP_DTCFG BITS(0,7)
- #define TIMER_CCHP_PROT BITS(8,9)
- #define TIMER_CCHP_IOS BIT(10)
- #define TIMER_CCHP_ROS BIT(11)
- #define TIMER_CCHP_BRKEN BIT(12)
- #define TIMER_CCHP_BRKP BIT(13)
- #define TIMER_CCHP_OAEN BIT(14)
- #define TIMER_CCHP_POEN BIT(15)
- #define TIMER_DMACFG_DMATA BITS(0,4)
- #define TIMER_DMACFG_DMATC BITS(8,12)
- #define TIMER_DMATB_DMATB BITS(0,15)
- #define TIMER10_IRMP_ITI1_RMP BITS(0,1)
- #define TIMER_CFG_OUTSEL BIT(0)
- #define TIMER_CFG_CHVSEL BIT(1)
- typedef struct
- {
- uint16_t prescaler;
- uint16_t alignedmode;
- uint16_t counterdirection;
- uint16_t clockdivision;
- uint32_t period;
- uint8_t repetitioncounter;
- }timer_parameter_struct;
- typedef struct
- {
- uint16_t runoffstate;
- uint16_t ideloffstate;
- uint16_t deadtime;
- uint16_t breakpolarity;
- uint16_t outputautostate;
- uint16_t protectmode;
- uint16_t breakstate;
- }timer_break_parameter_struct;
- typedef struct
- {
- uint16_t outputstate;
- uint16_t outputnstate;
- uint16_t ocpolarity;
- uint16_t ocnpolarity;
- uint16_t ocidlestate;
- uint16_t ocnidlestate;
- }timer_oc_parameter_struct;
- typedef struct
- {
- uint16_t icpolarity;
- uint16_t icselection;
- uint16_t icprescaler;
- uint16_t icfilter;
- }timer_ic_parameter_struct;
- #define TIMER_INT_UP TIMER_DMAINTEN_UPIE
- #define TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE
- #define TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE
- #define TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE
- #define TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE
- #define TIMER_INT_CMT TIMER_DMAINTEN_CMTIE
- #define TIMER_INT_TRG TIMER_DMAINTEN_TRGIE
- #define TIMER_INT_BRK TIMER_DMAINTEN_BRKIE
- #define TIMER_FLAG_UP TIMER_INTF_UPIF
- #define TIMER_FLAG_CH0 TIMER_INTF_CH0IF
- #define TIMER_FLAG_CH1 TIMER_INTF_CH1IF
- #define TIMER_FLAG_CH2 TIMER_INTF_CH2IF
- #define TIMER_FLAG_CH3 TIMER_INTF_CH3IF
- #define TIMER_FLAG_CMT TIMER_INTF_CMTIF
- #define TIMER_FLAG_TRG TIMER_INTF_TRGIF
- #define TIMER_FLAG_BRK TIMER_INTF_BRKIF
- #define TIMER_FLAG_CH0O TIMER_INTF_CH0OF
- #define TIMER_FLAG_CH1O TIMER_INTF_CH1OF
- #define TIMER_FLAG_CH2O TIMER_INTF_CH2OF
- #define TIMER_FLAG_CH3O TIMER_INTF_CH3OF
- #define TIMER_INT_FLAG_UP TIMER_INTF_UPIF
- #define TIMER_INT_FLAG_CH0 TIMER_INTF_CH0IF
- #define TIMER_INT_FLAG_CH1 TIMER_INTF_CH1IF
- #define TIMER_INT_FLAG_CH2 TIMER_INTF_CH2IF
- #define TIMER_INT_FLAG_CH3 TIMER_INTF_CH3IF
- #define TIMER_INT_FLAG_CMT TIMER_INTF_CMTIF
- #define TIMER_INT_FLAG_TRG TIMER_INTF_TRGIF
- #define TIMER_INT_FLAG_BRK TIMER_INTF_BRKIF
- #define TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)
- #define TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)
- #define TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)
- #define TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)
- #define TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)
- #define TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)
- #define TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)
-
- #define TIMER_DMAREQUEST_UPDATEEVENT ((uint8_t)0x00U)
- #define TIMER_DMAREQUEST_CHANNELEVENT ((uint8_t)0x01U)
- #define DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))
- #define TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)
- #define TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)
- #define TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)
- #define TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)
- #define TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)
- #define TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)
- #define TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)
- #define TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)
- #define TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)
- #define TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)
- #define TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)
- #define TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)
- #define TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)
- #define TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)
- #define TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)
- #define TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)
- #define TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)
- #define TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)
- #define TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)
- #define TIMER_DMACFG_DMATA_DMATB DMACFG_DMATA(19)
- #define DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))
- #define TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)
- #define TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)
- #define TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)
- #define TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)
- #define TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)
- #define TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)
- #define TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)
- #define TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)
- #define TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)
- #define TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)
- #define TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)
- #define TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)
- #define TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)
- #define TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)
- #define TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)
- #define TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)
- #define TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)
- #define TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)
- #define TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)
- #define TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)
- #define TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)
- #define TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)
- #define TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)
- #define TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)
- #define TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)
- #define TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)
- #define CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))
- #define TIMER_COUNTER_EDGE CTL0_CAM(0)
- #define TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)
- #define TIMER_COUNTER_CENTER_UP CTL0_CAM(2)
- #define TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)
- #define TIMER_PSC_RELOAD_NOW ((uint32_t)0x00000000U)
- #define TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000001U)
- #define TIMER_COUNTER_UP ((uint16_t)0x0000U)
- #define TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)
- #define CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))
- #define TIMER_CKDIV_DIV1 CTL0_CKDIV(0)
- #define TIMER_CKDIV_DIV2 CTL0_CKDIV(1)
- #define TIMER_CKDIV_DIV4 CTL0_CKDIV(2)
- #define TIMER_SP_MODE_SINGLE ((uint32_t)0x00000000U)
- #define TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000001U)
- #define TIMER_UPDATE_SRC_REGULAR ((uint32_t)0x00000000U)
- #define TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000001U)
- #define TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)
- #define TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)
-
- #define TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)
- #define TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)
- #define TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)
- #define TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)
- #define TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)
- #define TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)
- #define CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))
- #define TIMER_CCHP_PROT_OFF CCHP_PROT(0)
- #define TIMER_CCHP_PROT_0 CCHP_PROT(1)
- #define TIMER_CCHP_PROT_1 CCHP_PROT(2)
- #define TIMER_CCHP_PROT_2 CCHP_PROT(3)
- #define TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)
- #define TIMER_BREAK_DISABLE ((uint16_t)0x0000U)
- #define TIMER_CH_0 ((uint16_t)0x0000U)
- #define TIMER_CH_1 ((uint16_t)0x0001U)
- #define TIMER_CH_2 ((uint16_t)0x0002U)
- #define TIMER_CH_3 ((uint16_t)0x0003U)
- #define TIMER_CCX_ENABLE ((uint32_t)0x00000001U)
- #define TIMER_CCX_DISABLE ((uint32_t)0x00000000U)
- #define TIMER_CCXN_ENABLE ((uint16_t)0x0004U)
- #define TIMER_CCXN_DISABLE ((uint16_t)0x0000U)
- #define TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)
- #define TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)
- #define TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)
- #define TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)
-
- #define TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)
- #define TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)
-
- #define TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)
- #define TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)
- #define TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)
- #define TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)
- #define TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)
- #define TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)
- #define TIMER_OC_MODE_LOW ((uint16_t)0x0040U)
- #define TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)
- #define TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)
- #define TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)
- #define TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)
- #define TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)
- #define TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)
- #define TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)
- #define TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)
- #define TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)
-
- #define TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)
- #define TIMER_UPDATECTL_CCUTRI ((uint32_t)0x00000001U)
- #define TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)
- #define TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)
- #define TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)
- #define TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)
- #define TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)
- #define TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)
- #define TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)
- #define TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)
- #define TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)
- #define SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))
- #define TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)
- #define TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)
- #define TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)
- #define TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)
- #define TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)
- #define TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)
- #define TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)
- #define TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)
- #define CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))
- #define TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)
- #define TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)
- #define TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)
- #define TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)
- #define TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)
- #define TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)
- #define TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)
- #define TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)
- #define SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))
- #define TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)
- #define TIMER_ENCODER_MODE0 SMCFG_SMC(1)
- #define TIMER_ENCODER_MODE1 SMCFG_SMC(2)
- #define TIMER_ENCODER_MODE2 SMCFG_SMC(3)
- #define TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)
- #define TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)
- #define TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)
- #define TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)
-
- #define TIMER_MASTER_SLAVE_MODE_ENABLE ((uint32_t)0x00000000U)
- #define TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000001U)
- #define SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))
- #define TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)
- #define TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)
- #define TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)
- #define TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)
- #define TIMER_ETP_FALLING TIMER_SMCFG_ETP
- #define TIMER_ETP_RISING ((uint32_t)0x00000000U)
-
- #define TIMER_HALLINTERFACE_ENABLE ((uint32_t)0x00000000U)
- #define TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000001U)
- #define TIMER_CHVSEL_ENABLE ((uint16_t)0x0002U)
- #define TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)
- #define TIMER_OUTSEL_ENABLE ((uint16_t)0x0001U)
- #define TIMER_OUTSEL_DISABLE ((uint16_t)0x0000U)
- void timer_deinit(uint32_t timer_periph);
- void timer_struct_para_init(timer_parameter_struct* initpara);
- void timer_init(uint32_t timer_periph, timer_parameter_struct* initpara);
- void timer_enable(uint32_t timer_periph);
- void timer_disable(uint32_t timer_periph);
- void timer_auto_reload_shadow_enable(uint32_t timer_periph);
- void timer_auto_reload_shadow_disable(uint32_t timer_periph);
- void timer_update_event_enable(uint32_t timer_periph);
- void timer_update_event_disable(uint32_t timer_periph);
- void timer_counter_alignment(uint32_t timer_periph, uint16_t aligned);
- void timer_counter_up_direction(uint32_t timer_periph);
- void timer_counter_down_direction(uint32_t timer_periph);
- void timer_prescaler_config(uint32_t timer_periph, uint16_t prescaler, uint8_t pscreload);
- void timer_repetition_value_config(uint32_t timer_periph, uint16_t repetition);
- void timer_autoreload_value_config(uint32_t timer_periph, uint16_t autoreload);
- void timer_counter_value_config(uint32_t timer_periph , uint16_t counter);
- uint32_t timer_counter_read(uint32_t timer_periph);
- uint16_t timer_prescaler_read(uint32_t timer_periph);
- void timer_single_pulse_mode_config(uint32_t timer_periph, uint32_t spmode);
- void timer_update_source_config(uint32_t timer_periph, uint32_t update);
- void timer_interrupt_enable(uint32_t timer_periph, uint32_t interrupt);
- void timer_interrupt_disable(uint32_t timer_periph, uint32_t interrupt);
- FlagStatus timer_interrupt_flag_get(uint32_t timer_periph, uint32_t interrupt);
- void timer_interrupt_flag_clear(uint32_t timer_periph, uint32_t interrupt);
- FlagStatus timer_flag_get(uint32_t timer_periph, uint32_t flag);
- void timer_flag_clear(uint32_t timer_periph, uint32_t flag);
- void timer_dma_enable(uint32_t timer_periph, uint16_t dma);
- void timer_dma_disable(uint32_t timer_periph, uint16_t dma);
- void timer_channel_dma_request_source_select(uint32_t timer_periph, uint8_t dma_request);
- void timer_dma_transfer_config(uint32_t timer_periph,uint32_t dma_baseaddr, uint32_t dma_lenth);
- void timer_event_software_generate(uint32_t timer_periph, uint16_t event);
- void timer_break_struct_para_init(timer_break_parameter_struct* breakpara);
- void timer_break_config(uint32_t timer_periph, timer_break_parameter_struct* breakpara);
- void timer_break_enable(uint32_t timer_periph);
- void timer_break_disable(uint32_t timer_periph);
- void timer_automatic_output_enable(uint32_t timer_periph);
- void timer_automatic_output_disable(uint32_t timer_periph);
- void timer_primary_output_config(uint32_t timer_periph, ControlStatus newvalue);
- void timer_channel_control_shadow_config(uint32_t timer_periph, ControlStatus newvalue);
- void timer_channel_control_shadow_update_config(uint32_t timer_periph, uint8_t ccuctl);
- void timer_channel_output_struct_para_init(timer_oc_parameter_struct* ocpara);
- void timer_channel_output_config(uint32_t timer_periph,uint16_t channel, timer_oc_parameter_struct* ocpara);
- void timer_channel_output_mode_config(uint32_t timer_periph, uint16_t channel,uint16_t ocmode);
- void timer_channel_output_pulse_value_config(uint32_t timer_periph, uint16_t channel, uint32_t pulse);
- void timer_channel_output_shadow_config(uint32_t timer_periph, uint16_t channel, uint16_t ocshadow);
- void timer_channel_output_fast_config(uint32_t timer_periph, uint16_t channel, uint16_t ocfast);
- void timer_channel_output_clear_config(uint32_t timer_periph,uint16_t channel,uint16_t occlear);
- void timer_channel_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocpolarity);
- void timer_channel_complementary_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnpolarity);
- void timer_channel_output_state_config(uint32_t timer_periph, uint16_t channel, uint32_t state);
- void timer_channel_complementary_output_state_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnstate);
- void timer_channel_input_struct_para_init(timer_ic_parameter_struct* icpara);
- void timer_input_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpara);
- void timer_channel_input_capture_prescaler_config(uint32_t timer_periph, uint16_t channel, uint16_t prescaler);
- uint32_t timer_channel_capture_value_register_read(uint32_t timer_periph, uint16_t channel);
- void timer_input_pwm_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpwm);
- void timer_hall_mode_config(uint32_t timer_periph, uint32_t hallmode);
- void timer_input_trigger_source_select(uint32_t timer_periph, uint32_t intrigger);
- void timer_master_output_trigger_source_select(uint32_t timer_periph, uint32_t outrigger);
- void timer_slave_mode_select(uint32_t timer_periph,uint32_t slavemode);
- void timer_master_slave_mode_config(uint32_t timer_periph, uint32_t masterslave);
- void timer_external_trigger_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter);
- void timer_quadrature_decoder_mode_config(uint32_t timer_periph, uint32_t decomode, uint16_t ic0polarity, uint16_t ic1polarity);
- void timer_internal_clock_config(uint32_t timer_periph);
- void timer_internal_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t intrigger);
- void timer_external_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t extrigger, uint16_t extpolarity,uint32_t extfilter);
- void timer_external_clock_mode0_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter);
- void timer_external_clock_mode1_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter);
- void timer_external_clock_mode1_disable(uint32_t timer_periph);
- void timer_write_chxval_register_config(uint32_t timer_periph, uint16_t ccsel);
- void timer_output_value_selection_config(uint32_t timer_periph, uint16_t outsel);
- #endif
|