G32R430 Device Driver Layer v1.0.4
G32R4xx Device Driver Layer API Reference
g32r4xx_ddl_tmr.h
Go to the documentation of this file.
1
42
43/* Define to prevent recursive inclusion -------------------------------------*/
44#ifndef G32R4xx_DDL_TMR_H
45#define G32R4xx_DDL_TMR_H
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51/* Includes ------------------------------------------------------------------*/
52#include "g32r4xx.h"
53
57
58#if defined (TMR1) || defined (TMR2) || defined (TMR3) || defined (TMR4)
59
63
64/* Private types -------------------------------------------------------------*/
65/* Private variables ---------------------------------------------------------*/
69static const uint8_t OFFSET_TAB_CCMRx[] =
70{
71 0x00U, /* 0: TMRx_CH1 */
72 0x00U, /* 1: TMRx_CH1N */
73 0x00U, /* 2: TMRx_CH2 */
74 0x00U, /* 3: TMRx_CH2N */
75 0x04U, /* 4: TMRx_CH3 */
76 0x04U, /* 5: TMRx_CH3N */
77 0x04U /* 6: TMRx_CH4 */
78};
79
80static const uint8_t SHIFT_TAB_OCxx[] =
81{
82 0U, /* 0: OC1M, OC1FE, OC1PE */
83 0U, /* 1: - NA */
84 8U, /* 2: OC2M, OC2FE, OC2PE */
85 0U, /* 3: - NA */
86 0U, /* 4: OC3M, OC3FE, OC3PE */
87 0U, /* 5: - NA */
88 8U /* 6: OC4M, OC4FE, OC4PE */
89};
90
91static const uint8_t SHIFT_TAB_ICxx[] =
92{
93 0U, /* 0: CC1S, IC1PSC, IC1F */
94 0U, /* 1: - NA */
95 8U, /* 2: CC2S, IC2PSC, IC2F */
96 0U, /* 3: - NA */
97 0U, /* 4: CC3S, IC3PSC, IC3F */
98 0U, /* 5: - NA */
99 8U /* 6: CC4S, IC4PSC, IC4F */
100};
101
102static const uint8_t SHIFT_TAB_CCxP[] =
103{
104 0U, /* 0: CC1P */
105 2U, /* 1: CC1NP */
106 4U, /* 2: CC2P */
107 6U, /* 3: CC2NP */
108 8U, /* 4: CC3P */
109 10U, /* 5: CC3NP */
110 12U /* 6: CC4P */
111};
112
113static const uint8_t SHIFT_TAB_OISx[] =
114{
115 0U, /* 0: OIS1 */
116 1U, /* 1: OIS1N */
117 2U, /* 2: OIS2 */
118 3U, /* 3: OIS2N */
119 4U, /* 4: OIS3 */
120 5U, /* 5: OIS3N */
121 6U /* 6: OIS4 */
122};
123
126
127/* Private constants ---------------------------------------------------------*/
131/* Mask used to set the TDG[x:0] of the DTG bits of the TMRx_BDTR register */
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)
136
137/* Mask used to set the DTG[7:5] bits of the DTG bits of the TMRx_BDTR register */
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)
145
146/* Private macros ------------------------------------------------------------*/
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)
168
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)))
181
184
185/* Exported types ------------------------------------------------------------*/
186#if defined(USE_FULL_DDL_DRIVER)
190
194typedef struct
195{
196 uint16_t Prescaler;
201
202 uint32_t CounterMode;
207
208 uint32_t Autoreload;
216
217 uint32_t ClockDivision;
222
237
241typedef struct
242{
243 uint32_t OCMode;
248
249 uint32_t OCState;
254
255 uint32_t OCNState;
260
261 uint32_t CompareValue;
266
267 uint32_t OCPolarity;
272
273 uint32_t OCNPolarity;
278
279 uint32_t OCIdleState;
284
285 uint32_t OCNIdleState;
291
295
296typedef struct
297{
298
299 uint32_t ICPolarity;
304
305 uint32_t ICActiveInput;
310
311 uint32_t ICPrescaler;
316
317 uint32_t ICFilter;
323
327typedef struct
328{
329 uint32_t EncoderMode;
334
335 uint32_t IC1Polarity;
340
341 uint32_t IC1ActiveInput;
346
347 uint32_t IC1Prescaler;
352
353 uint32_t IC1Filter;
358
359 uint32_t IC2Polarity;
364
365 uint32_t IC2ActiveInput;
370
371 uint32_t IC2Prescaler;
376
377 uint32_t IC2Filter;
382
384
388typedef struct
389{
390
391 uint32_t IC1Polarity;
396
397 uint32_t IC1Prescaler;
404
405 uint32_t IC1Filter;
411
420
424typedef struct
425{
426 uint32_t OSSRState;
434
435 uint32_t OSSIState;
443
444 uint32_t LockLevel;
449
450 uint8_t DeadTime;
459
460 uint16_t BreakState;
468
469 uint32_t BreakPolarity;
477
487
491#endif /* USE_FULL_DDL_DRIVER */
492
493/* Exported constants --------------------------------------------------------*/
497
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
517
518#if defined(USE_FULL_DDL_DRIVER)
522#define DDL_TMR_BREAK_DISABLE 0x00000000U
523#define DDL_TMR_BREAK_ENABLE TMR_BDT_BRKEN
527
531#define DDL_TMR_AUTOMATICOUTPUT_DISABLE 0x00000000U
532#define DDL_TMR_AUTOMATICOUTPUT_ENABLE TMR_BDT_AOEN
536#endif /* USE_FULL_DDL_DRIVER */
537
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
553
557#define DDL_TMR_UPDATESOURCE_REGULAR 0x00000000U
558#define DDL_TMR_UPDATESOURCE_COUNTER TMR_CTRL1_URSSEL
562
566#define DDL_TMR_ONEPULSEMODE_SINGLE TMR_CTRL1_SPMEN
567#define DDL_TMR_ONEPULSEMODE_REPETITIVE 0x00000000U
571
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
583
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
593
597#define DDL_TMR_COUNTERDIRECTION_UP 0x00000000U
598#define DDL_TMR_COUNTERDIRECTION_DOWN TMR_CTRL1_CNTDIR
602
606#define DDL_TMR_CCUPDATESOURCE_COMG_ONLY 0x00000000U
607#define DDL_TMR_CCUPDATESOURCE_COMG_AND_TRGI TMR_CTRL2_CCUSEL
611
615#define DDL_TMR_CCDMAREQUEST_CC 0x00000000U
616#define DDL_TMR_CCDMAREQUEST_UPDATE TMR_CTRL2_CCDSEL
620
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
631
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
645
646#if defined(USE_FULL_DDL_DRIVER)
650#define DDL_TMR_OCSTATE_DISABLE 0x00000000U
651#define DDL_TMR_OCSTATE_ENABLE TMR_CCEN_CC1EN
655#endif /* USE_FULL_DDL_DRIVER */
656
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)
671
675#define DDL_TMR_OCPOLARITY_HIGH 0x00000000U
676#define DDL_TMR_OCPOLARITY_LOW TMR_CCEN_CC1POL
680
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)
708
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)
731
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)
741
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
751
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)
761
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)
776
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)
787
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)
802
806#define DDL_TMR_ETR_POLARITY_NONINVERTED 0x00000000U
807#define DDL_TMR_ETR_POLARITY_INVERTED TMR_SMCTRL_ETPOL
811
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
822
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)
845
849#define DDL_TMR_BREAK_POLARITY_LOW 0x00000000U
850#define DDL_TMR_BREAK_POLARITY_HIGH TMR_BDT_BRKPOL
854
858#define DDL_TMR_OSSI_DISABLE 0x00000000U
859#define DDL_TMR_OSSI_ENABLE TMR_BDT_IMOS
863
867#define DDL_TMR_OSSR_DISABLE 0x00000000U
868#define DDL_TMR_OSSR_ENABLE TMR_BDT_RMOS
872
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)
897
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)
922
926
927/* Exported macro ------------------------------------------------------------*/
931
942#define DDL_TMR_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
943
950#define DDL_TMR_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
954
958
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)) :\
982 0U)
983
991#define __DDL_TMR_CALC_PSC(__TMRCLK__, __CNTCLK__) \
992 (((__TMRCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TMRCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
993
1002#define __DDL_TMR_CALC_ARR(__TMRCLK__, __PSC__, __FREQ__) \
1003 ((((__TMRCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TMRCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
1004
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))))
1017
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__))))
1031
1042#define __DDL_TMR_GET_ICPSC_RATIO(__ICPSC__) \
1043 ((uint32_t)(0x01U << (((__ICPSC__)) >> TMR_CCM1_IC1PSC_Pos)))
1044
1048
1052
1053/* Exported functions --------------------------------------------------------*/
1057
1066__STATIC_INLINE void DDL_TMR_EnableCounter(TMR_TypeDef *TMRx)
1067{
1068 SET_BIT(TMRx->CTRL1, TMR_CTRL1_CNTEN);
1069}
1070
1076__STATIC_INLINE void DDL_TMR_DisableCounter(TMR_TypeDef *TMRx)
1077{
1078 CLEAR_BIT(TMRx->CTRL1, TMR_CTRL1_CNTEN);
1079}
1080
1086__STATIC_INLINE uint32_t DDL_TMR_IsEnabledCounter(TMR_TypeDef *TMRx)
1087{
1088 return ((READ_BIT(TMRx->CTRL1, TMR_CTRL1_CNTEN) == (TMR_CTRL1_CNTEN)) ? 1UL : 0UL);
1089}
1090
1096__STATIC_INLINE void DDL_TMR_EnableUpdateEvent(TMR_TypeDef *TMRx)
1097{
1098 CLEAR_BIT(TMRx->CTRL1, TMR_CTRL1_UD);
1099}
1100
1106__STATIC_INLINE void DDL_TMR_DisableUpdateEvent(TMR_TypeDef *TMRx)
1107{
1108 SET_BIT(TMRx->CTRL1, TMR_CTRL1_UD);
1109}
1110
1116__STATIC_INLINE uint32_t DDL_TMR_IsEnabledUpdateEvent(TMR_TypeDef *TMRx)
1117{
1118 return ((READ_BIT(TMRx->CTRL1, TMR_CTRL1_UD) == TMR_CTRL1_UD) ? 1UL : 0UL);
1119}
1120
1136__STATIC_INLINE void DDL_TMR_SetUpdateSource(TMR_TypeDef *TMRx, uint32_t UpdateSource)
1137{
1138 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_URSSEL, UpdateSource);
1139}
1140
1148__STATIC_INLINE uint32_t DDL_TMR_GetUpdateSource(TMR_TypeDef *TMRx)
1149{
1150 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_URSSEL));
1151}
1152
1161__STATIC_INLINE void DDL_TMR_SetOnePulseMode(TMR_TypeDef *TMRx, uint32_t OnePulseMode)
1162{
1163 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_SPMEN, OnePulseMode);
1164}
1165
1173__STATIC_INLINE uint32_t DDL_TMR_GetOnePulseMode(TMR_TypeDef *TMRx)
1174{
1175 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_SPMEN));
1176}
1177
1195__STATIC_INLINE void DDL_TMR_SetCounterMode(TMR_TypeDef *TMRx, uint32_t CounterMode)
1196{
1197 MODIFY_REG(TMRx->CTRL1, (TMR_CTRL1_CNTDIR | TMR_CTRL1_CAMSEL), CounterMode);
1198}
1199
1213__STATIC_INLINE uint32_t DDL_TMR_GetCounterMode(TMR_TypeDef *TMRx)
1214{
1215 uint32_t counter_mode;
1216
1217 counter_mode = (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CAMSEL));
1218
1219 if (counter_mode == 0U)
1220 {
1221 counter_mode = (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CNTDIR));
1222 }
1223
1224 return counter_mode;
1225}
1226
1232__STATIC_INLINE void DDL_TMR_EnableARRPreload(TMR_TypeDef *TMRx)
1233{
1234 SET_BIT(TMRx->CTRL1, TMR_CTRL1_ARPEN);
1235}
1236
1242__STATIC_INLINE void DDL_TMR_DisableARRPreload(TMR_TypeDef *TMRx)
1243{
1244 CLEAR_BIT(TMRx->CTRL1, TMR_CTRL1_ARPEN);
1245}
1246
1252__STATIC_INLINE uint32_t DDL_TMR_IsEnabledARRPreload(TMR_TypeDef *TMRx)
1253{
1254 return ((READ_BIT(TMRx->CTRL1, TMR_CTRL1_ARPEN) == (TMR_CTRL1_ARPEN)) ? 1UL : 0UL);
1255}
1256
1270__STATIC_INLINE void DDL_TMR_SetClockDivision(TMR_TypeDef *TMRx, uint32_t ClockDivision)
1271{
1272 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_CLKDIV, ClockDivision);
1273}
1274
1287__STATIC_INLINE uint32_t DDL_TMR_GetClockDivision(TMR_TypeDef *TMRx)
1288{
1289 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CLKDIV));
1290}
1291
1298__STATIC_INLINE void DDL_TMR_SetCounter(TMR_TypeDef *TMRx, uint32_t Counter)
1299{
1300 WRITE_REG(TMRx->CNT, Counter);
1301}
1302
1308__STATIC_INLINE uint32_t DDL_TMR_GetCounter(TMR_TypeDef *TMRx)
1309{
1310 return (uint32_t)(READ_REG(TMRx->CNT));
1311}
1312
1321__STATIC_INLINE void DDL_TMR_SetDirection(TMR_TypeDef *TMRx, uint32_t Direction)
1322{
1323 MODIFY_REG(TMRx->CTRL1, TMR_CTRL1_CNTDIR, Direction);
1324}
1325
1333__STATIC_INLINE uint32_t DDL_TMR_GetDirection(TMR_TypeDef *TMRx)
1334{
1335 return (uint32_t)(READ_BIT(TMRx->CTRL1, TMR_CTRL1_CNTDIR));
1336}
1337
1348__STATIC_INLINE void DDL_TMR_SetPrescaler(TMR_TypeDef *TMRx, uint32_t Prescaler)
1349{
1350 WRITE_REG(TMRx->PSC, Prescaler);
1351}
1352
1358__STATIC_INLINE uint32_t DDL_TMR_GetPrescaler(TMR_TypeDef *TMRx)
1359{
1360 return (uint32_t)(READ_REG(TMRx->PSC));
1361}
1362
1371__STATIC_INLINE void DDL_TMR_SetAutoReload(TMR_TypeDef *TMRx, uint32_t AutoReload)
1372{
1373 WRITE_REG(TMRx->AUTORLD, AutoReload);
1374}
1375
1381__STATIC_INLINE uint32_t DDL_TMR_GetAutoReload(TMR_TypeDef *TMRx)
1382{
1383 return (uint32_t)(READ_REG(TMRx->AUTORLD));
1384}
1385
1394__STATIC_INLINE void DDL_TMR_SetRepetitionCounter(TMR_TypeDef *TMRx, uint32_t RepetitionCounter)
1395{
1396 WRITE_REG(TMRx->REPCNT, RepetitionCounter);
1397}
1398
1406__STATIC_INLINE uint32_t DDL_TMR_GetRepetitionCounter(TMR_TypeDef *TMRx)
1407{
1408 return (uint32_t)(READ_REG(TMRx->REPCNT));
1409}
1410
1414
1428__STATIC_INLINE void DDL_TMR_CC_EnablePreload(TMR_TypeDef *TMRx)
1429{
1430 SET_BIT(TMRx->CTRL2, TMR_CTRL2_CCPEN);
1431}
1432
1440__STATIC_INLINE void DDL_TMR_CC_DisablePreload(TMR_TypeDef *TMRx)
1441{
1442 CLEAR_BIT(TMRx->CTRL2, TMR_CTRL2_CCPEN);
1443}
1444
1450__STATIC_INLINE uint32_t DDL_TMR_CC_IsEnabledPreload(TMR_TypeDef *TMRx)
1451{
1452 return ((READ_BIT(TMRx->CTRL2, TMR_CTRL2_CCPEN) == (TMR_CTRL2_CCPEN)) ? 1UL : 0UL);
1453}
1454
1465__STATIC_INLINE void DDL_TMR_CC_SetUpdate(TMR_TypeDef *TMRx, uint32_t CCUpdateSource)
1466{
1467 MODIFY_REG(TMRx->CTRL2, TMR_CTRL2_CCUSEL, CCUpdateSource);
1468}
1469
1479__STATIC_INLINE uint32_t DDL_TMR_CC_GetUpdate(TMR_TypeDef *TMRx)
1480{
1481 return (uint32_t)(READ_BIT(TMRx->CTRL2, TMR_CTRL2_CCUSEL));
1482}
1483
1492__STATIC_INLINE void DDL_TMR_CC_SetDMAReqTrigger(TMR_TypeDef *TMRx, uint32_t DMAReqTrigger)
1493{
1494 MODIFY_REG(TMRx->CTRL2, TMR_CTRL2_CCDSEL, DMAReqTrigger);
1495}
1496
1504__STATIC_INLINE uint32_t DDL_TMR_CC_GetDMAReqTrigger(TMR_TypeDef *TMRx)
1505{
1506 return (uint32_t)(READ_BIT(TMRx->CTRL2, TMR_CTRL2_CCDSEL));
1507}
1508
1522__STATIC_INLINE void DDL_TMR_CC_SetLockLevel(TMR_TypeDef *TMRx, uint32_t LockLevel)
1523{
1524 MODIFY_REG(TMRx->BDT, TMR_BDT_LOCKCFG, LockLevel);
1525}
1526
1540__STATIC_INLINE void DDL_TMR_CC_EnableChannel(TMR_TypeDef *TMRx, uint32_t Channels)
1541{
1542 SET_BIT(TMRx->CCEN, Channels);
1543}
1544
1558__STATIC_INLINE void DDL_TMR_CC_DisableChannel(TMR_TypeDef *TMRx, uint32_t Channels)
1559{
1560 CLEAR_BIT(TMRx->CCEN, Channels);
1561}
1562
1576__STATIC_INLINE uint32_t DDL_TMR_CC_IsEnabledChannel(TMR_TypeDef *TMRx, uint32_t Channels)
1577{
1578 return ((READ_BIT(TMRx->CCEN, Channels) == (Channels)) ? 1UL : 0UL);
1579}
1580
1584
1604__STATIC_INLINE void DDL_TMR_OC_ConfigOutput(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Configuration)
1605{
1606 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1607 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1608 CLEAR_BIT(*pReg, (TMR_CCM1_CC1SEL << SHIFT_TAB_OCxx[iChannel]));
1609 MODIFY_REG(TMRx->CCEN, (TMR_CCEN_CC1POL << SHIFT_TAB_CCxP[iChannel]),
1610 (Configuration & TMR_CCEN_CC1POL) << SHIFT_TAB_CCxP[iChannel]);
1611 MODIFY_REG(TMRx->CTRL2, (TMR_CTRL2_OC1OIS << SHIFT_TAB_OISx[iChannel]),
1612 (Configuration & TMR_CTRL2_OC1OIS) << SHIFT_TAB_OISx[iChannel]);
1613}
1614
1635__STATIC_INLINE void DDL_TMR_OC_SetMode(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Mode)
1636{
1637 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1638 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1639 MODIFY_REG(*pReg, ((TMR_CCM1_OC1MOD | TMR_CCM1_CC1SEL) << SHIFT_TAB_OCxx[iChannel]), Mode << SHIFT_TAB_OCxx[iChannel]);
1640}
1641
1660__STATIC_INLINE uint32_t DDL_TMR_OC_GetMode(TMR_TypeDef *TMRx, uint32_t Channel)
1661{
1662 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1663 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1664 return (READ_BIT(*pReg, ((TMR_CCM1_OC1MOD | TMR_CCM1_CC1SEL) << SHIFT_TAB_OCxx[iChannel])) >> SHIFT_TAB_OCxx[iChannel]);
1665}
1666
1683__STATIC_INLINE void DDL_TMR_OC_SetPolarity(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Polarity)
1684{
1685 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1686 MODIFY_REG(TMRx->CCEN, (TMR_CCEN_CC1POL << SHIFT_TAB_CCxP[iChannel]), Polarity << SHIFT_TAB_CCxP[iChannel]);
1687}
1688
1704__STATIC_INLINE uint32_t DDL_TMR_OC_GetPolarity(TMR_TypeDef *TMRx, uint32_t Channel)
1705{
1706 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1707 return (READ_BIT(TMRx->CCEN, (TMR_CCEN_CC1POL << SHIFT_TAB_CCxP[iChannel])) >> SHIFT_TAB_CCxP[iChannel]);
1708}
1709
1730__STATIC_INLINE void DDL_TMR_OC_SetIdleState(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t IdleState)
1731{
1732 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1733 MODIFY_REG(TMRx->CTRL2, (TMR_CTRL2_OC1OIS << SHIFT_TAB_OISx[iChannel]), IdleState << SHIFT_TAB_OISx[iChannel]);
1734}
1735
1751__STATIC_INLINE uint32_t DDL_TMR_OC_GetIdleState(TMR_TypeDef *TMRx, uint32_t Channel)
1752{
1753 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1754 return (READ_BIT(TMRx->CTRL2, (TMR_CTRL2_OC1OIS << SHIFT_TAB_OISx[iChannel])) >> SHIFT_TAB_OISx[iChannel]);
1755}
1756
1768__STATIC_INLINE void DDL_TMR_OC_EnableFast(TMR_TypeDef *TMRx, uint32_t Channel)
1769{
1770 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1771 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1772 SET_BIT(*pReg, (TMR_CCM1_OC1FEN << SHIFT_TAB_OCxx[iChannel]));
1773}
1774
1785__STATIC_INLINE void DDL_TMR_OC_DisableFast(TMR_TypeDef *TMRx, uint32_t Channel)
1786{
1787 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1788 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1789 CLEAR_BIT(*pReg, (TMR_CCM1_OC1FEN << SHIFT_TAB_OCxx[iChannel]));
1790}
1791
1802__STATIC_INLINE uint32_t DDL_TMR_OC_IsEnabledFast(TMR_TypeDef *TMRx, uint32_t Channel)
1803{
1804 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1805 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1806 uint32_t bitfield = TMR_CCM1_OC1FEN << SHIFT_TAB_OCxx[iChannel];
1807 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1808}
1809
1820__STATIC_INLINE void DDL_TMR_OC_EnablePreload(TMR_TypeDef *TMRx, uint32_t Channel)
1821{
1822 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1823 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1824 SET_BIT(*pReg, (TMR_CCM1_OC1PEN << SHIFT_TAB_OCxx[iChannel]));
1825}
1826
1837__STATIC_INLINE void DDL_TMR_OC_DisablePreload(TMR_TypeDef *TMRx, uint32_t Channel)
1838{
1839 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1840 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1841 CLEAR_BIT(*pReg, (TMR_CCM1_OC1PEN << SHIFT_TAB_OCxx[iChannel]));
1842}
1843
1854__STATIC_INLINE uint32_t DDL_TMR_OC_IsEnabledPreload(TMR_TypeDef *TMRx, uint32_t Channel)
1855{
1856 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1857 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1858 uint32_t bitfield = TMR_CCM1_OC1PEN << SHIFT_TAB_OCxx[iChannel];
1859 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1860}
1861
1875__STATIC_INLINE void DDL_TMR_OC_EnableClear(TMR_TypeDef *TMRx, uint32_t Channel)
1876{
1877 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1878 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1879 SET_BIT(*pReg, (TMR_CCM1_OC1CEN << SHIFT_TAB_OCxx[iChannel]));
1880}
1881
1894__STATIC_INLINE void DDL_TMR_OC_DisableClear(TMR_TypeDef *TMRx, uint32_t Channel)
1895{
1896 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1897 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1898 CLEAR_BIT(*pReg, (TMR_CCM1_OC1CEN << SHIFT_TAB_OCxx[iChannel]));
1899}
1900
1915__STATIC_INLINE uint32_t DDL_TMR_OC_IsEnabledClear(TMR_TypeDef *TMRx, uint32_t Channel)
1916{
1917 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
1918 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
1919 uint32_t bitfield = TMR_CCM1_OC1CEN << SHIFT_TAB_OCxx[iChannel];
1920 return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1921}
1922
1933__STATIC_INLINE void DDL_TMR_OC_SetDeadTime(TMR_TypeDef *TMRx, uint32_t DeadTime)
1934{
1935 MODIFY_REG(TMRx->BDT, TMR_BDT_DTS, DeadTime);
1936}
1937
1947__STATIC_INLINE void DDL_TMR_OC_SetCompareCH1(TMR_TypeDef *TMRx, uint32_t CompareValue)
1948{
1949 WRITE_REG(TMRx->CC1, CompareValue);
1950}
1951
1960__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH1(TMR_TypeDef *TMRx)
1961{
1962 return (uint32_t)(READ_REG(TMRx->CC1));
1963}
1964
1974__STATIC_INLINE void DDL_TMR_OC_SetCompareCH2(TMR_TypeDef *TMRx, uint32_t CompareValue)
1975{
1976 WRITE_REG(TMRx->CC2, CompareValue);
1977}
1978
1987__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH2(TMR_TypeDef *TMRx)
1988{
1989 return (uint32_t)(READ_REG(TMRx->CC2));
1990}
1991
2001__STATIC_INLINE void DDL_TMR_OC_SetCompareCH3(TMR_TypeDef *TMRx, uint32_t CompareValue)
2002{
2003 WRITE_REG(TMRx->CC3, CompareValue);
2004}
2005
2014__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH3(TMR_TypeDef *TMRx)
2015{
2016 return (uint32_t)(READ_REG(TMRx->CC3));
2017}
2018
2028__STATIC_INLINE void DDL_TMR_OC_SetCompareCH4(TMR_TypeDef *TMRx, uint32_t CompareValue)
2029{
2030 WRITE_REG(TMRx->CC4, CompareValue);
2031}
2032
2041__STATIC_INLINE uint32_t DDL_TMR_OC_GetCompareCH4(TMR_TypeDef *TMRx)
2042{
2043 return (uint32_t)(READ_REG(TMRx->CC4));
2044}
2045
2049
2068__STATIC_INLINE void DDL_TMR_IC_Config(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Configuration)
2069{
2070 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
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)) \
2074 << SHIFT_TAB_ICxx[iChannel]);
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]);
2077}
2078
2093__STATIC_INLINE void DDL_TMR_IC_SetActiveInput(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICActiveInput)
2094{
2095 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2096 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
2097 MODIFY_REG(*pReg, ((TMR_CCM1_CC1SEL) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput) << SHIFT_TAB_ICxx[iChannel]);
2098}
2099
2113__STATIC_INLINE uint32_t DDL_TMR_IC_GetActiveInput(TMR_TypeDef *TMRx, uint32_t Channel)
2114{
2115 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2116 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
2117 return ((READ_BIT(*pReg, ((TMR_CCM1_CC1SEL) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]));
2118}
2119
2135__STATIC_INLINE void DDL_TMR_IC_SetPrescaler(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICPrescaler)
2136{
2137 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2138 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
2139 MODIFY_REG(*pReg, ((TMR_CCM1_IC1PSC) << SHIFT_TAB_ICxx[iChannel]), ((ICPrescaler) << SHIFT_TAB_ICxx[iChannel]));
2140}
2141
2156__STATIC_INLINE uint32_t DDL_TMR_IC_GetPrescaler(TMR_TypeDef *TMRx, uint32_t Channel)
2157{
2158 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2159 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
2160 return ((READ_BIT(*pReg, ((TMR_CCM1_IC1PSC) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]));
2161}
2162
2190__STATIC_INLINE void DDL_TMR_IC_SetFilter(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICFilter)
2191{
2192 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2193 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
2194 MODIFY_REG(*pReg, ((TMR_CCM1_IC1F) << SHIFT_TAB_ICxx[iChannel]), ((ICFilter) << SHIFT_TAB_ICxx[iChannel]));
2195}
2196
2223__STATIC_INLINE uint32_t DDL_TMR_IC_GetFilter(TMR_TypeDef *TMRx, uint32_t Channel)
2224{
2225 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2226 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TMRx->CCM1) + OFFSET_TAB_CCMRx[iChannel]));
2227 return ((READ_BIT(*pReg, ((TMR_CCM1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]));
2228}
2229
2244__STATIC_INLINE void DDL_TMR_IC_SetPolarity(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICPolarity)
2245{
2246 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2247 MODIFY_REG(TMRx->CCEN, ((TMR_CCEN_CC1NPOL | TMR_CCEN_CC1POL) << SHIFT_TAB_CCxP[iChannel]),
2248 ICPolarity << SHIFT_TAB_CCxP[iChannel]);
2249}
2250
2264__STATIC_INLINE uint32_t DDL_TMR_IC_GetPolarity(TMR_TypeDef *TMRx, uint32_t Channel)
2265{
2266 uint8_t iChannel = TMR_GET_CHANNEL_INDEX(Channel);
2267 return (READ_BIT(TMRx->CCEN, ((TMR_CCEN_CC1NPOL | TMR_CCEN_CC1POL) << SHIFT_TAB_CCxP[iChannel])) >>
2268 SHIFT_TAB_CCxP[iChannel]);
2269}
2270
2278__STATIC_INLINE void DDL_TMR_IC_EnableXORCombination(TMR_TypeDef *TMRx)
2279{
2280 SET_BIT(TMRx->CTRL2, TMR_CTRL2_TI1SEL);
2281}
2282
2290__STATIC_INLINE void DDL_TMR_IC_DisableXORCombination(TMR_TypeDef *TMRx)
2291{
2292 CLEAR_BIT(TMRx->CTRL2, TMR_CTRL2_TI1SEL);
2293}
2294
2302__STATIC_INLINE uint32_t DDL_TMR_IC_IsEnabledXORCombination(TMR_TypeDef *TMRx)
2303{
2304 return ((READ_BIT(TMRx->CTRL2, TMR_CTRL2_TI1SEL) == (TMR_CTRL2_TI1SEL)) ? 1UL : 0UL);
2305}
2306
2315__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH1(TMR_TypeDef *TMRx)
2316{
2317 return (uint32_t)(READ_REG(TMRx->CC1));
2318}
2319
2328__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH2(TMR_TypeDef *TMRx)
2329{
2330 return (uint32_t)(READ_REG(TMRx->CC2));
2331}
2332
2341__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH3(TMR_TypeDef *TMRx)
2342{
2343 return (uint32_t)(READ_REG(TMRx->CC3));
2344}
2345
2354__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH4(TMR_TypeDef *TMRx)
2355{
2356 return (uint32_t)(READ_REG(TMRx->CC4));
2357}
2358
2362
2374__STATIC_INLINE void DDL_TMR_EnableExternalClock(TMR_TypeDef *TMRx)
2375{
2376 SET_BIT(TMRx->SMCTRL, TMR_SMCTRL_ECEN);
2377}
2378
2386__STATIC_INLINE void DDL_TMR_DisableExternalClock(TMR_TypeDef *TMRx)
2387{
2388 CLEAR_BIT(TMRx->SMCTRL, TMR_SMCTRL_ECEN);
2389}
2390
2398__STATIC_INLINE uint32_t DDL_TMR_IsEnabledExternalClock(TMR_TypeDef *TMRx)
2399{
2400 return ((READ_BIT(TMRx->SMCTRL, TMR_SMCTRL_ECEN) == (TMR_SMCTRL_ECEN)) ? 1UL : 0UL);
2401}
2402
2420__STATIC_INLINE void DDL_TMR_SetClockSource(TMR_TypeDef *TMRx, uint32_t ClockSource)
2421{
2422 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_SMFSEL | TMR_SMCTRL_ECEN, ClockSource);
2423}
2424
2436__STATIC_INLINE void DDL_TMR_SetEncoderMode(TMR_TypeDef *TMRx, uint32_t EncoderMode)
2437{
2438 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_SMFSEL, EncoderMode);
2439}
2440
2444
2464__STATIC_INLINE void DDL_TMR_SetTriggerOutput(TMR_TypeDef *TMRx, uint32_t TimerSynchronization)
2465{
2466 MODIFY_REG(TMRx->CTRL2, TMR_CTRL2_MMSEL, TimerSynchronization);
2467}
2468
2481__STATIC_INLINE void DDL_TMR_SetSlaveMode(TMR_TypeDef *TMRx, uint32_t SlaveMode)
2482{
2483 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_SMFSEL, SlaveMode);
2484}
2485
2502__STATIC_INLINE void DDL_TMR_SetTriggerInput(TMR_TypeDef *TMRx, uint32_t TriggerInput)
2503{
2504 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_TRGSEL, TriggerInput);
2505}
2506
2514__STATIC_INLINE void DDL_TMR_EnableMasterSlaveMode(TMR_TypeDef *TMRx)
2515{
2516 SET_BIT(TMRx->SMCTRL, TMR_SMCTRL_MSMEN);
2517}
2518
2526__STATIC_INLINE void DDL_TMR_DisableMasterSlaveMode(TMR_TypeDef *TMRx)
2527{
2528 CLEAR_BIT(TMRx->SMCTRL, TMR_SMCTRL_MSMEN);
2529}
2530
2538__STATIC_INLINE uint32_t DDL_TMR_IsEnabledMasterSlaveMode(TMR_TypeDef *TMRx)
2539{
2540 return ((READ_BIT(TMRx->SMCTRL, TMR_SMCTRL_MSMEN) == (TMR_SMCTRL_MSMEN)) ? 1UL : 0UL);
2541}
2542
2575__STATIC_INLINE void DDL_TMR_ConfigETR(TMR_TypeDef *TMRx, uint32_t ETRPolarity, uint32_t ETRPrescaler, uint32_t ETRFilter)
2576{
2577 MODIFY_REG(TMRx->SMCTRL, TMR_SMCTRL_ETPOL | TMR_SMCTRL_ETPCFG | TMR_SMCTRL_ETFCFG, ETRPolarity | ETRPrescaler | ETRFilter);
2578}
2579
2583
2594__STATIC_INLINE void DDL_TMR_EnableBRK(TMR_TypeDef *TMRx)
2595{
2596 __IO uint32_t tmpreg;
2597 SET_BIT(TMRx->BDT, TMR_BDT_BRKEN);
2598 /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */
2599 tmpreg = READ_REG(TMRx->BDT);
2600 (void)(tmpreg);
2601}
2602
2610__STATIC_INLINE void DDL_TMR_DisableBRK(TMR_TypeDef *TMRx)
2611{
2612 __IO uint32_t tmpreg;
2613 CLEAR_BIT(TMRx->BDT, TMR_BDT_BRKEN);
2614 /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */
2615 tmpreg = READ_REG(TMRx->BDT);
2616 (void)(tmpreg);
2617}
2618
2629__STATIC_INLINE void DDL_TMR_ConfigBRK(TMR_TypeDef *TMRx, uint32_t BreakPolarity)
2630{
2631 __IO uint32_t tmpreg;
2632 MODIFY_REG(TMRx->BDT, TMR_BDT_BRKPOL, BreakPolarity);
2633 /* Note: Any write operation to BKP bit takes a delay of 1 APB clock cycle to become effective. */
2634 tmpreg = READ_REG(TMRx->BDT);
2635 (void)(tmpreg);
2636}
2637
2651__STATIC_INLINE void DDL_TMR_SetOffStates(TMR_TypeDef *TMRx, uint32_t OffStateIdle, uint32_t OffStateRun)
2652{
2653 MODIFY_REG(TMRx->BDT, TMR_BDT_IMOS | TMR_BDT_RMOS, OffStateIdle | OffStateRun);
2654}
2655
2663__STATIC_INLINE void DDL_TMR_EnableAutomaticOutput(TMR_TypeDef *TMRx)
2664{
2665 SET_BIT(TMRx->BDT, TMR_BDT_AOEN);
2666}
2667
2675__STATIC_INLINE void DDL_TMR_DisableAutomaticOutput(TMR_TypeDef *TMRx)
2676{
2677 CLEAR_BIT(TMRx->BDT, TMR_BDT_AOEN);
2678}
2679
2687__STATIC_INLINE uint32_t DDL_TMR_IsEnabledAutomaticOutput(TMR_TypeDef *TMRx)
2688{
2689 return ((READ_BIT(TMRx->BDT, TMR_BDT_AOEN) == (TMR_BDT_AOEN)) ? 1UL : 0UL);
2690}
2691
2701__STATIC_INLINE void DDL_TMR_EnableAllOutputs(TMR_TypeDef *TMRx)
2702{
2703 SET_BIT(TMRx->BDT, TMR_BDT_MOEN);
2704}
2705
2715__STATIC_INLINE void DDL_TMR_DisableAllOutputs(TMR_TypeDef *TMRx)
2716{
2717 CLEAR_BIT(TMRx->BDT, TMR_BDT_MOEN);
2718}
2719
2727__STATIC_INLINE uint32_t DDL_TMR_IsEnabledAllOutputs(TMR_TypeDef *TMRx)
2728{
2729 return ((READ_BIT(TMRx->BDT, TMR_BDT_MOEN) == (TMR_BDT_MOEN)) ? 1UL : 0UL);
2730}
2731
2735
2784__STATIC_INLINE void DDL_TMR_ConfigDMABurst(TMR_TypeDef *TMRx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength)
2785{
2786 MODIFY_REG(TMRx->DCTRL, (TMR_DCTRL_DBLEN | TMR_DCTRL_DBADDR), (DMABurstBaseAddress | DMABurstLength));
2787}
2788
2792
2801__STATIC_INLINE void DDL_TMR_ClearFlag_UPDATE(TMR_TypeDef *TMRx)
2802{
2803 WRITE_REG(TMRx->STS, ~(TMR_STS_UIFLG));
2804}
2805
2811__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_UPDATE(TMR_TypeDef *TMRx)
2812{
2813 return ((READ_BIT(TMRx->STS, TMR_STS_UIFLG) == (TMR_STS_UIFLG)) ? 1UL : 0UL);
2814}
2815
2821__STATIC_INLINE void DDL_TMR_ClearFlag_CC1(TMR_TypeDef *TMRx)
2822{
2823 WRITE_REG(TMRx->STS, ~(TMR_STS_CC1IFLG));
2824}
2825
2831__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC1(TMR_TypeDef *TMRx)
2832{
2833 return ((READ_BIT(TMRx->STS, TMR_STS_CC1IFLG) == (TMR_STS_CC1IFLG)) ? 1UL : 0UL);
2834}
2835
2841__STATIC_INLINE void DDL_TMR_ClearFlag_CC2(TMR_TypeDef *TMRx)
2842{
2843 WRITE_REG(TMRx->STS, ~(TMR_STS_CC2IFLG));
2844}
2845
2851__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC2(TMR_TypeDef *TMRx)
2852{
2853 return ((READ_BIT(TMRx->STS, TMR_STS_CC2IFLG) == (TMR_STS_CC2IFLG)) ? 1UL : 0UL);
2854}
2855
2861__STATIC_INLINE void DDL_TMR_ClearFlag_CC3(TMR_TypeDef *TMRx)
2862{
2863 WRITE_REG(TMRx->STS, ~(TMR_STS_CC3IFLG));
2864}
2865
2871__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC3(TMR_TypeDef *TMRx)
2872{
2873 return ((READ_BIT(TMRx->STS, TMR_STS_CC3IFLG) == (TMR_STS_CC3IFLG)) ? 1UL : 0UL);
2874}
2875
2881__STATIC_INLINE void DDL_TMR_ClearFlag_CC4(TMR_TypeDef *TMRx)
2882{
2883 WRITE_REG(TMRx->STS, ~(TMR_STS_CC4IFLG));
2884}
2885
2891__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC4(TMR_TypeDef *TMRx)
2892{
2893 return ((READ_BIT(TMRx->STS, TMR_STS_CC4IFLG) == (TMR_STS_CC4IFLG)) ? 1UL : 0UL);
2894}
2895
2901__STATIC_INLINE void DDL_TMR_ClearFlag_COM(TMR_TypeDef *TMRx)
2902{
2903 WRITE_REG(TMRx->STS, ~(TMR_STS_COMIFLG));
2904}
2905
2911__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_COM(TMR_TypeDef *TMRx)
2912{
2913 return ((READ_BIT(TMRx->STS, TMR_STS_COMIFLG) == (TMR_STS_COMIFLG)) ? 1UL : 0UL);
2914}
2915
2921__STATIC_INLINE void DDL_TMR_ClearFlag_TRIG(TMR_TypeDef *TMRx)
2922{
2923 WRITE_REG(TMRx->STS, ~(TMR_STS_TRGIFLG));
2924}
2925
2931__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_TRIG(TMR_TypeDef *TMRx)
2932{
2933 return ((READ_BIT(TMRx->STS, TMR_STS_TRGIFLG) == (TMR_STS_TRGIFLG)) ? 1UL : 0UL);
2934}
2935
2941__STATIC_INLINE void DDL_TMR_ClearFlag_BRK(TMR_TypeDef *TMRx)
2942{
2943 WRITE_REG(TMRx->STS, ~(TMR_STS_BRKIFLG));
2944}
2945
2951__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_BRK(TMR_TypeDef *TMRx)
2952{
2953 return ((READ_BIT(TMRx->STS, TMR_STS_BRKIFLG) == (TMR_STS_BRKIFLG)) ? 1UL : 0UL);
2954}
2955
2961__STATIC_INLINE void DDL_TMR_ClearFlag_CC1OVR(TMR_TypeDef *TMRx)
2962{
2963 WRITE_REG(TMRx->STS, ~(TMR_STS_CC1RCFLG));
2964}
2965
2972__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC1OVR(TMR_TypeDef *TMRx)
2973{
2974 return ((READ_BIT(TMRx->STS, TMR_STS_CC1RCFLG) == (TMR_STS_CC1RCFLG)) ? 1UL : 0UL);
2975}
2976
2982__STATIC_INLINE void DDL_TMR_ClearFlag_CC2OVR(TMR_TypeDef *TMRx)
2983{
2984 WRITE_REG(TMRx->STS, ~(TMR_STS_CC2RCFLG));
2985}
2986
2993__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC2OVR(TMR_TypeDef *TMRx)
2994{
2995 return ((READ_BIT(TMRx->STS, TMR_STS_CC2RCFLG) == (TMR_STS_CC2RCFLG)) ? 1UL : 0UL);
2996}
2997
3003__STATIC_INLINE void DDL_TMR_ClearFlag_CC3OVR(TMR_TypeDef *TMRx)
3004{
3005 WRITE_REG(TMRx->STS, ~(TMR_STS_CC3RCFLG));
3006}
3007
3014__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC3OVR(TMR_TypeDef *TMRx)
3015{
3016 return ((READ_BIT(TMRx->STS, TMR_STS_CC3RCFLG) == (TMR_STS_CC3RCFLG)) ? 1UL : 0UL);
3017}
3018
3024__STATIC_INLINE void DDL_TMR_ClearFlag_CC4OVR(TMR_TypeDef *TMRx)
3025{
3026 WRITE_REG(TMRx->STS, ~(TMR_STS_CC4RCFLG));
3027}
3028
3035__STATIC_INLINE uint32_t DDL_TMR_IsActiveFlag_CC4OVR(TMR_TypeDef *TMRx)
3036{
3037 return ((READ_BIT(TMRx->STS, TMR_STS_CC4RCFLG) == (TMR_STS_CC4RCFLG)) ? 1UL : 0UL);
3038}
3039
3043
3052__STATIC_INLINE void DDL_TMR_EnableIT_UPDATE(TMR_TypeDef *TMRx)
3053{
3054 SET_BIT(TMRx->DIEN, TMR_DIEN_UIEN);
3055}
3056
3062__STATIC_INLINE void DDL_TMR_DisableIT_UPDATE(TMR_TypeDef *TMRx)
3063{
3064 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_UIEN);
3065}
3066
3072__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_UPDATE(TMR_TypeDef *TMRx)
3073{
3074 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_UIEN) == (TMR_DIEN_UIEN)) ? 1UL : 0UL);
3075}
3076
3082__STATIC_INLINE void DDL_TMR_EnableIT_CC1(TMR_TypeDef *TMRx)
3083{
3084 SET_BIT(TMRx->DIEN, TMR_DIEN_CC1IEN);
3085}
3086
3092__STATIC_INLINE void DDL_TMR_DisableIT_CC1(TMR_TypeDef *TMRx)
3093{
3094 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC1IEN);
3095}
3096
3102__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC1(TMR_TypeDef *TMRx)
3103{
3104 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC1IEN) == (TMR_DIEN_CC1IEN)) ? 1UL : 0UL);
3105}
3106
3112__STATIC_INLINE void DDL_TMR_EnableIT_CC2(TMR_TypeDef *TMRx)
3113{
3114 SET_BIT(TMRx->DIEN, TMR_DIEN_CC2IEN);
3115}
3116
3122__STATIC_INLINE void DDL_TMR_DisableIT_CC2(TMR_TypeDef *TMRx)
3123{
3124 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC2IEN);
3125}
3126
3132__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC2(TMR_TypeDef *TMRx)
3133{
3134 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC2IEN) == (TMR_DIEN_CC2IEN)) ? 1UL : 0UL);
3135}
3136
3142__STATIC_INLINE void DDL_TMR_EnableIT_CC3(TMR_TypeDef *TMRx)
3143{
3144 SET_BIT(TMRx->DIEN, TMR_DIEN_CC3IEN);
3145}
3146
3152__STATIC_INLINE void DDL_TMR_DisableIT_CC3(TMR_TypeDef *TMRx)
3153{
3154 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC3IEN);
3155}
3156
3162__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC3(TMR_TypeDef *TMRx)
3163{
3164 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC3IEN) == (TMR_DIEN_CC3IEN)) ? 1UL : 0UL);
3165}
3166
3172__STATIC_INLINE void DDL_TMR_EnableIT_CC4(TMR_TypeDef *TMRx)
3173{
3174 SET_BIT(TMRx->DIEN, TMR_DIEN_CC4IEN);
3175}
3176
3182__STATIC_INLINE void DDL_TMR_DisableIT_CC4(TMR_TypeDef *TMRx)
3183{
3184 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC4IEN);
3185}
3186
3192__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_CC4(TMR_TypeDef *TMRx)
3193{
3194 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC4IEN) == (TMR_DIEN_CC4IEN)) ? 1UL : 0UL);
3195}
3196
3202__STATIC_INLINE void DDL_TMR_EnableIT_COM(TMR_TypeDef *TMRx)
3203{
3204 SET_BIT(TMRx->DIEN, TMR_DIEN_COMIEN);
3205}
3206
3212__STATIC_INLINE void DDL_TMR_DisableIT_COM(TMR_TypeDef *TMRx)
3213{
3214 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_COMIEN);
3215}
3216
3222__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_COM(TMR_TypeDef *TMRx)
3223{
3224 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_COMIEN) == (TMR_DIEN_COMIEN)) ? 1UL : 0UL);
3225}
3226
3232__STATIC_INLINE void DDL_TMR_EnableIT_TRIG(TMR_TypeDef *TMRx)
3233{
3234 SET_BIT(TMRx->DIEN, TMR_DIEN_TRGIEN);
3235}
3236
3242__STATIC_INLINE void DDL_TMR_DisableIT_TRIG(TMR_TypeDef *TMRx)
3243{
3244 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_TRGIEN);
3245}
3246
3252__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_TRIG(TMR_TypeDef *TMRx)
3253{
3254 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_TRGIEN) == (TMR_DIEN_TRGIEN)) ? 1UL : 0UL);
3255}
3256
3262__STATIC_INLINE void DDL_TMR_EnableIT_BRK(TMR_TypeDef *TMRx)
3263{
3264 SET_BIT(TMRx->DIEN, TMR_DIEN_BRKIEN);
3265}
3266
3272__STATIC_INLINE void DDL_TMR_DisableIT_BRK(TMR_TypeDef *TMRx)
3273{
3274 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_BRKIEN);
3275}
3276
3282__STATIC_INLINE uint32_t DDL_TMR_IsEnabledIT_BRK(TMR_TypeDef *TMRx)
3283{
3284 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_BRKIEN) == (TMR_DIEN_BRKIEN)) ? 1UL : 0UL);
3285}
3286
3290
3299__STATIC_INLINE void DDL_TMR_EnableDMAReq_UPDATE(TMR_TypeDef *TMRx)
3300{
3301 SET_BIT(TMRx->DIEN, TMR_DIEN_UDIEN);
3302}
3303
3309__STATIC_INLINE void DDL_TMR_DisableDMAReq_UPDATE(TMR_TypeDef *TMRx)
3310{
3311 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_UDIEN);
3312}
3313
3319__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_UPDATE(TMR_TypeDef *TMRx)
3320{
3321 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_UDIEN) == (TMR_DIEN_UDIEN)) ? 1UL : 0UL);
3322}
3323
3329__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC1(TMR_TypeDef *TMRx)
3330{
3331 SET_BIT(TMRx->DIEN, TMR_DIEN_CC1DEN);
3332}
3333
3339__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC1(TMR_TypeDef *TMRx)
3340{
3341 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC1DEN);
3342}
3343
3349__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC1(TMR_TypeDef *TMRx)
3350{
3351 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC1DEN) == (TMR_DIEN_CC1DEN)) ? 1UL : 0UL);
3352}
3353
3359__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC2(TMR_TypeDef *TMRx)
3360{
3361 SET_BIT(TMRx->DIEN, TMR_DIEN_CC2DEN);
3362}
3363
3369__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC2(TMR_TypeDef *TMRx)
3370{
3371 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC2DEN);
3372}
3373
3379__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC2(TMR_TypeDef *TMRx)
3380{
3381 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC2DEN) == (TMR_DIEN_CC2DEN)) ? 1UL : 0UL);
3382}
3383
3389__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC3(TMR_TypeDef *TMRx)
3390{
3391 SET_BIT(TMRx->DIEN, TMR_DIEN_CC3DEN);
3392}
3393
3399__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC3(TMR_TypeDef *TMRx)
3400{
3401 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC3DEN);
3402}
3403
3409__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC3(TMR_TypeDef *TMRx)
3410{
3411 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC3DEN) == (TMR_DIEN_CC3DEN)) ? 1UL : 0UL);
3412}
3413
3419__STATIC_INLINE void DDL_TMR_EnableDMAReq_CC4(TMR_TypeDef *TMRx)
3420{
3421 SET_BIT(TMRx->DIEN, TMR_DIEN_CC4DEN);
3422}
3423
3429__STATIC_INLINE void DDL_TMR_DisableDMAReq_CC4(TMR_TypeDef *TMRx)
3430{
3431 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_CC4DEN);
3432}
3433
3439__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_CC4(TMR_TypeDef *TMRx)
3440{
3441 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_CC4DEN) == (TMR_DIEN_CC4DEN)) ? 1UL : 0UL);
3442}
3443
3449__STATIC_INLINE void DDL_TMR_EnableDMAReq_COM(TMR_TypeDef *TMRx)
3450{
3451 SET_BIT(TMRx->DIEN, TMR_DIEN_COMDEN);
3452}
3453
3459__STATIC_INLINE void DDL_TMR_DisableDMAReq_COM(TMR_TypeDef *TMRx)
3460{
3461 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_COMDEN);
3462}
3463
3469__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_COM(TMR_TypeDef *TMRx)
3470{
3471 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_COMDEN) == (TMR_DIEN_COMDEN)) ? 1UL : 0UL);
3472}
3473
3479__STATIC_INLINE void DDL_TMR_EnableDMAReq_TRIG(TMR_TypeDef *TMRx)
3480{
3481 SET_BIT(TMRx->DIEN, TMR_DIEN_TRGDEN);
3482}
3483
3489__STATIC_INLINE void DDL_TMR_DisableDMAReq_TRIG(TMR_TypeDef *TMRx)
3490{
3491 CLEAR_BIT(TMRx->DIEN, TMR_DIEN_TRGDEN);
3492}
3493
3499__STATIC_INLINE uint32_t DDL_TMR_IsEnabledDMAReq_TRIG(TMR_TypeDef *TMRx)
3500{
3501 return ((READ_BIT(TMRx->DIEN, TMR_DIEN_TRGDEN) == (TMR_DIEN_TRGDEN)) ? 1UL : 0UL);
3502}
3503
3507
3516__STATIC_INLINE void DDL_TMR_GenerateEvent_UPDATE(TMR_TypeDef *TMRx)
3517{
3518 SET_BIT(TMRx->CEG, TMR_CEG_UEG);
3519}
3520
3526__STATIC_INLINE void DDL_TMR_GenerateEvent_CC1(TMR_TypeDef *TMRx)
3527{
3528 SET_BIT(TMRx->CEG, TMR_CEG_CC1EG);
3529}
3530
3536__STATIC_INLINE void DDL_TMR_GenerateEvent_CC2(TMR_TypeDef *TMRx)
3537{
3538 SET_BIT(TMRx->CEG, TMR_CEG_CC2EG);
3539}
3540
3546__STATIC_INLINE void DDL_TMR_GenerateEvent_CC3(TMR_TypeDef *TMRx)
3547{
3548 SET_BIT(TMRx->CEG, TMR_CEG_CC3EG);
3549}
3550
3556__STATIC_INLINE void DDL_TMR_GenerateEvent_CC4(TMR_TypeDef *TMRx)
3557{
3558 SET_BIT(TMRx->CEG, TMR_CEG_CC4EG);
3559}
3560
3566__STATIC_INLINE void DDL_TMR_GenerateEvent_COM(TMR_TypeDef *TMRx)
3567{
3568 SET_BIT(TMRx->CEG, TMR_CEG_COMG);
3569}
3570
3576__STATIC_INLINE void DDL_TMR_GenerateEvent_TRIG(TMR_TypeDef *TMRx)
3577{
3578 SET_BIT(TMRx->CEG, TMR_CEG_TEG);
3579}
3580
3586__STATIC_INLINE void DDL_TMR_GenerateEvent_BRK(TMR_TypeDef *TMRx)
3587{
3588 SET_BIT(TMRx->CEG, TMR_CEG_BEG);
3589}
3590
3594
3595#if defined(USE_FULL_DDL_DRIVER)
3599
3600ErrorStatus DDL_TMR_DeInit(TMR_TypeDef *TMRx);
3601void DDL_TMR_StructInit(DDL_TMR_InitTypeDef *TMR_InitStruct);
3602ErrorStatus DDL_TMR_Init(TMR_TypeDef *TMRx, DDL_TMR_InitTypeDef *TMR_InitStruct);
3603void DDL_TMR_OC_StructInit(DDL_TMR_OC_InitTypeDef *TMR_OC_InitStruct);
3604ErrorStatus DDL_TMR_OC_Init(TMR_TypeDef *TMRx, uint32_t Channel, DDL_TMR_OC_InitTypeDef *TMR_OC_InitStruct);
3605void DDL_TMR_IC_StructInit(DDL_TMR_IC_InitTypeDef *TMR_ICInitStruct);
3606ErrorStatus DDL_TMR_IC_Init(TMR_TypeDef *TMRx, uint32_t Channel, DDL_TMR_IC_InitTypeDef *TMR_IC_InitStruct);
3607void DDL_TMR_ENCODER_StructInit(DDL_TMR_ENCODER_InitTypeDef *TMR_EncoderInitStruct);
3608ErrorStatus DDL_TMR_ENCODER_Init(TMR_TypeDef *TMRx, DDL_TMR_ENCODER_InitTypeDef *TMR_EncoderInitStruct);
3610ErrorStatus DDL_TMR_HALLSENSOR_Init(TMR_TypeDef *TMRx, DDL_TMR_HALLSENSOR_InitTypeDef *TMR_HallSensorInitStruct);
3611void DDL_TMR_BDT_StructInit(DDL_TMR_BDT_InitTypeDef *TMR_BDTInitStruct);
3612ErrorStatus DDL_TMR_BDT_Init(TMR_TypeDef *TMRx, DDL_TMR_BDT_InitTypeDef *TMR_BDTInitStruct);
3616#endif /* USE_FULL_DDL_DRIVER */
3617
3621
3625
3626#endif /* TMR1 || TMR2 || TMR3 || TMR4 */
3627
3631
3632#ifdef __cplusplus
3633}
3634#endif
3635
3636#endif /* G32R4xx_DDL_TMR_H */
3637
__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 uint32_t DDL_TMR_IC_IsEnabledXORCombination(TMR_TypeDef *TMRx)
Indicates whether the TMRx_CH1, CH2 and CH3 pins are connectected to the TI1 input.
__STATIC_INLINE void DDL_TMR_IC_SetPolarity(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICPolarity)
Set the input channel polarity.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetPolarity(TMR_TypeDef *TMRx, uint32_t Channel)
Get the current input channel polarity.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH2(TMR_TypeDef *TMRx)
Get captured value for input channel 2.
__STATIC_INLINE void DDL_TMR_IC_EnableXORCombination(TMR_TypeDef *TMRx)
Connect the TMRx_CH1, CH2 and CH3 pins to the TI1 input (XOR combination).
__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH4(TMR_TypeDef *TMRx)
Get captured value for input channel 4.
__STATIC_INLINE void DDL_TMR_IC_DisableXORCombination(TMR_TypeDef *TMRx)
Disconnect the TMRx_CH1, CH2 and CH3 pins from the TI1 input.
__STATIC_INLINE void DDL_TMR_IC_SetActiveInput(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICActiveInput)
Set the active input.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetActiveInput(TMR_TypeDef *TMRx, uint32_t Channel)
Get the current active input.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetPrescaler(TMR_TypeDef *TMRx, uint32_t Channel)
Get the current prescaler value acting on an input channel.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetFilter(TMR_TypeDef *TMRx, uint32_t Channel)
Get the input filter duration.
__STATIC_INLINE void DDL_TMR_IC_SetPrescaler(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICPrescaler)
Set the prescaler of input channel.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH3(TMR_TypeDef *TMRx)
Get captured value for input channel 3.
__STATIC_INLINE void DDL_TMR_IC_SetFilter(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t ICFilter)
Set the input filter duration.
__STATIC_INLINE void DDL_TMR_IC_Config(TMR_TypeDef *TMRx, uint32_t Channel, uint32_t Configuration)
Configure input channel.
__STATIC_INLINE uint32_t DDL_TMR_IC_GetCaptureCH1(TMR_TypeDef *TMRx)
Get captured value for input channel 1.
__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.
TMR Input Capture configuration structure definition.
TMR Time Base configuration structure definition.
TMR Output Compare configuration structure definition.