21 #ifndef __STM32F1xx_LL_TIM_H
22 #define __STM32F1xx_LL_TIM_H
35 #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) || defined (TIM15) || defined (TIM16) || defined (TIM17)
46 static const uint8_t OFFSET_TAB_CCMRx[] =
57 static const uint8_t SHIFT_TAB_OCxx[] =
68 static const uint8_t SHIFT_TAB_ICxx[] =
79 static const uint8_t SHIFT_TAB_CCxP[] =
90 static const uint8_t SHIFT_TAB_OISx[] =
112 #define DT_DELAY_1 ((uint8_t)0x7F)
113 #define DT_DELAY_2 ((uint8_t)0x3F)
114 #define DT_DELAY_3 ((uint8_t)0x1F)
115 #define DT_DELAY_4 ((uint8_t)0x1F)
118 #define DT_RANGE_1 ((uint8_t)0x00)
119 #define DT_RANGE_2 ((uint8_t)0x80)
120 #define DT_RANGE_3 ((uint8_t)0xC0)
121 #define DT_RANGE_4 ((uint8_t)0xE0)
143 #define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \
144 (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\
145 ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\
146 ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\
147 ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\
148 ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\
149 ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U : 6U)
159 #define TIM_CALC_DTS(__TIMCLK__, __CKD__) \
160 (((__CKD__) == LL_TIM_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TIMCLK__)) : \
161 ((__CKD__) == LL_TIM_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TIMCLK__) >> 1U)) : \
162 ((uint64_t)1000000000000U/((__TIMCLK__) >> 2U)))
169 #if defined(USE_FULL_LL_DRIVER)
184 uint32_t CounterMode;
196 uint32_t ClockDivision;
201 uint32_t RepetitionCounter;
211 } LL_TIM_InitTypeDef;
233 uint32_t CompareValue;
243 uint32_t OCNPolarity;
249 uint32_t OCIdleState;
254 uint32_t OCNIdleState;
258 } LL_TIM_OC_InitTypeDef;
272 uint32_t ICActiveInput;
277 uint32_t ICPrescaler;
286 } LL_TIM_IC_InitTypeDef;
294 uint32_t EncoderMode;
299 uint32_t IC1Polarity;
304 uint32_t IC1ActiveInput;
309 uint32_t IC1Prescaler;
319 uint32_t IC2Polarity;
324 uint32_t IC2ActiveInput;
329 uint32_t IC2Prescaler;
339 } LL_TIM_ENCODER_InitTypeDef;
347 uint32_t IC1Polarity;
352 uint32_t IC1Prescaler;
364 uint32_t CommutationDelay;
370 } LL_TIM_HALLSENSOR_InitTypeDef;
412 uint32_t BreakPolarity;
419 uint32_t AutomaticOutput;
425 } LL_TIM_BDTR_InitTypeDef;
441 #define LL_TIM_SR_UIF TIM_SR_UIF
442 #define LL_TIM_SR_CC1IF TIM_SR_CC1IF
443 #define LL_TIM_SR_CC2IF TIM_SR_CC2IF
444 #define LL_TIM_SR_CC3IF TIM_SR_CC3IF
445 #define LL_TIM_SR_CC4IF TIM_SR_CC4IF
446 #define LL_TIM_SR_COMIF TIM_SR_COMIF
447 #define LL_TIM_SR_TIF TIM_SR_TIF
448 #define LL_TIM_SR_BIF TIM_SR_BIF
449 #define LL_TIM_SR_CC1OF TIM_SR_CC1OF
450 #define LL_TIM_SR_CC2OF TIM_SR_CC2OF
451 #define LL_TIM_SR_CC3OF TIM_SR_CC3OF
452 #define LL_TIM_SR_CC4OF TIM_SR_CC4OF
457 #if defined(USE_FULL_LL_DRIVER)
461 #define LL_TIM_BREAK_DISABLE 0x00000000U
462 #define LL_TIM_BREAK_ENABLE TIM_BDTR_BKE
470 #define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
471 #define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
481 #define LL_TIM_DIER_UIE TIM_DIER_UIE
482 #define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE
483 #define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE
484 #define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE
485 #define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE
486 #define LL_TIM_DIER_COMIE TIM_DIER_COMIE
487 #define LL_TIM_DIER_TIE TIM_DIER_TIE
488 #define LL_TIM_DIER_BIE TIM_DIER_BIE
496 #define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U
497 #define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS
505 #define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM
506 #define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U
514 #define LL_TIM_COUNTERMODE_UP 0x00000000U
515 #define LL_TIM_COUNTERMODE_DOWN TIM_CR1_DIR
516 #define LL_TIM_COUNTERMODE_CENTER_DOWN TIM_CR1_CMS_0
517 #define LL_TIM_COUNTERMODE_CENTER_UP TIM_CR1_CMS_1
518 #define LL_TIM_COUNTERMODE_CENTER_UP_DOWN TIM_CR1_CMS
526 #define LL_TIM_CLOCKDIVISION_DIV1 0x00000000U
527 #define LL_TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
528 #define LL_TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
536 #define LL_TIM_COUNTERDIRECTION_UP 0x00000000U
537 #define LL_TIM_COUNTERDIRECTION_DOWN TIM_CR1_DIR
545 #define LL_TIM_CCUPDATESOURCE_COMG_ONLY 0x00000000U
546 #define LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI TIM_CR2_CCUS
554 #define LL_TIM_CCDMAREQUEST_CC 0x00000000U
555 #define LL_TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
563 #define LL_TIM_LOCKLEVEL_OFF 0x00000000U
564 #define LL_TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
565 #define LL_TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
566 #define LL_TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
574 #define LL_TIM_CHANNEL_CH1 TIM_CCER_CC1E
575 #define LL_TIM_CHANNEL_CH1N TIM_CCER_CC1NE
576 #define LL_TIM_CHANNEL_CH2 TIM_CCER_CC2E
577 #define LL_TIM_CHANNEL_CH2N TIM_CCER_CC2NE
578 #define LL_TIM_CHANNEL_CH3 TIM_CCER_CC3E
579 #define LL_TIM_CHANNEL_CH3N TIM_CCER_CC3NE
580 #define LL_TIM_CHANNEL_CH4 TIM_CCER_CC4E
585 #if defined(USE_FULL_LL_DRIVER)
589 #define LL_TIM_OCSTATE_DISABLE 0x00000000U
590 #define LL_TIM_OCSTATE_ENABLE TIM_CCER_CC1E
599 #define LL_TIM_OCMODE_FROZEN 0x00000000U
600 #define LL_TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
601 #define LL_TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
602 #define LL_TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
603 #define LL_TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
604 #define LL_TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
605 #define LL_TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
606 #define LL_TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
614 #define LL_TIM_OCPOLARITY_HIGH 0x00000000U
615 #define LL_TIM_OCPOLARITY_LOW TIM_CCER_CC1P
623 #define LL_TIM_OCIDLESTATE_LOW 0x00000000U
624 #define LL_TIM_OCIDLESTATE_HIGH TIM_CR2_OIS1
633 #define LL_TIM_ACTIVEINPUT_DIRECTTI (TIM_CCMR1_CC1S_0 << 16U)
634 #define LL_TIM_ACTIVEINPUT_INDIRECTTI (TIM_CCMR1_CC1S_1 << 16U)
635 #define LL_TIM_ACTIVEINPUT_TRC (TIM_CCMR1_CC1S << 16U)
643 #define LL_TIM_ICPSC_DIV1 0x00000000U
644 #define LL_TIM_ICPSC_DIV2 (TIM_CCMR1_IC1PSC_0 << 16U)
645 #define LL_TIM_ICPSC_DIV4 (TIM_CCMR1_IC1PSC_1 << 16U)
646 #define LL_TIM_ICPSC_DIV8 (TIM_CCMR1_IC1PSC << 16U)
654 #define LL_TIM_IC_FILTER_FDIV1 0x00000000U
655 #define LL_TIM_IC_FILTER_FDIV1_N2 (TIM_CCMR1_IC1F_0 << 16U)
656 #define LL_TIM_IC_FILTER_FDIV1_N4 (TIM_CCMR1_IC1F_1 << 16U)
657 #define LL_TIM_IC_FILTER_FDIV1_N8 ((TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
658 #define LL_TIM_IC_FILTER_FDIV2_N6 (TIM_CCMR1_IC1F_2 << 16U)
659 #define LL_TIM_IC_FILTER_FDIV2_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
660 #define LL_TIM_IC_FILTER_FDIV4_N6 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
661 #define LL_TIM_IC_FILTER_FDIV4_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
662 #define LL_TIM_IC_FILTER_FDIV8_N6 (TIM_CCMR1_IC1F_3 << 16U)
663 #define LL_TIM_IC_FILTER_FDIV8_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_0) << 16U)
664 #define LL_TIM_IC_FILTER_FDIV16_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1) << 16U)
665 #define LL_TIM_IC_FILTER_FDIV16_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
666 #define LL_TIM_IC_FILTER_FDIV16_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2) << 16U)
667 #define LL_TIM_IC_FILTER_FDIV32_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
668 #define LL_TIM_IC_FILTER_FDIV32_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
669 #define LL_TIM_IC_FILTER_FDIV32_N8 (TIM_CCMR1_IC1F << 16U)
677 #define LL_TIM_IC_POLARITY_RISING 0x00000000U
678 #define LL_TIM_IC_POLARITY_FALLING TIM_CCER_CC1P
686 #define LL_TIM_CLOCKSOURCE_INTERNAL 0x00000000U
687 #define LL_TIM_CLOCKSOURCE_EXT_MODE1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
688 #define LL_TIM_CLOCKSOURCE_EXT_MODE2 TIM_SMCR_ECE
696 #define LL_TIM_ENCODERMODE_X2_TI1 TIM_SMCR_SMS_0
697 #define LL_TIM_ENCODERMODE_X2_TI2 TIM_SMCR_SMS_1
698 #define LL_TIM_ENCODERMODE_X4_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
706 #define LL_TIM_TRGO_RESET 0x00000000U
707 #define LL_TIM_TRGO_ENABLE TIM_CR2_MMS_0
708 #define LL_TIM_TRGO_UPDATE TIM_CR2_MMS_1
709 #define LL_TIM_TRGO_CC1IF (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
710 #define LL_TIM_TRGO_OC1REF TIM_CR2_MMS_2
711 #define LL_TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
712 #define LL_TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
713 #define LL_TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
722 #define LL_TIM_SLAVEMODE_DISABLED 0x00000000U
723 #define LL_TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
724 #define LL_TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
725 #define LL_TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
733 #define LL_TIM_TS_ITR0 0x00000000U
734 #define LL_TIM_TS_ITR1 TIM_SMCR_TS_0
735 #define LL_TIM_TS_ITR2 TIM_SMCR_TS_1
736 #define LL_TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
737 #define LL_TIM_TS_TI1F_ED TIM_SMCR_TS_2
738 #define LL_TIM_TS_TI1FP1 (TIM_SMCR_TS_2 | TIM_SMCR_TS_0)
739 #define LL_TIM_TS_TI2FP2 (TIM_SMCR_TS_2 | TIM_SMCR_TS_1)
740 #define LL_TIM_TS_ETRF (TIM_SMCR_TS_2 | TIM_SMCR_TS_1 | TIM_SMCR_TS_0)
748 #define LL_TIM_ETR_POLARITY_NONINVERTED 0x00000000U
749 #define LL_TIM_ETR_POLARITY_INVERTED TIM_SMCR_ETP
757 #define LL_TIM_ETR_PRESCALER_DIV1 0x00000000U
758 #define LL_TIM_ETR_PRESCALER_DIV2 TIM_SMCR_ETPS_0
759 #define LL_TIM_ETR_PRESCALER_DIV4 TIM_SMCR_ETPS_1
760 #define LL_TIM_ETR_PRESCALER_DIV8 TIM_SMCR_ETPS
768 #define LL_TIM_ETR_FILTER_FDIV1 0x00000000U
769 #define LL_TIM_ETR_FILTER_FDIV1_N2 TIM_SMCR_ETF_0
770 #define LL_TIM_ETR_FILTER_FDIV1_N4 TIM_SMCR_ETF_1
771 #define LL_TIM_ETR_FILTER_FDIV1_N8 (TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
772 #define LL_TIM_ETR_FILTER_FDIV2_N6 TIM_SMCR_ETF_2
773 #define LL_TIM_ETR_FILTER_FDIV2_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
774 #define LL_TIM_ETR_FILTER_FDIV4_N6 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
775 #define LL_TIM_ETR_FILTER_FDIV4_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
776 #define LL_TIM_ETR_FILTER_FDIV8_N6 TIM_SMCR_ETF_3
777 #define LL_TIM_ETR_FILTER_FDIV8_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_0)
778 #define LL_TIM_ETR_FILTER_FDIV16_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1)
779 #define LL_TIM_ETR_FILTER_FDIV16_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
780 #define LL_TIM_ETR_FILTER_FDIV16_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2)
781 #define LL_TIM_ETR_FILTER_FDIV32_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
782 #define LL_TIM_ETR_FILTER_FDIV32_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
783 #define LL_TIM_ETR_FILTER_FDIV32_N8 TIM_SMCR_ETF
792 #define LL_TIM_BREAK_POLARITY_LOW 0x00000000U
793 #define LL_TIM_BREAK_POLARITY_HIGH TIM_BDTR_BKP
804 #define LL_TIM_OSSI_DISABLE 0x00000000U
805 #define LL_TIM_OSSI_ENABLE TIM_BDTR_OSSI
813 #define LL_TIM_OSSR_DISABLE 0x00000000U
814 #define LL_TIM_OSSR_ENABLE TIM_BDTR_OSSR
823 #define LL_TIM_DMABURST_BASEADDR_CR1 0x00000000U
824 #define LL_TIM_DMABURST_BASEADDR_CR2 TIM_DCR_DBA_0
825 #define LL_TIM_DMABURST_BASEADDR_SMCR TIM_DCR_DBA_1
826 #define LL_TIM_DMABURST_BASEADDR_DIER (TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
827 #define LL_TIM_DMABURST_BASEADDR_SR TIM_DCR_DBA_2
828 #define LL_TIM_DMABURST_BASEADDR_EGR (TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
829 #define LL_TIM_DMABURST_BASEADDR_CCMR1 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
830 #define LL_TIM_DMABURST_BASEADDR_CCMR2 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
831 #define LL_TIM_DMABURST_BASEADDR_CCER TIM_DCR_DBA_3
832 #define LL_TIM_DMABURST_BASEADDR_CNT (TIM_DCR_DBA_3 | TIM_DCR_DBA_0)
833 #define LL_TIM_DMABURST_BASEADDR_PSC (TIM_DCR_DBA_3 | TIM_DCR_DBA_1)
834 #define LL_TIM_DMABURST_BASEADDR_ARR (TIM_DCR_DBA_3 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
835 #define LL_TIM_DMABURST_BASEADDR_RCR (TIM_DCR_DBA_3 | TIM_DCR_DBA_2)
836 #define LL_TIM_DMABURST_BASEADDR_CCR1 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
837 #define LL_TIM_DMABURST_BASEADDR_CCR2 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
838 #define LL_TIM_DMABURST_BASEADDR_CCR3 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
839 #define LL_TIM_DMABURST_BASEADDR_CCR4 TIM_DCR_DBA_4
840 #define LL_TIM_DMABURST_BASEADDR_BDTR (TIM_DCR_DBA_4 | TIM_DCR_DBA_0)
848 #define LL_TIM_DMABURST_LENGTH_1TRANSFER 0x00000000U
849 #define LL_TIM_DMABURST_LENGTH_2TRANSFERS TIM_DCR_DBL_0
850 #define LL_TIM_DMABURST_LENGTH_3TRANSFERS TIM_DCR_DBL_1
851 #define LL_TIM_DMABURST_LENGTH_4TRANSFERS (TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
852 #define LL_TIM_DMABURST_LENGTH_5TRANSFERS TIM_DCR_DBL_2
853 #define LL_TIM_DMABURST_LENGTH_6TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
854 #define LL_TIM_DMABURST_LENGTH_7TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
855 #define LL_TIM_DMABURST_LENGTH_8TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
856 #define LL_TIM_DMABURST_LENGTH_9TRANSFERS TIM_DCR_DBL_3
857 #define LL_TIM_DMABURST_LENGTH_10TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_0)
858 #define LL_TIM_DMABURST_LENGTH_11TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1)
859 #define LL_TIM_DMABURST_LENGTH_12TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
860 #define LL_TIM_DMABURST_LENGTH_13TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2)
861 #define LL_TIM_DMABURST_LENGTH_14TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
862 #define LL_TIM_DMABURST_LENGTH_15TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
863 #define LL_TIM_DMABURST_LENGTH_16TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
864 #define LL_TIM_DMABURST_LENGTH_17TRANSFERS TIM_DCR_DBL_4
865 #define LL_TIM_DMABURST_LENGTH_18TRANSFERS (TIM_DCR_DBL_4 | TIM_DCR_DBL_0)
890 #define LL_TIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
898 #define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
918 #define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \
919 ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \
920 (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\
921 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\
922 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\
932 #define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \
933 (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)(((__TIMCLK__)/(__CNTCLK__)) - 1U) : 0U)
943 #define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \
944 ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
954 #define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \
955 ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \
956 / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
967 #define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \
968 ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \
969 + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__))))
981 #define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \
982 ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos)))
1526 return ((
READ_BIT(TIMx->
CCER, Channels) == (Channels)) ? 1UL : 0UL);
1563 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1564 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1567 (Configuration &
TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]);
1569 (Configuration &
TIM_CR2_OIS1) << SHIFT_TAB_OISx[iChannel]);
1598 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1599 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1627 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1628 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1657 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1685 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1718 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1746 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1767 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1768 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1789 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1790 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1811 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1812 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1814 return ((
READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1833 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1834 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1854 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1855 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1875 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1876 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1878 return ((
READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1900 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1901 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1923 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1924 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
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]));
1951 return ((
READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2120 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2121 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2148 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2149 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2150 MODIFY_REG(*pReg, ((
TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2172 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2173 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2174 return ((
READ_BIT(*pReg, ((
TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2198 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2199 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2223 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2224 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2261 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2262 __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2298 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2299 const __IO uint32_t *pReg = (
__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->
CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2300 return ((
READ_BIT(*pReg, ((
TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2325 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2327 ICPolarity << SHIFT_TAB_CCxP[iChannel]);
2351 uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2353 SHIFT_TAB_CCxP[iChannel]);
2701 __IO uint32_t tmpreg;
2718 __IO uint32_t tmpreg;
2738 __IO uint32_t tmpreg;
3790 #if defined(USE_FULL_LL_DRIVER)
3796 void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct);
3798 void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
3799 ErrorStatus LL_TIM_OC_Init(
TIM_TypeDef *TIMx, uint32_t Channel, LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
3800 void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct);
3801 ErrorStatus LL_TIM_IC_Init(
TIM_TypeDef *TIMx, uint32_t Channel, LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct);
3802 void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
3804 void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
3805 ErrorStatus LL_TIM_HALLSENSOR_Init(
TIM_TypeDef *TIMx, LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
3806 void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct);