20#ifndef __STM32F4xx_LL_TIM_H
21#define __STM32F4xx_LL_TIM_H
34#if defined (TIM1) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM6) || defined (TIM7) || defined (TIM8) || defined (TIM9) || defined (TIM10) || defined (TIM11) || defined (TIM12) || defined (TIM13) || defined (TIM14)
45static const uint8_t OFFSET_TAB_CCMRx[] =
56static const uint8_t SHIFT_TAB_OCxx[] =
67static const uint8_t SHIFT_TAB_ICxx[] =
78static const uint8_t SHIFT_TAB_CCxP[] =
89static const uint8_t SHIFT_TAB_OISx[] =
110#define TIMx_OR_RMP_SHIFT 16U
111#define TIMx_OR_RMP_MASK 0x0000FFFFU
112#define TIM2_OR_RMP_MASK (TIM_OR_ITR1_RMP << TIMx_OR_RMP_SHIFT)
113#define TIM5_OR_RMP_MASK (TIM_OR_TI4_RMP << TIMx_OR_RMP_SHIFT)
114#define TIM11_OR_RMP_MASK (TIM_OR_TI1_RMP << TIMx_OR_RMP_SHIFT)
117#define DT_DELAY_1 ((uint8_t)0x7F)
118#define DT_DELAY_2 ((uint8_t)0x3F)
119#define DT_DELAY_3 ((uint8_t)0x1F)
120#define DT_DELAY_4 ((uint8_t)0x1F)
123#define DT_RANGE_1 ((uint8_t)0x00)
124#define DT_RANGE_2 ((uint8_t)0x80)
125#define DT_RANGE_3 ((uint8_t)0xC0)
126#define DT_RANGE_4 ((uint8_t)0xE0)
148#define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \
149 (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\
150 ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\
151 ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\
152 ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\
153 ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\
154 ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U : 6U)
164#define TIM_CALC_DTS(__TIMCLK__, __CKD__) \
165 (((__CKD__) == LL_TIM_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TIMCLK__)) : \
166 ((__CKD__) == LL_TIM_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TIMCLK__) >> 1U)) : \
167 ((uint64_t)1000000000000U/((__TIMCLK__) >> 2U)))
174#if defined(USE_FULL_LL_DRIVER)
190 uint32_t CounterMode;
205 uint32_t ClockDivision;
211 uint32_t RepetitionCounter;
249 uint32_t CompareValue;
261 uint32_t OCNPolarity;
268 uint32_t OCIdleState;
274 uint32_t OCNIdleState;
279} LL_TIM_OC_InitTypeDef;
294 uint32_t ICActiveInput;
300 uint32_t ICPrescaler;
311} LL_TIM_IC_InitTypeDef;
319 uint32_t EncoderMode;
325 uint32_t IC1Polarity;
331 uint32_t IC1ActiveInput;
337 uint32_t IC1Prescaler;
349 uint32_t IC2Polarity;
355 uint32_t IC2ActiveInput;
361 uint32_t IC2Prescaler;
373} LL_TIM_ENCODER_InitTypeDef;
381 uint32_t IC1Polarity;
387 uint32_t IC1Prescaler;
402 uint32_t CommutationDelay;
409} LL_TIM_HALLSENSOR_InitTypeDef;
459 uint32_t BreakPolarity;
469 uint32_t AutomaticOutput;
477} LL_TIM_BDTR_InitTypeDef;
493#define LL_TIM_SR_UIF TIM_SR_UIF
494#define LL_TIM_SR_CC1IF TIM_SR_CC1IF
495#define LL_TIM_SR_CC2IF TIM_SR_CC2IF
496#define LL_TIM_SR_CC3IF TIM_SR_CC3IF
497#define LL_TIM_SR_CC4IF TIM_SR_CC4IF
498#define LL_TIM_SR_COMIF TIM_SR_COMIF
499#define LL_TIM_SR_TIF TIM_SR_TIF
500#define LL_TIM_SR_BIF TIM_SR_BIF
501#define LL_TIM_SR_CC1OF TIM_SR_CC1OF
502#define LL_TIM_SR_CC2OF TIM_SR_CC2OF
503#define LL_TIM_SR_CC3OF TIM_SR_CC3OF
504#define LL_TIM_SR_CC4OF TIM_SR_CC4OF
509#if defined(USE_FULL_LL_DRIVER)
513#define LL_TIM_BREAK_DISABLE 0x00000000U
514#define LL_TIM_BREAK_ENABLE TIM_BDTR_BKE
522#define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
523#define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
533#define LL_TIM_DIER_UIE TIM_DIER_UIE
534#define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE
535#define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE
536#define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE
537#define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE
538#define LL_TIM_DIER_COMIE TIM_DIER_COMIE
539#define LL_TIM_DIER_TIE TIM_DIER_TIE
540#define LL_TIM_DIER_BIE TIM_DIER_BIE
548#define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U
549#define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS
557#define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM
558#define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U
566#define LL_TIM_COUNTERMODE_UP 0x00000000U
567#define LL_TIM_COUNTERMODE_DOWN TIM_CR1_DIR
568#define LL_TIM_COUNTERMODE_CENTER_DOWN TIM_CR1_CMS_0
569#define LL_TIM_COUNTERMODE_CENTER_UP TIM_CR1_CMS_1
570#define LL_TIM_COUNTERMODE_CENTER_UP_DOWN TIM_CR1_CMS
578#define LL_TIM_CLOCKDIVISION_DIV1 0x00000000U
579#define LL_TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
580#define LL_TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
588#define LL_TIM_COUNTERDIRECTION_UP 0x00000000U
589#define LL_TIM_COUNTERDIRECTION_DOWN TIM_CR1_DIR
597#define LL_TIM_CCUPDATESOURCE_COMG_ONLY 0x00000000U
598#define LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI TIM_CR2_CCUS
606#define LL_TIM_CCDMAREQUEST_CC 0x00000000U
607#define LL_TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
615#define LL_TIM_LOCKLEVEL_OFF 0x00000000U
616#define LL_TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
617#define LL_TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
618#define LL_TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
626#define LL_TIM_CHANNEL_CH1 TIM_CCER_CC1E
627#define LL_TIM_CHANNEL_CH1N TIM_CCER_CC1NE
628#define LL_TIM_CHANNEL_CH2 TIM_CCER_CC2E
629#define LL_TIM_CHANNEL_CH2N TIM_CCER_CC2NE
630#define LL_TIM_CHANNEL_CH3 TIM_CCER_CC3E
631#define LL_TIM_CHANNEL_CH3N TIM_CCER_CC3NE
632#define LL_TIM_CHANNEL_CH4 TIM_CCER_CC4E
637#if defined(USE_FULL_LL_DRIVER)
641#define LL_TIM_OCSTATE_DISABLE 0x00000000U
642#define LL_TIM_OCSTATE_ENABLE TIM_CCER_CC1E
651#define LL_TIM_OCMODE_FROZEN 0x00000000U
652#define LL_TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
653#define LL_TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
654#define LL_TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
655#define LL_TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
656#define LL_TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
657#define LL_TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
658#define LL_TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
666#define LL_TIM_OCPOLARITY_HIGH 0x00000000U
667#define LL_TIM_OCPOLARITY_LOW TIM_CCER_CC1P
675#define LL_TIM_OCIDLESTATE_LOW 0x00000000U
676#define LL_TIM_OCIDLESTATE_HIGH TIM_CR2_OIS1
685#define LL_TIM_ACTIVEINPUT_DIRECTTI (TIM_CCMR1_CC1S_0 << 16U)
686#define LL_TIM_ACTIVEINPUT_INDIRECTTI (TIM_CCMR1_CC1S_1 << 16U)
687#define LL_TIM_ACTIVEINPUT_TRC (TIM_CCMR1_CC1S << 16U)
695#define LL_TIM_ICPSC_DIV1 0x00000000U
696#define LL_TIM_ICPSC_DIV2 (TIM_CCMR1_IC1PSC_0 << 16U)
697#define LL_TIM_ICPSC_DIV4 (TIM_CCMR1_IC1PSC_1 << 16U)
698#define LL_TIM_ICPSC_DIV8 (TIM_CCMR1_IC1PSC << 16U)
706#define LL_TIM_IC_FILTER_FDIV1 0x00000000U
707#define LL_TIM_IC_FILTER_FDIV1_N2 (TIM_CCMR1_IC1F_0 << 16U)
708#define LL_TIM_IC_FILTER_FDIV1_N4 (TIM_CCMR1_IC1F_1 << 16U)
709#define LL_TIM_IC_FILTER_FDIV1_N8 ((TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
710#define LL_TIM_IC_FILTER_FDIV2_N6 (TIM_CCMR1_IC1F_2 << 16U)
711#define LL_TIM_IC_FILTER_FDIV2_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
712#define LL_TIM_IC_FILTER_FDIV4_N6 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
713#define LL_TIM_IC_FILTER_FDIV4_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
714#define LL_TIM_IC_FILTER_FDIV8_N6 (TIM_CCMR1_IC1F_3 << 16U)
715#define LL_TIM_IC_FILTER_FDIV8_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_0) << 16U)
716#define LL_TIM_IC_FILTER_FDIV16_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1) << 16U)
717#define LL_TIM_IC_FILTER_FDIV16_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
718#define LL_TIM_IC_FILTER_FDIV16_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2) << 16U)
719#define LL_TIM_IC_FILTER_FDIV32_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
720#define LL_TIM_IC_FILTER_FDIV32_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
721#define LL_TIM_IC_FILTER_FDIV32_N8 (TIM_CCMR1_IC1F << 16U)
729#define LL_TIM_IC_POLARITY_RISING 0x00000000U
730#define LL_TIM_IC_POLARITY_FALLING TIM_CCER_CC1P
731#define LL_TIM_IC_POLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
739#define LL_TIM_CLOCKSOURCE_INTERNAL 0x00000000U
740#define LL_TIM_CLOCKSOURCE_EXT_MODE1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
741#define LL_TIM_CLOCKSOURCE_EXT_MODE2 TIM_SMCR_ECE
749#define LL_TIM_ENCODERMODE_X2_TI1 TIM_SMCR_SMS_0
750#define LL_TIM_ENCODERMODE_X2_TI2 TIM_SMCR_SMS_1
751#define LL_TIM_ENCODERMODE_X4_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
759#define LL_TIM_TRGO_RESET 0x00000000U
760#define LL_TIM_TRGO_ENABLE TIM_CR2_MMS_0
761#define LL_TIM_TRGO_UPDATE TIM_CR2_MMS_1
762#define LL_TIM_TRGO_CC1IF (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
763#define LL_TIM_TRGO_OC1REF TIM_CR2_MMS_2
764#define LL_TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
765#define LL_TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
766#define LL_TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
775#define LL_TIM_SLAVEMODE_DISABLED 0x00000000U
776#define LL_TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
777#define LL_TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
778#define LL_TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
786#define LL_TIM_TS_ITR0 0x00000000U
787#define LL_TIM_TS_ITR1 TIM_SMCR_TS_0
788#define LL_TIM_TS_ITR2 TIM_SMCR_TS_1
789#define LL_TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
790#define LL_TIM_TS_TI1F_ED TIM_SMCR_TS_2
791#define LL_TIM_TS_TI1FP1 (TIM_SMCR_TS_2 | TIM_SMCR_TS_0)
792#define LL_TIM_TS_TI2FP2 (TIM_SMCR_TS_2 | TIM_SMCR_TS_1)
793#define LL_TIM_TS_ETRF (TIM_SMCR_TS_2 | TIM_SMCR_TS_1 | TIM_SMCR_TS_0)
801#define LL_TIM_ETR_POLARITY_NONINVERTED 0x00000000U
802#define LL_TIM_ETR_POLARITY_INVERTED TIM_SMCR_ETP
810#define LL_TIM_ETR_PRESCALER_DIV1 0x00000000U
811#define LL_TIM_ETR_PRESCALER_DIV2 TIM_SMCR_ETPS_0
812#define LL_TIM_ETR_PRESCALER_DIV4 TIM_SMCR_ETPS_1
813#define LL_TIM_ETR_PRESCALER_DIV8 TIM_SMCR_ETPS
821#define LL_TIM_ETR_FILTER_FDIV1 0x00000000U
822#define LL_TIM_ETR_FILTER_FDIV1_N2 TIM_SMCR_ETF_0
823#define LL_TIM_ETR_FILTER_FDIV1_N4 TIM_SMCR_ETF_1
824#define LL_TIM_ETR_FILTER_FDIV1_N8 (TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
825#define LL_TIM_ETR_FILTER_FDIV2_N6 TIM_SMCR_ETF_2
826#define LL_TIM_ETR_FILTER_FDIV2_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
827#define LL_TIM_ETR_FILTER_FDIV4_N6 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
828#define LL_TIM_ETR_FILTER_FDIV4_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
829#define LL_TIM_ETR_FILTER_FDIV8_N6 TIM_SMCR_ETF_3
830#define LL_TIM_ETR_FILTER_FDIV8_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_0)
831#define LL_TIM_ETR_FILTER_FDIV16_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1)
832#define LL_TIM_ETR_FILTER_FDIV16_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
833#define LL_TIM_ETR_FILTER_FDIV16_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2)
834#define LL_TIM_ETR_FILTER_FDIV32_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
835#define LL_TIM_ETR_FILTER_FDIV32_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
836#define LL_TIM_ETR_FILTER_FDIV32_N8 TIM_SMCR_ETF
845#define LL_TIM_BREAK_POLARITY_LOW 0x00000000U
846#define LL_TIM_BREAK_POLARITY_HIGH TIM_BDTR_BKP
855#define LL_TIM_OSSI_DISABLE 0x00000000U
856#define LL_TIM_OSSI_ENABLE TIM_BDTR_OSSI
864#define LL_TIM_OSSR_DISABLE 0x00000000U
865#define LL_TIM_OSSR_ENABLE TIM_BDTR_OSSR
874#define LL_TIM_DMABURST_BASEADDR_CR1 0x00000000U
875#define LL_TIM_DMABURST_BASEADDR_CR2 TIM_DCR_DBA_0
876#define LL_TIM_DMABURST_BASEADDR_SMCR TIM_DCR_DBA_1
877#define LL_TIM_DMABURST_BASEADDR_DIER (TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
878#define LL_TIM_DMABURST_BASEADDR_SR TIM_DCR_DBA_2
879#define LL_TIM_DMABURST_BASEADDR_EGR (TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
880#define LL_TIM_DMABURST_BASEADDR_CCMR1 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
881#define LL_TIM_DMABURST_BASEADDR_CCMR2 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
882#define LL_TIM_DMABURST_BASEADDR_CCER TIM_DCR_DBA_3
883#define LL_TIM_DMABURST_BASEADDR_CNT (TIM_DCR_DBA_3 | TIM_DCR_DBA_0)
884#define LL_TIM_DMABURST_BASEADDR_PSC (TIM_DCR_DBA_3 | TIM_DCR_DBA_1)
885#define LL_TIM_DMABURST_BASEADDR_ARR (TIM_DCR_DBA_3 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
886#define LL_TIM_DMABURST_BASEADDR_RCR (TIM_DCR_DBA_3 | TIM_DCR_DBA_2)
887#define LL_TIM_DMABURST_BASEADDR_CCR1 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
888#define LL_TIM_DMABURST_BASEADDR_CCR2 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
889#define LL_TIM_DMABURST_BASEADDR_CCR3 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
890#define LL_TIM_DMABURST_BASEADDR_CCR4 TIM_DCR_DBA_4
891#define LL_TIM_DMABURST_BASEADDR_BDTR (TIM_DCR_DBA_4 | TIM_DCR_DBA_0)
899#define LL_TIM_DMABURST_LENGTH_1TRANSFER 0x00000000U
900#define LL_TIM_DMABURST_LENGTH_2TRANSFERS TIM_DCR_DBL_0
901#define LL_TIM_DMABURST_LENGTH_3TRANSFERS TIM_DCR_DBL_1
902#define LL_TIM_DMABURST_LENGTH_4TRANSFERS (TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
903#define LL_TIM_DMABURST_LENGTH_5TRANSFERS TIM_DCR_DBL_2
904#define LL_TIM_DMABURST_LENGTH_6TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
905#define LL_TIM_DMABURST_LENGTH_7TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
906#define LL_TIM_DMABURST_LENGTH_8TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
907#define LL_TIM_DMABURST_LENGTH_9TRANSFERS TIM_DCR_DBL_3
908#define LL_TIM_DMABURST_LENGTH_10TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_0)
909#define LL_TIM_DMABURST_LENGTH_11TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1)
910#define LL_TIM_DMABURST_LENGTH_12TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
911#define LL_TIM_DMABURST_LENGTH_13TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2)
912#define LL_TIM_DMABURST_LENGTH_14TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
913#define LL_TIM_DMABURST_LENGTH_15TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
914#define LL_TIM_DMABURST_LENGTH_16TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
915#define LL_TIM_DMABURST_LENGTH_17TRANSFERS TIM_DCR_DBL_4
916#define LL_TIM_DMABURST_LENGTH_18TRANSFERS (TIM_DCR_DBL_4 | TIM_DCR_DBL_0)
925#define LL_TIM_TIM2_ITR1_RMP_TIM8_TRGO TIM2_OR_RMP_MASK
926#define LL_TIM_TIM2_ITR1_RMP_ETH_PTP (TIM_OR_ITR1_RMP_0 | TIM2_OR_RMP_MASK)
927#define LL_TIM_TIM2_ITR1_RMP_OTG_FS_SOF (TIM_OR_ITR1_RMP_1 | TIM2_OR_RMP_MASK)
928#define LL_TIM_TIM2_ITR1_RMP_OTG_HS_SOF (TIM_OR_ITR1_RMP | TIM2_OR_RMP_MASK)
936#define LL_TIM_TIM5_TI4_RMP_GPIO TIM5_OR_RMP_MASK
937#define LL_TIM_TIM5_TI4_RMP_LSI (TIM_OR_TI4_RMP_0 | TIM5_OR_RMP_MASK)
938#define LL_TIM_TIM5_TI4_RMP_LSE (TIM_OR_TI4_RMP_1 | TIM5_OR_RMP_MASK)
939#define LL_TIM_TIM5_TI4_RMP_RTC (TIM_OR_TI4_RMP | TIM5_OR_RMP_MASK)
947#define LL_TIM_TIM11_TI1_RMP_GPIO TIM11_OR_RMP_MASK
949#define LL_TIM_TIM11_TI1_RMP_SPDIFRX (TIM_OR_TI1_RMP_0 | TIM11_OR_RMP_MASK)
952#define LL_TIM_TIM11_TI1_RMP_GPIO1 LL_TIM_TIM11_TI1_RMP_SPDIFRX
955#define LL_TIM_TIM11_TI1_RMP_GPIO1 (TIM_OR_TI1_RMP_0 | TIM11_OR_RMP_MASK)
957#define LL_TIM_TIM11_TI1_RMP_GPIO2 (TIM_OR_TI1_RMP | TIM11_OR_RMP_MASK)
958#define LL_TIM_TIM11_TI1_RMP_HSE_RTC (TIM_OR_TI1_RMP_1 | TIM11_OR_RMP_MASK)
962#if defined(LPTIM_OR_TIM1_ITR2_RMP) && defined(LPTIM_OR_TIM5_ITR1_RMP) && defined(LPTIM_OR_TIM9_ITR1_RMP)
964#define LL_TIM_LPTIM_REMAP_MASK 0x10000000U
966#define LL_TIM_TIM9_ITR1_RMP_TIM3_TRGO LL_TIM_LPTIM_REMAP_MASK
967#define LL_TIM_TIM9_ITR1_RMP_LPTIM (LL_TIM_LPTIM_REMAP_MASK | LPTIM_OR_TIM9_ITR1_RMP)
969#define LL_TIM_TIM5_ITR1_RMP_TIM3_TRGO LL_TIM_LPTIM_REMAP_MASK
970#define LL_TIM_TIM5_ITR1_RMP_LPTIM (LL_TIM_LPTIM_REMAP_MASK | LPTIM_OR_TIM5_ITR1_RMP)
972#define LL_TIM_TIM1_ITR2_RMP_TIM3_TRGO LL_TIM_LPTIM_REMAP_MASK
973#define LL_TIM_TIM1_ITR2_RMP_LPTIM (LL_TIM_LPTIM_REMAP_MASK | LPTIM_OR_TIM1_ITR2_RMP)
997#define LL_TIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
1005#define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
1021#define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \
1022 ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1023 (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \
1024 (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1025 (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1026 (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\
1027 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1028 (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1029 (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\
1030 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1031 (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1032 (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\
1042#define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \
1043 (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
1053#define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \
1054 ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
1065#define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \
1066 ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \
1067 / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
1079#define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \
1080 ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \
1081 + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__))))
1093#define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \
1094 ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos)))
1115__STATIC_INLINE
void LL_TIM_EnableCounter(TIM_TypeDef *TIMx)
1117 SET_BIT(TIMx->CR1, TIM_CR1_CEN);
1126__STATIC_INLINE
void LL_TIM_DisableCounter(TIM_TypeDef *TIMx)
1128 CLEAR_BIT(TIMx->CR1, TIM_CR1_CEN);
1137__STATIC_INLINE uint32_t LL_TIM_IsEnabledCounter(
const TIM_TypeDef *TIMx)
1139 return ((READ_BIT(TIMx->CR1, TIM_CR1_CEN) == (TIM_CR1_CEN)) ? 1UL : 0UL);
1148__STATIC_INLINE
void LL_TIM_EnableUpdateEvent(TIM_TypeDef *TIMx)
1150 CLEAR_BIT(TIMx->CR1, TIM_CR1_UDIS);
1159__STATIC_INLINE
void LL_TIM_DisableUpdateEvent(TIM_TypeDef *TIMx)
1161 SET_BIT(TIMx->CR1, TIM_CR1_UDIS);
1170__STATIC_INLINE uint32_t LL_TIM_IsEnabledUpdateEvent(
const TIM_TypeDef *TIMx)
1172 return ((READ_BIT(TIMx->CR1, TIM_CR1_UDIS) == (uint32_t)RESET) ? 1UL : 0UL);
1191__STATIC_INLINE
void LL_TIM_SetUpdateSource(TIM_TypeDef *TIMx, uint32_t UpdateSource)
1193 MODIFY_REG(TIMx->CR1, TIM_CR1_URS, UpdateSource);
1204__STATIC_INLINE uint32_t LL_TIM_GetUpdateSource(
const TIM_TypeDef *TIMx)
1206 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_URS));
1218__STATIC_INLINE
void LL_TIM_SetOnePulseMode(TIM_TypeDef *TIMx, uint32_t OnePulseMode)
1220 MODIFY_REG(TIMx->CR1, TIM_CR1_OPM, OnePulseMode);
1231__STATIC_INLINE uint32_t LL_TIM_GetOnePulseMode(
const TIM_TypeDef *TIMx)
1233 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_OPM));
1255__STATIC_INLINE
void LL_TIM_SetCounterMode(TIM_TypeDef *TIMx, uint32_t CounterMode)
1257 MODIFY_REG(TIMx->CR1, (TIM_CR1_DIR | TIM_CR1_CMS), CounterMode);
1275__STATIC_INLINE uint32_t LL_TIM_GetCounterMode(
const TIM_TypeDef *TIMx)
1277 uint32_t counter_mode;
1279 counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CMS));
1281 if (counter_mode == 0U)
1283 counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR));
1286 return counter_mode;
1295__STATIC_INLINE
void LL_TIM_EnableARRPreload(TIM_TypeDef *TIMx)
1297 SET_BIT(TIMx->CR1, TIM_CR1_ARPE);
1306__STATIC_INLINE
void LL_TIM_DisableARRPreload(TIM_TypeDef *TIMx)
1308 CLEAR_BIT(TIMx->CR1, TIM_CR1_ARPE);
1317__STATIC_INLINE uint32_t LL_TIM_IsEnabledARRPreload(
const TIM_TypeDef *TIMx)
1319 return ((READ_BIT(TIMx->CR1, TIM_CR1_ARPE) == (TIM_CR1_ARPE)) ? 1UL : 0UL);
1336__STATIC_INLINE
void LL_TIM_SetClockDivision(TIM_TypeDef *TIMx, uint32_t ClockDivision)
1338 MODIFY_REG(TIMx->CR1, TIM_CR1_CKD, ClockDivision);
1354__STATIC_INLINE uint32_t LL_TIM_GetClockDivision(
const TIM_TypeDef *TIMx)
1356 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CKD));
1368__STATIC_INLINE
void LL_TIM_SetCounter(TIM_TypeDef *TIMx, uint32_t Counter)
1370 WRITE_REG(TIMx->CNT, Counter);
1381__STATIC_INLINE uint32_t LL_TIM_GetCounter(
const TIM_TypeDef *TIMx)
1383 return (uint32_t)(READ_REG(TIMx->CNT));
1394__STATIC_INLINE uint32_t LL_TIM_GetDirection(
const TIM_TypeDef *TIMx)
1396 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR));
1410__STATIC_INLINE
void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler)
1412 WRITE_REG(TIMx->PSC, Prescaler);
1421__STATIC_INLINE uint32_t LL_TIM_GetPrescaler(
const TIM_TypeDef *TIMx)
1423 return (uint32_t)(READ_REG(TIMx->PSC));
1437__STATIC_INLINE
void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload)
1439 WRITE_REG(TIMx->ARR, AutoReload);
1450__STATIC_INLINE uint32_t LL_TIM_GetAutoReload(
const TIM_TypeDef *TIMx)
1452 return (uint32_t)(READ_REG(TIMx->ARR));
1464__STATIC_INLINE
void LL_TIM_SetRepetitionCounter(TIM_TypeDef *TIMx, uint32_t RepetitionCounter)
1466 WRITE_REG(TIMx->RCR, RepetitionCounter);
1477__STATIC_INLINE uint32_t LL_TIM_GetRepetitionCounter(
const TIM_TypeDef *TIMx)
1479 return (uint32_t)(READ_REG(TIMx->RCR));
1500__STATIC_INLINE
void LL_TIM_CC_EnablePreload(TIM_TypeDef *TIMx)
1502 SET_BIT(TIMx->CR2, TIM_CR2_CCPC);
1513__STATIC_INLINE
void LL_TIM_CC_DisablePreload(TIM_TypeDef *TIMx)
1515 CLEAR_BIT(TIMx->CR2, TIM_CR2_CCPC);
1524__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledPreload(
const TIM_TypeDef *TIMx)
1526 return ((READ_BIT(TIMx->CR2, TIM_CR2_CCPC) == (TIM_CR2_CCPC)) ? 1UL : 0UL);
1540__STATIC_INLINE
void LL_TIM_CC_SetUpdate(TIM_TypeDef *TIMx, uint32_t CCUpdateSource)
1542 MODIFY_REG(TIMx->CR2, TIM_CR2_CCUS, CCUpdateSource);
1554__STATIC_INLINE
void LL_TIM_CC_SetDMAReqTrigger(TIM_TypeDef *TIMx, uint32_t DMAReqTrigger)
1556 MODIFY_REG(TIMx->CR2, TIM_CR2_CCDS, DMAReqTrigger);
1567__STATIC_INLINE uint32_t LL_TIM_CC_GetDMAReqTrigger(
const TIM_TypeDef *TIMx)
1569 return (uint32_t)(READ_BIT(TIMx->CR2, TIM_CR2_CCDS));
1586__STATIC_INLINE
void LL_TIM_CC_SetLockLevel(TIM_TypeDef *TIMx, uint32_t LockLevel)
1588 MODIFY_REG(TIMx->BDTR, TIM_BDTR_LOCK, LockLevel);
1611__STATIC_INLINE
void LL_TIM_CC_EnableChannel(TIM_TypeDef *TIMx, uint32_t Channels)
1613 SET_BIT(TIMx->CCER, Channels);
1636__STATIC_INLINE
void LL_TIM_CC_DisableChannel(TIM_TypeDef *TIMx, uint32_t Channels)
1638 CLEAR_BIT(TIMx->CCER, Channels);
1661__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledChannel(
const TIM_TypeDef *TIMx, uint32_t Channels)
1663 return ((READ_BIT(TIMx->CCER, Channels) == (Channels)) ? 1UL : 0UL);
1698__STATIC_INLINE
void LL_TIM_OC_ConfigOutput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
1700 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1701 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1702 CLEAR_BIT(*pReg, (TIM_CCMR1_CC1S << SHIFT_TAB_OCxx[iChannel]));
1703 MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]),
1704 (Configuration & TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]);
1705 MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]),
1706 (Configuration & TIM_CR2_OIS1) << SHIFT_TAB_OISx[iChannel]);
1733__STATIC_INLINE
void LL_TIM_OC_SetMode(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Mode)
1735 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1736 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1737 MODIFY_REG(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel]), Mode << SHIFT_TAB_OCxx[iChannel]);
1762__STATIC_INLINE uint32_t LL_TIM_OC_GetMode(
const TIM_TypeDef *TIMx, uint32_t Channel)
1764 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1765 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1766 return (READ_BIT(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel])) >> SHIFT_TAB_OCxx[iChannel]);
1792__STATIC_INLINE
void LL_TIM_OC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Polarity)
1794 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1795 MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), Polarity << SHIFT_TAB_CCxP[iChannel]);
1820__STATIC_INLINE uint32_t LL_TIM_OC_GetPolarity(
const TIM_TypeDef *TIMx, uint32_t Channel)
1822 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1823 return (READ_BIT(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel])) >> SHIFT_TAB_CCxP[iChannel]);
1853__STATIC_INLINE
void LL_TIM_OC_SetIdleState(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t IdleState)
1855 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1856 MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), IdleState << SHIFT_TAB_OISx[iChannel]);
1881__STATIC_INLINE uint32_t LL_TIM_OC_GetIdleState(
const TIM_TypeDef *TIMx, uint32_t Channel)
1883 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1884 return (READ_BIT(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel])) >> SHIFT_TAB_OISx[iChannel]);
1902__STATIC_INLINE
void LL_TIM_OC_EnableFast(TIM_TypeDef *TIMx, uint32_t Channel)
1904 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1905 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1906 SET_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel]));
1924__STATIC_INLINE
void LL_TIM_OC_DisableFast(TIM_TypeDef *TIMx, uint32_t Channel)
1926 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1927 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1928 CLEAR_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel]));
1946__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledFast(
const TIM_TypeDef *TIMx, uint32_t Channel)
1948 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1949 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1950 uint32_t bitfield = TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel];
1951 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1968__STATIC_INLINE
void LL_TIM_OC_EnablePreload(TIM_TypeDef *TIMx, uint32_t Channel)
1970 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1971 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1972 SET_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel]));
1989__STATIC_INLINE
void LL_TIM_OC_DisablePreload(TIM_TypeDef *TIMx, uint32_t Channel)
1991 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1992 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1993 CLEAR_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel]));
2010__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledPreload(
const TIM_TypeDef *TIMx, uint32_t Channel)
2012 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2013 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2014 uint32_t bitfield = TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel];
2015 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2035__STATIC_INLINE
void LL_TIM_OC_EnableClear(TIM_TypeDef *TIMx, uint32_t Channel)
2037 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2038 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2039 SET_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]));
2058__STATIC_INLINE
void LL_TIM_OC_DisableClear(TIM_TypeDef *TIMx, uint32_t Channel)
2060 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2061 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2062 CLEAR_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]));
2083__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledClear(
const TIM_TypeDef *TIMx, uint32_t Channel)
2085 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2086 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2087 uint32_t bitfield = TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel];
2088 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2102__STATIC_INLINE
void LL_TIM_OC_SetDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime)
2104 MODIFY_REG(TIMx->BDTR, TIM_BDTR_DTG, DeadTime);
2119__STATIC_INLINE
void LL_TIM_OC_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue)
2121 WRITE_REG(TIMx->CCR1, CompareValue);
2136__STATIC_INLINE
void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue)
2138 WRITE_REG(TIMx->CCR2, CompareValue);
2153__STATIC_INLINE
void LL_TIM_OC_SetCompareCH3(TIM_TypeDef *TIMx, uint32_t CompareValue)
2155 WRITE_REG(TIMx->CCR3, CompareValue);
2170__STATIC_INLINE
void LL_TIM_OC_SetCompareCH4(TIM_TypeDef *TIMx, uint32_t CompareValue)
2172 WRITE_REG(TIMx->CCR4, CompareValue);
2186__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH1(
const TIM_TypeDef *TIMx)
2188 return (uint32_t)(READ_REG(TIMx->CCR1));
2202__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH2(
const TIM_TypeDef *TIMx)
2204 return (uint32_t)(READ_REG(TIMx->CCR2));
2218__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH3(
const TIM_TypeDef *TIMx)
2220 return (uint32_t)(READ_REG(TIMx->CCR3));
2234__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH4(
const TIM_TypeDef *TIMx)
2236 return (uint32_t)(READ_REG(TIMx->CCR4));
2281__STATIC_INLINE
void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
2283 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2284 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2285 MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]),
2286 ((Configuration >> 16U) & (TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S)) \
2287 << SHIFT_TAB_ICxx[iChannel]);
2288 MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]),
2289 (Configuration & (TIM_CCER_CC1NP | TIM_CCER_CC1P)) << SHIFT_TAB_CCxP[iChannel]);
2310__STATIC_INLINE
void LL_TIM_IC_SetActiveInput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICActiveInput)
2312 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2313 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2314 MODIFY_REG(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2334__STATIC_INLINE uint32_t LL_TIM_IC_GetActiveInput(
const TIM_TypeDef *TIMx, uint32_t Channel)
2336 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2337 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2338 return ((READ_BIT(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2360__STATIC_INLINE
void LL_TIM_IC_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPrescaler)
2362 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2363 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2364 MODIFY_REG(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel]), (ICPrescaler >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2385__STATIC_INLINE uint32_t LL_TIM_IC_GetPrescaler(
const TIM_TypeDef *TIMx, uint32_t Channel)
2387 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2388 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2389 return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2423__STATIC_INLINE
void LL_TIM_IC_SetFilter(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICFilter)
2425 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2426 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2427 MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel]), (ICFilter >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2460__STATIC_INLINE uint32_t LL_TIM_IC_GetFilter(
const TIM_TypeDef *TIMx, uint32_t Channel)
2462 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2463 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2464 return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2489__STATIC_INLINE
void LL_TIM_IC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPolarity)
2491 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2492 MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]),
2493 ICPolarity << SHIFT_TAB_CCxP[iChannel]);
2517__STATIC_INLINE uint32_t LL_TIM_IC_GetPolarity(
const TIM_TypeDef *TIMx, uint32_t Channel)
2519 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2520 return (READ_BIT(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel])) >>
2521 SHIFT_TAB_CCxP[iChannel]);
2532__STATIC_INLINE
void LL_TIM_IC_EnableXORCombination(TIM_TypeDef *TIMx)
2534 SET_BIT(TIMx->CR2, TIM_CR2_TI1S);
2545__STATIC_INLINE
void LL_TIM_IC_DisableXORCombination(TIM_TypeDef *TIMx)
2547 CLEAR_BIT(TIMx->CR2, TIM_CR2_TI1S);
2558__STATIC_INLINE uint32_t LL_TIM_IC_IsEnabledXORCombination(
const TIM_TypeDef *TIMx)
2560 return ((READ_BIT(TIMx->CR2, TIM_CR2_TI1S) == (TIM_CR2_TI1S)) ? 1UL : 0UL);
2574__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH1(
const TIM_TypeDef *TIMx)
2576 return (uint32_t)(READ_REG(TIMx->CCR1));
2590__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH2(
const TIM_TypeDef *TIMx)
2592 return (uint32_t)(READ_REG(TIMx->CCR2));
2606__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH3(
const TIM_TypeDef *TIMx)
2608 return (uint32_t)(READ_REG(TIMx->CCR3));
2622__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH4(
const TIM_TypeDef *TIMx)
2624 return (uint32_t)(READ_REG(TIMx->CCR4));
2643__STATIC_INLINE
void LL_TIM_EnableExternalClock(TIM_TypeDef *TIMx)
2645 SET_BIT(TIMx->SMCR, TIM_SMCR_ECE);
2656__STATIC_INLINE
void LL_TIM_DisableExternalClock(TIM_TypeDef *TIMx)
2658 CLEAR_BIT(TIMx->SMCR, TIM_SMCR_ECE);
2669__STATIC_INLINE uint32_t LL_TIM_IsEnabledExternalClock(
const TIM_TypeDef *TIMx)
2671 return ((READ_BIT(TIMx->SMCR, TIM_SMCR_ECE) == (TIM_SMCR_ECE)) ? 1UL : 0UL);
2693__STATIC_INLINE
void LL_TIM_SetClockSource(TIM_TypeDef *TIMx, uint32_t ClockSource)
2695 MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS | TIM_SMCR_ECE, ClockSource);
2710__STATIC_INLINE
void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode)
2712 MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, EncoderMode);
2739__STATIC_INLINE
void LL_TIM_SetTriggerOutput(TIM_TypeDef *TIMx, uint32_t TimerSynchronization)
2741 MODIFY_REG(TIMx->CR2, TIM_CR2_MMS, TimerSynchronization);
2757__STATIC_INLINE
void LL_TIM_SetSlaveMode(TIM_TypeDef *TIMx, uint32_t SlaveMode)
2759 MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, SlaveMode);
2779__STATIC_INLINE
void LL_TIM_SetTriggerInput(TIM_TypeDef *TIMx, uint32_t TriggerInput)
2781 MODIFY_REG(TIMx->SMCR, TIM_SMCR_TS, TriggerInput);
2792__STATIC_INLINE
void LL_TIM_EnableMasterSlaveMode(TIM_TypeDef *TIMx)
2794 SET_BIT(TIMx->SMCR, TIM_SMCR_MSM);
2805__STATIC_INLINE
void LL_TIM_DisableMasterSlaveMode(TIM_TypeDef *TIMx)
2807 CLEAR_BIT(TIMx->SMCR, TIM_SMCR_MSM);
2818__STATIC_INLINE uint32_t LL_TIM_IsEnabledMasterSlaveMode(
const TIM_TypeDef *TIMx)
2820 return ((READ_BIT(TIMx->SMCR, TIM_SMCR_MSM) == (TIM_SMCR_MSM)) ? 1UL : 0UL);
2858__STATIC_INLINE
void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler,
2861 MODIFY_REG(TIMx->SMCR, TIM_SMCR_ETP | TIM_SMCR_ETPS | TIM_SMCR_ETF, ETRPolarity | ETRPrescaler | ETRFilter);
2879__STATIC_INLINE
void LL_TIM_EnableBRK(TIM_TypeDef *TIMx)
2881 __IO uint32_t tmpreg;
2882 SET_BIT(TIMx->BDTR, TIM_BDTR_BKE);
2884 tmpreg = READ_REG(TIMx->BDTR);
2896__STATIC_INLINE
void LL_TIM_DisableBRK(TIM_TypeDef *TIMx)
2898 __IO uint32_t tmpreg;
2899 CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BKE);
2901 tmpreg = READ_REG(TIMx->BDTR);
2916__STATIC_INLINE
void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity)
2918 __IO uint32_t tmpreg;
2919 MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP, BreakPolarity);
2921 tmpreg = READ_REG(TIMx->BDTR);
2940__STATIC_INLINE
void LL_TIM_SetOffStates(TIM_TypeDef *TIMx, uint32_t OffStateIdle, uint32_t OffStateRun)
2942 MODIFY_REG(TIMx->BDTR, TIM_BDTR_OSSI | TIM_BDTR_OSSR, OffStateIdle | OffStateRun);
2953__STATIC_INLINE
void LL_TIM_EnableAutomaticOutput(TIM_TypeDef *TIMx)
2955 SET_BIT(TIMx->BDTR, TIM_BDTR_AOE);
2966__STATIC_INLINE
void LL_TIM_DisableAutomaticOutput(TIM_TypeDef *TIMx)
2968 CLEAR_BIT(TIMx->BDTR, TIM_BDTR_AOE);
2979__STATIC_INLINE uint32_t LL_TIM_IsEnabledAutomaticOutput(
const TIM_TypeDef *TIMx)
2981 return ((READ_BIT(TIMx->BDTR, TIM_BDTR_AOE) == (TIM_BDTR_AOE)) ? 1UL : 0UL);
2994__STATIC_INLINE
void LL_TIM_EnableAllOutputs(TIM_TypeDef *TIMx)
2996 SET_BIT(TIMx->BDTR, TIM_BDTR_MOE);
3009__STATIC_INLINE
void LL_TIM_DisableAllOutputs(TIM_TypeDef *TIMx)
3011 CLEAR_BIT(TIMx->BDTR, TIM_BDTR_MOE);
3022__STATIC_INLINE uint32_t LL_TIM_IsEnabledAllOutputs(
const TIM_TypeDef *TIMx)
3024 return ((READ_BIT(TIMx->BDTR, TIM_BDTR_MOE) == (TIM_BDTR_MOE)) ? 1UL : 0UL);
3081__STATIC_INLINE
void LL_TIM_ConfigDMABurst(TIM_TypeDef *TIMx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength)
3083 MODIFY_REG(TIMx->DCR, (TIM_DCR_DBL | TIM_DCR_DBA), (DMABurstBaseAddress | DMABurstLength));
3151__STATIC_INLINE
void LL_TIM_SetRemap(TIM_TypeDef *TIMx, uint32_t Remap)
3153#if defined(LPTIM_OR_TIM1_ITR2_RMP) && defined(LPTIM_OR_TIM5_ITR1_RMP) && defined(LPTIM_OR_TIM9_ITR1_RMP)
3154 if ((Remap & LL_TIM_LPTIM_REMAP_MASK) == LL_TIM_LPTIM_REMAP_MASK)
3157 SET_BIT(RCC->APB1ENR, RCC_APB1ENR_LPTIM1EN);
3158 MODIFY_REG(LPTIM1->OR,
3159 (LPTIM_OR_TIM1_ITR2_RMP | LPTIM_OR_TIM5_ITR1_RMP | LPTIM_OR_TIM9_ITR1_RMP),
3160 Remap & ~(LL_TIM_LPTIM_REMAP_MASK));
3164 MODIFY_REG(TIMx->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK));
3167 MODIFY_REG(TIMx->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK));
3184__STATIC_INLINE
void LL_TIM_ClearFlag_UPDATE(TIM_TypeDef *TIMx)
3186 WRITE_REG(TIMx->SR, ~(TIM_SR_UIF));
3195__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_UPDATE(
const TIM_TypeDef *TIMx)
3197 return ((READ_BIT(TIMx->SR, TIM_SR_UIF) == (TIM_SR_UIF)) ? 1UL : 0UL);
3206__STATIC_INLINE
void LL_TIM_ClearFlag_CC1(TIM_TypeDef *TIMx)
3208 WRITE_REG(TIMx->SR, ~(TIM_SR_CC1IF));
3217__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1(
const TIM_TypeDef *TIMx)
3219 return ((READ_BIT(TIMx->SR, TIM_SR_CC1IF) == (TIM_SR_CC1IF)) ? 1UL : 0UL);
3228__STATIC_INLINE
void LL_TIM_ClearFlag_CC2(TIM_TypeDef *TIMx)
3230 WRITE_REG(TIMx->SR, ~(TIM_SR_CC2IF));
3239__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2(
const TIM_TypeDef *TIMx)
3241 return ((READ_BIT(TIMx->SR, TIM_SR_CC2IF) == (TIM_SR_CC2IF)) ? 1UL : 0UL);
3250__STATIC_INLINE
void LL_TIM_ClearFlag_CC3(TIM_TypeDef *TIMx)
3252 WRITE_REG(TIMx->SR, ~(TIM_SR_CC3IF));
3261__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3(
const TIM_TypeDef *TIMx)
3263 return ((READ_BIT(TIMx->SR, TIM_SR_CC3IF) == (TIM_SR_CC3IF)) ? 1UL : 0UL);
3272__STATIC_INLINE
void LL_TIM_ClearFlag_CC4(TIM_TypeDef *TIMx)
3274 WRITE_REG(TIMx->SR, ~(TIM_SR_CC4IF));
3283__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4(
const TIM_TypeDef *TIMx)
3285 return ((READ_BIT(TIMx->SR, TIM_SR_CC4IF) == (TIM_SR_CC4IF)) ? 1UL : 0UL);
3294__STATIC_INLINE
void LL_TIM_ClearFlag_COM(TIM_TypeDef *TIMx)
3296 WRITE_REG(TIMx->SR, ~(TIM_SR_COMIF));
3305__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_COM(
const TIM_TypeDef *TIMx)
3307 return ((READ_BIT(TIMx->SR, TIM_SR_COMIF) == (TIM_SR_COMIF)) ? 1UL : 0UL);
3316__STATIC_INLINE
void LL_TIM_ClearFlag_TRIG(TIM_TypeDef *TIMx)
3318 WRITE_REG(TIMx->SR, ~(TIM_SR_TIF));
3327__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_TRIG(
const TIM_TypeDef *TIMx)
3329 return ((READ_BIT(TIMx->SR, TIM_SR_TIF) == (TIM_SR_TIF)) ? 1UL : 0UL);
3338__STATIC_INLINE
void LL_TIM_ClearFlag_BRK(TIM_TypeDef *TIMx)
3340 WRITE_REG(TIMx->SR, ~(TIM_SR_BIF));
3349__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK(
const TIM_TypeDef *TIMx)
3351 return ((READ_BIT(TIMx->SR, TIM_SR_BIF) == (TIM_SR_BIF)) ? 1UL : 0UL);
3360__STATIC_INLINE
void LL_TIM_ClearFlag_CC1OVR(TIM_TypeDef *TIMx)
3362 WRITE_REG(TIMx->SR, ~(TIM_SR_CC1OF));
3372__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1OVR(
const TIM_TypeDef *TIMx)
3374 return ((READ_BIT(TIMx->SR, TIM_SR_CC1OF) == (TIM_SR_CC1OF)) ? 1UL : 0UL);
3383__STATIC_INLINE
void LL_TIM_ClearFlag_CC2OVR(TIM_TypeDef *TIMx)
3385 WRITE_REG(TIMx->SR, ~(TIM_SR_CC2OF));
3395__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2OVR(
const TIM_TypeDef *TIMx)
3397 return ((READ_BIT(TIMx->SR, TIM_SR_CC2OF) == (TIM_SR_CC2OF)) ? 1UL : 0UL);
3406__STATIC_INLINE
void LL_TIM_ClearFlag_CC3OVR(TIM_TypeDef *TIMx)
3408 WRITE_REG(TIMx->SR, ~(TIM_SR_CC3OF));
3418__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3OVR(
const TIM_TypeDef *TIMx)
3420 return ((READ_BIT(TIMx->SR, TIM_SR_CC3OF) == (TIM_SR_CC3OF)) ? 1UL : 0UL);
3429__STATIC_INLINE
void LL_TIM_ClearFlag_CC4OVR(TIM_TypeDef *TIMx)
3431 WRITE_REG(TIMx->SR, ~(TIM_SR_CC4OF));
3441__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4OVR(
const TIM_TypeDef *TIMx)
3443 return ((READ_BIT(TIMx->SR, TIM_SR_CC4OF) == (TIM_SR_CC4OF)) ? 1UL : 0UL);
3459__STATIC_INLINE
void LL_TIM_EnableIT_UPDATE(TIM_TypeDef *TIMx)
3461 SET_BIT(TIMx->DIER, TIM_DIER_UIE);
3470__STATIC_INLINE
void LL_TIM_DisableIT_UPDATE(TIM_TypeDef *TIMx)
3472 CLEAR_BIT(TIMx->DIER, TIM_DIER_UIE);
3481__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_UPDATE(
const TIM_TypeDef *TIMx)
3483 return ((READ_BIT(TIMx->DIER, TIM_DIER_UIE) == (TIM_DIER_UIE)) ? 1UL : 0UL);
3492__STATIC_INLINE
void LL_TIM_EnableIT_CC1(TIM_TypeDef *TIMx)
3494 SET_BIT(TIMx->DIER, TIM_DIER_CC1IE);
3503__STATIC_INLINE
void LL_TIM_DisableIT_CC1(TIM_TypeDef *TIMx)
3505 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1IE);
3514__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC1(
const TIM_TypeDef *TIMx)
3516 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1IE) == (TIM_DIER_CC1IE)) ? 1UL : 0UL);
3525__STATIC_INLINE
void LL_TIM_EnableIT_CC2(TIM_TypeDef *TIMx)
3527 SET_BIT(TIMx->DIER, TIM_DIER_CC2IE);
3536__STATIC_INLINE
void LL_TIM_DisableIT_CC2(TIM_TypeDef *TIMx)
3538 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2IE);
3547__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC2(
const TIM_TypeDef *TIMx)
3549 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2IE) == (TIM_DIER_CC2IE)) ? 1UL : 0UL);
3558__STATIC_INLINE
void LL_TIM_EnableIT_CC3(TIM_TypeDef *TIMx)
3560 SET_BIT(TIMx->DIER, TIM_DIER_CC3IE);
3569__STATIC_INLINE
void LL_TIM_DisableIT_CC3(TIM_TypeDef *TIMx)
3571 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3IE);
3580__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC3(
const TIM_TypeDef *TIMx)
3582 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3IE) == (TIM_DIER_CC3IE)) ? 1UL : 0UL);
3591__STATIC_INLINE
void LL_TIM_EnableIT_CC4(TIM_TypeDef *TIMx)
3593 SET_BIT(TIMx->DIER, TIM_DIER_CC4IE);
3602__STATIC_INLINE
void LL_TIM_DisableIT_CC4(TIM_TypeDef *TIMx)
3604 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4IE);
3613__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC4(
const TIM_TypeDef *TIMx)
3615 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4IE) == (TIM_DIER_CC4IE)) ? 1UL : 0UL);
3624__STATIC_INLINE
void LL_TIM_EnableIT_COM(TIM_TypeDef *TIMx)
3626 SET_BIT(TIMx->DIER, TIM_DIER_COMIE);
3635__STATIC_INLINE
void LL_TIM_DisableIT_COM(TIM_TypeDef *TIMx)
3637 CLEAR_BIT(TIMx->DIER, TIM_DIER_COMIE);
3646__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_COM(
const TIM_TypeDef *TIMx)
3648 return ((READ_BIT(TIMx->DIER, TIM_DIER_COMIE) == (TIM_DIER_COMIE)) ? 1UL : 0UL);
3657__STATIC_INLINE
void LL_TIM_EnableIT_TRIG(TIM_TypeDef *TIMx)
3659 SET_BIT(TIMx->DIER, TIM_DIER_TIE);
3668__STATIC_INLINE
void LL_TIM_DisableIT_TRIG(TIM_TypeDef *TIMx)
3670 CLEAR_BIT(TIMx->DIER, TIM_DIER_TIE);
3679__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TRIG(
const TIM_TypeDef *TIMx)
3681 return ((READ_BIT(TIMx->DIER, TIM_DIER_TIE) == (TIM_DIER_TIE)) ? 1UL : 0UL);
3690__STATIC_INLINE
void LL_TIM_EnableIT_BRK(TIM_TypeDef *TIMx)
3692 SET_BIT(TIMx->DIER, TIM_DIER_BIE);
3701__STATIC_INLINE
void LL_TIM_DisableIT_BRK(TIM_TypeDef *TIMx)
3703 CLEAR_BIT(TIMx->DIER, TIM_DIER_BIE);
3712__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_BRK(
const TIM_TypeDef *TIMx)
3714 return ((READ_BIT(TIMx->DIER, TIM_DIER_BIE) == (TIM_DIER_BIE)) ? 1UL : 0UL);
3730__STATIC_INLINE
void LL_TIM_EnableDMAReq_UPDATE(TIM_TypeDef *TIMx)
3732 SET_BIT(TIMx->DIER, TIM_DIER_UDE);
3741__STATIC_INLINE
void LL_TIM_DisableDMAReq_UPDATE(TIM_TypeDef *TIMx)
3743 CLEAR_BIT(TIMx->DIER, TIM_DIER_UDE);
3752__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_UPDATE(
const TIM_TypeDef *TIMx)
3754 return ((READ_BIT(TIMx->DIER, TIM_DIER_UDE) == (TIM_DIER_UDE)) ? 1UL : 0UL);
3763__STATIC_INLINE
void LL_TIM_EnableDMAReq_CC1(TIM_TypeDef *TIMx)
3765 SET_BIT(TIMx->DIER, TIM_DIER_CC1DE);
3774__STATIC_INLINE
void LL_TIM_DisableDMAReq_CC1(TIM_TypeDef *TIMx)
3776 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1DE);
3785__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC1(
const TIM_TypeDef *TIMx)
3787 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1DE) == (TIM_DIER_CC1DE)) ? 1UL : 0UL);
3796__STATIC_INLINE
void LL_TIM_EnableDMAReq_CC2(TIM_TypeDef *TIMx)
3798 SET_BIT(TIMx->DIER, TIM_DIER_CC2DE);
3807__STATIC_INLINE
void LL_TIM_DisableDMAReq_CC2(TIM_TypeDef *TIMx)
3809 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2DE);
3818__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC2(
const TIM_TypeDef *TIMx)
3820 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2DE) == (TIM_DIER_CC2DE)) ? 1UL : 0UL);
3829__STATIC_INLINE
void LL_TIM_EnableDMAReq_CC3(TIM_TypeDef *TIMx)
3831 SET_BIT(TIMx->DIER, TIM_DIER_CC3DE);
3840__STATIC_INLINE
void LL_TIM_DisableDMAReq_CC3(TIM_TypeDef *TIMx)
3842 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3DE);
3851__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC3(
const TIM_TypeDef *TIMx)
3853 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3DE) == (TIM_DIER_CC3DE)) ? 1UL : 0UL);
3862__STATIC_INLINE
void LL_TIM_EnableDMAReq_CC4(TIM_TypeDef *TIMx)
3864 SET_BIT(TIMx->DIER, TIM_DIER_CC4DE);
3873__STATIC_INLINE
void LL_TIM_DisableDMAReq_CC4(TIM_TypeDef *TIMx)
3875 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4DE);
3884__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC4(
const TIM_TypeDef *TIMx)
3886 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4DE) == (TIM_DIER_CC4DE)) ? 1UL : 0UL);
3895__STATIC_INLINE
void LL_TIM_EnableDMAReq_COM(TIM_TypeDef *TIMx)
3897 SET_BIT(TIMx->DIER, TIM_DIER_COMDE);
3906__STATIC_INLINE
void LL_TIM_DisableDMAReq_COM(TIM_TypeDef *TIMx)
3908 CLEAR_BIT(TIMx->DIER, TIM_DIER_COMDE);
3917__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_COM(
const TIM_TypeDef *TIMx)
3919 return ((READ_BIT(TIMx->DIER, TIM_DIER_COMDE) == (TIM_DIER_COMDE)) ? 1UL : 0UL);
3928__STATIC_INLINE
void LL_TIM_EnableDMAReq_TRIG(TIM_TypeDef *TIMx)
3930 SET_BIT(TIMx->DIER, TIM_DIER_TDE);
3939__STATIC_INLINE
void LL_TIM_DisableDMAReq_TRIG(TIM_TypeDef *TIMx)
3941 CLEAR_BIT(TIMx->DIER, TIM_DIER_TDE);
3950__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_TRIG(
const TIM_TypeDef *TIMx)
3952 return ((READ_BIT(TIMx->DIER, TIM_DIER_TDE) == (TIM_DIER_TDE)) ? 1UL : 0UL);
3968__STATIC_INLINE
void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx)
3970 SET_BIT(TIMx->EGR, TIM_EGR_UG);
3979__STATIC_INLINE
void LL_TIM_GenerateEvent_CC1(TIM_TypeDef *TIMx)
3981 SET_BIT(TIMx->EGR, TIM_EGR_CC1G);
3990__STATIC_INLINE
void LL_TIM_GenerateEvent_CC2(TIM_TypeDef *TIMx)
3992 SET_BIT(TIMx->EGR, TIM_EGR_CC2G);
4001__STATIC_INLINE
void LL_TIM_GenerateEvent_CC3(TIM_TypeDef *TIMx)
4003 SET_BIT(TIMx->EGR, TIM_EGR_CC3G);
4012__STATIC_INLINE
void LL_TIM_GenerateEvent_CC4(TIM_TypeDef *TIMx)
4014 SET_BIT(TIMx->EGR, TIM_EGR_CC4G);
4023__STATIC_INLINE
void LL_TIM_GenerateEvent_COM(TIM_TypeDef *TIMx)
4025 SET_BIT(TIMx->EGR, TIM_EGR_COMG);
4034__STATIC_INLINE
void LL_TIM_GenerateEvent_TRIG(TIM_TypeDef *TIMx)
4036 SET_BIT(TIMx->EGR, TIM_EGR_TG);
4045__STATIC_INLINE
void LL_TIM_GenerateEvent_BRK(TIM_TypeDef *TIMx)
4047 SET_BIT(TIMx->EGR, TIM_EGR_BG);
4054#if defined(USE_FULL_LL_DRIVER)
4059ErrorStatus LL_TIM_DeInit(
const TIM_TypeDef *TIMx);
4060void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct);
4061ErrorStatus LL_TIM_Init(TIM_TypeDef *TIMx,
const LL_TIM_InitTypeDef *TIM_InitStruct);
4062void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
4063ErrorStatus LL_TIM_OC_Init(TIM_TypeDef *TIMx, uint32_t Channel,
const LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
4064void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct);
4065ErrorStatus LL_TIM_IC_Init(TIM_TypeDef *TIMx, uint32_t Channel,
const LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct);
4066void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
4067ErrorStatus LL_TIM_ENCODER_Init(TIM_TypeDef *TIMx,
const LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
4068void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
4069ErrorStatus LL_TIM_HALLSENSOR_Init(TIM_TypeDef *TIMx,
const LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
4070void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct);
4071ErrorStatus LL_TIM_BDTR_Init(TIM_TypeDef *TIMx,
const LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct);