44#ifndef G32R4xx_DDL_TMR_H
45#define G32R4xx_DDL_TMR_H
58#if defined (TMR1) || defined (TMR2) || defined (TMR3) || defined (TMR4)
132#define DT_DELAY_1 ((uint8_t)0x7F)
133#define DT_DELAY_2 ((uint8_t)0x3F)
134#define DT_DELAY_3 ((uint8_t)0x1F)
135#define DT_DELAY_4 ((uint8_t)0x1F)
138#define DT_RANGE_1 ((uint8_t)0x00)
139#define DT_RANGE_2 ((uint8_t)0x80)
140#define DT_RANGE_3 ((uint8_t)0xC0)
141#define DT_RANGE_4 ((uint8_t)0xE0)
161#define TMR_GET_CHANNEL_INDEX( __CHANNEL__) \
162 (((__CHANNEL__) == DDL_TMR_CHANNEL_CH1) ? 0U :\
163 ((__CHANNEL__) == DDL_TMR_CHANNEL_CH1N) ? 1U :\
164 ((__CHANNEL__) == DDL_TMR_CHANNEL_CH2) ? 2U :\
165 ((__CHANNEL__) == DDL_TMR_CHANNEL_CH2N) ? 3U :\
166 ((__CHANNEL__) == DDL_TMR_CHANNEL_CH3) ? 4U :\
167 ((__CHANNEL__) == DDL_TMR_CHANNEL_CH3N) ? 5U : 6U)
177#define TMR_CALC_DTS(__TMRCLK__, __CKD__) \
178 (((__CKD__) == DDL_TMR_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TMRCLK__)) : \
179 ((__CKD__) == DDL_TMR_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TMRCLK__) >> 1U)) : \
180 ((uint64_t)1000000000000U/((__TMRCLK__) >> 2U)))
186#if defined(USE_FULL_DDL_DRIVER)
502#define DDL_TMR_STS_UIFLG TMR_STS_UIFLG
503#define DDL_TMR_STS_CC1IFLG TMR_STS_CC1IFLG
504#define DDL_TMR_STS_CC2IFLG TMR_STS_CC2IFLG
505#define DDL_TMR_STS_CC3IFLG TMR_STS_CC3IFLG
506#define DDL_TMR_STS_CC4IFLG TMR_STS_CC4IFLG
507#define DDL_TMR_STS_COMIFLG TMR_STS_COMIFLG
508#define DDL_TMR_STS_TRGIFLG TMR_STS_TRGIFLG
509#define DDL_TMR_STS_BRKIFLG TMR_STS_BRKIFLG
510#define DDL_TMR_STS_CC1RCFLG TMR_STS_CC1RCFLG
511#define DDL_TMR_STS_CC2RCFLG TMR_STS_CC2RCFLG
512#define DDL_TMR_STS_CC3RCFLG TMR_STS_CC3RCFLG
513#define DDL_TMR_STS_CC4RCFLG TMR_STS_CC4RCFLG
518#if defined(USE_FULL_DDL_DRIVER)
522#define DDL_TMR_BREAK_DISABLE 0x00000000U
523#define DDL_TMR_BREAK_ENABLE TMR_BDT_BRKEN
531#define DDL_TMR_AUTOMATICOUTPUT_DISABLE 0x00000000U
532#define DDL_TMR_AUTOMATICOUTPUT_ENABLE TMR_BDT_AOEN
542#define DDL_TMR_DIEN_UIEN TMR_DIEN_UIEN
543#define DDL_TMR_DIEN_CC1IEN TMR_DIEN_CC1IEN
544#define DDL_TMR_DIEN_CC2IEN TMR_DIEN_CC2IEN
545#define DDL_TMR_DIEN_CC3IEN TMR_DIEN_CC3IEN
546#define DDL_TMR_DIEN_CC4IEN TMR_DIEN_CC4IEN
547#define DDL_TMR_DIEN_COMIEN TMR_DIEN_COMIEN
548#define DDL_TMR_DIEN_TRGIEN TMR_DIEN_TRGIEN
549#define DDL_TMR_DIEN_BRKIEN TMR_DIEN_BRKIEN
557#define DDL_TMR_UPDATESOURCE_REGULAR 0x00000000U
558#define DDL_TMR_UPDATESOURCE_COUNTER TMR_CTRL1_URSSEL
566#define DDL_TMR_ONEPULSEMODE_SINGLE TMR_CTRL1_SPMEN
567#define DDL_TMR_ONEPULSEMODE_REPETITIVE 0x00000000U
575#define DDL_TMR_COUNTERMODE_UP 0x00000000U
576#define DDL_TMR_COUNTERMODE_DOWN TMR_CTRL1_CNTDIR
577#define DDL_TMR_COUNTERMODE_CENTER_DOWN TMR_CTRL1_CAMSEL_0
578#define DDL_TMR_COUNTERMODE_CENTER_UP TMR_CTRL1_CAMSEL_1
579#define DDL_TMR_COUNTERMODE_CENTER_UP_DOWN TMR_CTRL1_CAMSEL
587#define DDL_TMR_CLOCKDIVISION_DIV1 0x00000000U
588#define DDL_TMR_CLOCKDIVISION_DIV2 TMR_CTRL1_CLKDIV_0
589#define DDL_TMR_CLOCKDIVISION_DIV4 TMR_CTRL1_CLKDIV_1
597#define DDL_TMR_COUNTERDIRECTION_UP 0x00000000U
598#define DDL_TMR_COUNTERDIRECTION_DOWN TMR_CTRL1_CNTDIR
606#define DDL_TMR_CCUPDATESOURCE_COMG_ONLY 0x00000000U
607#define DDL_TMR_CCUPDATESOURCE_COMG_AND_TRGI TMR_CTRL2_CCUSEL
615#define DDL_TMR_CCDMAREQUEST_CC 0x00000000U
616#define DDL_TMR_CCDMAREQUEST_UPDATE TMR_CTRL2_CCDSEL
624#define DDL_TMR_LOCKLEVEL_OFF 0x00000000U
625#define DDL_TMR_LOCKLEVEL_1 TMR_BDT_LOCKCFG_0
626#define DDL_TMR_LOCKLEVEL_2 TMR_BDT_LOCKCFG_1
627#define DDL_TMR_LOCKLEVEL_3 TMR_BDT_LOCKCFG
635#define DDL_TMR_CHANNEL_CH1 TMR_CCEN_CC1EN
636#define DDL_TMR_CHANNEL_CH1N TMR_CCEN_CC1NEN
637#define DDL_TMR_CHANNEL_CH2 TMR_CCEN_CC2EN
638#define DDL_TMR_CHANNEL_CH2N TMR_CCEN_CC2NEN
639#define DDL_TMR_CHANNEL_CH3 TMR_CCEN_CC3EN
640#define DDL_TMR_CHANNEL_CH3N TMR_CCEN_CC3NEN
641#define DDL_TMR_CHANNEL_CH4 TMR_CCEN_CC4EN
646#if defined(USE_FULL_DDL_DRIVER)
650#define DDL_TMR_OCSTATE_DISABLE 0x00000000U
651#define DDL_TMR_OCSTATE_ENABLE TMR_CCEN_CC1EN
660#define DDL_TMR_OCMODE_FROZEN (0x00000000U)
661#define DDL_TMR_OCMODE_ACTIVE (TMR_CCM1_OC1MOD_0)
662#define DDL_TMR_OCMODE_INACTIVE (TMR_CCM1_OC1MOD_1)
663#define DDL_TMR_OCMODE_TOGGLE (TMR_CCM1_OC1MOD_1 | TMR_CCM1_OC1MOD_0)
664#define DDL_TMR_OCMODE_FORCED_INACTIVE (TMR_CCM1_OC1MOD_2)
665#define DDL_TMR_OCMODE_FORCED_ACTIVE (TMR_CCM1_OC1MOD_2 | TMR_CCM1_OC1MOD_0)
666#define DDL_TMR_OCMODE_PWM1 (TMR_CCM1_OC1MOD_2 | TMR_CCM1_OC1MOD_1)
667#define DDL_TMR_OCMODE_PWM2 (TMR_CCM1_OC1MOD)
675#define DDL_TMR_OCPOLARITY_HIGH 0x00000000U
676#define DDL_TMR_OCPOLARITY_LOW TMR_CCEN_CC1POL
684#define DDL_TMR_OCIDLESTATE_LOW 0x00000000U
685#define DDL_TMR_OCIDLESTATE_HIGH TMR_CTRL2_OC1OIS
692#define DDL_TMR_ACTIVEINPUT_DIRECTTI (TMR_CCM1_CC1SEL_0)
693#define DDL_TMR_ACTIVEINPUT_INDIRECTTI (TMR_CCM1_CC1SEL_1)
694#define DDL_TMR_ACTIVEINPUT_TRC (TMR_CCM1_CC1SEL)
701#define DDL_TMR_ICPSC_DIV1 0x00000000U
702#define DDL_TMR_ICPSC_DIV2 (TMR_CCM1_IC1PSC_0)
703#define DDL_TMR_ICPSC_DIV4 (TMR_CCM1_IC1PSC_1)
704#define DDL_TMR_ICPSC_DIV8 (TMR_CCM1_IC1PSC)
712#define DDL_TMR_IC_FILTER_FDIV1 (0x00000000U)
713#define DDL_TMR_IC_FILTER_FDIV1_N2 (TMR_CCM1_IC1F_0)
714#define DDL_TMR_IC_FILTER_FDIV1_N4 (TMR_CCM1_IC1F_1)
715#define DDL_TMR_IC_FILTER_FDIV1_N8 ((TMR_CCM1_IC1F_1 | TMR_CCM1_IC1F_0))
716#define DDL_TMR_IC_FILTER_FDIV2_N6 (TMR_CCM1_IC1F_2)
717#define DDL_TMR_IC_FILTER_FDIV2_N8 ((TMR_CCM1_IC1F_2 | TMR_CCM1_IC1F_0))
718#define DDL_TMR_IC_FILTER_FDIV4_N6 ((TMR_CCM1_IC1F_2 | TMR_CCM1_IC1F_1))
719#define DDL_TMR_IC_FILTER_FDIV4_N8 ((TMR_CCM1_IC1F_2 | TMR_CCM1_IC1F_1 | TMR_CCM1_IC1F_0))
720#define DDL_TMR_IC_FILTER_FDIV8_N6 (TMR_CCM1_IC1F_3)
721#define DDL_TMR_IC_FILTER_FDIV8_N8 ((TMR_CCM1_IC1F_3 | TMR_CCM1_IC1F_0))
722#define DDL_TMR_IC_FILTER_FDIV16_N5 ((TMR_CCM1_IC1F_3 | TMR_CCM1_IC1F_1))
723#define DDL_TMR_IC_FILTER_FDIV16_N6 ((TMR_CCM1_IC1F_3 | TMR_CCM1_IC1F_1 | TMR_CCM1_IC1F_0))
724#define DDL_TMR_IC_FILTER_FDIV16_N8 ((TMR_CCM1_IC1F_3 | TMR_CCM1_IC1F_2))
725#define DDL_TMR_IC_FILTER_FDIV32_N5 ((TMR_CCM1_IC1F_3 | TMR_CCM1_IC1F_2 | TMR_CCM1_IC1F_0))
726#define DDL_TMR_IC_FILTER_FDIV32_N6 ((TMR_CCM1_IC1F_3 | TMR_CCM1_IC1F_2 | TMR_CCM1_IC1F_1))
727#define DDL_TMR_IC_FILTER_FDIV32_N8 (TMR_CCM1_IC1F)
735#define DDL_TMR_IC_POLARITY_RISING 0x00000000U
736#define DDL_TMR_IC_POLARITY_FALLING TMR_CCEN_CC1POL
737#define DDL_TMR_IC_POLARITY_BOTHEDGE (TMR_CCEN_CC1POL | TMR_CCEN_CC1NPOL)
745#define DDL_TMR_CLOCKSOURCE_INTERNAL 0x00000000U
746#define DDL_TMR_CLOCKSOURCE_EXT_MODE1 TMR_SMCTRL_SMFSEL
747#define DDL_TMR_CLOCKSOURCE_EXT_MODE2 TMR_SMCTRL_ECEN
755#define DDL_TMR_ENCODERMODE_X2_TI1 (TMR_SMCTRL_SMFSEL_0)
756#define DDL_TMR_ENCODERMODE_X2_TI2 (TMR_SMCTRL_SMFSEL_1)
757#define DDL_TMR_ENCODERMODE_X4_TI12 (TMR_SMCTRL_SMFSEL_1 | TMR_SMCTRL_SMFSEL_0)
765#define DDL_TMR_TRGO_RESET (0x00000000U)
766#define DDL_TMR_TRGO_ENABLE (TMR_CTRL2_MMSEL_0)
767#define DDL_TMR_TRGO_UPDATE (TMR_CTRL2_MMSEL_1)
768#define DDL_TMR_TRGO_CC1IF (TMR_CTRL2_MMSEL_1 | TMR_CTRL2_MMSEL_0)
769#define DDL_TMR_TRGO_OC1REF (TMR_CTRL2_MMSEL_2)
770#define DDL_TMR_TRGO_OC2REF (TMR_CTRL2_MMSEL_2 | TMR_CTRL2_MMSEL_0)
771#define DDL_TMR_TRGO_OC3REF (TMR_CTRL2_MMSEL_2 | TMR_CTRL2_MMSEL_1)
772#define DDL_TMR_TRGO_OC4REF (TMR_CTRL2_MMSEL)
780#define DDL_TMR_SLAVEMODE_DISABLED (0x00000000U)
781#define DDL_TMR_SLAVEMODE_RESET (TMR_SMCTRL_SMFSEL_2)
782#define DDL_TMR_SLAVEMODE_GATED (TMR_SMCTRL_SMFSEL_2 | TMR_SMCTRL_SMFSEL_0)
783#define DDL_TMR_SLAVEMODE_TRIGGER (TMR_SMCTRL_SMFSEL_2 | TMR_SMCTRL_SMFSEL_1)
791#define DDL_TMR_TS_ITR0 (0x00000000U)
792#define DDL_TMR_TS_ITR1 (TMR_SMCTRL_TRGSEL_0)
793#define DDL_TMR_TS_ITR2 (TMR_SMCTRL_TRGSEL_1)
794#define DDL_TMR_TS_ITR3 (TMR_SMCTRL_TRGSEL_0 | TMR_SMCTRL_TRGSEL_1)
795#define DDL_TMR_TS_TI1F_ED (TMR_SMCTRL_TRGSEL_2)
796#define DDL_TMR_TS_TI1FP1 (TMR_SMCTRL_TRGSEL_2 | TMR_SMCTRL_TRGSEL_0)
797#define DDL_TMR_TS_TI2FP2 (TMR_SMCTRL_TRGSEL_2 | TMR_SMCTRL_TRGSEL_1)
798#define DDL_TMR_TS_ETRF (TMR_SMCTRL_TRGSEL)
806#define DDL_TMR_ETR_POLARITY_NONINVERTED 0x00000000U
807#define DDL_TMR_ETR_POLARITY_INVERTED TMR_SMCTRL_ETPOL
815#define DDL_TMR_ETR_PRESCALER_DIV1 0x00000000U
816#define DDL_TMR_ETR_PRESCALER_DIV2 TMR_SMCTRL_ETPCFG_0
817#define DDL_TMR_ETR_PRESCALER_DIV4 TMR_SMCTRL_ETPCFG_1
818#define DDL_TMR_ETR_PRESCALER_DIV8 TMR_SMCTRL_ETPCFG
826#define DDL_TMR_ETR_FILTER_FDIV1 (0x00000000U)
827#define DDL_TMR_ETR_FILTER_FDIV1_N2 (TMR_SMCTRL_ETFCFG_0)
828#define DDL_TMR_ETR_FILTER_FDIV1_N4 (TMR_SMCTRL_ETFCFG_1)
829#define DDL_TMR_ETR_FILTER_FDIV1_N8 (TMR_SMCTRL_ETFCFG_1 | TMR_SMCTRL_ETFCFG_0)
830#define DDL_TMR_ETR_FILTER_FDIV2_N6 (TMR_SMCTRL_ETFCFG_2)
831#define DDL_TMR_ETR_FILTER_FDIV2_N8 (TMR_SMCTRL_ETFCFG_2 | TMR_SMCTRL_ETFCFG_0)
832#define DDL_TMR_ETR_FILTER_FDIV4_N6 (TMR_SMCTRL_ETFCFG_2 | TMR_SMCTRL_ETFCFG_1)
833#define DDL_TMR_ETR_FILTER_FDIV4_N8 (TMR_SMCTRL_ETFCFG_2 | TMR_SMCTRL_ETFCFG_1 | TMR_SMCTRL_ETFCFG_0)
834#define DDL_TMR_ETR_FILTER_FDIV8_N6 (TMR_SMCTRL_ETFCFG_3)
835#define DDL_TMR_ETR_FILTER_FDIV8_N8 (TMR_SMCTRL_ETFCFG_3 | TMR_SMCTRL_ETFCFG_0)
836#define DDL_TMR_ETR_FILTER_FDIV16_N5 (TMR_SMCTRL_ETFCFG_3 | TMR_SMCTRL_ETFCFG_1)
837#define DDL_TMR_ETR_FILTER_FDIV16_N6 (TMR_SMCTRL_ETFCFG_3 | TMR_SMCTRL_ETFCFG_1 | TMR_SMCTRL_ETFCFG_0)
838#define DDL_TMR_ETR_FILTER_FDIV16_N8 (TMR_SMCTRL_ETFCFG_3 | TMR_SMCTRL_ETFCFG_2)
839#define DDL_TMR_ETR_FILTER_FDIV32_N5 (TMR_SMCTRL_ETFCFG_3 | TMR_SMCTRL_ETFCFG_2 | TMR_SMCTRL_ETFCFG_0)
840#define DDL_TMR_ETR_FILTER_FDIV32_N6 (TMR_SMCTRL_ETFCFG_3 | TMR_SMCTRL_ETFCFG_2 | TMR_SMCTRL_ETFCFG_1)
841#define DDL_TMR_ETR_FILTER_FDIV32_N8 (TMR_SMCTRL_ETFCFG)
849#define DDL_TMR_BREAK_POLARITY_LOW 0x00000000U
850#define DDL_TMR_BREAK_POLARITY_HIGH TMR_BDT_BRKPOL
858#define DDL_TMR_OSSI_DISABLE 0x00000000U
859#define DDL_TMR_OSSI_ENABLE TMR_BDT_IMOS
867#define DDL_TMR_OSSR_DISABLE 0x00000000U
868#define DDL_TMR_OSSR_ENABLE TMR_BDT_RMOS
876#define DDL_TMR_DMABURST_BASEADDR_CTRL1 (0x00000000U)
877#define DDL_TMR_DMABURST_BASEADDR_CTRL2 (TMR_DCTRL_DBADDR_0)
878#define DDL_TMR_DMABURST_BASEADDR_SMCTRL (TMR_DCTRL_DBADDR_1)
879#define DDL_TMR_DMABURST_BASEADDR_DIEN (TMR_DCTRL_DBADDR_1 | TMR_DCTRL_DBADDR_0)
880#define DDL_TMR_DMABURST_BASEADDR_STS (TMR_DCTRL_DBADDR_2)
881#define DDL_TMR_DMABURST_BASEADDR_CEG (TMR_DCTRL_DBADDR_2 | TMR_DCTRL_DBADDR_0)
882#define DDL_TMR_DMABURST_BASEADDR_CCM1 (TMR_DCTRL_DBADDR_2 | TMR_DCTRL_DBADDR_1)
883#define DDL_TMR_DMABURST_BASEADDR_CCM2 (TMR_DCTRL_DBADDR_2 | TMR_DCTRL_DBADDR_1 | TMR_DCTRL_DBADDR_0)
884#define DDL_TMR_DMABURST_BASEADDR_CCEN (TMR_DCTRL_DBADDR_3)
885#define DDL_TMR_DMABURST_BASEADDR_CNT (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_0)
886#define DDL_TMR_DMABURST_BASEADDR_PSC (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_1)
887#define DDL_TMR_DMABURST_BASEADDR_AUTORLD (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_1 | TMR_DCTRL_DBADDR_0)
888#define DDL_TMR_DMABURST_BASEADDR_REPCNT (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_2)
889#define DDL_TMR_DMABURST_BASEADDR_CC1 (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_2 | TMR_DCTRL_DBADDR_0)
890#define DDL_TMR_DMABURST_BASEADDR_CC2 (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_2 | TMR_DCTRL_DBADDR_1)
891#define DDL_TMR_DMABURST_BASEADDR_CC3 (TMR_DCTRL_DBADDR_3 | TMR_DCTRL_DBADDR_2 | TMR_DCTRL_DBADDR_1 | TMR_DCTRL_DBADDR_0)
892#define DDL_TMR_DMABURST_BASEADDR_CC4 (TMR_DCTRL_DBADDR_4)
893#define DDL_TMR_DMABURST_BASEADDR_BDT (TMR_DCTRL_DBADDR_4 | TMR_DCTRL_DBADDR_0)
901#define DDL_TMR_DMABURST_LENGTH_1TRANSFER (0x00000000U)
902#define DDL_TMR_DMABURST_LENGTH_2TRANSFERS (TMR_DCTRL_DBLEN_0)
903#define DDL_TMR_DMABURST_LENGTH_3TRANSFERS (TMR_DCTRL_DBLEN_1)
904#define DDL_TMR_DMABURST_LENGTH_4TRANSFERS (TMR_DCTRL_DBLEN_1 | TMR_DCTRL_DBLEN_0)
905#define DDL_TMR_DMABURST_LENGTH_5TRANSFERS (TMR_DCTRL_DBLEN_2)
906#define DDL_TMR_DMABURST_LENGTH_6TRANSFERS (TMR_DCTRL_DBLEN_2 | TMR_DCTRL_DBLEN_0)
907#define DDL_TMR_DMABURST_LENGTH_7TRANSFERS (TMR_DCTRL_DBLEN_2 | TMR_DCTRL_DBLEN_1)
908#define DDL_TMR_DMABURST_LENGTH_8TRANSFERS (TMR_DCTRL_DBLEN_2 | TMR_DCTRL_DBLEN_1 | TMR_DCTRL_DBLEN_0)
909#define DDL_TMR_DMABURST_LENGTH_9TRANSFERS (TMR_DCTRL_DBLEN_3)
910#define DDL_TMR_DMABURST_LENGTH_10TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_0)
911#define DDL_TMR_DMABURST_LENGTH_11TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_1)
912#define DDL_TMR_DMABURST_LENGTH_12TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_1 | TMR_DCTRL_DBLEN_0)
913#define DDL_TMR_DMABURST_LENGTH_13TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_2)
914#define DDL_TMR_DMABURST_LENGTH_14TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_2 | TMR_DCTRL_DBLEN_0)
915#define DDL_TMR_DMABURST_LENGTH_15TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_2 | TMR_DCTRL_DBLEN_1)
916#define DDL_TMR_DMABURST_LENGTH_16TRANSFERS (TMR_DCTRL_DBLEN_3 | TMR_DCTRL_DBLEN_2 | TMR_DCTRL_DBLEN_1 | TMR_DCTRL_DBLEN_0)
917#define DDL_TMR_DMABURST_LENGTH_17TRANSFERS (TMR_DCTRL_DBLEN_4)
918#define DDL_TMR_DMABURST_LENGTH_18TRANSFERS (TMR_DCTRL_DBLEN_4 | TMR_DCTRL_DBLEN_0)
942#define DDL_TMR_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
950#define DDL_TMR_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
970#define __DDL_TMR_CALC_DEADTMRE(__TMRCLK__, __CKD__, __DT__) \
971 ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TMR_CALC_DTS((__TMRCLK__), (__CKD__)))) ? \
972 (uint8_t)(((uint64_t)((__DT__)*1000U) / TMR_CALC_DTS((__TMRCLK__), (__CKD__))) & DT_DELAY_1) : \
973 (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TMR_CALC_DTS((__TMRCLK__), (__CKD__)))) ? \
974 (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TMR_CALC_DTS((__TMRCLK__), \
975 (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\
976 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TMR_CALC_DTS((__TMRCLK__), (__CKD__)))) ? \
977 (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TMR_CALC_DTS((__TMRCLK__), \
978 (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\
979 (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TMR_CALC_DTS((__TMRCLK__), (__CKD__)))) ? \
980 (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TMR_CALC_DTS((__TMRCLK__), \
981 (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\
991#define __DDL_TMR_CALC_PSC(__TMRCLK__, __CNTCLK__) \
992 (((__TMRCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TMRCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
1002#define __DDL_TMR_CALC_ARR(__TMRCLK__, __PSC__, __FREQ__) \
1003 ((((__TMRCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TMRCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
1014#define __DDL_TMR_CALC_DELAY(__TMRCLK__, __PSC__, __DELAY__) \
1015 ((uint32_t)(((uint64_t)(__TMRCLK__) * (uint64_t)(__DELAY__)) \
1016 / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
1028#define __DDL_TMR_CALC_PULSE(__TMRCLK__, __PSC__, __DELAY__, __PULSE__) \
1029 ((uint32_t)(__DDL_TMR_CALC_DELAY((__TMRCLK__), (__PSC__), (__PULSE__)) \
1030 + __DDL_TMR_CALC_DELAY((__TMRCLK__), (__PSC__), (__DELAY__))))
1042#define __DDL_TMR_GET_ICPSC_RATIO(__ICPSC__) \
1043 ((uint32_t)(0x01U << (((__ICPSC__)) >> TMR_CCM1_IC1PSC_Pos)))
1068 SET_BIT(TMRx->CTRL1, TMR_CTRL1_CNTEN);
1078 CLEAR_BIT(TMRx->CTRL1, TMR_CTRL1_CNTEN);
1088 return ((READ_BIT(TMRx->CTRL1, TMR_CTRL1_CNTEN) == (TMR_CTRL1_CNTEN)) ? 1UL : 0UL);
1098 CLEAR_BIT(TMRx->CTRL1, TMR_CTRL1_UD);
1108 SET_BIT(TMRx->CTRL1, TMR_CTRL1_UD);
1118 return ((READ_BIT(TMRx->CTRL1, TMR_CTRL1_UD) == TMR_CTRL1_UD) ? 1UL : 0UL);
1138 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_URSSEL, UpdateSource);
1150 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_URSSEL));
1163 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_SPMEN, OnePulseMode);
1175 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_SPMEN));
1197 MODIFY_REG(TMRx->CTRL1, (TMR_CTRL1_CNTDIR | TMR_CTRL1_CAMSEL), CounterMode);
1215 uint32_t counter_mode;
1217 counter_mode = (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CAMSEL));
1219 if (counter_mode == 0U)
1221 counter_mode = (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CNTDIR));
1224 return counter_mode;
1234 SET_BIT(TMRx->CTRL1, TMR_CTRL1_ARPEN);
1244 CLEAR_BIT(TMRx->CTRL1, TMR_CTRL1_ARPEN);
1254 return ((READ_BIT(TMRx->CTRL1, TMR_CTRL1_ARPEN) == (TMR_CTRL1_ARPEN)) ? 1UL : 0UL);
1272 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_CLKDIV, ClockDivision);
1289 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CLKDIV));
1300 WRITE_REG(TMRx->CNT, Counter);
1310 return (uint32_t)(READ_REG(TMRx->CNT));
1323 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_CNTDIR, Direction);
1335 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CNTDIR));
1350 WRITE_REG(TMRx->PSC, Prescaler);
1360 return (uint32_t)(READ_REG(TMRx->PSC));
1373 WRITE_REG(TMRx->AUTORLD, AutoReload);
1383 return (uint32_t)(READ_REG(TMRx->AUTORLD));
1396 WRITE_REG(TMRx->REPCNT, RepetitionCounter);
1408 return (uint32_t)(READ_REG(TMRx->REPCNT));
1430 SET_BIT(TMRx->CTRL2, TMR_CTRL2_CCPEN);
1442 CLEAR_BIT(TMRx->CTRL2, TMR_CTRL2_CCPEN);
1452 return ((READ_BIT(TMRx->CTRL2, TMR_CTRL2_CCPEN) == (TMR_CTRL2_CCPEN)) ? 1UL : 0UL);
1467 MODIFY_REG(TMRx->CTRL2, TMR_CTRL2_CCUSEL, CCUpdateSource);
1481 return (uint32_t)(READ_BIT(TMRx->CTRL2, TMR_CTRL2_CCUSEL));
1494 MODIFY_REG(TMRx->CTRL2, TMR_CTRL2_CCDSEL, DMAReqTrigger);
1506 return (uint32_t)(READ_BIT(TMRx->CTRL2, TMR_CTRL2_CCDSEL));
1524 MODIFY_REG(TMRx->BDT, TMR_BDT_LOCKCFG, LockLevel);
1542 SET_BIT(TMRx->CCEN, Channels);
1560 CLEAR_BIT(TMRx->CCEN, Channels);
1578 return ((READ_BIT(TMRx->CCEN, Channels) == (Channels)) ? 1UL : 0UL);
1607 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1609 MODIFY_REG(TMRx->CCEN, (TMR_CCEN_CC1POL <<
SHIFT_TAB_CCxP[iChannel]),
1611 MODIFY_REG(TMRx->CTRL2, (TMR_CTRL2_OC1OIS <<
SHIFT_TAB_OISx[iChannel]),
1638 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1663 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1771 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1788 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1805 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1807 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1823 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1840 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1857 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1859 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1878 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1897 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1918 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
1920 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1935 MODIFY_REG(TMRx->BDT, TMR_BDT_DTS, DeadTime);
1949 WRITE_REG(TMRx->CC1, CompareValue);
1962 return (uint32_t)(READ_REG(TMRx->CC1));
1976 WRITE_REG(TMRx->CC2, CompareValue);
1989 return (uint32_t)(READ_REG(TMRx->CC2));
2003 WRITE_REG(TMRx->CC3, CompareValue);
2016 return (uint32_t)(READ_REG(TMRx->CC3));
2030 WRITE_REG(TMRx->CC4, CompareValue);
2043 return (uint32_t)(READ_REG(TMRx->CC4));
2071 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2072 MODIFY_REG(*pReg, ((TMR_CCM1_IC1F | TMR_CCM1_IC1PSC | TMR_CCM1_CC1SEL) <<
SHIFT_TAB_ICxx[iChannel]),
2073 ((Configuration >> 16U) & (TMR_CCM1_IC1F | TMR_CCM1_IC1PSC | TMR_CCM1_CC1SEL)) \
2075 MODIFY_REG(TMRx->CCEN, ((TMR_CCEN_CC1NPOL | TMR_CCEN_CC1POL) <<
SHIFT_TAB_CCxP[iChannel]),
2076 (Configuration & (TMR_CCEN_CC1NPOL | TMR_CCEN_CC1POL)) <<
SHIFT_TAB_CCxP[iChannel]);
2096 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2116 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2138 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2159 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2193 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2226 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) +
OFFSET_TAB_CCMRx[iChannel]));
2247 MODIFY_REG(TMRx->CCEN, ((TMR_CCEN_CC1NPOL | TMR_CCEN_CC1POL) <<
SHIFT_TAB_CCxP[iChannel]),
2267 return (READ_BIT(TMRx->CCEN, ((TMR_CCEN_CC1NPOL | TMR_CCEN_CC1POL) <<
SHIFT_TAB_CCxP[iChannel])) >>
2280 SET_BIT(TMRx->CTRL2, TMR_CTRL2_TI1SEL);
2292 CLEAR_BIT(TMRx->CTRL2, TMR_CTRL2_TI1SEL);
2304 return ((READ_BIT(TMRx->CTRL2, TMR_CTRL2_TI1SEL) == (TMR_CTRL2_TI1SEL)) ? 1UL : 0UL);
2317 return (uint32_t)(READ_REG(TMRx->CC1));
2330 return (uint32_t)(READ_REG(TMRx->CC2));
2343 return (uint32_t)(READ_REG(TMRx->CC3));
2356 return (uint32_t)(READ_REG(TMRx->CC4));
2376 SET_BIT(TMRx->SMCTRL, TMR_SMCTRL_ECEN);
2388 CLEAR_BIT(TMRx->SMCTRL, TMR_SMCTRL_ECEN);
2400 return ((READ_BIT(TMRx->SMCTRL, TMR_SMCTRL_ECEN) == (TMR_SMCTRL_ECEN)) ? 1UL : 0UL);
2422 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_SMFSEL | TMR_SMCTRL_ECEN, ClockSource);
2438 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_SMFSEL, EncoderMode);
2466 MODIFY_REG(TMRx->CTRL2, TMR_CTRL2_MMSEL, TimerSynchronization);
2483 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_SMFSEL, SlaveMode);
2504 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_TRGSEL, TriggerInput);
2516 SET_BIT(TMRx->SMCTRL, TMR_SMCTRL_MSMEN);
2528 CLEAR_BIT(TMRx->SMCTRL, TMR_SMCTRL_MSMEN);
2540 return ((READ_BIT(TMRx->SMCTRL, TMR_SMCTRL_MSMEN) == (TMR_SMCTRL_MSMEN)) ? 1UL : 0UL);
2575__STATIC_INLINE
void DDL_TMR_ConfigETR(TMR_TypeDef *TMRx, uint32_t ETRPolarity, uint32_t ETRPrescaler, uint32_t ETRFilter)
2577 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_ETPOL | TMR_SMCTRL_ETPCFG | TMR_SMCTRL_ETFCFG, ETRPolarity | ETRPrescaler | ETRFilter);
2596 __IO uint32_t tmpreg;
2597 SET_BIT(TMRx->BDT, TMR_BDT_BRKEN);
2599 tmpreg = READ_REG(TMRx->BDT);
2612 __IO uint32_t tmpreg;
2613 CLEAR_BIT(TMRx->BDT, TMR_BDT_BRKEN);
2615 tmpreg = READ_REG(TMRx->BDT);
2631 __IO uint32_t tmpreg;
2632 MODIFY_REG(TMRx->BDT, TMR_BDT_BRKPOL, BreakPolarity);
2634 tmpreg = READ_REG(TMRx->BDT);
2653 MODIFY_REG(TMRx->BDT, TMR_BDT_IMOS | TMR_BDT_RMOS, OffStateIdle | OffStateRun);
2665 SET_BIT(TMRx->BDT, TMR_BDT_AOEN);
2677 CLEAR_BIT(TMRx->BDT, TMR_BDT_AOEN);
2689 return ((READ_BIT(TMRx->BDT, TMR_BDT_AOEN) == (TMR_BDT_AOEN)) ? 1UL : 0UL);
2703 SET_BIT(TMRx->BDT, TMR_BDT_MOEN);
2717 CLEAR_BIT(TMRx->BDT, TMR_BDT_MOEN);
2729 return ((READ_BIT(TMRx->BDT, TMR_BDT_MOEN) == (TMR_BDT_MOEN)) ? 1UL : 0UL);
2786 MODIFY_REG(TMRx->DCTRL, (TMR_DCTRL_DBLEN | TMR_DCTRL_DBADDR), (DMABurstBaseAddress | DMABurstLength));
2803 WRITE_REG(TMRx->STS, ~(TMR_STS_UIFLG));
2813 return ((READ_BIT(TMRx->STS, TMR_STS_UIFLG) == (TMR_STS_UIFLG)) ? 1UL : 0UL);
2823 WRITE_REG(TMRx->STS, ~(TMR_STS_CC1IFLG));
2833 return ((READ_BIT(TMRx->STS, TMR_STS_CC1IFLG) == (TMR_STS_CC1IFLG)) ? 1UL : 0UL);
2843 WRITE_REG(TMRx->STS, ~(TMR_STS_CC2IFLG));
2853 return ((READ_BIT(TMRx->STS, TMR_STS_CC2IFLG) == (TMR_STS_CC2IFLG)) ? 1UL : 0UL);
2863 WRITE_REG(TMRx->STS, ~(TMR_STS_CC3IFLG));
2873 return ((READ_BIT(TMRx->STS, TMR_STS_CC3IFLG) == (TMR_STS_CC3IFLG)) ? 1UL : 0UL);
2883 WRITE_REG(TMRx->STS, ~(TMR_STS_CC4IFLG));
2893 return ((READ_BIT(TMRx->STS, TMR_STS_CC4IFLG) == (TMR_STS_CC4IFLG)) ? 1UL : 0UL);
2903 WRITE_REG(TMRx->STS, ~(TMR_STS_COMIFLG));
2913 return ((READ_BIT(TMRx->STS, TMR_STS_COMIFLG) == (TMR_STS_COMIFLG)) ? 1UL : 0UL);
2923 WRITE_REG(TMRx->STS, ~(TMR_STS_TRGIFLG));
2933 return ((READ_BIT(TMRx->STS, TMR_STS_TRGIFLG) == (TMR_STS_TRGIFLG)) ? 1UL : 0UL);
2943 WRITE_REG(TMRx->STS, ~(TMR_STS_BRKIFLG));
2953 return ((READ_BIT(TMRx->STS, TMR_STS_BRKIFLG) == (TMR_STS_BRKIFLG)) ? 1UL : 0UL);
2963 WRITE_REG(TMRx->STS, ~(TMR_STS_CC1RCFLG));
2974 return ((READ_BIT(TMRx->STS, TMR_STS_CC1RCFLG) == (TMR_STS_CC1RCFLG)) ? 1UL : 0UL);
2984 WRITE_REG(TMRx->STS, ~(TMR_STS_CC2RCFLG));
2995 return ((READ_BIT(TMRx->STS, TMR_STS_CC2RCFLG) == (TMR_STS_CC2RCFLG)) ? 1UL : 0UL);
3005 WRITE_REG(TMRx->STS, ~(TMR_STS_CC3RCFLG));
3016 return ((READ_BIT(TMRx->STS, TMR_STS_CC3RCFLG) == (TMR_STS_CC3RCFLG)) ? 1UL : 0UL);
3026 WRITE_REG(TMRx->STS, ~(TMR_STS_CC4RCFLG));
3037 return ((READ_BIT(TMRx->STS, TMR_STS_CC4RCFLG) == (TMR_STS_CC4RCFLG)) ? 1UL : 0UL);
3054 SET_BIT(TMRx->DIEN, TMR_DIEN_UIEN);
3064 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_UIEN);
3074 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_UIEN) == (TMR_DIEN_UIEN)) ? 1UL : 0UL);
3084 SET_BIT(TMRx->DIEN, TMR_DIEN_CC1IEN);
3094 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC1IEN);
3104 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC1IEN) == (TMR_DIEN_CC1IEN)) ? 1UL : 0UL);
3114 SET_BIT(TMRx->DIEN, TMR_DIEN_CC2IEN);
3124 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC2IEN);
3134 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC2IEN) == (TMR_DIEN_CC2IEN)) ? 1UL : 0UL);
3144 SET_BIT(TMRx->DIEN, TMR_DIEN_CC3IEN);
3154 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC3IEN);
3164 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC3IEN) == (TMR_DIEN_CC3IEN)) ? 1UL : 0UL);
3174 SET_BIT(TMRx->DIEN, TMR_DIEN_CC4IEN);
3184 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC4IEN);
3194 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC4IEN) == (TMR_DIEN_CC4IEN)) ? 1UL : 0UL);
3204 SET_BIT(TMRx->DIEN, TMR_DIEN_COMIEN);
3214 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_COMIEN);
3224 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_COMIEN) == (TMR_DIEN_COMIEN)) ? 1UL : 0UL);
3234 SET_BIT(TMRx->DIEN, TMR_DIEN_TRGIEN);
3244 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_TRGIEN);
3254 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_TRGIEN) == (TMR_DIEN_TRGIEN)) ? 1UL : 0UL);
3264 SET_BIT(TMRx->DIEN, TMR_DIEN_BRKIEN);
3274 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_BRKIEN);
3284 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_BRKIEN) == (TMR_DIEN_BRKIEN)) ? 1UL : 0UL);
3301 SET_BIT(TMRx->DIEN, TMR_DIEN_UDIEN);
3311 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_UDIEN);
3321 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_UDIEN) == (TMR_DIEN_UDIEN)) ? 1UL : 0UL);
3331 SET_BIT(TMRx->DIEN, TMR_DIEN_CC1DEN);
3341 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC1DEN);
3351 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC1DEN) == (TMR_DIEN_CC1DEN)) ? 1UL : 0UL);
3361 SET_BIT(TMRx->DIEN, TMR_DIEN_CC2DEN);
3371 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC2DEN);
3381 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC2DEN) == (TMR_DIEN_CC2DEN)) ? 1UL : 0UL);
3391 SET_BIT(TMRx->DIEN, TMR_DIEN_CC3DEN);
3401 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC3DEN);
3411 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC3DEN) == (TMR_DIEN_CC3DEN)) ? 1UL : 0UL);
3421 SET_BIT(TMRx->DIEN, TMR_DIEN_CC4DEN);
3431 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC4DEN);
3441 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC4DEN) == (TMR_DIEN_CC4DEN)) ? 1UL : 0UL);
3451 SET_BIT(TMRx->DIEN, TMR_DIEN_COMDEN);
3461 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_COMDEN);
3471 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_COMDEN) == (TMR_DIEN_COMDEN)) ? 1UL : 0UL);
3481 SET_BIT(TMRx->DIEN, TMR_DIEN_TRGDEN);
3491 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_TRGDEN);
3501 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_TRGDEN) == (TMR_DIEN_TRGDEN)) ? 1UL : 0UL);
3518 SET_BIT(TMRx->CEG, TMR_CEG_UEG);
3528 SET_BIT(TMRx->CEG, TMR_CEG_CC1EG);
3538 SET_BIT(TMRx->CEG, TMR_CEG_CC2EG);
3548 SET_BIT(TMRx->CEG, TMR_CEG_CC3EG);
3558 SET_BIT(TMRx->CEG, TMR_CEG_CC4EG);
3568 SET_BIT(TMRx->CEG, TMR_CEG_COMG);
3578 SET_BIT(TMRx->CEG, TMR_CEG_TEG);
3588 SET_BIT(TMRx->CEG, TMR_CEG_BEG);
3595#if defined(USE_FULL_DDL_DRIVER)
__STATIC_INLINE void DDL_TMR_EnableBRK(TMR_TypeDef *TMRx)
Enable the break function.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledAllOutputs(TMR_TypeDef *TMRx)
Indicates whether outputs are enabled.
__STATIC_INLINE void DDL_TMR_SetOffStates(TMR_TypeDef *TMRx, uint32_t OffStateIdle, uint32_t OffStateRun)
Select the outputs off state (enabled v.s. disabled) in Idle and Run modes.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledAutomaticOutput(TMR_TypeDef *TMRx)
Indicate whether automatic output is enabled.
__STATIC_INLINE void DDL_TMR_ConfigBRK(TMR_TypeDef *TMRx, uint32_t BreakPolarity)
Configure the break input.
__STATIC_INLINE void DDL_TMR_DisableBRK(TMR_TypeDef *TMRx)
Disable the break function.
__STATIC_INLINE void DDL_TMR_DisableAutomaticOutput(TMR_TypeDef *TMRx)
Disable automatic output (MOE can be set only by software).
__STATIC_INLINE void DDL_TMR_EnableAutomaticOutput(TMR_TypeDef *TMRx)
Enable automatic output (MOE can be set by software or automatically when a break input is active).
__STATIC_INLINE void DDL_TMR_DisableAllOutputs(TMR_TypeDef *TMRx)
Disable the outputs (reset the MOE bit in TMRx_BDTR register).
__STATIC_INLINE void DDL_TMR_EnableAllOutputs(TMR_TypeDef *TMRx)
Enable the outputs (set the MOE bit in TMRx_BDTR register).
__STATIC_INLINE uint32_t DDL_TMR_CC_IsEnabledPreload(TMR_TypeDef *TMRx)
Indicates whether capture/compare control bits preload is enabled.
__STATIC_INLINE uint32_t DDL_TMR_CC_GetDMAReqTrigger(TMR_TypeDef *TMRx)
Get actual trigger of the capture/compare DMA request.
__STATIC_INLINE uint32_t DDL_TMR_CC_IsEnabledChannel(TMR_TypeDef *TMRx, uint32_t Channels)
Indicate whether channel(s) is(are) enabled.
__STATIC_INLINE void DDL_TMR_CC_EnablePreload(TMR_TypeDef *TMRx)
Enable the capture/compare control bits (CCxE, CCxNE and OCxM) preload.
__STATIC_INLINE void DDL_TMR_CC_SetLockLevel(TMR_TypeDef *TMRx, uint32_t LockLevel)
Set the lock level to freeze the configuration of several capture/compare parameters.
__STATIC_INLINE void DDL_TMR_CC_EnableChannel(TMR_TypeDef *TMRx, uint32_t Channels)
Enable capture/compare channels.
__STATIC_INLINE void DDL_TMR_CC_DisableChannel(TMR_TypeDef *TMRx, uint32_t Channels)
Disable capture/compare channels.
__STATIC_INLINE void DDL_TMR_CC_SetUpdate(TMR_TypeDef *TMRx, uint32_t CCUpdateSource)
Set the updated source of the capture/compare control bits (CCxE, CCxNE and OCxM).
__STATIC_INLINE void DDL_TMR_CC_SetDMAReqTrigger(TMR_TypeDef *TMRx, uint32_t DMAReqTrigger)
Set the trigger of the capture/compare DMA request.
__STATIC_INLINE uint32_t DDL_TMR_CC_GetUpdate(TMR_TypeDef *TMRx)
Get the updated source of the capture/compare control bits (CCxE, CCxNE and OCxM).
__STATIC_INLINE void DDL_TMR_CC_DisablePreload(TMR_TypeDef *TMRx)
Disable the capture/compare control bits (CCxE, CCxNE and OCxM) preload.
__STATIC_INLINE void DDL_TMR_SetEncoderMode(TMR_TypeDef *TMRx, uint32_t EncoderMode)
Set the encoder interface mode.
__STATIC_INLINE void DDL_TMR_EnableExternalClock(TMR_TypeDef *TMRx)
Enable external clock mode 2.
__STATIC_INLINE void DDL_TMR_DisableExternalClock(TMR_TypeDef *TMRx)
Disable external clock mode 2.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledExternalClock(TMR_TypeDef *TMRx)
Indicate whether external clock mode 2 is enabled.
__STATIC_INLINE void DDL_TMR_SetClockSource(TMR_TypeDef *TMRx, uint32_t ClockSource)
Set the clock source of the counter clock.
__STATIC_INLINE void DDL_TMR_ConfigDMABurst(TMR_TypeDef *TMRx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength)
Configures the timer DMA burst feature.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_COM(TMR_TypeDef *TMRx)
Indicates whether the commutation DMA request (COMDE) is enabled.
__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC1(TMR_TypeDef *TMRx)
Disable capture/compare 1 DMA request (CC1DE).
__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC4(TMR_TypeDef *TMRx)
Enable capture/compare 4 DMA request (CC4DE).
__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC1(TMR_TypeDef *TMRx)
Enable capture/compare 1 DMA request (CC1DE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC1(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 1 DMA request (CC1DE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableDMAReq_UPDATE(TMR_TypeDef *TMRx)
Enable update DMA request (UDE).
__STATIC_INLINE void DDL_TMR_DisableDMAReq_UPDATE(TMR_TypeDef *TMRx)
Disable update DMA request (UDE).
__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC2(TMR_TypeDef *TMRx)
Enable capture/compare 2 DMA request (CC2DE).
__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC3(TMR_TypeDef *TMRx)
Enable capture/compare 3 DMA request (CC3DE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC3(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 3 DMA request (CC3DE) is enabled.
__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC3(TMR_TypeDef *TMRx)
Disable capture/compare 3 DMA request (CC3DE).
__STATIC_INLINE void DDL_TMR_DisableDMAReq_COM(TMR_TypeDef *TMRx)
Disable commutation DMA request (COMDE).
__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC4(TMR_TypeDef *TMRx)
Disable capture/compare 4 DMA request (CC4DE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_UPDATE(TMR_TypeDef *TMRx)
Indicates whether the update DMA request (UDE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableDMAReq_TRIG(TMR_TypeDef *TMRx)
Enable trigger interrupt (TDE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_TRIG(TMR_TypeDef *TMRx)
Indicates whether the trigger interrupt (TDE) is enabled.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC2(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 2 DMA request (CC2DE) is enabled.
__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC2(TMR_TypeDef *TMRx)
Disable capture/compare 2 DMA request (CC2DE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC4(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 4 DMA request (CC4DE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableDMAReq_COM(TMR_TypeDef *TMRx)
Enable commutation DMA request (COMDE).
__STATIC_INLINE void DDL_TMR_DisableDMAReq_TRIG(TMR_TypeDef *TMRx)
Disable trigger interrupt (TDE).
__STATIC_INLINE void DDL_TMR_GenerateEvent_UPDATE(TMR_TypeDef *TMRx)
Generate an update event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_CC1(TMR_TypeDef *TMRx)
Generate Capture/Compare 1 event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_TRIG(TMR_TypeDef *TMRx)
Generate trigger event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_BRK(TMR_TypeDef *TMRx)
Generate break event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_CC2(TMR_TypeDef *TMRx)
Generate Capture/Compare 2 event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_CC4(TMR_TypeDef *TMRx)
Generate Capture/Compare 4 event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_CC3(TMR_TypeDef *TMRx)
Generate Capture/Compare 3 event.
__STATIC_INLINE void DDL_TMR_GenerateEvent_COM(TMR_TypeDef *TMRx)
Generate commutation event.
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_COM(TMR_TypeDef *TMRx)
Indicate whether commutation interrupt flag (COMIF) is set (commutation interrupt is pending).
__STATIC_INLINE void DDL_TMR_ClearFlag_UPDATE(TMR_TypeDef *TMRx)
Clear the update interrupt flag (UIF).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_TRIG(TMR_TypeDef *TMRx)
Indicate whether trigger interrupt flag (TIF) is set (trigger interrupt is pending).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_BRK(TMR_TypeDef *TMRx)
Indicate whether break interrupt flag (BIF) is set (break interrupt is pending).
__STATIC_INLINE void DDL_TMR_ClearFlag_CC3(TMR_TypeDef *TMRx)
Clear the Capture/Compare 3 interrupt flag (CC3F).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC3(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 3 interrupt flag (CC3F) is set (Capture/Compare 3 interrupt is pendi...
__STATIC_INLINE void DDL_TMR_ClearFlag_CC3OVR(TMR_TypeDef *TMRx)
Clear the Capture/Compare 3 over-capture interrupt flag (CC3OF).
__STATIC_INLINE void DDL_TMR_ClearFlag_TRIG(TMR_TypeDef *TMRx)
Clear the trigger interrupt flag (TIF).
__STATIC_INLINE void DDL_TMR_ClearFlag_BRK(TMR_TypeDef *TMRx)
Clear the break interrupt flag (BIF).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC2OVR(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 2 over-capture interrupt flag (CC2OF) is set (Capture/Compare 2 over...
__STATIC_INLINE void DDL_TMR_ClearFlag_COM(TMR_TypeDef *TMRx)
Clear the commutation interrupt flag (COMIF).
__STATIC_INLINE void DDL_TMR_ClearFlag_CC2OVR(TMR_TypeDef *TMRx)
Clear the Capture/Compare 2 over-capture interrupt flag (CC2OF).
__STATIC_INLINE void DDL_TMR_ClearFlag_CC1(TMR_TypeDef *TMRx)
Clear the Capture/Compare 1 interrupt flag (CC1F).
__STATIC_INLINE void DDL_TMR_ClearFlag_CC2(TMR_TypeDef *TMRx)
Clear the Capture/Compare 2 interrupt flag (CC2F).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC4(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 4 interrupt flag (CC4F) is set (Capture/Compare 4 interrupt is pendi...
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC2(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 2 interrupt flag (CC2F) is set (Capture/Compare 2 interrupt is pendi...
__STATIC_INLINE void DDL_TMR_ClearFlag_CC4(TMR_TypeDef *TMRx)
Clear the Capture/Compare 4 interrupt flag (CC4F).
__STATIC_INLINE void DDL_TMR_ClearFlag_CC1OVR(TMR_TypeDef *TMRx)
Clear the Capture/Compare 1 over-capture interrupt flag (CC1OF).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_UPDATE(TMR_TypeDef *TMRx)
Indicate whether update interrupt flag (UIF) is set (update interrupt is pending).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC1OVR(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 1 over-capture interrupt flag (CC1OF) is set (Capture/Compare 1 inte...
__STATIC_INLINE void DDL_TMR_ClearFlag_CC4OVR(TMR_TypeDef *TMRx)
Clear the Capture/Compare 4 over-capture interrupt flag (CC4OF).
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC1(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 1 interrupt flag (CC1F) is set (Capture/Compare 1 interrupt is pendi...
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC4OVR(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 4 over-capture interrupt flag (CC4OF) is set (Capture/Compare 4 over...
__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC3OVR(TMR_TypeDef *TMRx)
Indicate whether Capture/Compare 3 over-capture interrupt flag (CC3OF) is set (Capture/Compare 3 over...
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC4(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 4 interrupt (CC4IE) is enabled.
__STATIC_INLINE void DDL_TMR_DisableIT_COM(TMR_TypeDef *TMRx)
Disable commutation interrupt (COMIE).
__STATIC_INLINE void DDL_TMR_EnableIT_CC3(TMR_TypeDef *TMRx)
Enable capture/compare 3 interrupt (CC3IE).
__STATIC_INLINE void DDL_TMR_DisableIT_CC4(TMR_TypeDef *TMRx)
Disable capture/compare 4 interrupt (CC4IE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC3(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 3 interrupt (CC3IE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableIT_CC4(TMR_TypeDef *TMRx)
Enable capture/compare 4 interrupt (CC4IE).
__STATIC_INLINE void DDL_TMR_EnableIT_UPDATE(TMR_TypeDef *TMRx)
Enable update interrupt (UIE).
__STATIC_INLINE void DDL_TMR_DisableIT_CC1(TMR_TypeDef *TMRx)
Disable capture/compare 1 interrupt (CC1IE).
__STATIC_INLINE void DDL_TMR_EnableIT_BRK(TMR_TypeDef *TMRx)
Enable break interrupt (BIE).
__STATIC_INLINE void DDL_TMR_DisableIT_CC3(TMR_TypeDef *TMRx)
Disable capture/compare 3 interrupt (CC3IE).
__STATIC_INLINE void DDL_TMR_DisableIT_UPDATE(TMR_TypeDef *TMRx)
Disable update interrupt (UIE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_COM(TMR_TypeDef *TMRx)
Indicates whether the commutation interrupt (COMIE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableIT_CC2(TMR_TypeDef *TMRx)
Enable capture/compare 2 interrupt (CC2IE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_BRK(TMR_TypeDef *TMRx)
Indicates whether the break interrupt (BIE) is enabled.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC1(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 1 interrupt (CC1IE) is enabled.
__STATIC_INLINE void DDL_TMR_DisableIT_CC2(TMR_TypeDef *TMRx)
Disable capture/compare 2 interrupt (CC2IE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC2(TMR_TypeDef *TMRx)
Indicates whether the capture/compare 2 interrupt (CC2IE) is enabled.
__STATIC_INLINE void DDL_TMR_DisableIT_TRIG(TMR_TypeDef *TMRx)
Disable trigger interrupt (TIE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_TRIG(TMR_TypeDef *TMRx)
Indicates whether the trigger interrupt (TIE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableIT_COM(TMR_TypeDef *TMRx)
Enable commutation interrupt (COMIE).
__STATIC_INLINE void DDL_TMR_DisableIT_BRK(TMR_TypeDef *TMRx)
Disable break interrupt (BIE).
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_UPDATE(TMR_TypeDef *TMRx)
Indicates whether the update interrupt (UIE) is enabled.
__STATIC_INLINE void DDL_TMR_EnableIT_TRIG(TMR_TypeDef *TMRx)
Enable trigger interrupt (TIE).
__STATIC_INLINE void DDL_TMR_EnableIT_CC1(TMR_TypeDef *TMRx)
Enable capture/compare 1 interrupt (CC1IE).
void DDL_TMR_StructInit(DDL_TMR_InitTypeDef *TMR_InitStruct)
Set the fields of the time base unit configuration data structure to their default values.
ErrorStatus DDL_TMR_Init(TMR_TypeDef *TMRx, DDL_TMR_InitTypeDef *TMR_InitStruct)
Configure the TMRx time base unit.
ErrorStatus DDL_TMR_BDT_Init(TMR_TypeDef *TMRx, DDL_TMR_BDT_InitTypeDef *TMR_BDTInitStruct)
Configure the Break and Dead Time feature of the timer instance.
void DDL_TMR_OC_StructInit(DDL_TMR_OC_InitTypeDef *TMR_OC_InitStruct)
Set the fields of the TMRx output channel configuration data structure to their default values.
ErrorStatus DDL_TMR_ENCODER_Init(TMR_TypeDef *TMRx, DDL_TMR_ENCODER_InitTypeDef *TMR_EncoderInitStruct)
Configure the encoder interface of the timer instance.
void DDL_TMR_HALLSENSOR_StructInit(DDL_TMR_HALLSENSOR_InitTypeDef *TMR_HallSensorInitStruct)
Set the fields of the TMRx Hall sensor interface configuration data structure to their default values...
void DDL_TMR_ENCODER_StructInit(DDL_TMR_ENCODER_InitTypeDef *TMR_EncoderInitStruct)
Fills each TMR_EncoderInitStruct field with its default value.
ErrorStatus DDL_TMR_OC_Init(TMR_TypeDef *TMRx, uint32_t Channel, DDL_TMR_OC_InitTypeDef *TMR_OC_InitStruct)
Configure the TMRx output channel.
void DDL_TMR_IC_StructInit(DDL_TMR_IC_InitTypeDef *TMR_ICInitStruct)
Set the fields of the TMRx input channel configuration data structure to their default values.
ErrorStatus DDL_TMR_HALLSENSOR_Init(TMR_TypeDef *TMRx, DDL_TMR_HALLSENSOR_InitTypeDef *TMR_HallSensorInitStruct)
Configure the Hall sensor interface of the timer instance.
ErrorStatus DDL_TMR_DeInit(TMR_TypeDef *TMRx)
Set TMRx registers to their reset values.
ErrorStatus DDL_TMR_IC_Init(TMR_TypeDef *TMRx, uint32_t Channel, DDL_TMR_IC_InitTypeDef *TMR_IC_InitStruct)
Configure the TMRx input channel.
void DDL_TMR_BDT_StructInit(DDL_TMR_BDT_InitTypeDef *TMR_BDTInitStruct)
Set the fields of the Break and Dead Time configuration data structure to their default values.
__STATIC_INLINE void DDL_TMR_OC_SetPolarity(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Polarity)
Set the polarity of an output channel.
__STATIC_INLINE void DDL_TMR_OC_DisablePreload(TMR_TypeDef *TMRx, uint32_t Channel)
Disable compare register (TMRx_CCx) preload for the output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH4(TMR_TypeDef *TMRx)
Get compare value (TMRx_CC4) set for output channel 4.
__STATIC_INLINE void DDL_TMR_OC_SetDeadTime(TMR_TypeDef *TMRx, uint32_t DeadTime)
Set the dead-time delay (delay inserted between the rising edge of the OCxREF signal and the rising e...
__STATIC_INLINE uint32_t DDL_TMR_OC_GetPolarity(TMR_TypeDef *TMRx, uint32_t Channel)
Get the polarity of an output channel.
__STATIC_INLINE void DDL_TMR_OC_SetIdleState(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t IdleState)
Set the IDLE state of an output channel.
__STATIC_INLINE void DDL_TMR_OC_SetCompareCH2(TMR_TypeDef *TMRx, uint32_t CompareValue)
Set compare value for output channel 2 (TMRx_CC2).
__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH1(TMR_TypeDef *TMRx)
Get compare value (TMRx_CC1) set for output channel 1.
__STATIC_INLINE void DDL_TMR_OC_SetCompareCH3(TMR_TypeDef *TMRx, uint32_t CompareValue)
Set compare value for output channel 3 (TMRx_CC3).
__STATIC_INLINE void DDL_TMR_OC_DisableClear(TMR_TypeDef *TMRx, uint32_t Channel)
Disable clearing the output channel on an external event.
__STATIC_INLINE void DDL_TMR_OC_SetMode(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Mode)
Define the behavior of the output reference signal OCxREF from which OCx and OCxN (when relevant) are...
__STATIC_INLINE void DDL_TMR_OC_EnableClear(TMR_TypeDef *TMRx, uint32_t Channel)
Enable clearing the output channel on an external event.
__STATIC_INLINE void DDL_TMR_OC_DisableFast(TMR_TypeDef *TMRx, uint32_t Channel)
Disable fast mode for the output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_IsEnabledFast(TMR_TypeDef *TMRx, uint32_t Channel)
Indicates whether fast mode is enabled for the output channel.
__STATIC_INLINE void DDL_TMR_OC_ConfigOutput(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Configuration)
Configure an output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH2(TMR_TypeDef *TMRx)
Get compare value (TMRx_CC2) set for output channel 2.
__STATIC_INLINE void DDL_TMR_OC_SetCompareCH1(TMR_TypeDef *TMRx, uint32_t CompareValue)
Set compare value for output channel 1 (TMRx_CC1).
__STATIC_INLINE void DDL_TMR_OC_SetCompareCH4(TMR_TypeDef *TMRx, uint32_t CompareValue)
Set compare value for output channel 4 (TMRx_CC4).
__STATIC_INLINE void DDL_TMR_OC_EnableFast(TMR_TypeDef *TMRx, uint32_t Channel)
Enable fast mode for the output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH3(TMR_TypeDef *TMRx)
Get compare value (TMRx_CC3) set for output channel 3.
__STATIC_INLINE uint32_t DDL_TMR_OC_GetIdleState(TMR_TypeDef *TMRx, uint32_t Channel)
Get the IDLE state of an output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_IsEnabledPreload(TMR_TypeDef *TMRx, uint32_t Channel)
Indicates whether compare register (TMRx_CCx) preload is enabled for the output channel.
__STATIC_INLINE void DDL_TMR_OC_EnablePreload(TMR_TypeDef *TMRx, uint32_t Channel)
Enable compare register (TMRx_CCx) preload for the output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_IsEnabledClear(TMR_TypeDef *TMRx, uint32_t Channel)
Indicates clearing the output channel on an external event is enabled for the output channel.
__STATIC_INLINE uint32_t DDL_TMR_OC_GetMode(TMR_TypeDef *TMRx, uint32_t Channel)
Get the output compare mode of an output channel.
__STATIC_INLINE uint32_t DDL_TMR_GetOnePulseMode(TMR_TypeDef *TMRx)
Get actual one pulse mode.
__STATIC_INLINE void DDL_TMR_SetOnePulseMode(TMR_TypeDef *TMRx, uint32_t OnePulseMode)
Set one pulse mode (one shot v.s. repetitive).
__STATIC_INLINE uint32_t DDL_TMR_GetDirection(TMR_TypeDef *TMRx)
Get the current direction of the counter.
__STATIC_INLINE void DDL_TMR_DisableARRPreload(TMR_TypeDef *TMRx)
Disable auto-reload (ARR) preload.
__STATIC_INLINE void DDL_TMR_SetCounter(TMR_TypeDef *TMRx, uint32_t Counter)
Set the counter value.
__STATIC_INLINE void DDL_TMR_EnableCounter(TMR_TypeDef *TMRx)
Enable timer counter.
__STATIC_INLINE uint32_t DDL_TMR_GetPrescaler(TMR_TypeDef *TMRx)
Get the prescaler value.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledUpdateEvent(TMR_TypeDef *TMRx)
Indicates whether update event generation is enabled.
__STATIC_INLINE void DDL_TMR_SetClockDivision(TMR_TypeDef *TMRx, uint32_t ClockDivision)
Set the division ratio between the timer clock and the sampling clock used by the dead-time generator...
__STATIC_INLINE uint32_t DDL_TMR_GetRepetitionCounter(TMR_TypeDef *TMRx)
Get the repetition counter value.
__STATIC_INLINE void DDL_TMR_SetAutoReload(TMR_TypeDef *TMRx, uint32_t AutoReload)
Set the auto-reload value.
__STATIC_INLINE void DDL_TMR_EnableARRPreload(TMR_TypeDef *TMRx)
Enable auto-reload (ARR) preload.
__STATIC_INLINE void DDL_TMR_EnableUpdateEvent(TMR_TypeDef *TMRx)
Enable update event generation.
__STATIC_INLINE uint32_t DDL_TMR_GetUpdateSource(TMR_TypeDef *TMRx)
Get actual event update source.
__STATIC_INLINE uint32_t DDL_TMR_GetCounter(TMR_TypeDef *TMRx)
Get the counter value.
__STATIC_INLINE void DDL_TMR_SetCounterMode(TMR_TypeDef *TMRx, uint32_t CounterMode)
Set the timer counter counting mode.
__STATIC_INLINE void DDL_TMR_SetDirection(TMR_TypeDef *TMRx, uint32_t Direction)
Set the current direction of the counter.
__STATIC_INLINE void DDL_TMR_DisableUpdateEvent(TMR_TypeDef *TMRx)
Disable update event generation.
__STATIC_INLINE uint32_t DDL_TMR_GetCounterMode(TMR_TypeDef *TMRx)
Get actual counter mode.
__STATIC_INLINE uint32_t DDL_TMR_GetClockDivision(TMR_TypeDef *TMRx)
Get the actual division ratio between the timer clock and the sampling clock used by the dead-time ge...
__STATIC_INLINE void DDL_TMR_SetPrescaler(TMR_TypeDef *TMRx, uint32_t Prescaler)
Set the prescaler value.
__STATIC_INLINE uint32_t DDL_TMR_GetAutoReload(TMR_TypeDef *TMRx)
Get the auto-reload value.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledCounter(TMR_TypeDef *TMRx)
Indicates whether the timer counter is enabled.
__STATIC_INLINE void DDL_TMR_DisableCounter(TMR_TypeDef *TMRx)
Disable timer counter.
__STATIC_INLINE void DDL_TMR_SetUpdateSource(TMR_TypeDef *TMRx, uint32_t UpdateSource)
Set update event source.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledARRPreload(TMR_TypeDef *TMRx)
Indicates whether auto-reload (ARR) preload is enabled.
__STATIC_INLINE void DDL_TMR_SetRepetitionCounter(TMR_TypeDef *TMRx, uint32_t RepetitionCounter)
Set the repetition counter value.
__STATIC_INLINE void DDL_TMR_ConfigETR(TMR_TypeDef *TMRx, uint32_t ETRPolarity, uint32_t ETRPrescaler, uint32_t ETRFilter)
Configure the external trigger (ETR) input.
__STATIC_INLINE void DDL_TMR_SetTriggerOutput(TMR_TypeDef *TMRx, uint32_t TimerSynchronization)
Set the trigger output (TRGO) used for timer synchronization .
__STATIC_INLINE void DDL_TMR_DisableMasterSlaveMode(TMR_TypeDef *TMRx)
Disable the Master/Slave mode.
__STATIC_INLINE void DDL_TMR_SetTriggerInput(TMR_TypeDef *TMRx, uint32_t TriggerInput)
Set the selects the trigger input to be used to synchronize the counter.
__STATIC_INLINE uint32_t DDL_TMR_IsEnabledMasterSlaveMode(TMR_TypeDef *TMRx)
Indicates whether the Master/Slave mode is enabled.
__STATIC_INLINE void DDL_TMR_EnableMasterSlaveMode(TMR_TypeDef *TMRx)
Enable the Master/Slave mode.
__STATIC_INLINE void DDL_TMR_SetSlaveMode(TMR_TypeDef *TMRx, uint32_t SlaveMode)
Set the synchronization mode of a slave timer.
#define TMR_GET_CHANNEL_INDEX( __CHANNEL__)
Convert channel id into channel index.
static const uint8_t OFFSET_TAB_CCMRx[]
static const uint8_t SHIFT_TAB_CCxP[]
static const uint8_t SHIFT_TAB_OISx[]
static const uint8_t SHIFT_TAB_OCxx[]
static const uint8_t SHIFT_TAB_ICxx[]
BDTR (Break and Dead Time) structure definition.
TMR Encoder interface configuration structure definition.
TMR Hall sensor interface configuration structure definition.
uint32_t CommutationDelay
TMR Input Capture configuration structure definition.
TMR Time Base configuration structure definition.
uint32_t RepetitionCounter
TMR Output Compare configuration structure definition.