20#ifndef __STM32H7xx_LL_TIM_H
21#define __STM32H7xx_LL_TIM_H
34#if defined (TIM1) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM6) || defined (TIM7) || defined (TIM8) || defined (TIM12) || defined (TIM13) || defined (TIM14) || defined (TIM15) || defined (TIM16) || defined (TIM17) || defined (TIM23) || defined (TIM24)
45static const uint8_t OFFSET_TAB_CCMRx[] =
58static const uint8_t SHIFT_TAB_OCxx[] =
71static const uint8_t SHIFT_TAB_ICxx[] =
84static const uint8_t SHIFT_TAB_CCxP[] =
97static const uint8_t SHIFT_TAB_OISx[] =
118#if defined(TIM_BREAK_INPUT_SUPPORT)
120#define TIM_POSITION_BRK_SOURCE (POSITION_VAL(Source) & 0x1FUL)
123#define TIMx_AF1_BKINP TIM1_AF1_BKINP
124#define TIMx_AF1_ETRSEL TIM1_AF1_ETRSEL
129#define DT_DELAY_1 ((uint8_t)0x7F)
130#define DT_DELAY_2 ((uint8_t)0x3F)
131#define DT_DELAY_3 ((uint8_t)0x1F)
132#define DT_DELAY_4 ((uint8_t)0x1F)
135#define DT_RANGE_1 ((uint8_t)0x00)
136#define DT_RANGE_2 ((uint8_t)0x80)
137#define DT_RANGE_3 ((uint8_t)0xC0)
138#define DT_RANGE_4 ((uint8_t)0xE0)
162#define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \
163 (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\
164 ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\
165 ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\
166 ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\
167 ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\
168 ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U :\
169 ((__CHANNEL__) == LL_TIM_CHANNEL_CH4) ? 6U :\
170 ((__CHANNEL__) == LL_TIM_CHANNEL_CH5) ? 7U : 8U)
180#define TIM_CALC_DTS(__TIMCLK__, __CKD__) \
181 (((__CKD__) == LL_TIM_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TIMCLK__)) : \
182 ((__CKD__) == LL_TIM_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TIMCLK__) >> 1U)) : \
183 ((uint64_t)1000000000000U/((__TIMCLK__) >> 2U)))
190#if defined(USE_FULL_LL_DRIVER)
206 uint32_t CounterMode;
221 uint32_t ClockDivision;
227 uint32_t RepetitionCounter;
265 uint32_t CompareValue;
277 uint32_t OCNPolarity;
284 uint32_t OCIdleState;
290 uint32_t OCNIdleState;
295} LL_TIM_OC_InitTypeDef;
310 uint32_t ICActiveInput;
316 uint32_t ICPrescaler;
327} LL_TIM_IC_InitTypeDef;
335 uint32_t EncoderMode;
341 uint32_t IC1Polarity;
347 uint32_t IC1ActiveInput;
353 uint32_t IC1Prescaler;
365 uint32_t IC2Polarity;
371 uint32_t IC2ActiveInput;
377 uint32_t IC2Prescaler;
389} LL_TIM_ENCODER_InitTypeDef;
397 uint32_t IC1Polarity;
403 uint32_t IC1Prescaler;
418 uint32_t CommutationDelay;
425} LL_TIM_HALLSENSOR_InitTypeDef;
475 uint32_t BreakPolarity;
484 uint32_t BreakFilter;
493#if defined(TIM_BDTR_BKBID)
494 uint32_t BreakAFMode;
506 uint32_t Break2State;
515 uint32_t Break2Polarity;
524 uint32_t Break2Filter;
532#if defined(TIM_BDTR_BK2BID)
534 uint32_t Break2AFMode;
546 uint32_t AutomaticOutput;
554} LL_TIM_BDTR_InitTypeDef;
570#define LL_TIM_SR_UIF TIM_SR_UIF
571#define LL_TIM_SR_CC1IF TIM_SR_CC1IF
572#define LL_TIM_SR_CC2IF TIM_SR_CC2IF
573#define LL_TIM_SR_CC3IF TIM_SR_CC3IF
574#define LL_TIM_SR_CC4IF TIM_SR_CC4IF
575#define LL_TIM_SR_CC5IF TIM_SR_CC5IF
576#define LL_TIM_SR_CC6IF TIM_SR_CC6IF
577#define LL_TIM_SR_COMIF TIM_SR_COMIF
578#define LL_TIM_SR_TIF TIM_SR_TIF
579#define LL_TIM_SR_BIF TIM_SR_BIF
580#define LL_TIM_SR_B2IF TIM_SR_B2IF
581#define LL_TIM_SR_CC1OF TIM_SR_CC1OF
582#define LL_TIM_SR_CC2OF TIM_SR_CC2OF
583#define LL_TIM_SR_CC3OF TIM_SR_CC3OF
584#define LL_TIM_SR_CC4OF TIM_SR_CC4OF
585#define LL_TIM_SR_SBIF TIM_SR_SBIF
590#if defined(USE_FULL_LL_DRIVER)
594#define LL_TIM_BREAK_DISABLE 0x00000000U
595#define LL_TIM_BREAK_ENABLE TIM_BDTR_BKE
603#define LL_TIM_BREAK2_DISABLE 0x00000000U
604#define LL_TIM_BREAK2_ENABLE TIM_BDTR_BK2E
612#define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
613#define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
623#define LL_TIM_DIER_UIE TIM_DIER_UIE
624#define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE
625#define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE
626#define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE
627#define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE
628#define LL_TIM_DIER_COMIE TIM_DIER_COMIE
629#define LL_TIM_DIER_TIE TIM_DIER_TIE
630#define LL_TIM_DIER_BIE TIM_DIER_BIE
638#define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U
639#define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS
647#define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM
648#define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U
656#define LL_TIM_COUNTERMODE_UP 0x00000000U
657#define LL_TIM_COUNTERMODE_DOWN TIM_CR1_DIR
658#define LL_TIM_COUNTERMODE_CENTER_DOWN TIM_CR1_CMS_0
659#define LL_TIM_COUNTERMODE_CENTER_UP TIM_CR1_CMS_1
660#define LL_TIM_COUNTERMODE_CENTER_UP_DOWN TIM_CR1_CMS
668#define LL_TIM_CLOCKDIVISION_DIV1 0x00000000U
669#define LL_TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
670#define LL_TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
678#define LL_TIM_COUNTERDIRECTION_UP 0x00000000U
679#define LL_TIM_COUNTERDIRECTION_DOWN TIM_CR1_DIR
687#define LL_TIM_CCUPDATESOURCE_COMG_ONLY 0x00000000U
688#define LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI TIM_CR2_CCUS
696#define LL_TIM_CCDMAREQUEST_CC 0x00000000U
697#define LL_TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
705#define LL_TIM_LOCKLEVEL_OFF 0x00000000U
706#define LL_TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
707#define LL_TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
708#define LL_TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
716#define LL_TIM_CHANNEL_CH1 TIM_CCER_CC1E
717#define LL_TIM_CHANNEL_CH1N TIM_CCER_CC1NE
718#define LL_TIM_CHANNEL_CH2 TIM_CCER_CC2E
719#define LL_TIM_CHANNEL_CH2N TIM_CCER_CC2NE
720#define LL_TIM_CHANNEL_CH3 TIM_CCER_CC3E
721#define LL_TIM_CHANNEL_CH3N TIM_CCER_CC3NE
722#define LL_TIM_CHANNEL_CH4 TIM_CCER_CC4E
723#define LL_TIM_CHANNEL_CH5 TIM_CCER_CC5E
724#define LL_TIM_CHANNEL_CH6 TIM_CCER_CC6E
729#if defined(USE_FULL_LL_DRIVER)
733#define LL_TIM_OCSTATE_DISABLE 0x00000000U
734#define LL_TIM_OCSTATE_ENABLE TIM_CCER_CC1E
743#define LL_TIM_OCMODE_ASSYMETRIC_PWM1 LL_TIM_OCMODE_ASYMMETRIC_PWM1
744#define LL_TIM_OCMODE_ASSYMETRIC_PWM2 LL_TIM_OCMODE_ASYMMETRIC_PWM2
752#define LL_TIM_OCMODE_FROZEN 0x00000000U
753#define LL_TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
754#define LL_TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
755#define LL_TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
756#define LL_TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
757#define LL_TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
758#define LL_TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
759#define LL_TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
760#define LL_TIM_OCMODE_RETRIG_OPM1 TIM_CCMR1_OC1M_3
761#define LL_TIM_OCMODE_RETRIG_OPM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0)
762#define LL_TIM_OCMODE_COMBINED_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_2)
763#define LL_TIM_OCMODE_COMBINED_PWM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_2)
764#define LL_TIM_OCMODE_ASYMMETRIC_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2)
765#define LL_TIM_OCMODE_ASYMMETRIC_PWM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M)
773#define LL_TIM_OCPOLARITY_HIGH 0x00000000U
774#define LL_TIM_OCPOLARITY_LOW TIM_CCER_CC1P
782#define LL_TIM_OCIDLESTATE_LOW 0x00000000U
783#define LL_TIM_OCIDLESTATE_HIGH TIM_CR2_OIS1
791#define LL_TIM_GROUPCH5_NONE 0x00000000U
792#define LL_TIM_GROUPCH5_OC1REFC TIM_CCR5_GC5C1
793#define LL_TIM_GROUPCH5_OC2REFC TIM_CCR5_GC5C2
794#define LL_TIM_GROUPCH5_OC3REFC TIM_CCR5_GC5C3
802#define LL_TIM_ACTIVEINPUT_DIRECTTI (TIM_CCMR1_CC1S_0 << 16U)
803#define LL_TIM_ACTIVEINPUT_INDIRECTTI (TIM_CCMR1_CC1S_1 << 16U)
804#define LL_TIM_ACTIVEINPUT_TRC (TIM_CCMR1_CC1S << 16U)
812#define LL_TIM_ICPSC_DIV1 0x00000000U
813#define LL_TIM_ICPSC_DIV2 (TIM_CCMR1_IC1PSC_0 << 16U)
814#define LL_TIM_ICPSC_DIV4 (TIM_CCMR1_IC1PSC_1 << 16U)
815#define LL_TIM_ICPSC_DIV8 (TIM_CCMR1_IC1PSC << 16U)
823#define LL_TIM_IC_FILTER_FDIV1 0x00000000U
824#define LL_TIM_IC_FILTER_FDIV1_N2 (TIM_CCMR1_IC1F_0 << 16U)
825#define LL_TIM_IC_FILTER_FDIV1_N4 (TIM_CCMR1_IC1F_1 << 16U)
826#define LL_TIM_IC_FILTER_FDIV1_N8 ((TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
827#define LL_TIM_IC_FILTER_FDIV2_N6 (TIM_CCMR1_IC1F_2 << 16U)
828#define LL_TIM_IC_FILTER_FDIV2_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
829#define LL_TIM_IC_FILTER_FDIV4_N6 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
830#define LL_TIM_IC_FILTER_FDIV4_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
831#define LL_TIM_IC_FILTER_FDIV8_N6 (TIM_CCMR1_IC1F_3 << 16U)
832#define LL_TIM_IC_FILTER_FDIV8_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_0) << 16U)
833#define LL_TIM_IC_FILTER_FDIV16_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1) << 16U)
834#define LL_TIM_IC_FILTER_FDIV16_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
835#define LL_TIM_IC_FILTER_FDIV16_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2) << 16U)
836#define LL_TIM_IC_FILTER_FDIV32_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
837#define LL_TIM_IC_FILTER_FDIV32_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
838#define LL_TIM_IC_FILTER_FDIV32_N8 (TIM_CCMR1_IC1F << 16U)
846#define LL_TIM_IC_POLARITY_RISING 0x00000000U
847#define LL_TIM_IC_POLARITY_FALLING TIM_CCER_CC1P
848#define LL_TIM_IC_POLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
856#define LL_TIM_CLOCKSOURCE_INTERNAL 0x00000000U
857#define LL_TIM_CLOCKSOURCE_EXT_MODE1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
858#define LL_TIM_CLOCKSOURCE_EXT_MODE2 TIM_SMCR_ECE
866#define LL_TIM_ENCODERMODE_X2_TI1 TIM_SMCR_SMS_0
867#define LL_TIM_ENCODERMODE_X2_TI2 TIM_SMCR_SMS_1
868#define LL_TIM_ENCODERMODE_X4_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
876#define LL_TIM_TRGO_RESET 0x00000000U
877#define LL_TIM_TRGO_ENABLE TIM_CR2_MMS_0
878#define LL_TIM_TRGO_UPDATE TIM_CR2_MMS_1
879#define LL_TIM_TRGO_CC1IF (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
880#define LL_TIM_TRGO_OC1REF TIM_CR2_MMS_2
881#define LL_TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
882#define LL_TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
883#define LL_TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
891#define LL_TIM_TRGO2_RESET 0x00000000U
892#define LL_TIM_TRGO2_ENABLE TIM_CR2_MMS2_0
893#define LL_TIM_TRGO2_UPDATE TIM_CR2_MMS2_1
894#define LL_TIM_TRGO2_CC1F (TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
895#define LL_TIM_TRGO2_OC1 TIM_CR2_MMS2_2
896#define LL_TIM_TRGO2_OC2 (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0)
897#define LL_TIM_TRGO2_OC3 (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1)
898#define LL_TIM_TRGO2_OC4 (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
899#define LL_TIM_TRGO2_OC5 TIM_CR2_MMS2_3
900#define LL_TIM_TRGO2_OC6 (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_0)
901#define LL_TIM_TRGO2_OC4_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1)
902#define LL_TIM_TRGO2_OC6_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
903#define LL_TIM_TRGO2_OC4_RISING_OC6_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2)
904#define LL_TIM_TRGO2_OC4_RISING_OC6_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0)
905#define LL_TIM_TRGO2_OC5_RISING_OC6_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 |TIM_CR2_MMS2_1)
906#define LL_TIM_TRGO2_OC5_RISING_OC6_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
914#define LL_TIM_SLAVEMODE_DISABLED 0x00000000U
915#define LL_TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
916#define LL_TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
917#define LL_TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
918#define LL_TIM_SLAVEMODE_COMBINED_RESETTRIGGER TIM_SMCR_SMS_3
926#define LL_TIM_TS_ITR0 0x00000000U
927#define LL_TIM_TS_ITR1 TIM_SMCR_TS_0
928#define LL_TIM_TS_ITR2 TIM_SMCR_TS_1
929#define LL_TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
930#define LL_TIM_TS_ITR4 (TIM_SMCR_TS_3)
931#define LL_TIM_TS_ITR5 (TIM_SMCR_TS_0 | TIM_SMCR_TS_3)
932#define LL_TIM_TS_ITR6 (TIM_SMCR_TS_1 | TIM_SMCR_TS_3)
933#define LL_TIM_TS_ITR7 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_3)
934#define LL_TIM_TS_ITR8 (TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
935#define LL_TIM_TS_ITR9 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
936#define LL_TIM_TS_ITR10 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
937#define LL_TIM_TS_ITR11 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
938#define LL_TIM_TS_ITR12 (TIM_SMCR_TS_4)
939#define LL_TIM_TS_ITR13 (TIM_SMCR_TS_0 | TIM_SMCR_TS_4)
940#define LL_TIM_TS_TI1F_ED TIM_SMCR_TS_2
941#define LL_TIM_TS_TI1FP1 (TIM_SMCR_TS_2 | TIM_SMCR_TS_0)
942#define LL_TIM_TS_TI2FP2 (TIM_SMCR_TS_2 | TIM_SMCR_TS_1)
943#define LL_TIM_TS_ETRF (TIM_SMCR_TS_2 | TIM_SMCR_TS_1 | TIM_SMCR_TS_0)
951#define LL_TIM_ETR_POLARITY_NONINVERTED 0x00000000U
952#define LL_TIM_ETR_POLARITY_INVERTED TIM_SMCR_ETP
960#define LL_TIM_ETR_PRESCALER_DIV1 0x00000000U
961#define LL_TIM_ETR_PRESCALER_DIV2 TIM_SMCR_ETPS_0
962#define LL_TIM_ETR_PRESCALER_DIV4 TIM_SMCR_ETPS_1
963#define LL_TIM_ETR_PRESCALER_DIV8 TIM_SMCR_ETPS
971#define LL_TIM_ETR_FILTER_FDIV1 0x00000000U
972#define LL_TIM_ETR_FILTER_FDIV1_N2 TIM_SMCR_ETF_0
973#define LL_TIM_ETR_FILTER_FDIV1_N4 TIM_SMCR_ETF_1
974#define LL_TIM_ETR_FILTER_FDIV1_N8 (TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
975#define LL_TIM_ETR_FILTER_FDIV2_N6 TIM_SMCR_ETF_2
976#define LL_TIM_ETR_FILTER_FDIV2_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
977#define LL_TIM_ETR_FILTER_FDIV4_N6 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
978#define LL_TIM_ETR_FILTER_FDIV4_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
979#define LL_TIM_ETR_FILTER_FDIV8_N6 TIM_SMCR_ETF_3
980#define LL_TIM_ETR_FILTER_FDIV8_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_0)
981#define LL_TIM_ETR_FILTER_FDIV16_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1)
982#define LL_TIM_ETR_FILTER_FDIV16_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
983#define LL_TIM_ETR_FILTER_FDIV16_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2)
984#define LL_TIM_ETR_FILTER_FDIV32_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
985#define LL_TIM_ETR_FILTER_FDIV32_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
986#define LL_TIM_ETR_FILTER_FDIV32_N8 TIM_SMCR_ETF
991#define LL_TIM_TIM1_ETRSOURCE_GPIO 0x00000000U
992#define LL_TIM_TIM1_ETRSOURCE_COMP1 TIM1_AF1_ETRSEL_0
993#define LL_TIM_TIM1_ETRSOURCE_COMP2 TIM1_AF1_ETRSEL_1
994#define LL_TIM_TIM1_ETRSOURCE_ADC1_AWD1 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0)
995#define LL_TIM_TIM1_ETRSOURCE_ADC1_AWD2 (TIM1_AF1_ETRSEL_2)
996#define LL_TIM_TIM1_ETRSOURCE_ADC1_AWD3 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0)
997#define LL_TIM_TIM1_ETRSOURCE_ADC3_AWD1 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1)
998#define LL_TIM_TIM1_ETRSOURCE_ADC3_AWD2 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0)
999#define LL_TIM_TIM1_ETRSOURCE_ADC3_AWD3 TIM1_AF1_ETRSEL_3
1001#define LL_TIM_TIM8_ETRSOURCE_GPIO 0x00000000U
1002#define LL_TIM_TIM8_ETRSOURCE_COMP1 TIM8_AF1_ETRSEL_0
1003#define LL_TIM_TIM8_ETRSOURCE_COMP2 TIM8_AF1_ETRSEL_1
1004#define LL_TIM_TIM8_ETRSOURCE_ADC2_AWD1 (TIM8_AF1_ETRSEL_1 | TIM8_AF1_ETRSEL_0)
1005#define LL_TIM_TIM8_ETRSOURCE_ADC2_AWD2 (TIM8_AF1_ETRSEL_2)
1006#define LL_TIM_TIM8_ETRSOURCE_ADC2_AWD3 (TIM8_AF1_ETRSEL_2 | TIM8_AF1_ETRSEL_0)
1007#define LL_TIM_TIM8_ETRSOURCE_ADC3_AWD1 (TIM8_AF1_ETRSEL_2 | TIM8_AF1_ETRSEL_1)
1008#define LL_TIM_TIM8_ETRSOURCE_ADC3_AWD2 (TIM8_AF1_ETRSEL_2 | TIM8_AF1_ETRSEL_1 | TIM8_AF1_ETRSEL_0)
1009#define LL_TIM_TIM8_ETRSOURCE_ADC3_AWD3 TIM8_AF1_ETRSEL_3
1011#define LL_TIM_TIM2_ETRSOURCE_GPIO 0x00000000U
1012#define LL_TIM_TIM2_ETRSOURCE_COMP1 (TIM2_AF1_ETRSEL_0)
1013#define LL_TIM_TIM2_ETRSOURCE_COMP2 (TIM2_AF1_ETRSEL_1)
1014#define LL_TIM_TIM2_ETRSOURCE_RCC_LSE (TIM2_AF1_ETRSEL_1 | TIM8_AF1_ETRSEL_0)
1015#define LL_TIM_TIM2_ETRSOURCE_SAI1_FSA TIM2_AF1_ETRSEL_2
1016#define LL_TIM_TIM2_ETRSOURCE_SAI1_FSB (TIM2_AF1_ETRSEL_2 | TIM8_AF1_ETRSEL_0)
1018#define LL_TIM_TIM3_ETRSOURCE_GPIO 0x00000000U
1019#define LL_TIM_TIM3_ETRSOURCE_COMP1 TIM3_AF1_ETRSEL_0
1021#define LL_TIM_TIM5_ETRSOURCE_GPIO 0x00000000U
1022#define LL_TIM_TIM5_ETRSOURCE_SAI2_FSA TIM5_AF1_ETRSEL_0
1023#define LL_TIM_TIM5_ETRSOURCE_SAI2_FSB TIM5_AF1_ETRSEL_1
1024#define LL_TIM_TIM5_ETRSOURCE_SAI4_FSA TIM5_AF1_ETRSEL_0
1025#define LL_TIM_TIM5_ETRSOURCE_SAI4_FSB TIM5_AF1_ETRSEL_1
1027#define LL_TIM_TIM23_ETRSOURCE_GPIO 0x00000000U
1028#define LL_TIM_TIM23_ETRSOURCE_COMP1 (TIM2_AF1_ETRSEL_0)
1029#define LL_TIM_TIM23_ETRSOURCE_COMP2 (TIM2_AF1_ETRSEL_1)
1031#define LL_TIM_TIM24_ETRSOURCE_GPIO 0x00000000U
1032#define LL_TIM_TIM24_ETRSOURCE_SAI4_FSA TIM5_AF1_ETRSEL_0
1033#define LL_TIM_TIM24_ETRSOURCE_SAI4_FSB TIM5_AF1_ETRSEL_1
1034#define LL_TIM_TIM24_ETRSOURCE_SAI1_FSA (TIM2_AF1_ETRSEL_1 | TIM8_AF1_ETRSEL_0)
1035#define LL_TIM_TIM24_ETRSOURCE_SAI1_FSB TIM2_AF1_ETRSEL_2
1040#define LL_TIM_BREAK_POLARITY_LOW 0x00000000U
1041#define LL_TIM_BREAK_POLARITY_HIGH TIM_BDTR_BKP
1049#define LL_TIM_BREAK_FILTER_FDIV1 0x00000000U
1050#define LL_TIM_BREAK_FILTER_FDIV1_N2 0x00010000U
1051#define LL_TIM_BREAK_FILTER_FDIV1_N4 0x00020000U
1052#define LL_TIM_BREAK_FILTER_FDIV1_N8 0x00030000U
1053#define LL_TIM_BREAK_FILTER_FDIV2_N6 0x00040000U
1054#define LL_TIM_BREAK_FILTER_FDIV2_N8 0x00050000U
1055#define LL_TIM_BREAK_FILTER_FDIV4_N6 0x00060000U
1056#define LL_TIM_BREAK_FILTER_FDIV4_N8 0x00070000U
1057#define LL_TIM_BREAK_FILTER_FDIV8_N6 0x00080000U
1058#define LL_TIM_BREAK_FILTER_FDIV8_N8 0x00090000U
1059#define LL_TIM_BREAK_FILTER_FDIV16_N5 0x000A0000U
1060#define LL_TIM_BREAK_FILTER_FDIV16_N6 0x000B0000U
1061#define LL_TIM_BREAK_FILTER_FDIV16_N8 0x000C0000U
1062#define LL_TIM_BREAK_FILTER_FDIV32_N5 0x000D0000U
1063#define LL_TIM_BREAK_FILTER_FDIV32_N6 0x000E0000U
1064#define LL_TIM_BREAK_FILTER_FDIV32_N8 0x000F0000U
1072#define LL_TIM_BREAK2_POLARITY_LOW 0x00000000U
1073#define LL_TIM_BREAK2_POLARITY_HIGH TIM_BDTR_BK2P
1081#define LL_TIM_BREAK2_FILTER_FDIV1 0x00000000U
1082#define LL_TIM_BREAK2_FILTER_FDIV1_N2 0x00100000U
1083#define LL_TIM_BREAK2_FILTER_FDIV1_N4 0x00200000U
1084#define LL_TIM_BREAK2_FILTER_FDIV1_N8 0x00300000U
1085#define LL_TIM_BREAK2_FILTER_FDIV2_N6 0x00400000U
1086#define LL_TIM_BREAK2_FILTER_FDIV2_N8 0x00500000U
1087#define LL_TIM_BREAK2_FILTER_FDIV4_N6 0x00600000U
1088#define LL_TIM_BREAK2_FILTER_FDIV4_N8 0x00700000U
1089#define LL_TIM_BREAK2_FILTER_FDIV8_N6 0x00800000U
1090#define LL_TIM_BREAK2_FILTER_FDIV8_N8 0x00900000U
1091#define LL_TIM_BREAK2_FILTER_FDIV16_N5 0x00A00000U
1092#define LL_TIM_BREAK2_FILTER_FDIV16_N6 0x00B00000U
1093#define LL_TIM_BREAK2_FILTER_FDIV16_N8 0x00C00000U
1094#define LL_TIM_BREAK2_FILTER_FDIV32_N5 0x00D00000U
1095#define LL_TIM_BREAK2_FILTER_FDIV32_N6 0x00E00000U
1096#define LL_TIM_BREAK2_FILTER_FDIV32_N8 0x00F00000U
1104#define LL_TIM_OSSI_DISABLE 0x00000000U
1105#define LL_TIM_OSSI_ENABLE TIM_BDTR_OSSI
1113#define LL_TIM_OSSR_DISABLE 0x00000000U
1114#define LL_TIM_OSSR_ENABLE TIM_BDTR_OSSR
1119#if defined(TIM_BREAK_INPUT_SUPPORT)
1123#define LL_TIM_BREAK_INPUT_BKIN 0x00000000U
1124#define LL_TIM_BREAK_INPUT_BKIN2 0x00000004U
1132#define LL_TIM_BKIN_SOURCE_BKIN TIM1_AF1_BKINE
1133#define LL_TIM_BKIN_SOURCE_BKCOMP1 TIM1_AF1_BKCMP1E
1134#define LL_TIM_BKIN_SOURCE_BKCOMP2 TIM1_AF1_BKCMP2E
1135#define LL_TIM_BKIN_SOURCE_DF1BK TIM1_AF1_BKDF1BK0E
1143#define LL_TIM_BKIN_POLARITY_LOW TIM1_AF1_BKINP
1144#define LL_TIM_BKIN_POLARITY_HIGH 0x00000000U
1150#if defined(TIM_BDTR_BKBID)
1154#define LL_TIM_BREAK_AFMODE_INPUT 0x00000000U
1155#define LL_TIM_BREAK_AFMODE_BIDIRECTIONAL TIM_BDTR_BKBID
1163#define LL_TIM_BREAK2_AFMODE_INPUT 0x00000000U
1164#define LL_TIM_BREAK2_AFMODE_BIDIRECTIONAL TIM_BDTR_BK2BID
1172#define LL_TIM_ReArmBRK(_PARAM_)
1173#define LL_TIM_ReArmBRK2(_PARAM_)
1182#define LL_TIM_DMABURST_BASEADDR_CR1 0x00000000U
1183#define LL_TIM_DMABURST_BASEADDR_CR2 TIM_DCR_DBA_0
1184#define LL_TIM_DMABURST_BASEADDR_SMCR TIM_DCR_DBA_1
1185#define LL_TIM_DMABURST_BASEADDR_DIER (TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
1186#define LL_TIM_DMABURST_BASEADDR_SR TIM_DCR_DBA_2
1187#define LL_TIM_DMABURST_BASEADDR_EGR (TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
1188#define LL_TIM_DMABURST_BASEADDR_CCMR1 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
1189#define LL_TIM_DMABURST_BASEADDR_CCMR2 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
1190#define LL_TIM_DMABURST_BASEADDR_CCER TIM_DCR_DBA_3
1191#define LL_TIM_DMABURST_BASEADDR_CNT (TIM_DCR_DBA_3 | TIM_DCR_DBA_0)
1192#define LL_TIM_DMABURST_BASEADDR_PSC (TIM_DCR_DBA_3 | TIM_DCR_DBA_1)
1193#define LL_TIM_DMABURST_BASEADDR_ARR (TIM_DCR_DBA_3 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
1194#define LL_TIM_DMABURST_BASEADDR_RCR (TIM_DCR_DBA_3 | TIM_DCR_DBA_2)
1195#define LL_TIM_DMABURST_BASEADDR_CCR1 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
1196#define LL_TIM_DMABURST_BASEADDR_CCR2 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
1197#define LL_TIM_DMABURST_BASEADDR_CCR3 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
1198#define LL_TIM_DMABURST_BASEADDR_CCR4 TIM_DCR_DBA_4
1199#define LL_TIM_DMABURST_BASEADDR_BDTR (TIM_DCR_DBA_4 | TIM_DCR_DBA_0)
1200#define LL_TIM_DMABURST_BASEADDR_CCMR3 (TIM_DCR_DBA_4 | TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
1201#define LL_TIM_DMABURST_BASEADDR_CCR5 (TIM_DCR_DBA_4 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
1202#define LL_TIM_DMABURST_BASEADDR_CCR6 (TIM_DCR_DBA_4 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
1203#if defined(TIM1_AF1_BKINE)&&defined(TIM1_AF2_BKINE)
1204#define LL_TIM_DMABURST_BASEADDR_AF1 (TIM_DCR_DBA_4 | TIM_DCR_DBA_3)
1205#define LL_TIM_DMABURST_BASEADDR_AF2 (TIM_DCR_DBA_4 | TIM_DCR_DBA_3 | TIM_DCR_DBA_0)
1207#define LL_TIM_DMABURST_BASEADDR_TISEL (TIM_DCR_DBA_4 | TIM_DCR_DBA_3 | TIM_DCR_DBA_1)
1215#define LL_TIM_DMABURST_LENGTH_1TRANSFER 0x00000000U
1216#define LL_TIM_DMABURST_LENGTH_2TRANSFERS TIM_DCR_DBL_0
1217#define LL_TIM_DMABURST_LENGTH_3TRANSFERS TIM_DCR_DBL_1
1218#define LL_TIM_DMABURST_LENGTH_4TRANSFERS (TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
1219#define LL_TIM_DMABURST_LENGTH_5TRANSFERS TIM_DCR_DBL_2
1220#define LL_TIM_DMABURST_LENGTH_6TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
1221#define LL_TIM_DMABURST_LENGTH_7TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
1222#define LL_TIM_DMABURST_LENGTH_8TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
1223#define LL_TIM_DMABURST_LENGTH_9TRANSFERS TIM_DCR_DBL_3
1224#define LL_TIM_DMABURST_LENGTH_10TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_0)
1225#define LL_TIM_DMABURST_LENGTH_11TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1)
1226#define LL_TIM_DMABURST_LENGTH_12TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
1227#define LL_TIM_DMABURST_LENGTH_13TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2)
1228#define LL_TIM_DMABURST_LENGTH_14TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
1229#define LL_TIM_DMABURST_LENGTH_15TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
1230#define LL_TIM_DMABURST_LENGTH_16TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
1231#define LL_TIM_DMABURST_LENGTH_17TRANSFERS TIM_DCR_DBL_4
1232#define LL_TIM_DMABURST_LENGTH_18TRANSFERS (TIM_DCR_DBL_4 | TIM_DCR_DBL_0)
1240#define LL_TIM_TIM1_TI1_RMP_GPIO 0x00000000U
1241#define LL_TIM_TIM1_TI1_RMP_COMP1 TIM_TISEL_TI1SEL_0
1249#define LL_TIM_TIM8_TI1_RMP_GPIO 0x00000000U
1250#define LL_TIM_TIM8_TI1_RMP_COMP2 TIM_TISEL_TI1SEL_0
1258#define LL_TIM_TIM2_TI4_RMP_GPIO 0x00000000U
1259#define LL_TIM_TIM2_TI4_RMP_COMP1 TIM_TISEL_TI4SEL_0
1260#define LL_TIM_TIM2_TI4_RMP_COMP2 TIM_TISEL_TI4SEL_1
1261#define LL_TIM_TIM2_TI4_RMP_COMP1_COMP2 (TIM_TISEL_TI4SEL_0 | TIM_TISEL_TI4SEL_1)
1269#define LL_TIM_TIM3_TI1_RMP_GPIO 0x00000000U
1270#define LL_TIM_TIM3_TI1_RMP_COMP1 TIM_TISEL_TI1SEL_0
1271#define LL_TIM_TIM3_TI1_RMP_COMP2 TIM_TISEL_TI1SEL_1
1272#define LL_TIM_TIM3_TI1_RMP_COMP1_COMP2 (TIM_TISEL_TI1SEL_0 | TIM_TISEL_TI1SEL_1)
1280#define LL_TIM_TIM5_TI1_RMP_GPIO 0x00000000U
1281#define LL_TIM_TIM5_TI1_RMP_CAN_TMP TIM_TISEL_TI1SEL_0
1282#define LL_TIM_TIM5_TI1_RMP_CAN_RTP TIM_TISEL_TI1SEL_1
1290#define LL_TIM_TIM12_TI1_RMP_GPIO 0x00000000U
1291#define LL_TIM_TIM12_TI1_RMP_SPDIF_FS TIM_TISEL_TI1SEL_0
1299#define LL_TIM_TIM15_TI1_RMP_GPIO 0x00000000U
1300#define LL_TIM_TIM15_TI1_RMP_TIM2_CH1 TIM_TISEL_TI1SEL_0
1301#define LL_TIM_TIM15_TI1_RMP_TIM3_CH1 TIM_TISEL_TI1SEL_1
1302#define LL_TIM_TIM15_TI1_RMP_TIM4_CH1 (TIM_TISEL_TI1SEL_0 | TIM_TISEL_TI1SEL_1)
1303#define LL_TIM_TIM15_TI1_RMP_RCC_LSE (TIM_TISEL_TI1SEL_2)
1304#define LL_TIM_TIM15_TI1_RMP_RCC_CSI (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0)
1305#define LL_TIM_TIM15_TI1_RMP_RCC_MCO2 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1)
1313#define LL_TIM_TIM15_TI2_RMP_GPIO 0x00000000U
1314#define LL_TIM_TIM15_TI2_RMP_TIM2_CH2 (TIM_TISEL_TI2SEL_0)
1315#define LL_TIM_TIM15_TI2_RMP_TIM3_CH2 (TIM_TISEL_TI2SEL_1)
1316#define LL_TIM_TIM15_TI2_RMP_TIM4_CH2 (TIM_TISEL_TI2SEL_0 | TIM_TISEL_TI2SEL_1)
1324#define LL_TIM_TIM16_TI1_RMP_GPIO 0x00000000U
1325#define LL_TIM_TIM16_TI1_RMP_RCC_LSI TIM_TISEL_TI1SEL_0
1326#define LL_TIM_TIM16_TI1_RMP_RCC_LSE TIM_TISEL_TI1SEL_1
1327#define LL_TIM_TIM16_TI1_RMP_WKUP_IT (TIM_TISEL_TI1SEL_0 | TIM_TISEL_TI1SEL_1)
1335#define LL_TIM_TIM17_TI1_RMP_GPIO 0x00000000U
1336#define LL_TIM_TIM17_TI1_RMP_SPDIF_FS TIM_TISEL_TI1SEL_0
1337#define LL_TIM_TIM17_TI1_RMP_RCC_HSE1MHZ TIM_TISEL_TI1SEL_1
1338#define LL_TIM_TIM17_TI1_RMP_RCC_MCO1 (TIM_TISEL_TI1SEL_0 | TIM_TISEL_TI1SEL_1)
1346#define LL_TIM_TIM23_TI4_RMP_GPIO 0x00000000U
1347#define LL_TIM_TIM23_TI4_RMP_COMP1 TIM_TISEL_TI4SEL_0
1348#define LL_TIM_TIM23_TI4_RMP_COMP2 TIM_TISEL_TI4SEL_1
1349#define LL_TIM_TIM23_TI4_RMP_COMP1_COMP2 (TIM_TISEL_TI4SEL_0 | TIM_TISEL_TI4SEL_1)
1357#define LL_TIM_TIM24_TI1_RMP_GPIO 0x00000000U
1358#define LL_TIM_TIM24_TI1_RMP_CAN_TMP TIM_TISEL_TI1SEL_0
1359#define LL_TIM_TIM24_TI1_RMP_CAN_RTP TIM_TISEL_TI1SEL_1
1360#define LL_TIM_TIM24_TI1_RMP_CAN_SOC (TIM_TISEL_TI4SEL_0 | TIM_TISEL_TI4SEL_1)
1365#if defined(TIM_BREAK_INPUT_SUPPORT)
1369#define LL_TIM_BKIN_SOURCE_DFBK LL_TIM_BKIN_SOURCE_DF1BK
1394#define LL_TIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
1402#define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
1415#define __LL_TIM_GETFLAG_UIFCPY(__CNT__) \
1416 (READ_BIT((__CNT__), TIM_CNT_UIFCPY) >> TIM_CNT_UIFCPY_Pos)
1429#define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \
1430 ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1431 (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \
1432 (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1433 (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1434 (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\
1435 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1436 (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1437 (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\
1438 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1439 (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1440 (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\
1450#define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \
1451 (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
1461#define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \
1462 ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
1473#define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \
1474 ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \
1475 / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
1487#define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \
1488 ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \
1489 + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__))))
1501#define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \
1502 ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos)))
1685 uint32_t counter_mode;
1689 if (counter_mode == 0U)
1694 return counter_mode;
2118 return ((
READ_BIT(TIMx->
CCER, Channels) == (Channels)) ? 1UL : 0UL);
2163 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2164 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2167 (Configuration &
TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]);
2169 (Configuration &
TIM_CR2_OIS1) << SHIFT_TAB_OISx[iChannel]);
2208 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2209 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2247 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2248 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2281 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2313 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2350 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2382 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2407 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2408 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2433 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2434 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2459 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2460 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2462 return ((
READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2485 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2486 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2510 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2511 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2535 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2536 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2538 return ((
READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2564 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2565 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2591 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2592 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2620 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2621 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2623 return ((
READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2892 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2893 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2896 << SHIFT_TAB_ICxx[iChannel]);
2921 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2922 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2923 MODIFY_REG(*pReg, ((
TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2945 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2946 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2947 return ((
READ_BIT(*pReg, ((
TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2971 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2972 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2996 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2997 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
3034 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
3035 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
3071 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
3072 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
3073 return ((
READ_BIT(*pReg, ((
TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
3100 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
3102 ICPolarity << SHIFT_TAB_CCxP[iChannel]);
3128 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
3130 SHIFT_TAB_CCxP[iChannel]);
3617#if defined(TIM_BDTR_BKBID)
3661 uint32_t BreakAFMode)
3697 uint32_t BreakFilter)
3703#if defined(TIM_BDTR_BKBID)
3746#if defined(TIM_BDTR_BKBID)
3790 uint32_t Break2AFMode)
3831#if defined(TIM_BDTR_BKBID)
3950#if defined(TIM_BREAK_INPUT_SUPPORT)
3976 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
AF1) + BreakInput));
4005 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
AF1) + BreakInput));
4035 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
AF1) + BreakInput));
4036 MODIFY_REG(*pReg, (TIMx_AF1_BKINP << TIM_POSITION_BRK_SOURCE), (Polarity << TIM_POSITION_BRK_SOURCE));
5172#if defined(USE_FULL_LL_DRIVER)
5178void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct);
5180void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
5181ErrorStatus LL_TIM_OC_Init(
TIM_TypeDef *TIMx, uint32_t Channel,
const LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
5182void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct);
5183ErrorStatus LL_TIM_IC_Init(
TIM_TypeDef *TIMx, uint32_t Channel,
const LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct);
5184void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
5185ErrorStatus LL_TIM_ENCODER_Init(
TIM_TypeDef *TIMx,
const LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
5186void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
5187ErrorStatus LL_TIM_HALLSENSOR_Init(
TIM_TypeDef *TIMx,
const LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
5188void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct);
#define __IO
Defines 'read / write' permissions.
#define CLEAR_BIT(REG, BIT)
#define SET_BIT(REG, BIT)
#define WRITE_REG(REG, VAL)
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
#define READ_BIT(REG, BIT)
#define TIM_EGR_CC3G
Capture/Compare 3 Generation.
#define TIM_CR1_URS
Update request source.
#define TIM_EGR_BG
Break Generation.
#define TIM_EGR_CC1G
Capture/Compare 1 Generation.
#define TIM_CCER_CC1P
Capture/Compare 1 output Polarity.
#define TIM_SMCR_ETPS
ETPS[1:0] bits (External trigger prescaler).
#define TIM_DIER_CC3DE
Capture/Compare 3 DMA request enable.
#define TIM_EGR_UG
Update Generation.
#define TIM_CCMR1_OC1PE
Output Compare 1 Preload enable.
#define TIM_DIER_CC1IE
Capture/Compare 1 interrupt enable.
#define TIM_EGR_CC4G
Capture/Compare 4 Generation.
#define TIM_DIER_BIE
Break interrupt enable.
#define TIM_SR_CC5IF
Capture/Compare 5 interrupt Flag.
#define TIM_SR_CC2IF
Capture/Compare 2 interrupt Flag.
#define TIM_BDTR_MOE
Main Output enable.
#define TIM_SMCR_ETP
External trigger polarity.
#define TIM_EGR_TG
Trigger Generation.
#define TIM_BDTR_BKDSRM
Break Disarm.
#define TIM_CR2_OIS1
Output Idle state 1 (OC1 output).
#define TIM_BDTR_BKP
Break Polarity for Break1.
#define TIM_SMCR_ECE
External clock enable.
#define TIM_CR1_CMS
CMS[1:0] bits (Center-aligned mode selection).
#define TIM_SR_CC2OF
Capture/Compare 2 Overcapture Flag.
#define TIM_CCER_CC1NP
Capture/Compare 1 Complementary output Polarity.
#define TIM_EGR_B2G
Break Generation.
#define TIM_SR_CC1IF
Capture/Compare 1 interrupt Flag.
#define TIM_CR1_ARPE
Auto-reload preload enable.
#define TIM_DIER_CC3IE
Capture/Compare 3 interrupt enable.
#define TIM_BDTR_BK2E
Break enable for Break2.
#define TIM_TISEL_TI1SEL
TI1SEL[3:0] bits (TIM TI1 SEL).
#define TIM_SMCR_MSM
Master/slave mode.
#define TIM_EGR_CC2G
Capture/Compare 2 Generation.
#define TIM_CCR5_CCR5
Capture/Compare 5 Value.
#define TIM_BDTR_BKBID
Break Bidirectional.
#define TIM_DIER_CC2DE
Capture/Compare 2 DMA request enable.
#define TIM_BDTR_AOE
Automatic Output enable.
#define TIM_DIER_TDE
Trigger DMA request enable.
#define TIM_DIER_UIE
Update interrupt enable.
#define TIM_CCR5_GC5C2
Group Channel 5 and Channel 2.
#define TIM_DIER_CC4IE
Capture/Compare 4 interrupt enable.
#define TIM_CR1_OPM
One pulse mode.
#define TIM_SR_BIF
Break interrupt Flag.
#define TIM_CCMR1_OC1M
OC1M[2:0] bits (Output Compare 1 Mode).
#define TIM_BDTR_BKE
Break enable for Break1.
#define TIM_DIER_CC2IE
Capture/Compare 2 interrupt enable.
#define TIM_BDTR_BK2DSRM
Break2 Disarm.
#define TIM_DIER_COMDE
COM DMA request enable.
#define TIM_TISEL_TI3SEL
TI3SEL[3:0] bits (TIM TI3 SEL).
#define TIM_SR_TIF
Trigger interrupt Flag.
#define TIM_BDTR_LOCK
LOCK[1:0] bits (Lock Configuration).
#define TIM_TISEL_TI4SEL
TI4SEL[3:0] bits (TIM TI4 SEL).
#define TIM_SR_CC1OF
Capture/Compare 1 Overcapture Flag.
#define TIM_SR_CC4OF
Capture/Compare 4 Overcapture Flag.
#define TIM_SMCR_TS
TS[4:0] bits (Trigger selection).
#define TIM_CCMR1_OC1CE
Output Compare 1Clear Enable.
#define TIM_CNT_UIFCPY
Update interrupt flag copy.
#define TIM_SR_COMIF
COM interrupt Flag.
#define TIM_CR1_CEN
Counter enable.
#define TIM_BDTR_BK2P
Break Polarity for Break2.
#define TIM_CCMR1_CC1S
CC1S[1:0] bits (Capture/Compare 1 Selection).
#define TIM_CR1_UDIS
Update disable.
#define TIM_DIER_TIE
Trigger interrupt enable.
#define TIM_CR2_MMS
MMS[2:0] bits (Master Mode Selection).
#define TIM_CCR5_GC5C3
Group Channel 5 and Channel 3.
#define TIM_DIER_CC4DE
Capture/Compare 4 DMA request enable.
#define TIM_CR2_CCPC
Capture/Compare Preloaded Control.
#define TIM_CCMR1_IC1F
IC1F[3:0] bits (Input Capture 1 Filter).
#define TIM_BDTR_OSSI
Off-State Selection for Idle mode.
#define TIM_BDTR_BK2BID
Break2 Bidirectional.
#define TIM_CCMR1_IC1PSC
IC1PSC[1:0] bits (Input Capture 1 Prescaler).
#define TIM_CCMR1_OC1FE
Output Compare 1 Fast enable.
#define TIM_DCR_DBL
DBL[4:0] bits (DMA Burst Length).
#define TIM_DIER_UDE
Update DMA request enable.
#define TIM_BDTR_DTG
DTG[0:7] bits (Dead-Time Generator set-up).
#define TIM_DCR_DBA
DBA[4:0] bits (DMA Base Address).
#define TIM_SR_UIF
Update interrupt Flag.
#define TIM_CR1_CKD
CKD[1:0] bits (clock division).
#define TIM_SR_CC4IF
Capture/Compare 4 interrupt Flag.
#define TIM_BDTR_BK2F
Break Filter for Break2.
#define TIM_CR1_DIR
Direction.
#define TIM_CR2_TI1S
TI1 Selection.
#define TIM_SR_CC6IF
Capture/Compare 6 interrupt Flag.
#define TIM_SR_CC3IF
Capture/Compare 3 interrupt Flag.
#define TIM_EGR_COMG
Capture/Compare Control Update Generation.
#define TIM_CCR5_GC5C1
Group Channel 5 and Channel 1.
#define TIM_CR2_CCDS
Capture/Compare DMA Selection.
#define TIM_DIER_COMIE
COM interrupt enable.
#define TIM_DIER_CC1DE
Capture/Compare 1 DMA request enable.
#define TIM_CR2_MMS2
MMS[2:0] bits (Master Mode Selection).
#define TIM_BDTR_BKF
Break Filter for Break1.
#define TIM_SMCR_ETF
ETF[3:0] bits (External trigger filter).
#define TIM_SR_SBIF
System Break Flag.
#define TIM_SMCR_SMS
SMS[2:0] bits (Slave mode selection).
#define TIM_SR_B2IF
Break2 interrupt Flag.
#define TIM_CR2_CCUS
Capture/Compare Control Update Selection.
#define TIM_CR1_UIFREMAP
Update interrupt flag remap.
#define TIM_SR_CC3OF
Capture/Compare 3 Overcapture Flag.
#define TIM_BDTR_OSSR
Off-State Selection for Run mode.
#define TIM_TISEL_TI2SEL
TI2SEL[3:0] bits (TIM TI2 SEL).
CMSIS STM32H7xx Device Peripheral Access Layer Header File.
__IO uint32_t EGR
TIM event generation register, Address offset: 0x14.
__IO uint32_t CCR1
TIM capture/compare register 1, Address offset: 0x34.
__IO uint32_t CCMR1
TIM capture/compare mode register 1, Address offset: 0x18.
__IO uint32_t BDTR
TIM break and dead-time register, Address offset: 0x44.
__IO uint32_t DIER
TIM DMA/interrupt enable register, Address offset: 0x0C.
__IO uint32_t CCR6
TIM capture/compare register6, Address offset: 0x5C.
__IO uint32_t TISEL
TIM Input Selection register, Address offset: 0x68.
__IO uint32_t CCR2
TIM capture/compare register 2, Address offset: 0x38.
__IO uint32_t CCR4
TIM capture/compare register 4, Address offset: 0x40.
__IO uint32_t SMCR
TIM slave mode control register, Address offset: 0x08.
__IO uint32_t ARR
TIM auto-reload register, Address offset: 0x2C.
__IO uint32_t CR2
TIM control register 2, Address offset: 0x04.
__IO uint32_t CNT
TIM counter register, Address offset: 0x24.
__IO uint32_t AF1
TIM alternate function option register 1, Address offset: 0x60.
__IO uint32_t DCR
TIM DMA control register, Address offset: 0x48.
__IO uint32_t CR1
TIM control register 1, Address offset: 0x00.
__IO uint32_t CCR3
TIM capture/compare register 3, Address offset: 0x3C.
__IO uint32_t SR
TIM status register, Address offset: 0x10.
__IO uint32_t PSC
TIM prescaler, Address offset: 0x28.
__IO uint32_t RCR
TIM repetition counter register, Address offset: 0x30.
__IO uint32_t CCER
TIM capture/compare enable register, Address offset: 0x20.
__IO uint32_t CCR5
TIM capture/compare register5, Address offset: 0x58.