1 /**
2   ******************************************************************************
3   * @file    stm32g4xx_ll_hrtim.h
4   * @author  MCD Application Team
5   * @brief   Header file of HRTIM LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2019 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32G4xx_LL_HRTIM_H
21 #define STM32G4xx_LL_HRTIM_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32g4xx.h"
29 
30 /** @addtogroup STM32G4xx_LL_Driver
31   * @{
32   */
33 
34 #if defined (HRTIM1)
35 
36 /** @defgroup HRTIM_LL HRTIM
37   * @{
38   */
39 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /** @defgroup HRTIM_LL_Private_Variables HRTIM Private Variables
43   * @{
44   */
45 static const uint16_t REG_OFFSET_TAB_TIMER[] =
46 {
47   0x00U,   /* 0: MASTER  */
48   0x80U,   /* 1: TIMER A */
49   0x100U,  /* 2: TIMER B */
50   0x180U,  /* 3: TIMER C */
51   0x200U,  /* 4: TIMER D */
52   0x280U,  /* 5: TIMER E */
53   0x300U,  /* 6: TIMER F */
54 };
55 
56 static const uint8_t REG_OFFSET_TAB_ADCER[] =
57 {
58   0x00U,    /* LL_HRTIM_ADCTRIG_1:  HRTIM_ADC1R */
59   0x04U,    /* LL_HRTIM_ADCTRIG_2:  HRTIM_ADC2R */
60   0x08U,    /* LL_HRTIM_ADCTRIG_3:  HRTIM_ADC3R */
61   0x0CU,    /* LL_HRTIM_ADCTRIG_4:  HRTIM_ADC4R */
62   0x3CU,    /* LL_HRTIM_ADCTRIG_5:  HRTIM_ADCER */
63   0x3CU,    /* LL_HRTIM_ADCTRIG_6:  HRTIM_ADCER */
64   0x3CU,    /* LL_HRTIM_ADCTRIG_7:  HRTIM_ADCER */
65   0x3CU,    /* LL_HRTIM_ADCTRIG_8:  HRTIM_ADCER */
66   0x3CU,    /* LL_HRTIM_ADCTRIG_9:  HRTIM_ADCER */
67   0x3CU,    /* LL_HRTIM_ADCTRIG_10: HRTIM_ADCER */
68 };
69 
70 static const uint8_t REG_OFFSET_TAB_ADCUR[] =
71 {
72   0x00U,    /* LL_HRTIM_ADCTRIG_1:  HRTIM_CR1   */
73   0x00U,    /* LL_HRTIM_ADCTRIG_2:  HRTIM_CR1   */
74   0x00U,    /* LL_HRTIM_ADCTRIG_3:  HRTIM_CR1   */
75   0x00U,    /* LL_HRTIM_ADCTRIG_4:  HRTIM_CR1   */
76   0x7CU,    /* LL_HRTIM_ADCTRIG_5:  HRTIM_ADCUR */
77   0x7CU,    /* LL_HRTIM_ADCTRIG_6:  HRTIM_ADCUR */
78   0x7CU,    /* LL_HRTIM_ADCTRIG_7:  HRTIM_ADCUR */
79   0x7CU,    /* LL_HRTIM_ADCTRIG_8:  HRTIM_ADCUR */
80   0x7CU,    /* LL_HRTIM_ADCTRIG_9:  HRTIM_ADCUR */
81   0x7CU,    /* LL_HRTIM_ADCTRIG_10: HRTIM_ADCUR */
82 };
83 
84 static const uint8_t REG_SHIFT_TAB_ADCER[] =
85 {
86   0,   /* LL_HRTIM_ADCTRIG_1  */
87   0,   /* LL_HRTIM_ADCTRIG_2  */
88   0,   /* LL_HRTIM_ADCTRIG_3  */
89   0,   /* LL_HRTIM_ADCTRIG_4  */
90   0,   /* LL_HRTIM_ADCTRIG_5  */
91   5,   /* LL_HRTIM_ADCTRIG_6  */
92   10,  /* LL_HRTIM_ADCTRIG_7  */
93   16,  /* LL_HRTIM_ADCTRIG_8  */
94   21,  /* LL_HRTIM_ADCTRIG_9  */
95   26   /* LL_HRTIM_ADCTRIG_10 */
96 };
97 
98 static const uint8_t REG_SHIFT_TAB_ADCUR[] =
99 {
100   16,   /* LL_HRTIM_ADCTRIG_1  */
101   19,   /* LL_HRTIM_ADCTRIG_2  */
102   22,   /* LL_HRTIM_ADCTRIG_3  */
103   25,   /* LL_HRTIM_ADCTRIG_4  */
104   0,    /* LL_HRTIM_ADCTRIG_5  */
105   4,    /* LL_HRTIM_ADCTRIG_6  */
106   8,    /* LL_HRTIM_ADCTRIG_7  */
107   12,   /* LL_HRTIM_ADCTRIG_8  */
108   16,   /* LL_HRTIM_ADCTRIG_9  */
109   20    /* LL_HRTIM_ADCTRIG_10 */
110 };
111 
112 static const uint32_t REG_MASK_TAB_ADCER[] =
113 {
114   0xFFFFFFFFU,   /* LL_HRTIM_ADCTRIG_1  */
115   0xFFFFFFFFU,   /* LL_HRTIM_ADCTRIG_2  */
116   0xFFFFFFFFU,   /* LL_HRTIM_ADCTRIG_3  */
117   0xFFFFFFFFU,   /* LL_HRTIM_ADCTRIG_4  */
118   0x0000001FU,   /* LL_HRTIM_ADCTRIG_5  */
119   0x000003E0U,   /* LL_HRTIM_ADCTRIG_6  */
120   0x00007C00U,   /* LL_HRTIM_ADCTRIG_7  */
121   0x001F0000U,   /* LL_HRTIM_ADCTRIG_8  */
122   0x03E00000U,   /* LL_HRTIM_ADCTRIG_9  */
123   0x7C000000U    /* LL_HRTIM_ADCTRIG_10 */
124 };
125 
126 static const uint32_t REG_MASK_TAB_ADCUR[] =
127 {
128   0x00070000U,   /* LL_HRTIM_ADCTRIG_1  */
129   0x00380000U,   /* LL_HRTIM_ADCTRIG_2  */
130   0x01C00000U,   /* LL_HRTIM_ADCTRIG_3  */
131   0x0E000000U,   /* LL_HRTIM_ADCTRIG_4  */
132   0x00000007U,   /* LL_HRTIM_ADCTRIG_5  */
133   0x00000070U,   /* LL_HRTIM_ADCTRIG_6  */
134   0x00000700U,   /* LL_HRTIM_ADCTRIG_7  */
135   0x00007000U,   /* LL_HRTIM_ADCTRIG_8  */
136   0x00070000U,   /* LL_HRTIM_ADCTRIG_9  */
137   0x00700000U    /* LL_HRTIM_ADCTRIG_10 */
138 };
139 
140 static const uint8_t REG_OFFSET_TAB_ADCPSx[] =
141 {
142   0U,    /* 0: HRTIM_ADC1R  */
143   6U,    /* 1: HRTIM_ADC2R  */
144   12U,   /* 2: HRTIM_ADC3R  */
145   18U,   /* 3: HRTIM_ADC4R  */
146   24U,   /* 4: HRTIM_ADC5R  */
147   32U,   /* 5: HRTIM_ADC6R  */
148   38U,   /* 6: HRTIM_ADC7R  */
149   44U,   /* 7: HRTIM_ADC8R  */
150   50U,   /* 8: HRTIM_ADC9R  */
151   56U    /* 9: HRTIM_ADC10R */
152 };
153 
154 static const uint16_t REG_OFFSET_TAB_SETxR[] =
155 {
156   0x00U,   /* 0: TA1 */
157   0x08U,   /* 1: TA2 */
158   0x80U,   /* 2: TB1 */
159   0x88U,   /* 3: TB2 */
160   0x100U,  /* 4: TC1 */
161   0x108U,  /* 5: TC2 */
162   0x180U,  /* 6: TD1 */
163   0x188U,  /* 7: TD2 */
164   0x200U,  /* 8: TE1 */
165   0x208U,  /* 9: TE2 */
166   0x280U,  /* 10: TF1 */
167   0x288U   /* 11: TF2 */
168 };
169 
170 static const uint16_t REG_OFFSET_TAB_OUTxR[] =
171 {
172   0x00U,   /*  0: TA1 */
173   0x00U,   /*  1: TA2 */
174   0x80U,   /*  2: TB1 */
175   0x80U,   /*  3: TB2 */
176   0x100U,  /*  4: TC1 */
177   0x100U,  /*  5: TC2 */
178   0x180U,  /*  6: TD1 */
179   0x180U,  /*  7: TD2 */
180   0x200U,  /*  8: TE1 */
181   0x200U,  /*  9: TE2 */
182   0x280U,  /* 10: TF1 */
183   0x280U   /* 11: TF2 */
184 };
185 
186 static const uint8_t REG_OFFSET_TAB_EECR[] =
187 {
188   0x00U, /* LL_HRTIM_EVENT_1 */
189   0x00U, /* LL_HRTIM_EVENT_2 */
190   0x00U, /* LL_HRTIM_EVENT_3 */
191   0x00U, /* LL_HRTIM_EVENT_4 */
192   0x00U, /* LL_HRTIM_EVENT_5 */
193   0x04U, /* LL_HRTIM_EVENT_6 */
194   0x04U, /* LL_HRTIM_EVENT_7 */
195   0x04U, /* LL_HRTIM_EVENT_8 */
196   0x04U, /* LL_HRTIM_EVENT_9 */
197   0x04U  /* LL_HRTIM_EVENT_10 */
198 };
199 
200 static const uint8_t REG_OFFSET_TAB_FLTINR[] =
201 {
202   0x00U, /* LL_HRTIM_FAULT_1 */
203   0x00U, /* LL_HRTIM_FAULT_2 */
204   0x00U, /* LL_HRTIM_FAULT_3 */
205   0x00U, /* LL_HRTIM_FAULT_4 */
206   0x04U, /* LL_HRTIM_FAULT_5 */
207   0x04U  /* LL_HRTIM_FAULT_6 */
208 };
209 
210 static const uint32_t REG_MASK_TAB_UPDATETRIG[] =
211 {
212   0x20000000U,  /* 0: MASTER  */
213   0x01FF0000U,  /* 1: TIMER A */
214   0x01FF0000U,  /* 2: TIMER B */
215   0x01FF0000U,  /* 3: TIMER C */
216   0x01FF0000U,  /* 4: TIMER D */
217   0x01FF0000U,  /* 5: TIMER E */
218   0x01FF0000U,  /* 5: TIMER E */
219   0x01FF0000U   /* 6: TIMER F */
220 };
221 
222 static const uint8_t REG_SHIFT_TAB_UPDATETRIG[] =
223 {
224   12U, /* 0: MASTER  */
225   0U,  /* 1: TIMER A */
226   0U,  /* 2: TIMER B  */
227   0U,  /* 3: TIMER C */
228   0U,  /* 4: TIMER D  */
229   0U,  /* 5: TIMER E */
230   0U   /* 6: TIMER F */
231 };
232 
233 static const uint8_t REG_SHIFT_TAB_EExSRC[] =
234 {
235   0U,  /* LL_HRTIM_EVENT_1  */
236   6U,  /* LL_HRTIM_EVENT_2  */
237   12U, /* LL_HRTIM_EVENT_3  */
238   18U, /* LL_HRTIM_EVENT_4  */
239   24U, /* LL_HRTIM_EVENT_5  */
240   0U,  /* LL_HRTIM_EVENT_6  */
241   6U,  /* LL_HRTIM_EVENT_7  */
242   12U, /* LL_HRTIM_EVENT_8  */
243   18U, /* LL_HRTIM_EVENT_9  */
244   24U  /* LL_HRTIM_EVENT_10 */
245 };
246 
247 static const uint32_t REG_MASK_TAB_UPDATEGATING[] =
248 {
249   HRTIM_MCR_BRSTDMA,   /* 0: MASTER  */
250   HRTIM_TIMCR_UPDGAT,  /* 1: TIMER A */
251   HRTIM_TIMCR_UPDGAT,  /* 2: TIMER B  */
252   HRTIM_TIMCR_UPDGAT,  /* 3: TIMER C */
253   HRTIM_TIMCR_UPDGAT,  /* 4: TIMER D  */
254   HRTIM_TIMCR_UPDGAT,  /* 5: TIMER E */
255   HRTIM_TIMCR_UPDGAT   /* 6: TIMER F */
256 };
257 
258 static const uint8_t REG_SHIFT_TAB_UPDATEGATING[] =
259 {
260   2U, /* 0: MASTER  */
261   0U, /* 1: TIMER A */
262   0U, /* 2: TIMER B  */
263   0U, /* 3: TIMER C */
264   0U, /* 4: TIMER D  */
265   0U, /* 5: TIMER E */
266   0U  /* 6: TIMER F */
267 };
268 
269 static const uint8_t REG_SHIFT_TAB_OUTxR[] =
270 {
271   0U,  /* 0: TA1  */
272   16U, /* 1: TA2 */
273   0U,  /* 2: TB1  */
274   16U, /* 3: TB2 */
275   0U,  /* 4: TC1  */
276   16U, /* 5: TC2 */
277   0U,  /* 6: TD1  */
278   16U, /* 7: TD2 */
279   0U,  /* 8: TE1  */
280   16U, /* 9: TE2 */
281   0U,  /* 10: TF1  */
282   16U  /* 11: TF2 */
283 };
284 
285 static const uint8_t REG_SHIFT_TAB_OxSTAT[] =
286 {
287   0U,  /* 0: TA1  */
288   1U,  /* 1: TA2 */
289   0U,  /* 2: TB1  */
290   1U,  /* 3: TB2 */
291   0U,  /* 4: TC1  */
292   1U,  /* 5: TC2 */
293   0U,  /* 6: TD1  */
294   1U,  /* 7: TD2 */
295   0U,  /* 8: TE1  */
296   1U,  /* 9: TE2 */
297   0U,  /* 10: TF1  */
298   1U   /* 11: TF2 */
299 };
300 
301 static const uint8_t REG_SHIFT_TAB_FLTxE[] =
302 {
303   0U,   /* LL_HRTIM_FAULT_1 */
304   8U,   /* LL_HRTIM_FAULT_2 */
305   16U,  /* LL_HRTIM_FAULT_3 */
306   24U,  /* LL_HRTIM_FAULT_4 */
307   0U,   /* LL_HRTIM_FAULT_5 */
308   8U    /* LL_HRTIM_FAULT_6 */
309 };
310 
311 static const uint8_t REG_SHIFT_TAB_FLTxF[] =
312 {
313   0U,   /* LL_HRTIM_FAULT_1 */
314   8U,   /* LL_HRTIM_FAULT_2 */
315   16U,  /* LL_HRTIM_FAULT_3 */
316   24U,  /* LL_HRTIM_FAULT_4 */
317   32U,  /* LL_HRTIM_FAULT_5 */
318   40U   /* LL_HRTIM_FAULT_6 */
319 };
320 
321 static const uint8_t REG_SHIFT_TAB_FLTxCNT[] =
322 {
323   2U,   /* LL_HRTIM_FAULT_1 */
324   10U,  /* LL_HRTIM_FAULT_2 */
325   18U,  /* LL_HRTIM_FAULT_3 */
326   26U,  /* LL_HRTIM_FAULT_4 */
327   2U,   /* LL_HRTIM_FAULT_5 */
328   10U   /* LL_HRTIM_FAULT_6 */
329 };
330 
331 static const uint8_t REG_SHIFT_TAB_FLTx[] =
332 {
333   0,  /* LL_HRTIM_FAULT_1 */
334   1,  /* LL_HRTIM_FAULT_2 */
335   2,  /* LL_HRTIM_FAULT_3 */
336   3,  /* LL_HRTIM_FAULT_4 */
337   4,  /* LL_HRTIM_FAULT_5 */
338   5   /* LL_HRTIM_FAULT_6 */
339 };
340 
341 static const uint8_t REG_SHIFT_TAB_INTLVD[] =
342 {
343   0U,  /* 0: MASTER  */
344   1U,  /* 1: TIMER A */
345   1U,  /* 2: TIMER B */
346   1U,  /* 3: TIMER C */
347   1U,  /* 4: TIMER D */
348   1U,  /* 5: TIMER E */
349   1U,  /* 6: TIMER F */
350 };
351 
352 static const uint32_t REG_MASK_TAB_INTLVD[] =
353 {
354   0x000000E0U,  /* 0: MASTER  */
355   0x000001A0U,  /* 1: TIMER A */
356   0x000001A0U,  /* 2: TIMER B */
357   0x000001A0U,  /* 3: TIMER C */
358   0x000001A0U,  /* 4: TIMER D */
359   0x000001A0U,  /* 5: TIMER E */
360   0x000001A0U,  /* 6: TIMER F */
361 };
362 
363 static const uint8_t REG_SHIFT_TAB_CPT[] =
364 {
365   12U,  /* 1: TIMER A */
366   16U,  /* 2: TIMER B */
367   20U,  /* 3: TIMER C */
368   24U,  /* 4: TIMER D */
369   28U,  /* 5: TIMER E */
370   32U,  /* 6: TIMER F */
371 };
372 
373 static const uint32_t REG_MASK_TAB_CPT[] =
374 {
375   0xFFFF0000U,  /* 1: TIMER A */
376   0xFFF0F000U,  /* 2: TIMER B */
377   0xFF0FF000U,  /* 3: TIMER C */
378   0xF0FFF000U,  /* 4: TIMER D */
379   0x0FFFF000U,  /* 5: TIMER E */
380   0xFFFFF000U,  /* 6: TIMER F */
381 };
382 
383 /**
384   * @}
385   */
386 
387 
388 /* Private constants ---------------------------------------------------------*/
389 /** @defgroup HRTIM_LL_Private_Constants HRTIM Private Constants
390   * @{
391   */
392 #define HRTIM_CR1_UDIS_MASK   ((uint32_t)(HRTIM_CR1_MUDIS  |\
393                                           HRTIM_CR1_TAUDIS |\
394                                           HRTIM_CR1_TBUDIS |\
395                                           HRTIM_CR1_TCUDIS |\
396                                           HRTIM_CR1_TDUDIS |\
397                                           HRTIM_CR1_TEUDIS |\
398                                           HRTIM_CR1_TFUDIS))
399 
400 #define HRTIM_CR2_SWUPD_MASK   ((uint32_t)(HRTIM_CR2_MSWU |\
401                                            HRTIM_CR2_TASWU |\
402                                            HRTIM_CR2_TBSWU |\
403                                            HRTIM_CR2_TCSWU |\
404                                            HRTIM_CR2_TDSWU |\
405                                            HRTIM_CR2_TESWU |\
406                                            HRTIM_CR2_TFSWU))
407 
408 #define HRTIM_CR2_SWAP_MASK   ((uint32_t)(HRTIM_CR2_SWPA |\
409                                           HRTIM_CR2_SWPB |\
410                                           HRTIM_CR2_SWPC |\
411                                           HRTIM_CR2_SWPD |\
412                                           HRTIM_CR2_SWPE |\
413                                           HRTIM_CR2_SWPF))
414 
415 #define HRTIM_CR2_SWRST_MASK   ((uint32_t)(HRTIM_CR2_MRST |\
416                                            HRTIM_CR2_TARST |\
417                                            HRTIM_CR2_TBRST |\
418                                            HRTIM_CR2_TCRST |\
419                                            HRTIM_CR2_TDRST |\
420                                            HRTIM_CR2_TERST |\
421                                            HRTIM_CR2_TFRST))
422 
423 #define HRTIM_OENR_OEN_MASK   ((uint32_t)(HRTIM_OENR_TA1OEN |\
424                                           HRTIM_OENR_TA2OEN |\
425                                           HRTIM_OENR_TB1OEN |\
426                                           HRTIM_OENR_TB2OEN |\
427                                           HRTIM_OENR_TC1OEN |\
428                                           HRTIM_OENR_TC2OEN |\
429                                           HRTIM_OENR_TD1OEN |\
430                                           HRTIM_OENR_TD2OEN |\
431                                           HRTIM_OENR_TE1OEN |\
432                                           HRTIM_OENR_TE2OEN |\
433                                           HRTIM_OENR_TF1OEN |\
434                                           HRTIM_OENR_TF2OEN))
435 
436 #define HRTIM_OENR_ODIS_MASK  ((uint32_t)(HRTIM_ODISR_TA1ODIS  |\
437                                           HRTIM_ODISR_TA2ODIS  |\
438                                           HRTIM_ODISR_TB1ODIS  |\
439                                           HRTIM_ODISR_TB2ODIS  |\
440                                           HRTIM_ODISR_TC1ODIS  |\
441                                           HRTIM_ODISR_TC2ODIS  |\
442                                           HRTIM_ODISR_TD1ODIS  |\
443                                           HRTIM_ODISR_TD2ODIS  |\
444                                           HRTIM_ODISR_TE1ODIS  |\
445                                           HRTIM_ODISR_TE2ODIS  |\
446                                           HRTIM_ODISR_TF1ODIS  |\
447                                           HRTIM_ODISR_TF2ODIS))
448 
449 #define HRTIM_OUT_CONFIG_MASK  ((uint32_t)(HRTIM_OUTR_POL1   |\
450                                            HRTIM_OUTR_IDLM1  |\
451                                            HRTIM_OUTR_IDLES1 |\
452                                            HRTIM_OUTR_FAULT1 |\
453                                            HRTIM_OUTR_CHP1   |\
454                                            HRTIM_OUTR_DIDL1))
455 
456 #define HRTIM_EE_CONFIG_MASK   ((uint32_t)(HRTIM_EECR1_EE1SRC |\
457                                            HRTIM_EECR1_EE1POL |\
458                                            HRTIM_EECR1_EE1SNS |\
459                                            HRTIM_EECR1_EE1FAST))
460 
461 #define HRTIM_FLT_CONFIG_MASK   ((uint32_t)(HRTIM_FLTINR1_FLT1P |\
462                                             HRTIM_FLTINR1_FLT1SRC_0 ))
463 
464 #define HRTIM_FLT_SRC_1_MASK   ((uint32_t)(HRTIM_FLTINR2_FLT6SRC_1 |\
465                                            HRTIM_FLTINR2_FLT5SRC_1 |\
466                                            HRTIM_FLTINR2_FLT4SRC_1 |\
467                                            HRTIM_FLTINR2_FLT3SRC_1 |\
468                                            HRTIM_FLTINR2_FLT2SRC_1 |\
469                                            HRTIM_FLTINR2_FLT1SRC_1))
470 
471 #define HRTIM_BM_CONFIG_MASK   ((uint32_t)( HRTIM_BMCR_BMPRSC |\
472                                             HRTIM_BMCR_BMCLK  |\
473                                             HRTIM_BMCR_BMOM))
474 
475 /**
476   * @}
477   */
478 
479 
480 /* Private macros ------------------------------------------------------------*/
481 /* Exported types ------------------------------------------------------------*/
482 /* Exported constants --------------------------------------------------------*/
483 /** @defgroup HRTIM_LL_Exported_Constants HRTIM Exported Constants
484   * @{
485   */
486 
487 /** @defgroup HRTIM_LL_EC_GET_FLAG Get Flags Defines
488   * @brief    Flags defines which can be used with LL_HRTIM_ReadReg function
489   * @{
490   */
491 #define LL_HRTIM_ISR_FLT1                  HRTIM_ISR_FLT1
492 #define LL_HRTIM_ISR_FLT2                  HRTIM_ISR_FLT2
493 #define LL_HRTIM_ISR_FLT3                  HRTIM_ISR_FLT3
494 #define LL_HRTIM_ISR_FLT4                  HRTIM_ISR_FLT4
495 #define LL_HRTIM_ISR_FLT5                  HRTIM_ISR_FLT5
496 #define LL_HRTIM_ISR_FLT6                  HRTIM_ISR_FLT6
497 #define LL_HRTIM_ISR_SYSFLT                HRTIM_ISR_SYSFLT
498 #define LL_HRTIM_ISR_DLLRDY                HRTIM_ISR_DLLRDY
499 #define LL_HRTIM_ISR_BMPER                 HRTIM_ISR_BMPER
500 
501 #define LL_HRTIM_MISR_MCMP1                HRTIM_MISR_MCMP1
502 #define LL_HRTIM_MISR_MCMP2                HRTIM_MISR_MCMP2
503 #define LL_HRTIM_MISR_MCMP3                HRTIM_MISR_MCMP3
504 #define LL_HRTIM_MISR_MCMP4                HRTIM_MISR_MCMP4
505 #define LL_HRTIM_MISR_MREP                 HRTIM_MISR_MREP
506 #define LL_HRTIM_MISR_SYNC                 HRTIM_MISR_SYNC
507 #define LL_HRTIM_MISR_MUPD                 HRTIM_MISR_MUPD
508 
509 #define LL_HRTIM_TIMISR_CMP1               HRTIM_TIMISR_CMP1
510 #define LL_HRTIM_TIMISR_CMP2               HRTIM_TIMISR_CMP2
511 #define LL_HRTIM_TIMISR_CMP3               HRTIM_TIMISR_CMP3
512 #define LL_HRTIM_TIMISR_CMP4               HRTIM_TIMISR_CMP4
513 #define LL_HRTIM_TIMISR_REP                HRTIM_TIMISR_REP
514 #define LL_HRTIM_TIMISR_UPD                HRTIM_TIMISR_UPD
515 #define LL_HRTIM_TIMISR_CPT1               HRTIM_TIMISR_CPT1
516 #define LL_HRTIM_TIMISR_CPT2               HRTIM_TIMISR_CPT2
517 #define LL_HRTIM_TIMISR_SET1               HRTIM_TIMISR_SET1
518 #define LL_HRTIM_TIMISR_RST1               HRTIM_TIMISR_RST1
519 #define LL_HRTIM_TIMISR_SET2               HRTIM_TIMISR_SET2
520 #define LL_HRTIM_TIMISR_RST2               HRTIM_TIMISR_RST2
521 #define LL_HRTIM_TIMISR_RST                HRTIM_TIMISR_RST
522 #define LL_HRTIM_TIMISR_DLYPRT             HRTIM_TIMISR_DLYPRT
523 /**
524   * @}
525   */
526 
527 /** @defgroup HRTIM_LL_EC_IT IT Defines
528   * @brief    IT defines which can be used with LL_HRTIM_ReadReg and LL_HRTIM_WriteReg functions
529   * @{
530   */
531 #define LL_HRTIM_IER_FLT1IE                HRTIM_IER_FLT1IE
532 #define LL_HRTIM_IER_FLT2IE                HRTIM_IER_FLT2IE
533 #define LL_HRTIM_IER_FLT3IE                HRTIM_IER_FLT3IE
534 #define LL_HRTIM_IER_FLT4IE                HRTIM_IER_FLT4IE
535 #define LL_HRTIM_IER_FLT5IE                HRTIM_IER_FLT5IE
536 #define LL_HRTIM_IER_FLT6IE                HRTIM_IER_FLT6IE
537 #define LL_HRTIM_IER_SYSFLTIE              HRTIM_IER_SYSFLTIE
538 #define LL_HRTIM_IER_DLLRDYIE              HRTIM_IER_DLLRDYIE
539 #define LL_HRTIM_IER_BMPERIE               HRTIM_IER_BMPERIE
540 
541 #define LL_HRTIM_MDIER_MCMP1IE             HRTIM_MDIER_MCMP1IE
542 #define LL_HRTIM_MDIER_MCMP2IE             HRTIM_MDIER_MCMP2IE
543 #define LL_HRTIM_MDIER_MCMP3IE             HRTIM_MDIER_MCMP3IE
544 #define LL_HRTIM_MDIER_MCMP4IE             HRTIM_MDIER_MCMP4IE
545 #define LL_HRTIM_MDIER_MREPIE              HRTIM_MDIER_MREPIE
546 #define LL_HRTIM_MDIER_SYNCIE              HRTIM_MDIER_SYNCIE
547 #define LL_HRTIM_MDIER_MUPDIE              HRTIM_MDIER_MUPDIE
548 
549 #define LL_HRTIM_TIMDIER_CMP1IE            HRTIM_TIMDIER_CMP1IE
550 #define LL_HRTIM_TIMDIER_CMP2IE            HRTIM_TIMDIER_CMP2IE
551 #define LL_HRTIM_TIMDIER_CMP3IE            HRTIM_TIMDIER_CMP3IE
552 #define LL_HRTIM_TIMDIER_CMP4IE            HRTIM_TIMDIER_CMP4IE
553 #define LL_HRTIM_TIMDIER_REPIE             HRTIM_TIMDIER_REPIE
554 #define LL_HRTIM_TIMDIER_UPDIE             HRTIM_TIMDIER_UPDIE
555 #define LL_HRTIM_TIMDIER_CPT1IE            HRTIM_TIMDIER_CPT1IE
556 #define LL_HRTIM_TIMDIER_CPT2IE            HRTIM_TIMDIER_CPT2IE
557 #define LL_HRTIM_TIMDIER_SET1IE            HRTIM_TIMDIER_SET1IE
558 #define LL_HRTIM_TIMDIER_RST1IE            HRTIM_TIMDIER_RST1IE
559 #define LL_HRTIM_TIMDIER_SET2IE            HRTIM_TIMDIER_SET2IE
560 #define LL_HRTIM_TIMDIER_RST2IE            HRTIM_TIMDIER_RST2IE
561 #define LL_HRTIM_TIMDIER_RSTIE             HRTIM_TIMDIER_RSTIE
562 #define LL_HRTIM_TIMDIER_DLYPRTIE          HRTIM_TIMDIER_DLYPRTIE
563 /**
564   * @}
565   */
566 
567 /** @defgroup HRTIM_LL_EC_SYNCIN_SRC  SYNCHRONIZATION INPUT SOURCE
568   * @{
569   * @brief Constants defining defining the synchronization input source.
570   */
571 #define LL_HRTIM_SYNCIN_SRC_NONE            0x00000000U                      /*!< HRTIM is not synchronized and runs in standalone mode */
572 #define LL_HRTIM_SYNCIN_SRC_TIM_EVENT       (HRTIM_MCR_SYNC_IN_1)                        /*!< The HRTIM is synchronized with the on-chip timer */
573 #define LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT  (HRTIM_MCR_SYNC_IN_1 | HRTIM_MCR_SYNC_IN_0)  /*!< A positive pulse on SYNCIN input triggers the HRTIM */
574 /**
575   * @}
576   */
577 
578 /** @defgroup HRTIM_LL_EC_SYNCOUT_SRC  SYNCHRONIZATION OUTPUT SOURCE
579   * @{
580   * @brief Constants defining the source and event to be sent on the synchronization output.
581   */
582 #define LL_HRTIM_SYNCOUT_SRC_MASTER_START  0x00000000U                                    /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer start event      */
583 #define LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1   (HRTIM_MCR_SYNC_SRC_0)                         /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer compare 1 event  */
584 #define LL_HRTIM_SYNCOUT_SRC_TIMA_START    (HRTIM_MCR_SYNC_SRC_1)                         /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A start or reset events */
585 #define LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1     (HRTIM_MCR_SYNC_SRC_1 | HRTIM_MCR_SYNC_SRC_0)  /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A compare 1 event       */
586 /**
587   * @}
588   */
589 
590 /** @defgroup HRTIM_LL_EC_SYNCOUT_POLARITY  SYNCHRONIZATION OUTPUT POLARITY
591   * @{
592   * @brief Constants defining the routing and conditioning of the synchronization output event.
593   */
594 #define LL_HRTIM_SYNCOUT_DISABLED     0x00000000U                         /*!< Synchronization output event is disabled */
595 #define LL_HRTIM_SYNCOUT_POSITIVE_PULSE (HRTIM_MCR_SYNC_OUT_1)                        /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRTIM clock cycles length for the synchronization */
596 #define LL_HRTIM_SYNCOUT_NEGATIVE_PULSE (HRTIM_MCR_SYNC_OUT_1 | HRTIM_MCR_SYNC_OUT_0) /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRTIM clock cycles length for the synchronization */
597 /**
598   * @}
599   */
600 
601 /** @defgroup HRTIM_LL_EC_TIMER  TIMER ID
602   * @{
603   * @brief Constants identifying a timing unit.
604   */
605 #define LL_HRTIM_TIMER_NONE                0U   /*!< Master timer identifier */
606 #define LL_HRTIM_TIMER_MASTER              HRTIM_MCR_MCEN   /*!< Master timer identifier */
607 #define LL_HRTIM_TIMER_A                   HRTIM_MCR_TACEN  /*!< Timer A identifier */
608 #define LL_HRTIM_TIMER_B                   HRTIM_MCR_TBCEN  /*!< Timer B identifier */
609 #define LL_HRTIM_TIMER_C                   HRTIM_MCR_TCCEN  /*!< Timer C identifier */
610 #define LL_HRTIM_TIMER_D                   HRTIM_MCR_TDCEN  /*!< Timer D identifier */
611 #define LL_HRTIM_TIMER_E                   HRTIM_MCR_TECEN  /*!< Timer E identifier */
612 #define LL_HRTIM_TIMER_F                   HRTIM_MCR_TFCEN  /*!< Timer F identifier */
613 
614 #define LL_HRTIM_TIMER_X                  (HRTIM_MCR_TFCEN | HRTIM_MCR_TACEN |\
615                                            HRTIM_MCR_TBCEN | HRTIM_MCR_TCCEN |\
616                                            HRTIM_MCR_TDCEN | HRTIM_MCR_TECEN )
617 #define LL_HRTIM_TIMER_ALL                (LL_HRTIM_TIMER_MASTER | LL_HRTIM_TIMER_X)
618 
619 /**
620   * @}
621   */
622 
623 /** @defgroup HRTIM_LL_EC_OUTPUT  OUTPUT ID
624   * @{
625   * @brief Constants identifying an HRTIM output.
626   */
627 #define LL_HRTIM_OUTPUT_TA1                HRTIM_OENR_TA1OEN  /*!< Timer A - Output 1 identifier */
628 #define LL_HRTIM_OUTPUT_TA2                HRTIM_OENR_TA2OEN  /*!< Timer A - Output 2 identifier */
629 #define LL_HRTIM_OUTPUT_TB1                HRTIM_OENR_TB1OEN  /*!< Timer B - Output 1 identifier */
630 #define LL_HRTIM_OUTPUT_TB2                HRTIM_OENR_TB2OEN  /*!< Timer B - Output 2 identifier */
631 #define LL_HRTIM_OUTPUT_TC1                HRTIM_OENR_TC1OEN  /*!< Timer C - Output 1 identifier */
632 #define LL_HRTIM_OUTPUT_TC2                HRTIM_OENR_TC2OEN  /*!< Timer C - Output 2 identifier */
633 #define LL_HRTIM_OUTPUT_TD1                HRTIM_OENR_TD1OEN  /*!< Timer D - Output 1 identifier */
634 #define LL_HRTIM_OUTPUT_TD2                HRTIM_OENR_TD2OEN  /*!< Timer D - Output 2 identifier */
635 #define LL_HRTIM_OUTPUT_TE1                HRTIM_OENR_TE1OEN  /*!< Timer E - Output 1 identifier */
636 #define LL_HRTIM_OUTPUT_TE2                HRTIM_OENR_TE2OEN  /*!< Timer E - Output 2 identifier */
637 #define LL_HRTIM_OUTPUT_TF1                HRTIM_OENR_TF1OEN  /*!< Timer F - Output 1 identifier */
638 #define LL_HRTIM_OUTPUT_TF2                HRTIM_OENR_TF2OEN  /*!< Timer F - Output 2 identifier */
639 /**
640   * @}
641   */
642 
643 /** @defgroup HRTIM_LL_EC_COMPAREUNIT  COMPARE UNIT ID
644   * @{
645   * @brief Constants identifying a compare unit.
646   */
647 #define LL_HRTIM_COMPAREUNIT_2             HRTIM_TIMCR_DELCMP2  /*!< Compare unit 2 identifier */
648 #define LL_HRTIM_COMPAREUNIT_4             HRTIM_TIMCR_DELCMP4  /*!< Compare unit 4 identifier */
649 /**
650   * @}
651   */
652 
653 /** @defgroup HRTIM_LL_EC_CAPTUREUNIT  CAPTURE UNIT ID
654   * @{
655   * @brief Constants identifying a capture unit.
656   */
657 #define LL_HRTIM_CAPTUREUNIT_1             0  /*!< Capture unit 1 identifier */
658 #define LL_HRTIM_CAPTUREUNIT_2             1  /*!< Capture unit 2 identifier */
659 /**
660   * @}
661   */
662 
663 /** @defgroup HRTIM_LL_EC_FAULT  FAULT ID
664   * @{
665   * @brief Constants identifying a fault channel.
666   */
667 #define LL_HRTIM_FAULT_1      HRTIM_FLTR_FLT1EN     /*!< Fault channel 1 identifier */
668 #define LL_HRTIM_FAULT_2      HRTIM_FLTR_FLT2EN     /*!< Fault channel 2 identifier */
669 #define LL_HRTIM_FAULT_3      HRTIM_FLTR_FLT3EN     /*!< Fault channel 3 identifier */
670 #define LL_HRTIM_FAULT_4      HRTIM_FLTR_FLT4EN     /*!< Fault channel 4 identifier */
671 #define LL_HRTIM_FAULT_5      HRTIM_FLTR_FLT5EN     /*!< Fault channel 5 identifier */
672 #define LL_HRTIM_FAULT_6      HRTIM_FLTR_FLT6EN     /*!< Fault channel 6 identifier */
673 /**
674   * @}
675   */
676 
677 /** @defgroup HRTIM_LL_EC_EVENT  EXTERNAL EVENT ID
678   * @{
679   * @brief Constants identifying an external event channel.
680   */
681 #define LL_HRTIM_EVENT_1        ((uint32_t)0x00000001U)     /*!< External event channel 1 identifier */
682 #define LL_HRTIM_EVENT_2        ((uint32_t)0x00000002U)     /*!< External event channel 2 identifier */
683 #define LL_HRTIM_EVENT_3        ((uint32_t)0x00000004U)     /*!< External event channel 3 identifier */
684 #define LL_HRTIM_EVENT_4        ((uint32_t)0x00000008U)     /*!< External event channel 4 identifier */
685 #define LL_HRTIM_EVENT_5        ((uint32_t)0x00000010U)     /*!< External event channel 5 identifier */
686 #define LL_HRTIM_EVENT_6        ((uint32_t)0x00000020U)     /*!< External event channel 6 identifier */
687 #define LL_HRTIM_EVENT_7        ((uint32_t)0x00000040U)     /*!< External event channel 7 identifier */
688 #define LL_HRTIM_EVENT_8        ((uint32_t)0x00000080U)     /*!< External event channel 8 identifier */
689 #define LL_HRTIM_EVENT_9        ((uint32_t)0x00000100U)     /*!< External event channel 9 identifier */
690 #define LL_HRTIM_EVENT_10       ((uint32_t)0x00000200U)     /*!< External event channel 10 identifier */
691 /**
692   * @}
693   */
694 
695 /** @defgroup HRTIM_LL_EC_OUTPUTSTATE  OUTPUT STATE
696   * @{
697   * @brief Constants defining the state of an HRTIM output.
698   */
699 #define LL_HRTIM_OUTPUTSTATE_IDLE          ((uint32_t)0x00000001U) /*!< Main operating mode, where the output can take the active or inactive level as programmed in the crossbar unit */
700 #define LL_HRTIM_OUTPUTSTATE_RUN           ((uint32_t)0x00000002U) /*!< Default operating state (e.g. after an HRTIM reset, when the outputs are disabled by software or during a burst mode operation) */
701 #define LL_HRTIM_OUTPUTSTATE_FAULT         ((uint32_t)0x00000003U) /*!< Safety state, entered in case of a shut-down request on FAULTx inputs */
702 /**
703   * @}
704   */
705 
706 /** @defgroup HRTIM_LL_EC_ADCTRIG  ADC TRIGGER
707   * @{
708   * @brief Constants identifying an ADC trigger.
709   */
710 #define LL_HRTIM_ADCTRIG_1              ((uint32_t)0x00000000U) /*!< ADC trigger 1 identifier */
711 #define LL_HRTIM_ADCTRIG_2              ((uint32_t)0x00000001U)  /*!< ADC trigger 2 identifier */
712 #define LL_HRTIM_ADCTRIG_3              ((uint32_t)0x00000002U)  /*!< ADC trigger 3 identifier */
713 #define LL_HRTIM_ADCTRIG_4              ((uint32_t)0x00000003U)  /*!< ADC trigger 4 identifier */
714 #define LL_HRTIM_ADCTRIG_5              ((uint32_t)0x00000004U)  /*!< ADC trigger 5 identifier */
715 #define LL_HRTIM_ADCTRIG_6              ((uint32_t)0x00000005U)  /*!< ADC trigger 6 identifier */
716 #define LL_HRTIM_ADCTRIG_7              ((uint32_t)0x00000006U)  /*!< ADC trigger 7 identifier */
717 #define LL_HRTIM_ADCTRIG_8              ((uint32_t)0x00000007U)  /*!< ADC trigger 8 identifier */
718 #define LL_HRTIM_ADCTRIG_9              ((uint32_t)0x00000008U)  /*!< ADC trigger 9 identifier */
719 #define LL_HRTIM_ADCTRIG_10             ((uint32_t)0x00000009U)  /*!< ADC trigger 10 identifier */
720 /**
721   * @}
722   */
723 
724 /** @defgroup HRTIM_LL_EC_ADCTRIG_UPDATE ADC TRIGGER UPDATE
725   * @{
726   * @brief constants defining the source triggering the update of the HRTIM_ADCxR register (transfer from preload to active register).
727   */
728 #define LL_HRTIM_ADCTRIG_UPDATE_MASTER  0x00000000U  /*!< HRTIM_ADCxR register update is triggered by the Master timer */
729 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_A 0x00000001U  /*!< HRTIM_ADCxR register update is triggered by the Timer A */
730 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_B 0x00000002U  /*!< HRTIM_ADCxR register update is triggered by the Timer B */
731 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_C 0x00000003U  /*!< HRTIM_ADCxR register update is triggered by the Timer C */
732 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_D 0x00000004U  /*!< HRTIM_ADCxR register update is triggered by the Timer D */
733 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_E 0x00000005U  /*!< HRTIM_ADCxR register update is triggered by the Timer E */
734 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_F 0x00000006U  /*!< HRTIM_ADCxR register update is triggered by the Timer F */
735 /**
736   * @}
737   */
738 
739 /** @defgroup HRTIM_LL_EC_ADCTRIG_SRC13  ADC TRIGGER 1/3 SOURCE
740   * @{
741   * @brief constants defining the events triggering ADC conversion for ADC Triggers 1 and 3.
742   */
743 #define LL_HRTIM_ADCTRIG_SRC13_NONE           0x00000000U              /*!< No ADC trigger event */
744 #define LL_HRTIM_ADCTRIG_SRC13_MCMP1          HRTIM_ADC1R_AD1MC1       /*!< ADC Trigger on master compare 1 */
745 #define LL_HRTIM_ADCTRIG_SRC13_MCMP2          HRTIM_ADC1R_AD1MC2       /*!< ADC Trigger on master compare 2 */
746 #define LL_HRTIM_ADCTRIG_SRC13_MCMP3          HRTIM_ADC1R_AD1MC3       /*!< ADC Trigger on master compare 3 */
747 #define LL_HRTIM_ADCTRIG_SRC13_MCMP4          HRTIM_ADC1R_AD1MC4       /*!< ADC Trigger on master compare 4 */
748 #define LL_HRTIM_ADCTRIG_SRC13_MPER           HRTIM_ADC1R_AD1MPER      /*!< ADC Trigger on master period */
749 #define LL_HRTIM_ADCTRIG_SRC13_EEV1           HRTIM_ADC1R_AD1EEV1      /*!< ADC Trigger on external event 1 */
750 #define LL_HRTIM_ADCTRIG_SRC13_EEV2           HRTIM_ADC1R_AD1EEV2      /*!< ADC Trigger on external event 2 */
751 #define LL_HRTIM_ADCTRIG_SRC13_EEV3           HRTIM_ADC1R_AD1EEV3      /*!< ADC Trigger on external event 3 */
752 #define LL_HRTIM_ADCTRIG_SRC13_EEV4           HRTIM_ADC1R_AD1EEV4      /*!< ADC Trigger on external event 4 */
753 #define LL_HRTIM_ADCTRIG_SRC13_EEV5           HRTIM_ADC1R_AD1EEV5      /*!< ADC Trigger on external event 5 */
754 #define LL_HRTIM_ADCTRIG_SRC13_TIMFCMP2       HRTIM_ADC1R_AD1TFC2      /*!< ADC Trigger on Timer F compare 2 */
755 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP3       HRTIM_ADC1R_AD1TAC3      /*!< ADC Trigger on Timer A compare 3 */
756 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP4       HRTIM_ADC1R_AD1TAC4      /*!< ADC Trigger on Timer A compare 4 */
757 #define LL_HRTIM_ADCTRIG_SRC13_TIMAPER        HRTIM_ADC1R_AD1TAPER     /*!< ADC Trigger on Timer A period */
758 #define LL_HRTIM_ADCTRIG_SRC13_TIMARST        HRTIM_ADC1R_AD1TARST     /*!< ADC Trigger on Timer A reset */
759 #define LL_HRTIM_ADCTRIG_SRC13_TIMFCMP3       HRTIM_ADC1R_AD1TFC3      /*!< ADC Trigger on Timer F compare 3 */
760 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3       HRTIM_ADC1R_AD1TBC3      /*!< ADC Trigger on Timer B compare 3 */
761 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4       HRTIM_ADC1R_AD1TBC4      /*!< ADC Trigger on Timer B compare 4 */
762 #define LL_HRTIM_ADCTRIG_SRC13_TIMBPER        HRTIM_ADC1R_AD1TBPER     /*!< ADC Trigger on Timer B period */
763 #define LL_HRTIM_ADCTRIG_SRC13_TIMBRST        HRTIM_ADC1R_AD1TBRST     /*!< ADC Trigger on Timer B reset */
764 #define LL_HRTIM_ADCTRIG_SRC13_TIMFCMP4       HRTIM_ADC1R_AD1TFC4      /*!< ADC Trigger on Timer F compare 4 */
765 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3       HRTIM_ADC1R_AD1TCC3      /*!< ADC Trigger on Timer C compare 3 */
766 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4       HRTIM_ADC1R_AD1TCC4      /*!< ADC Trigger on Timer C compare 4 */
767 #define LL_HRTIM_ADCTRIG_SRC13_TIMCPER        HRTIM_ADC1R_AD1TCPER     /*!< ADC Trigger on Timer C period */
768 #define LL_HRTIM_ADCTRIG_SRC13_TIMFPER        HRTIM_ADC1R_AD1TFPER     /*!< ADC Trigger on Timer F period */
769 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3       HRTIM_ADC1R_AD1TDC3      /*!< ADC Trigger on Timer D compare 3 */
770 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4       HRTIM_ADC1R_AD1TDC4      /*!< ADC Trigger on Timer D compare 4 */
771 #define LL_HRTIM_ADCTRIG_SRC13_TIMDPER        HRTIM_ADC1R_AD1TDPER     /*!< ADC Trigger on Timer D period */
772 #define LL_HRTIM_ADCTRIG_SRC13_TIMFRST        HRTIM_ADC1R_AD1TFRST     /*!< ADC Trigger on Timer F reset */
773 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP3       HRTIM_ADC1R_AD1TEC3      /*!< ADC Trigger on Timer E compare 3 */
774 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP4       HRTIM_ADC1R_AD1TEC4      /*!< ADC Trigger on Timer E compare 4 */
775 #define LL_HRTIM_ADCTRIG_SRC13_TIMEPER        HRTIM_ADC1R_AD1TEPER     /*!< ADC Trigger on Timer E period */
776 /**
777   * @}
778   */
779 
780 /** @defgroup HRTIM_LL_EC_ADCTRIG_SRC24  ADC TRIGGER 2/4 SOURCE
781   * @{
782   * @brief constants defining the events triggering ADC conversion for ADC Triggers 2 and 4.
783   */
784 #define LL_HRTIM_ADCTRIG_SRC24_NONE           0x00000000U            /*!< No ADC trigger event */
785 #define LL_HRTIM_ADCTRIG_SRC24_MCMP1          HRTIM_ADC2R_AD2MC1     /*!< ADC Trigger on master compare 1 */
786 #define LL_HRTIM_ADCTRIG_SRC24_MCMP2          HRTIM_ADC2R_AD2MC2     /*!< ADC Trigger on master compare 2 */
787 #define LL_HRTIM_ADCTRIG_SRC24_MCMP3          HRTIM_ADC2R_AD2MC3     /*!< ADC Trigger on master compare 3 */
788 #define LL_HRTIM_ADCTRIG_SRC24_MCMP4          HRTIM_ADC2R_AD2MC4     /*!< ADC Trigger on master compare 4 */
789 #define LL_HRTIM_ADCTRIG_SRC24_MPER           HRTIM_ADC2R_AD2MPER    /*!< ADC Trigger on master period */
790 #define LL_HRTIM_ADCTRIG_SRC24_EEV6           HRTIM_ADC2R_AD2EEV6    /*!< ADC Trigger on external event 6 */
791 #define LL_HRTIM_ADCTRIG_SRC24_EEV7           HRTIM_ADC2R_AD2EEV7    /*!< ADC Trigger on external event 7 */
792 #define LL_HRTIM_ADCTRIG_SRC24_EEV8           HRTIM_ADC2R_AD2EEV8    /*!< ADC Trigger on external event 8 */
793 #define LL_HRTIM_ADCTRIG_SRC24_EEV9           HRTIM_ADC2R_AD2EEV9    /*!< ADC Trigger on external event 9 */
794 #define LL_HRTIM_ADCTRIG_SRC24_EEV10          HRTIM_ADC2R_AD2EEV10   /*!< ADC Trigger on external event 10 */
795 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP2       HRTIM_ADC2R_AD2TAC2    /*!< ADC Trigger on Timer A compare 2 */
796 #define LL_HRTIM_ADCTRIG_SRC24_TIMFCMP2       HRTIM_ADC2R_AD2TFC2    /*!< ADC Trigger on Timer F compare 2 */
797 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP4       HRTIM_ADC2R_AD2TAC4    /*!< ADC Trigger on Timer A compare 4 */
798 #define LL_HRTIM_ADCTRIG_SRC24_TIMAPER        HRTIM_ADC2R_AD2TAPER   /*!< ADC Trigger on Timer A period */
799 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2       HRTIM_ADC2R_AD2TBC2    /*!< ADC Trigger on Timer B compare 2 */
800 #define LL_HRTIM_ADCTRIG_SRC24_TIMFCMP3       HRTIM_ADC2R_AD2TFC3    /*!< ADC Trigger on Timer F compare 3 */
801 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4       HRTIM_ADC2R_AD2TBC4    /*!< ADC Trigger on Timer B compare 4 */
802 #define LL_HRTIM_ADCTRIG_SRC24_TIMBPER        HRTIM_ADC2R_AD2TBPER   /*!< ADC Trigger on Timer B period */
803 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2       HRTIM_ADC2R_AD2TCC2    /*!< ADC Trigger on Timer C compare 2 */
804 #define LL_HRTIM_ADCTRIG_SRC24_TIMFCMP4       HRTIM_ADC2R_AD2TFC4    /*!< ADC Trigger on Timer F compare 4 */
805 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4       HRTIM_ADC2R_AD2TCC4    /*!< ADC Trigger on Timer C compare 4 */
806 #define LL_HRTIM_ADCTRIG_SRC24_TIMCPER        HRTIM_ADC2R_AD2TCPER   /*!< ADC Trigger on Timer C period */
807 #define LL_HRTIM_ADCTRIG_SRC24_TIMCRST        HRTIM_ADC2R_AD2TCRST   /*!< ADC Trigger on Timer C reset */
808 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2       HRTIM_ADC2R_AD2TDC2    /*!< ADC Trigger on Timer D compare 2 */
809 #define LL_HRTIM_ADCTRIG_SRC24_TIMFPER        HRTIM_ADC2R_AD2TFPER   /*!< ADC Trigger on Timer F period */
810 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4       HRTIM_ADC2R_AD2TDC4    /*!< ADC Trigger on Timer D compare 4 */
811 #define LL_HRTIM_ADCTRIG_SRC24_TIMDPER        HRTIM_ADC2R_AD2TDPER   /*!< ADC Trigger on Timer D period */
812 #define LL_HRTIM_ADCTRIG_SRC24_TIMDRST        HRTIM_ADC2R_AD2TDRST   /*!< ADC Trigger on Timer D reset */
813 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP2       HRTIM_ADC2R_AD2TEC2    /*!< ADC Trigger on Timer E compare 2 */
814 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP3       HRTIM_ADC2R_AD2TEC3    /*!< ADC Trigger on Timer E compare 3 */
815 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP4       HRTIM_ADC2R_AD2TEC4    /*!< ADC Trigger on Timer E compare 4 */
816 #define LL_HRTIM_ADCTRIG_SRC24_TIMERST        HRTIM_ADC2R_AD2TERST   /*!< ADC Trigger on Timer E reset */
817 /**
818   * @}
819   */
820 
821 /** @defgroup HRTIM_ADC_TRIG HRTIM ADC TRIGGER SELECTION
822   * @{
823   * @brief Constants defining the selection that can be used as ADC trigger source for extended ADC 6, 8 ,10.
824   */
825 #define LL_HRTIM_ADCTRIG_SRC6810_MCMP1        (uint32_t)0x00                        /*!<  ADC extended Trigger on Master Compare 1 */
826 #define LL_HRTIM_ADCTRIG_SRC6810_MCMP2        (uint32_t)0x01                        /*!<  ADC extended Trigger on Master Compare 2 */
827 #define LL_HRTIM_ADCTRIG_SRC6810_MCMP3        (uint32_t)0x02                        /*!<  ADC extended Trigger on Master Compare 3 */
828 #define LL_HRTIM_ADCTRIG_SRC6810_MCMP4        (uint32_t)0x03                        /*!<  ADC extended Trigger on Master Compare 4 */
829 #define LL_HRTIM_ADCTRIG_SRC6810_MPER         (uint32_t)0x04                        /*!<  ADC extended Trigger on Master Period */
830 #define LL_HRTIM_ADCTRIG_SRC6810_EEV6         (uint32_t)0x05                        /*!<  ADC extended Trigger on External Event 6 */
831 #define LL_HRTIM_ADCTRIG_SRC6810_EEV7         (uint32_t)0x06                        /*!<  ADC extended Trigger on External Event 7 */
832 #define LL_HRTIM_ADCTRIG_SRC6810_EEV8         (uint32_t)0x07                        /*!<  ADC extended Trigger on External Event 8 */
833 #define LL_HRTIM_ADCTRIG_SRC6810_EEV9         (uint32_t)0x08                        /*!<  ADC extended Trigger on External Event 9 */
834 #define LL_HRTIM_ADCTRIG_SRC6810_EEV10        (uint32_t)0x09                        /*!<  ADC extended Trigger on External Event 10 */
835 #define LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP2    (uint32_t)0x0A                        /*!<  ADC extended Trigger on Timer A Compare 2 */
836 #define LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP4    (uint32_t)0x0B                        /*!<  ADC extended Trigger on Timer A Compare 4 */
837 #define LL_HRTIM_ADCTRIG_SRC6810_TIMA_PER     (uint32_t)0x0C                        /*!<  ADC extended Trigger on Timer A Period */
838 #define LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP2    (uint32_t)0x0D                        /*!<  ADC extended Trigger on Timer B Compare 2 */
839 #define LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP4    (uint32_t)0x0E                        /*!<  ADC extended Trigger on Timer B Compare 4 */
840 #define LL_HRTIM_ADCTRIG_SRC6810_TIMB_PER     (uint32_t)0x0F                        /*!<  ADC extended Trigger on Timer B Period */
841 #define LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP2    (uint32_t)0x10                        /*!<  ADC extended Trigger on Timer C Compare 2 */
842 #define LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP4    (uint32_t)0x11                        /*!<  ADC extended Trigger on Timer C Compare 4 */
843 #define LL_HRTIM_ADCTRIG_SRC6810_TIMC_PER     (uint32_t)0x12                        /*!<  ADC extended Trigger on Timer C Period */
844 #define LL_HRTIM_ADCTRIG_SRC6810_TIMC_RST     (uint32_t)0x13                        /*!<  ADC extended Trigger on Timer C Reset and counter roll-over */
845 #define LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP2    (uint32_t)0x14                        /*!<  ADC extended Trigger on Timer D Compare 2 */
846 #define LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP4    (uint32_t)0x15                        /*!<  ADC extended Trigger on Timer D Compare 4 */
847 #define LL_HRTIM_ADCTRIG_SRC6810_TIMD_PER     (uint32_t)0x16                        /*!<  ADC extended Trigger on Timer D Period */
848 #define LL_HRTIM_ADCTRIG_SRC6810_TIMD_RST     (uint32_t)0x17                        /*!<  ADC extended Trigger on Timer D Reset and counter roll-over */
849 #define LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP2    (uint32_t)0x18                        /*!<  ADC extended Trigger on Timer E Compare 2 */
850 #define LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP3    (uint32_t)0x19                        /*!<  ADC extended Trigger on Timer E Compare 3 */
851 #define LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP4    (uint32_t)0x1A                        /*!<  ADC extended Trigger on Timer E Compare 4 */
852 #define LL_HRTIM_ADCTRIG_SRC6810_TIME_RST     (uint32_t)0x1B                        /*!<  ADC extended Trigger on Timer E Reset and counter roll-over */
853 #define LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP2    (uint32_t)0x1C                        /*!<  ADC extended Trigger on Timer F Compare 2 */
854 #define LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP3    (uint32_t)0x1D                        /*!<  ADC extended Trigger on Timer F Compare 3 */
855 #define LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP4    (uint32_t)0x1E                        /*!<  ADC extended Trigger on Timer F Compare 4 */
856 #define LL_HRTIM_ADCTRIG_SRC6810_TIMF_PER     (uint32_t)0x1F                        /*!<  ADC extended Trigger on Timer F Period */
857 /**
858   * @}
859   */
860 
861 /** @defgroup HRTIM_ADC_TRIG HRTIM ADC TRIGGER SELECTION
862   * @{
863   * @brief Constants defining the selection that can be used as ADC trigger source for extended ADC 5, 7 ,9.
864   */
865 #define LL_HRTIM_ADCTRIG_SRC579_MCMP1           (uint32_t)0x00                        /*!<  ADC extended Trigger on Master Compare 1 */
866 #define LL_HRTIM_ADCTRIG_SRC579_MCMP2           (uint32_t)0x01                        /*!<  ADC extended Trigger on Master Compare 2 */
867 #define LL_HRTIM_ADCTRIG_SRC579_MCMP3           (uint32_t)0x02                        /*!<  ADC extended Trigger on Master Compare 3 */
868 #define LL_HRTIM_ADCTRIG_SRC579_MCMP4           (uint32_t)0x03                        /*!<  ADC extended Trigger on Master Compare 4 */
869 #define LL_HRTIM_ADCTRIG_SRC579_MPER            (uint32_t)0x04                        /*!<  ADC extended Trigger on Master Period */
870 #define LL_HRTIM_ADCTRIG_SRC579_EEV1            (uint32_t)0x05                        /*!<  ADC extended Trigger on External Event 1 */
871 #define LL_HRTIM_ADCTRIG_SRC579_EEV2            (uint32_t)0x06                        /*!<  ADC extended Trigger on External Event 2 */
872 #define LL_HRTIM_ADCTRIG_SRC579_EEV3            (uint32_t)0x07                        /*!<  ADC extended Trigger on External Event 3 */
873 #define LL_HRTIM_ADCTRIG_SRC579_EEV4            (uint32_t)0x08                        /*!<  ADC extended Trigger on External Event 4 */
874 #define LL_HRTIM_ADCTRIG_SRC579_EEV5            (uint32_t)0x09                        /*!<  ADC extended Trigger on External Event 5 */
875 #define LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP3       (uint32_t)0x0A                        /*!<  ADC extended Trigger on Timer A Compare 3 */
876 #define LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP4       (uint32_t)0x0B                        /*!<  ADC extended Trigger on Timer A Compare 4 */
877 #define LL_HRTIM_ADCTRIG_SRC579_TIMA_PER        (uint32_t)0x0C                        /*!<  ADC extended Trigger on Timer A Period */
878 #define LL_HRTIM_ADCTRIG_SRC579_TIMA_RST        (uint32_t)0x0D                        /*!<  ADC extended Trigger on Timer A Period */
879 #define LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP3       (uint32_t)0x0E                        /*!<  ADC extended Trigger on Timer B Compare 3 */
880 #define LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP4       (uint32_t)0x0F                        /*!<  ADC extended Trigger on Timer B Compare 4 */
881 #define LL_HRTIM_ADCTRIG_SRC579_TIMB_PER        (uint32_t)0x10                        /*!<  ADC extended Trigger on Timer B Period */
882 #define LL_HRTIM_ADCTRIG_SRC579_TIMB_RST        (uint32_t)0x11                        /*!<  ADC extended Trigger on Timer B Reset and counter roll-over */
883 #define LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP3       (uint32_t)0x12                        /*!<  ADC extended Trigger on Timer C Compare 3 */
884 #define LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP4       (uint32_t)0x13                        /*!<  ADC extended Trigger on Timer C Compare 4 */
885 #define LL_HRTIM_ADCTRIG_SRC579_TIMC_PER        (uint32_t)0x14                        /*!<  ADC extended Trigger on Timer C Period */
886 #define LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP3       (uint32_t)0x15                        /*!<  ADC extended Trigger on Timer D Compare 3 */
887 #define LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP4       (uint32_t)0x16                        /*!<  ADC extended Trigger on Timer D Compare 4 */
888 #define LL_HRTIM_ADCTRIG_SRC579_TIMD_PER        (uint32_t)0x17                        /*!<  ADC extended Trigger on Timer D Period */
889 #define LL_HRTIM_ADCTRIG_SRC579_TIME_CMP3       (uint32_t)0x18                        /*!<  ADC extended Trigger on Timer E Compare 3 */
890 #define LL_HRTIM_ADCTRIG_SRC579_TIME_CMP4       (uint32_t)0x19                        /*!<  ADC extended Trigger on Timer E Compare 4 */
891 #define LL_HRTIM_ADCTRIG_SRC579_TIME_PER        (uint32_t)0x1A                        /*!<  ADC extended Trigger on Timer E Period */
892 #define LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP2       (uint32_t)0x1B                        /*!<  ADC extended Trigger on Timer F Compare 2 */
893 #define LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP3       (uint32_t)0x1C                        /*!<  ADC extended Trigger on Timer F Compare 3 */
894 #define LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP4       (uint32_t)0x1D                        /*!<  ADC extended Trigger on Timer F Compare 4 */
895 #define LL_HRTIM_ADCTRIG_SRC579_TIMF_PER        (uint32_t)0x1E                        /*!<  ADC extended Trigger on Timer F Period */
896 #define LL_HRTIM_ADCTRIG_SRC579_TIMF_RST        (uint32_t)0x1F                        /*!<  ADC extended Trigger on Timer F Reset and counter roll-over */
897 /**
898   * @}
899   */
900 
901 /** @defgroup HRTIM_LL_EC_DLLCALIBRATION_MODE  DLL CALIBRATION MODE
902   * @{
903   * @brief Constants defining the DLL calibration mode.
904   */
905 #define LL_HRTIM_DLLCALIBRATION_MODE_SINGLESHOT   0x00000000U            /*!<Calibration is performed only once */
906 #define LL_HRTIM_DLLCALIBRATION_MODE_CONTINUOUS   HRTIM_DLLCR_CALEN      /*!<Calibration is performed periodically */
907 /**
908   * @}
909   */
910 
911 /** @defgroup HRTIM_LL_EC_CALIBRATIONRATE  DLL CALIBRATION RATE
912   * @{
913   * @brief Constants defining the DLL calibration periods (in micro seconds).
914   */
915 #define LL_HRTIM_DLLCALIBRATION_RATE_0         0x00000000U                                    /*!< Periodic DLL calibration: T = 1048576U * tHRTIM (6.168 ms) */
916 #define LL_HRTIM_DLLCALIBRATION_RATE_1         (HRTIM_DLLCR_CALRTE_0)                         /*!< Periodic DLL calibration: T = 131072U * tHRTIM (0.771 ms) */
917 #define LL_HRTIM_DLLCALIBRATION_RATE_2         (HRTIM_DLLCR_CALRTE_1)                         /*!< Periodic DLL calibration: T = 16384U * tHRTIM (0.096 ms) */
918 #define LL_HRTIM_DLLCALIBRATION_RATE_3         (HRTIM_DLLCR_CALRTE_1 | HRTIM_DLLCR_CALRTE_0)  /*!< Periodic DLL calibration: T = 2048U * tHRTIM (0.012 ms) */
919 /**
920   * @}
921   */
922 
923 /** @defgroup HRTIM_LL_EC_PRESCALERRATIO  PRESCALER RATIO
924   * @{
925   * @brief Constants defining timer high-resolution clock prescaler ratio.
926   */
927 #define LL_HRTIM_PRESCALERRATIO_MUL32      0x00000000U              /*!< fHRCK: fHRTIM x 32 = 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz)      */
928 #define LL_HRTIM_PRESCALERRATIO_MUL16      ((uint32_t)0x00000001U)  /*!< fHRCK: fHRTIM x 16 = 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz)      */
929 #define LL_HRTIM_PRESCALERRATIO_MUL8       ((uint32_t)0x00000002U)  /*!< fHRCK: fHRTIM x 8 = 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz)      */
930 #define LL_HRTIM_PRESCALERRATIO_MUL4       ((uint32_t)0x00000003U)  /*!< fHRCK: fHRTIM x 4 = 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz)      */
931 #define LL_HRTIM_PRESCALERRATIO_MUL2       ((uint32_t)0x00000004U)  /*!< fHRCK: fHRTIM x 2 = 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz)      */
932 #define LL_HRTIM_PRESCALERRATIO_DIV1       ((uint32_t)0x00000005U)  /*!< fHRCK: fHRTIM = 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)      */
933 #define LL_HRTIM_PRESCALERRATIO_DIV2       ((uint32_t)0x00000006U)  /*!< fHRCK: fHRTIM / 2 = 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)      */
934 #define LL_HRTIM_PRESCALERRATIO_DIV4       ((uint32_t)0x00000007U)  /*!< fHRCK: fHRTIM / 4 = 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)      */
935 /**
936   * @}
937   */
938 
939 /** @defgroup HRTIM_LL_EC_MODE  COUNTER MODE
940   * @{
941   * @brief Constants defining timer counter operating mode.
942   */
943 #define LL_HRTIM_MODE_CONTINUOUS           ((uint32_t)0x00000008U)  /*!< The timer operates in continuous (free-running) mode */
944 #define LL_HRTIM_MODE_SINGLESHOT           0x00000000U              /*!< The timer operates in non retriggerable single-shot mode */
945 #define LL_HRTIM_MODE_RETRIGGERABLE        ((uint32_t)0x00000010U)  /*!< The timer operates in retriggerable single-shot mode */
946 /**
947   * @}
948   */
949 
950 /** @defgroup HRTIM_LL_EC_DACTRIG  DAC TRIGGER
951   * @{
952   * @brief Constants defining on which output the DAC synchronization event is sent.
953   */
954 #define LL_HRTIM_DACTRIG_NONE           0x00000000U                     /*!< No DAC synchronization event generated */
955 #define LL_HRTIM_DACTRIG_DACTRIGOUT_1   (HRTIM_MCR_DACSYNC_0)                       /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update */
956 #define LL_HRTIM_DACTRIG_DACTRIGOUT_2   (HRTIM_MCR_DACSYNC_1)                       /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update */
957 #define LL_HRTIM_DACTRIG_DACTRIGOUT_3   (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut3 output upon timer update */
958 /**
959   * @}
960   */
961 
962 /** @defgroup HRTIM_LL_EC_UPDATETRIG  UPDATE TRIGGER
963   * @{
964   * @brief Constants defining whether the registers update is done synchronously with any other timer or master update.
965   */
966 #define LL_HRTIM_UPDATETRIG_NONE        0x00000000U            /*!< Register update is disabled */
967 #define LL_HRTIM_UPDATETRIG_MASTER      HRTIM_TIMCR_MSTU       /*!< Register update is triggered by the master timer update */
968 #define LL_HRTIM_UPDATETRIG_TIMER_A     HRTIM_TIMCR_TAU        /*!< Register update is triggered by the timer A update */
969 #define LL_HRTIM_UPDATETRIG_TIMER_B     HRTIM_TIMCR_TBU        /*!< Register update is triggered by the timer B update */
970 #define LL_HRTIM_UPDATETRIG_TIMER_C     HRTIM_TIMCR_TCU        /*!< Register update is triggered by the timer C update*/
971 #define LL_HRTIM_UPDATETRIG_TIMER_D     HRTIM_TIMCR_TDU        /*!< Register update is triggered by the timer D update */
972 #define LL_HRTIM_UPDATETRIG_TIMER_E     HRTIM_TIMCR_TEU        /*!< Register update is triggered by the timer E update */
973 #define LL_HRTIM_UPDATETRIG_TIMER_F     HRTIM_TIMCR_TFU        /*!< Register update is triggered by the timer F update */
974 #define LL_HRTIM_UPDATETRIG_REPETITION  HRTIM_TIMCR_TREPU      /*!< Register update is triggered when the counter rolls over and HRTIM_REPx = 0*/
975 #define LL_HRTIM_UPDATETRIG_RESET       HRTIM_TIMCR_TRSTU      /*!< Register update is triggered by counter reset or roll-over to 0 after reaching the period value in continuous mode */
976 /**
977   * @}
978   */
979 
980 /** @defgroup HRTIM_LL_EC_UPDATEGATING  UPDATE GATING
981   * @{
982   * @brief Constants defining how the update occurs relatively to the burst DMA transaction and the external update request on update enable inputs 1 to 3.
983   */
984 #define LL_HRTIM_UPDATEGATING_INDEPENDENT     0x00000000U                                               /*!< Update done independently from the DMA burst transfer completion */
985 #define LL_HRTIM_UPDATEGATING_DMABURST        (HRTIM_TIMCR_UPDGAT_0)                                                /*!< Update done when the DMA burst transfer is completed */
986 #define LL_HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1)                                                /*!< Update done on timer roll-over following a DMA burst transfer completion*/
987 #define LL_HRTIM_UPDATEGATING_UPDEN1          (HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0)                         /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 1 */
988 #define LL_HRTIM_UPDATEGATING_UPDEN2          (HRTIM_TIMCR_UPDGAT_2)                                                /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2 */
989 #define LL_HRTIM_UPDATEGATING_UPDEN3          (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_0)                         /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 3 */
990 #define LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE   (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1)                         /*!< Slave timer only -  Update done on the update event following a rising edge of HRTIM update enable input 1 */
991 #define LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE   (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0)  /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 2 */
992 #define LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE   (HRTIM_TIMCR_UPDGAT_3)                                                /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 3 */
993 /**
994   * @}
995   */
996 
997 /** @defgroup HRTIM_LL_EC_COMPAREMODE  COMPARE MODE
998   * @{
999   * @brief Constants defining whether the compare register is behaving in regular mode (compare match issued as soon as counter equal compare) or in auto-delayed mode.
1000   */
1001 #define LL_HRTIM_COMPAREMODE_REGULAR          0x00000000U                         /*!< standard compare mode */
1002 #define LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT  (HRTIM_TIMCR_DELCMP2_0)                         /*!< Compare event generated only if a capture has occurred */
1003 #define LL_HRTIM_COMPAREMODE_DELAY_CMP1       (HRTIM_TIMCR_DELCMP2_1)                         /*!< Compare event generated if a capture has occurred or after a Compare 1 match (timeout if capture event is missing) */
1004 #define LL_HRTIM_COMPAREMODE_DELAY_CMP3       (HRTIM_TIMCR_DELCMP2_1 | HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated if a capture has occurred or after a Compare 3 match (timeout if capture event is missing) */
1005 /**
1006   * @}
1007   */
1008 
1009 /** @defgroup HRTIM_LL_EC_RESETTRIG  RESET TRIGGER
1010   * @{
1011   * @brief Constants defining the events that can be selected to trigger the reset of the timer counter.
1012   */
1013 #define LL_HRTIM_RESETTRIG_NONE        0x00000000U            /*!< No counter reset trigger */
1014 #define LL_HRTIM_RESETTRIG_UPDATE      HRTIM_RSTR_UPDATE      /*!< The timer counter is reset upon update event */
1015 #define LL_HRTIM_RESETTRIG_CMP2        HRTIM_RSTR_CMP2        /*!< The timer counter is reset upon Timer Compare 2 event */
1016 #define LL_HRTIM_RESETTRIG_CMP4        HRTIM_RSTR_CMP4        /*!< The timer counter is reset upon Timer Compare 4 event */
1017 #define LL_HRTIM_RESETTRIG_MASTER_PER  HRTIM_RSTR_MSTPER      /*!< The timer counter is reset upon master timer period event */
1018 #define LL_HRTIM_RESETTRIG_MASTER_CMP1 HRTIM_RSTR_MSTCMP1     /*!< The timer counter is reset upon master timer Compare 1 event */
1019 #define LL_HRTIM_RESETTRIG_MASTER_CMP2 HRTIM_RSTR_MSTCMP2     /*!< The timer counter is reset upon master timer Compare 2 event */
1020 #define LL_HRTIM_RESETTRIG_MASTER_CMP3 HRTIM_RSTR_MSTCMP3     /*!< The timer counter is reset upon master timer Compare 3 event */
1021 #define LL_HRTIM_RESETTRIG_MASTER_CMP4 HRTIM_RSTR_MSTCMP4     /*!< The timer counter is reset upon master timer Compare 4 event */
1022 #define LL_HRTIM_RESETTRIG_EEV_1       HRTIM_RSTR_EXTEVNT1    /*!< The timer counter is reset upon external event 1 */
1023 #define LL_HRTIM_RESETTRIG_EEV_2       HRTIM_RSTR_EXTEVNT2    /*!< The timer counter is reset upon external event 2 */
1024 #define LL_HRTIM_RESETTRIG_EEV_3       HRTIM_RSTR_EXTEVNT3    /*!< The timer counter is reset upon external event 3 */
1025 #define LL_HRTIM_RESETTRIG_EEV_4       HRTIM_RSTR_EXTEVNT4    /*!< The timer counter is reset upon external event 4 */
1026 #define LL_HRTIM_RESETTRIG_EEV_5       HRTIM_RSTR_EXTEVNT5    /*!< The timer counter is reset upon external event 5 */
1027 #define LL_HRTIM_RESETTRIG_EEV_6       HRTIM_RSTR_EXTEVNT6    /*!< The timer counter is reset upon external event 6 */
1028 #define LL_HRTIM_RESETTRIG_EEV_7       HRTIM_RSTR_EXTEVNT7    /*!< The timer counter is reset upon external event 7 */
1029 #define LL_HRTIM_RESETTRIG_EEV_8       HRTIM_RSTR_EXTEVNT8    /*!< The timer counter is reset upon external event 8 */
1030 #define LL_HRTIM_RESETTRIG_EEV_9       HRTIM_RSTR_EXTEVNT9    /*!< The timer counter is reset upon external event 9 */
1031 #define LL_HRTIM_RESETTRIG_EEV_10      HRTIM_RSTR_EXTEVNT10   /*!< The timer counter is reset upon external event 10 */
1032 #define LL_HRTIM_RESETTRIG_OTHER1_CMP1 HRTIM_RSTR_TIMBCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
1033 #define LL_HRTIM_RESETTRIG_OTHER1_CMP2 HRTIM_RSTR_TIMBCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
1034 #define LL_HRTIM_RESETTRIG_OTHER1_CMP4 HRTIM_RSTR_TIMBCMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
1035 #define LL_HRTIM_RESETTRIG_OTHER2_CMP1 HRTIM_RSTR_TIMCCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
1036 #define LL_HRTIM_RESETTRIG_OTHER2_CMP2 HRTIM_RSTR_TIMCCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
1037 #define LL_HRTIM_RESETTRIG_OTHER2_CMP4 HRTIM_RSTR_TIMCCMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
1038 #define LL_HRTIM_RESETTRIG_OTHER3_CMP1 HRTIM_RSTR_TIMDCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
1039 #define LL_HRTIM_RESETTRIG_OTHER3_CMP2 HRTIM_RSTR_TIMDCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
1040 #define LL_HRTIM_RESETTRIG_OTHER3_CMP4 HRTIM_RSTR_TIMDCMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
1041 #define LL_HRTIM_RESETTRIG_OTHER4_CMP1 HRTIM_RSTR_TIMECMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
1042 #define LL_HRTIM_RESETTRIG_OTHER4_CMP2 HRTIM_RSTR_TIMECMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
1043 #define LL_HRTIM_RESETTRIG_OTHER4_CMP4 HRTIM_RSTR_TIMECMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
1044 #define LL_HRTIM_RESETTRIG_OTHER5_CMP1 HRTIM_RSTR_TIMFCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
1045 #define LL_HRTIM_RESETTRIG_OTHER5_CMP2 HRTIM_RSTR_TIMFCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
1046 /**
1047   * @}
1048   */
1049 
1050 /** @defgroup HRTIM_LL_EC_CAPTURETRIG  CAPTURE TRIGGER
1051   * @{
1052   * @brief Constants defining the events that can be selected to trigger the capture of the timing unit counter.
1053   */
1054 #define LL_HRTIM_CAPTURETRIG_NONE       (uint64_t)0                               /*!< Capture trigger is disabled */
1055 #define LL_HRTIM_CAPTURETRIG_SW         (uint64_t)HRTIM_CPT1CR_SWCPT              /*!< The sw event triggers the Capture */
1056 #define LL_HRTIM_CAPTURETRIG_UPDATE     (uint64_t)HRTIM_CPT1CR_UPDCPT             /*!< The update event triggers the Capture */
1057 #define LL_HRTIM_CAPTURETRIG_EEV_1      (uint64_t)HRTIM_CPT1CR_EXEV1CPT           /*!< The External event 1 triggers the Capture */
1058 #define LL_HRTIM_CAPTURETRIG_EEV_2      (uint64_t)HRTIM_CPT1CR_EXEV2CPT           /*!< The External event 2 triggers the Capture */
1059 #define LL_HRTIM_CAPTURETRIG_EEV_3      (uint64_t)HRTIM_CPT1CR_EXEV3CPT           /*!< The External event 3 triggers the Capture */
1060 #define LL_HRTIM_CAPTURETRIG_EEV_4      (uint64_t)HRTIM_CPT1CR_EXEV4CPT           /*!< The External event 4 triggers the Capture */
1061 #define LL_HRTIM_CAPTURETRIG_EEV_5      (uint64_t)HRTIM_CPT1CR_EXEV5CPT           /*!< The External event 5 triggers the Capture */
1062 #define LL_HRTIM_CAPTURETRIG_EEV_6      (uint64_t)HRTIM_CPT1CR_EXEV6CPT           /*!< The External event 6 triggers the Capture */
1063 #define LL_HRTIM_CAPTURETRIG_EEV_7      (uint64_t)HRTIM_CPT1CR_EXEV7CPT           /*!< The External event 7 triggers the Capture */
1064 #define LL_HRTIM_CAPTURETRIG_EEV_8      (uint64_t)HRTIM_CPT1CR_EXEV8CPT           /*!< The External event 8 triggers the Capture */
1065 #define LL_HRTIM_CAPTURETRIG_EEV_9      (uint64_t)HRTIM_CPT1CR_EXEV9CPT           /*!< The External event 9 triggers the Capture */
1066 #define LL_HRTIM_CAPTURETRIG_EEV_10     (uint64_t)HRTIM_CPT1CR_EXEV10CPT          /*!< The External event 10 triggers the Capture */
1067 #define LL_HRTIM_CAPTURETRIG_TA1_SET     (uint64_t)(HRTIM_CPT1CR_TA1SET   ) <<32  /*!< Capture is triggered by TA1 output inactive to active transition */
1068 #define LL_HRTIM_CAPTURETRIG_TA1_RESET   (uint64_t)(HRTIM_CPT1CR_TA1RST   ) <<32  /*!< Capture is triggered by TA1 output active to inactive transition */
1069 #define LL_HRTIM_CAPTURETRIG_TIMA_CMP1   (uint64_t)(HRTIM_CPT1CR_TIMACMP1 ) <<32  /*!< Timer A Compare 1 triggers Capture */
1070 #define LL_HRTIM_CAPTURETRIG_TIMA_CMP2   (uint64_t)(HRTIM_CPT1CR_TIMACMP2 ) <<32  /*!< Timer A Compare 2 triggers Capture */
1071 #define LL_HRTIM_CAPTURETRIG_TB1_SET     (uint64_t)(HRTIM_CPT1CR_TB1SET   ) <<32  /*!< Capture is triggered by TB1 output inactive to active transition */
1072 #define LL_HRTIM_CAPTURETRIG_TB1_RESET   (uint64_t)(HRTIM_CPT1CR_TB1RST   ) <<32  /*!< Capture is triggered by TB1 output active to inactive transition */
1073 #define LL_HRTIM_CAPTURETRIG_TIMB_CMP1   (uint64_t)(HRTIM_CPT1CR_TIMBCMP1 ) <<32  /*!< Timer B Compare 1 triggers Capture */
1074 #define LL_HRTIM_CAPTURETRIG_TIMB_CMP2   (uint64_t)(HRTIM_CPT1CR_TIMBCMP2 ) <<32  /*!< Timer B Compare 2 triggers Capture */
1075 #define LL_HRTIM_CAPTURETRIG_TC1_SET     (uint64_t)(HRTIM_CPT1CR_TC1SET   ) <<32  /*!< Capture is triggered by TC1 output inactive to active transition */
1076 #define LL_HRTIM_CAPTURETRIG_TC1_RESET   (uint64_t)(HRTIM_CPT1CR_TC1RST   ) <<32  /*!< Capture is triggered by TC1 output active to inactive transition */
1077 #define LL_HRTIM_CAPTURETRIG_TIMC_CMP1   (uint64_t)(HRTIM_CPT1CR_TIMCCMP1 ) <<32  /*!< Timer C Compare 1 triggers Capture */
1078 #define LL_HRTIM_CAPTURETRIG_TIMC_CMP2   (uint64_t)(HRTIM_CPT1CR_TIMCCMP2 ) <<32  /*!< Timer C Compare 2 triggers Capture */
1079 #define LL_HRTIM_CAPTURETRIG_TD1_SET     (uint64_t)(HRTIM_CPT1CR_TD1SET   ) <<32  /*!< Capture is triggered by TD1 output inactive to active transition */
1080 #define LL_HRTIM_CAPTURETRIG_TD1_RESET   (uint64_t)(HRTIM_CPT1CR_TD1RST   ) <<32  /*!< Capture is triggered by TD1 output active to inactive transition */
1081 #define LL_HRTIM_CAPTURETRIG_TIMD_CMP1   (uint64_t)(HRTIM_CPT1CR_TIMDCMP1 ) <<32  /*!< Timer D Compare 1 triggers Capture */
1082 #define LL_HRTIM_CAPTURETRIG_TIMD_CMP2   (uint64_t)(HRTIM_CPT1CR_TIMDCMP2 ) <<32  /*!< Timer D Compare 2 triggers Capture */
1083 #define LL_HRTIM_CAPTURETRIG_TE1_SET     (uint64_t)(HRTIM_CPT1CR_TE1SET   ) <<32  /*!< Capture is triggered by TE1 output inactive to active transition */
1084 #define LL_HRTIM_CAPTURETRIG_TE1_RESET   (uint64_t)(HRTIM_CPT1CR_TE1RST   ) <<32  /*!< Capture is triggered by TE1 output active to inactive transition */
1085 #define LL_HRTIM_CAPTURETRIG_TIME_CMP1   (uint64_t)(HRTIM_CPT1CR_TIMECMP1 ) <<32  /*!< Timer E Compare 1 triggers Capture */
1086 #define LL_HRTIM_CAPTURETRIG_TIME_CMP2   (uint64_t)(HRTIM_CPT1CR_TIMECMP2 ) <<32  /*!< Timer E Compare 2 triggers Capture */
1087 #define LL_HRTIM_CAPTURETRIG_TF1_SET     (uint64_t)(HRTIM_CPT1CR_TF1SET   ) <<32  /*!< Capture is triggered by TF1 output inactive to active transition */
1088 #define LL_HRTIM_CAPTURETRIG_TF1_RESET   (uint64_t)(HRTIM_CPT1CR_TF1RST   ) <<32  /*!< Capture is triggered by TF1 output active to inactive transition */
1089 #define LL_HRTIM_CAPTURETRIG_TIMF_CMP1   (uint64_t)(HRTIM_CPT1CR_TIMFCMP1 ) <<32  /*!< Timer F Compare 1 triggers Capture */
1090 #define LL_HRTIM_CAPTURETRIG_TIMF_CMP2   (uint64_t)(HRTIM_CPT1CR_TIMFCMP2 ) <<32  /*!< Timer F Compare 2 triggers Capture */
1091 /**
1092   * @}
1093   */
1094 
1095 /** @defgroup HRTIM_LL_EC_DLYPRT  DELAYED PROTECTION (DLYPRT) MODE
1096   * @{
1097   * @brief Constants defining all possible delayed protection modes for a timer (also define the source and outputs on which the delayed protection schemes are applied).
1098   */
1099 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV6  0x00000000U                                            /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6 */
1100 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV6  (HRTIM_OUTR_DLYPRT_0)                                             /*!< Timers A, B, C: Output 2 delayed Idle on external Event 6 */
1101 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV6  (HRTIM_OUTR_DLYPRT_1)                                             /*!< Timers A, B, C: Output 1 and output 2 delayed Idle on external Event 6 */
1102 #define LL_HRTIM_DLYPRT_BALANCED_EEV6   (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0)                       /*!< Timers A, B, C: Balanced Idle on external Event 6 */
1103 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV7  (HRTIM_OUTR_DLYPRT_2)                                             /*!< Timers A, B, C: Output 1 delayed Idle on external Event 7 */
1104 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV7  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0)                       /*!< Timers A, B, C: Output 2 delayed Idle on external Event 7 */
1105 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV7  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1)                       /*!< Timers A, B, C: Output 1 and output2 delayed Idle on external Event 7 */
1106 #define LL_HRTIM_DLYPRT_BALANCED_EEV7   (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0) /*!< Timers A, B, C: Balanced Idle on external Event 7 */
1107 
1108 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV8  0x00000000U                                             /*!< Timers D, E: Output 1 delayed Idle on external Event 8 */
1109 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV8  (HRTIM_OUTR_DLYPRT_0)                                               /*!< Timers D, E: Output 2 delayed Idle on external Event 8 */
1110 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV8  (HRTIM_OUTR_DLYPRT_1)                                               /*!< Timers D, E: Output 1 and output 2 delayed Idle on external Event 8 */
1111 #define LL_HRTIM_DLYPRT_BALANCED_EEV8   (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0)                         /*!< Timers D, E: Balanced Idle on external Event 8 */
1112 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV9  (HRTIM_OUTR_DLYPRT_2)                                               /*!< Timers D, E: Output 1 delayed Idle on external Event 9 */
1113 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV9  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0)                         /*!< Timers D, E: Output 2 delayed Idle on external Event 9 */
1114 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV9  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1)                         /*!< Timers D, E: Output 1 and output2 delayed Idle on external Event 9 */
1115 #define LL_HRTIM_DLYPRT_BALANCED_EEV9   (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0)   /*!< Timers D, E: Balanced Idle on external Event 9 */
1116 /**
1117   * @}
1118   */
1119 
1120 /** @defgroup HRTIM_LL_EC_BURSTMODE  BURST MODE
1121   * @{
1122   * @brief Constants defining how the timer behaves during a burst mode operation.
1123   */
1124 #define LL_HRTIM_BURSTMODE_MAINTAINCLOCK (uint32_t)0x000000 /*!< Timer counter clock is maintained and the timer operates normally */
1125 #define LL_HRTIM_BURSTMODE_RESETCOUNTER  (HRTIM_BMCR_MTBM)  /*!< Timer counter clock is stopped and the counter is reset */
1126 /**
1127   * @}
1128   */
1129 
1130 /** @defgroup HRTIM_LL_EC_BURSTDMA  BURST DMA
1131   * @{
1132   * @brief Constants defining the registers that can be written during a burst DMA operation.
1133   */
1134 #define LL_HRTIM_BURSTDMA_NONE     0x00000000U               /*!< No register is updated by Burst DMA accesses */
1135 #define LL_HRTIM_BURSTDMA_MCR      (HRTIM_BDMUPR_MCR)        /*!< MCR register is updated by Burst DMA accesses */
1136 #define LL_HRTIM_BURSTDMA_MICR     (HRTIM_BDMUPR_MICR)       /*!< MICR register is updated by Burst DMA accesses */
1137 #define LL_HRTIM_BURSTDMA_MDIER    (HRTIM_BDMUPR_MDIER)      /*!< MDIER register is updated by Burst DMA accesses */
1138 #define LL_HRTIM_BURSTDMA_MCNT     (HRTIM_BDMUPR_MCNT)       /*!< MCNTR register is updated by Burst DMA accesses */
1139 #define LL_HRTIM_BURSTDMA_MPER     (HRTIM_BDMUPR_MPER)       /*!< MPER register is updated by Burst DMA accesses */
1140 #define LL_HRTIM_BURSTDMA_MREP     (HRTIM_BDMUPR_MREP)       /*!< MREPR register is updated by Burst DMA accesses */
1141 #define LL_HRTIM_BURSTDMA_MCMP1    (HRTIM_BDMUPR_MCMP1)      /*!< MCMP1R register is updated by Burst DMA accesses */
1142 #define LL_HRTIM_BURSTDMA_MCMP2    (HRTIM_BDMUPR_MCMP2)      /*!< MCMP2R register is updated by Burst DMA accesses */
1143 #define LL_HRTIM_BURSTDMA_MCMP3    (HRTIM_BDMUPR_MCMP3)      /*!< MCMP3R register is updated by Burst DMA accesses */
1144 #define LL_HRTIM_BURSTDMA_MCMP4    (HRTIM_BDMUPR_MCMP4)      /*!< MCMP4R register is updated by Burst DMA accesses */
1145 #define LL_HRTIM_BURSTDMA_TIMMCR   (HRTIM_BDTUPR_TIMCR)      /*!< TIMxCR register is updated by Burst DMA accesses */
1146 #define LL_HRTIM_BURSTDMA_TIMICR   (HRTIM_BDTUPR_TIMICR)     /*!< TIMxICR register is updated by Burst DMA accesses */
1147 #define LL_HRTIM_BURSTDMA_TIMDIER  (HRTIM_BDTUPR_TIMDIER)    /*!< TIMxDIER register is updated by Burst DMA accesses */
1148 #define LL_HRTIM_BURSTDMA_TIMCNT   (HRTIM_BDTUPR_TIMCNT)     /*!< CNTxCR register is updated by Burst DMA accesses */
1149 #define LL_HRTIM_BURSTDMA_TIMPER   (HRTIM_BDTUPR_TIMPER)     /*!< PERxR register is updated by Burst DMA accesses */
1150 #define LL_HRTIM_BURSTDMA_TIMREP   (HRTIM_BDTUPR_TIMREP)     /*!< REPxR register is updated by Burst DMA accesses */
1151 #define LL_HRTIM_BURSTDMA_TIMCMP1  (HRTIM_BDTUPR_TIMCMP1)    /*!< CMP1xR register is updated by Burst DMA accesses */
1152 #define LL_HRTIM_BURSTDMA_TIMCMP2  (HRTIM_BDTUPR_TIMCMP2)    /*!< CMP2xR register is updated by Burst DMA accesses */
1153 #define LL_HRTIM_BURSTDMA_TIMCMP3  (HRTIM_BDTUPR_TIMCMP3)    /*!< CMP3xR register is updated by Burst DMA accesses */
1154 #define LL_HRTIM_BURSTDMA_TIMCMP4  (HRTIM_BDTUPR_TIMCMP4)    /*!< CMP4xR register is updated by Burst DMA accesses */
1155 #define LL_HRTIM_BURSTDMA_TIMDTR   (HRTIM_BDTUPR_TIMDTR)     /*!< DTxR register is updated by Burst DMA accesses */
1156 #define LL_HRTIM_BURSTDMA_TIMSET1R (HRTIM_BDTUPR_TIMSET1R)   /*!< SET1R register is updated by Burst DMA accesses */
1157 #define LL_HRTIM_BURSTDMA_TIMRST1R (HRTIM_BDTUPR_TIMRST1R)   /*!< RST1R register is updated by Burst DMA accesses */
1158 #define LL_HRTIM_BURSTDMA_TIMSET2R (HRTIM_BDTUPR_TIMSET2R)   /*!< SET2R register is updated by Burst DMA accesses */
1159 #define LL_HRTIM_BURSTDMA_TIMRST2R (HRTIM_BDTUPR_TIMRST2R)   /*!< RST1R register is updated by Burst DMA accesses */
1160 #define LL_HRTIM_BURSTDMA_TIMEEFR1 (HRTIM_BDTUPR_TIMEEFR1)   /*!< EEFxR1 register is updated by Burst DMA accesses */
1161 #define LL_HRTIM_BURSTDMA_TIMEEFR2 (HRTIM_BDTUPR_TIMEEFR2)   /*!< EEFxR2 register is updated by Burst DMA accesses */
1162 #define LL_HRTIM_BURSTDMA_TIMRSTR  (HRTIM_BDTUPR_TIMRSTR)    /*!< RSTxR register is updated by Burst DMA accesses */
1163 #define LL_HRTIM_BURSTDMA_TIMCHPR  (HRTIM_BDTUPR_TIMCHPR)    /*!< CHPxR register is updated by Burst DMA accesses */
1164 #define LL_HRTIM_BURSTDMA_TIMOUTR  (HRTIM_BDTUPR_TIMOUTR)    /*!< OUTxR register is updated by Burst DMA accesses */
1165 #define LL_HRTIM_BURSTDMA_TIMFLTR  (HRTIM_BDTUPR_TIMFLTR)    /*!< FLTxR register is updated by Burst DMA accesses */
1166 #define LL_HRTIM_BURSTDMA_CR2      (HRTIM_BDTUPR_TIMCR2)     /*!< TIMxCR2 register is updated by Burst DMA accesses */
1167 #define LL_HRTIM_BURSTDMA_EEFR3    (HRTIM_BDTUPR_TIMEEFR3)   /*!< EEFxR3 register is updated by Burst DMA accesses */
1168 /**
1169   * @}
1170   */
1171 
1172 /** @defgroup HRTIM_LL_EC_CPPSTAT  CURRENT PUSH-PULL STATUS
1173   * @{
1174   * @brief Constants defining on which output the signal is currently applied in push-pull mode.
1175   */
1176 #define LL_HRTIM_CPPSTAT_OUTPUT1   ((uint32_t) 0x00000000U) /*!< Signal applied on output 1 and output 2 forced inactive */
1177 #define LL_HRTIM_CPPSTAT_OUTPUT2   (HRTIM_TIMISR_CPPSTAT)  /*!< Signal applied on output 2 and output 1 forced inactive */
1178 /**
1179   * @}
1180   */
1181 
1182 /** @defgroup HRTIM_LL_EC_IPPSTAT  IDLE PUSH-PULL STATUS
1183   * @{
1184   * @brief Constants defining on which output the signal was applied, in push-pull mode balanced fault mode or delayed idle mode, when the protection was triggered.
1185   */
1186 #define LL_HRTIM_IPPSTAT_OUTPUT1   ((uint32_t) 0x00000000U)    /*!< Protection occurred when the output 1 was active and output 2 forced inactive */
1187 #define LL_HRTIM_IPPSTAT_OUTPUT2   (HRTIM_TIMISR_IPPSTAT)     /*!< Protection occurred when the output 2 was active and output 1 forced inactive */
1188 /**
1189   * @}
1190   */
1191 
1192 /** @defgroup HRTIM_LL_EC_TIM_EEFLTR TIMER EXTERNAL EVENT FILTER
1193   * @{
1194   * @brief Constants defining the event filtering applied to external events by a timer.
1195   */
1196 #define LL_HRTIM_EEFLTR_NONE                            (0x00000000U)
1197 #define LL_HRTIM_EEFLTR_BLANKINGCMP1                    (HRTIM_EEFR1_EE1FLTR_0)                                                   /*!< Blanking from counter reset/roll-over to Compare 1U */
1198 #define LL_HRTIM_EEFLTR_BLANKINGCMP2                    (HRTIM_EEFR1_EE1FLTR_1)                                                   /*!< Blanking from counter reset/roll-over to Compare 2U */
1199 #define LL_HRTIM_EEFLTR_BLANKINGCMP3                    (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from counter reset/roll-over to Compare 3U */
1200 #define LL_HRTIM_EEFLTR_BLANKINGCMP4                    (HRTIM_EEFR1_EE1FLTR_2)                                                   /*!< Blanking from counter reset/roll-over to Compare 4U */
1201 /* Blanking Filter for TIMER A */
1202 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF1_TIMBCMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR1 source */
1203 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF2_TIMBCMP4      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR2 source */
1204 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF3_TIMBOUT2      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR3 source */
1205 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF4_TIMCCMP1      (HRTIM_EEFR1_EE1FLTR_3)                                                   /*!< Blanking from another timing unit: TIMFLTR4 source */
1206 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF5_TIMCCMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR5 source */
1207 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF6_TIMFCMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR6 source */
1208 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF7_TIMDCMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR7 source */
1209 #define LL_HRTIM_EEFLTR_BLANKING_TIMAEEF8_TIMECMP2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                           /*!< Blanking from another timing unit: TIMFLTR8 source */
1210 /* Blanking Filter for TIMER B */
1211 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF1_TIMACMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR1 source */
1212 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF2_TIMACMP4      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR2 source */
1213 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF3_TIMAOUT2      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR3 source */
1214 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF4_TIMCCMP1      (HRTIM_EEFR1_EE1FLTR_3)                                                   /*!< Blanking from another timing unit: TIMFLTR4 source */
1215 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF5_TIMCCMP2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR5 source */
1216 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF6_TIMFCMP2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR6 source */
1217 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF7_TIMDCMP2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR7 source */
1218 #define LL_HRTIM_EEFLTR_BLANKING_TIMBEEF8_TIMECMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                           /*!< Blanking from another timing unit: TIMFLTR8 source */
1219 /* Blanking Filter for TIMER C */
1220 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF1_TIMACMP2      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR1 source */
1221 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF2_TIMBCMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR2 source */
1222 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF3_TIMBCMP4      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR3 source */
1223 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF4_TIMFCMP1      (HRTIM_EEFR1_EE1FLTR_3)                                                   /*!< Blanking from another timing unit: TIMFLTR4 source */
1224 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF5_TIMDCMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR5 source */
1225 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF6_TIMDCMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR6 source */
1226 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF7_TIMDOUT2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR7 source */
1227 #define LL_HRTIM_EEFLTR_BLANKING_TIMCEEF8_TIMECMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                           /*!< Blanking from another timing unit: TIMFLTR8 source */
1228 /* Blanking Filter for TIMER D */
1229 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF1_TIMACMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR1 source */
1230 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF2_TIMBCMP2      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR2 source */
1231 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF3_TIMCCMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR3 source */
1232 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF4_TIMCCMP2      (HRTIM_EEFR1_EE1FLTR_3)                                                   /*!< Blanking from another timing unit: TIMFLTR4 source */
1233 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF5_TIMCOUT2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR5 source */
1234 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF6_TIMECMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR6 source */
1235 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF7_TIMECMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR7 source */
1236 #define LL_HRTIM_EEFLTR_BLANKING_TIMDEEF8_TIMFCMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                           /*!< Blanking from another timing unit: TIMFLTR8 source */
1237 /* Blanking Filter for TIMER E */
1238 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF1_TIMACMP2      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR1 source */
1239 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF2_TIMBCMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR2 source */
1240 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF3_TIMCCMP1      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR3 source */
1241 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF4_TIMFCMP4      (HRTIM_EEFR1_EE1FLTR_3)                                                   /*!< Blanking from another timing unit: TIMFLTR4 source */
1242 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF5_TIMFOUT2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR5 source */
1243 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF6_TIMDCMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR6 source */
1244 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF7_TIMDCMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR7 source */
1245 #define LL_HRTIM_EEFLTR_BLANKING_TIMEEEF8_TIMDOUT2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                           /*!< Blanking from another timing unit: TIMFLTR8 source */
1246 /* Blanking Filter for TIMER F */
1247 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF1_TIMACMP4      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR1 source */
1248 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF2_TIMBCMP2      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR2 source */
1249 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF3_TIMCCMP4      (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR3 source */
1250 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF4_TIMDCMP2      (HRTIM_EEFR1_EE1FLTR_3)                                                   /*!< Blanking from another timing unit: TIMFLTR4 source */
1251 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF5_TIMDCMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                           /*!< Blanking from another timing unit: TIMFLTR5 source */
1252 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF6_TIMECMP1      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                           /*!< Blanking from another timing unit: TIMFLTR6 source */
1253 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF7_TIMECMP4      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Blanking from another timing unit: TIMFLTR7 source */
1254 #define LL_HRTIM_EEFLTR_BLANKING_TIMFEEF8_TIMEOUT2      (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                           /*!< Blanking from another timing unit: TIMFLTR8 source */
1255 
1256 #define LL_HRTIM_EEFLTR_WINDOWINGCMP2                   (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)   /*!< Windowing from counter reset/roll-over to Compare 2U */
1257 #define LL_HRTIM_EEFLTR_WINDOWINGCMP3                   (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)   /*!< Windowing from counter reset/roll-over to Compare 3U */
1258 #define LL_HRTIM_EEFLTR_WINDOWINGTIM                    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1\
1259                                                          | HRTIM_EEFR1_EE1FLTR_0)   /*!< Windowing from another timing unit: TIMWIN source */
1260 /**
1261   * @}
1262   */
1263 
1264 /** @defgroup HRTIM_LL_EC_TIM_LATCHSTATUS TIMER EXTERNAL EVENT LATCH STATUS
1265   * @{
1266   * @brief Constants defining whether or not the external event is memorized (latched) and generated as soon as the blanking period is completed or the window ends.
1267   */
1268 #define LL_HRTIM_EELATCH_DISABLED    0x00000000U             /*!< Event is ignored if it happens during a blank, or passed through during a window */
1269 #define LL_HRTIM_EELATCH_ENABLED     HRTIM_EEFR1_EE1LTCH     /*!< Event is latched and delayed till the end of the blanking or windowing period */
1270 /**
1271   * @}
1272   */
1273 
1274 /** @defgroup HRTIM_LL_EC_DT_PRESCALER DEADTIME PRESCALER
1275   * @{
1276   * @brief Constants defining division ratio between the timer clock frequency (fHRTIM) and the deadtime generator clock (fDTG).
1277   */
1278 #define LL_HRTIM_DT_PRESCALER_MUL8    0x00000000U                                         /*!< fDTG = fHRTIM * 8 */
1279 #define LL_HRTIM_DT_PRESCALER_MUL4    (HRTIM_DTR_DTPRSC_0)                                            /*!< fDTG = fHRTIM * 4 */
1280 #define LL_HRTIM_DT_PRESCALER_MUL2    (HRTIM_DTR_DTPRSC_1)                                            /*!< fDTG = fHRTIM * 2 */
1281 #define LL_HRTIM_DT_PRESCALER_DIV1    (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0)                       /*!< fDTG = fHRTIM */
1282 #define LL_HRTIM_DT_PRESCALER_DIV2    (HRTIM_DTR_DTPRSC_2)                                            /*!< fDTG = fHRTIM / 2 */
1283 #define LL_HRTIM_DT_PRESCALER_DIV4    (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0)                       /*!< fDTG = fHRTIM / 4 */
1284 #define LL_HRTIM_DT_PRESCALER_DIV8    (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1)                       /*!< fDTG = fHRTIM / 8 */
1285 #define LL_HRTIM_DT_PRESCALER_DIV16   (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0)  /*!< fDTG = fHRTIM / 16 */
1286 /**
1287   * @}
1288   */
1289 
1290 /** @defgroup HRTIM_LL_EC_DT_RISING_SIGN DEADTIME RISING SIGN
1291   * @{
1292   * @brief Constants defining whether the deadtime is positive or negative (overlapping signal) on rising edge.
1293   */
1294 #define LL_HRTIM_DT_RISING_POSITIVE    0x00000000U             /*!< Positive deadtime on rising edge */
1295 #define LL_HRTIM_DT_RISING_NEGATIVE    (HRTIM_DTR_SDTR)        /*!< Negative deadtime on rising edge */
1296 /**
1297   * @}
1298   */
1299 
1300 /** @defgroup HRTIM_LL_EC_DT_FALLING_SIGN DEADTIME FALLING SIGN
1301   * @{
1302   * @brief Constants defining whether the deadtime is positive or negative (overlapping signal) on falling edge.
1303   */
1304 #define LL_HRTIM_DT_FALLING_POSITIVE    0x00000000U             /*!< Positive deadtime on falling edge */
1305 #define LL_HRTIM_DT_FALLING_NEGATIVE    (HRTIM_DTR_SDTF)        /*!< Negative deadtime on falling edge */
1306 /**
1307   * @}
1308   */
1309 
1310 /** @defgroup HRTIM_LL_EC_CHP_PRESCALER CHOPPER MODE PRESCALER
1311   * @{
1312   * @brief Constants defining the frequency of the generated high frequency carrier (fCHPFRQ).
1313   */
1314 #define LL_HRTIM_CHP_PRESCALER_DIV16  0x00000000U                                                                     /*!< fCHPFRQ = fHRTIM / 16  */
1315 #define LL_HRTIM_CHP_PRESCALER_DIV32  (HRTIM_CHPR_CARFRQ_0)                                                                    /*!< fCHPFRQ = fHRTIM / 32  */
1316 #define LL_HRTIM_CHP_PRESCALER_DIV48  (HRTIM_CHPR_CARFRQ_1)                                                                    /*!< fCHPFRQ = fHRTIM / 48  */
1317 #define LL_HRTIM_CHP_PRESCALER_DIV64  (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 64  */
1318 #define LL_HRTIM_CHP_PRESCALER_DIV80  (HRTIM_CHPR_CARFRQ_2)                                                                    /*!< fCHPFRQ = fHRTIM / 80  */
1319 #define LL_HRTIM_CHP_PRESCALER_DIV96  (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 96  */
1320 #define LL_HRTIM_CHP_PRESCALER_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1)                                              /*!< fCHPFRQ = fHRTIM / 112  */
1321 #define LL_HRTIM_CHP_PRESCALER_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 128  */
1322 #define LL_HRTIM_CHP_PRESCALER_DIV144 (HRTIM_CHPR_CARFRQ_3)                                                                    /*!< fCHPFRQ = fHRTIM / 144  */
1323 #define LL_HRTIM_CHP_PRESCALER_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 160  */
1324 #define LL_HRTIM_CHP_PRESCALER_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1)                                              /*!< fCHPFRQ = fHRTIM / 176  */
1325 #define LL_HRTIM_CHP_PRESCALER_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 192  */
1326 #define LL_HRTIM_CHP_PRESCALER_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2)                                              /*!< fCHPFRQ = fHRTIM / 208  */
1327 #define LL_HRTIM_CHP_PRESCALER_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 224  */
1328 #define LL_HRTIM_CHP_PRESCALER_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1)                        /*!< fCHPFRQ = fHRTIM / 240  */
1329 #define LL_HRTIM_CHP_PRESCALER_DIV256 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)  /*!< fCHPFRQ = fHRTIM / 256  */
1330 /**
1331   * @}
1332   */
1333 
1334 /** @defgroup HRTIM_LL_EC_CHP_DUTYCYCLE CHOPPER MODE DUTY CYCLE
1335   * @{
1336   * @brief Constants defining the duty cycle of the generated high frequency carrier. Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8).
1337   */
1338 #define LL_HRTIM_CHP_DUTYCYCLE_0    0x00000000U                                              /*!< Only 1st pulse is present */
1339 #define LL_HRTIM_CHP_DUTYCYCLE_125  (HRTIM_CHPR_CARDTY_0)                                             /*!< Duty cycle of the carrier signal is 12.5 % */
1340 #define LL_HRTIM_CHP_DUTYCYCLE_250  (HRTIM_CHPR_CARDTY_1)                                             /*!< Duty cycle of the carrier signal is 25 % */
1341 #define LL_HRTIM_CHP_DUTYCYCLE_375  (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0)                       /*!< Duty cycle of the carrier signal is 37.5 % */
1342 #define LL_HRTIM_CHP_DUTYCYCLE_500  (HRTIM_CHPR_CARDTY_2)                                             /*!< Duty cycle of the carrier signal is 50 % */
1343 #define LL_HRTIM_CHP_DUTYCYCLE_625  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0)                       /*!< Duty cycle of the carrier signal is 62.5 % */
1344 #define LL_HRTIM_CHP_DUTYCYCLE_750  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1)                       /*!< Duty cycle of the carrier signal is 75 % */
1345 #define LL_HRTIM_CHP_DUTYCYCLE_875  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 87.5 % */
1346 /**
1347   * @}
1348   */
1349 
1350 /** @defgroup HRTIM_LL_EC_CHP_PULSEWIDTH CHOPPER MODE PULSE WIDTH
1351   * @{
1352   * @brief Constants defining the pulse width of the first pulse of the generated high frequency carrier.
1353   */
1354 #define LL_HRTIM_CHP_PULSEWIDTH_16   0x00000000U                                                                 /*!< tSTPW = tHRTIM x 16  */
1355 #define LL_HRTIM_CHP_PULSEWIDTH_32   (HRTIM_CHPR_STRPW_0)                                                                 /*!< tSTPW = tHRTIM x 32  */
1356 #define LL_HRTIM_CHP_PULSEWIDTH_48   (HRTIM_CHPR_STRPW_1)                                                                 /*!< tSTPW = tHRTIM x 48  */
1357 #define LL_HRTIM_CHP_PULSEWIDTH_64   (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 64  */
1358 #define LL_HRTIM_CHP_PULSEWIDTH_80   (HRTIM_CHPR_STRPW_2)                                                                 /*!< tSTPW = tHRTIM x 80  */
1359 #define LL_HRTIM_CHP_PULSEWIDTH_96   (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 96  */
1360 #define LL_HRTIM_CHP_PULSEWIDTH_112  (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1)                                            /*!< tSTPW = tHRTIM x 112  */
1361 #define LL_HRTIM_CHP_PULSEWIDTH_128  (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 128  */
1362 #define LL_HRTIM_CHP_PULSEWIDTH_144  (HRTIM_CHPR_STRPW_3)                                                                 /*!< tSTPW = tHRTIM x 144  */
1363 #define LL_HRTIM_CHP_PULSEWIDTH_160  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 160  */
1364 #define LL_HRTIM_CHP_PULSEWIDTH_176  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1)                                            /*!< tSTPW = tHRTIM x 176  */
1365 #define LL_HRTIM_CHP_PULSEWIDTH_192  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 192  */
1366 #define LL_HRTIM_CHP_PULSEWIDTH_208  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2)                                            /*!< tSTPW = tHRTIM x 208  */
1367 #define LL_HRTIM_CHP_PULSEWIDTH_224  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 224  */
1368 #define LL_HRTIM_CHP_PULSEWIDTH_240  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1)                       /*!< tSTPW = tHRTIM x 240  */
1369 #define LL_HRTIM_CHP_PULSEWIDTH_256  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)  /*!< tSTPW = tHRTIM x 256  */
1370 /**
1371   * @}
1372   */
1373 
1374 /** @defgroup HRTIM_LL_EC_OUTPUTSET_INPUT OUTPUTSET INPUT
1375   * @{
1376   * @brief Constants defining the events that can be selected to configure the set/reset crossbar of a timer output.
1377   */
1378 #define LL_HRTIM_OUTPUTSET_NONE                0x00000000U             /*!< Reset the output set crossbar */
1379 #define LL_HRTIM_OUTPUTSET_RESYNC              (HRTIM_SET1R_RESYNC)    /*!< Timer reset event coming solely from software or SYNC input forces an output level transition */
1380 #define LL_HRTIM_OUTPUTSET_TIMPER              (HRTIM_SET1R_PER)       /*!< Timer period event forces an output level transition */
1381 #define LL_HRTIM_OUTPUTSET_TIMCMP1             (HRTIM_SET1R_CMP1)      /*!< Timer compare 1 event forces an output level transition */
1382 #define LL_HRTIM_OUTPUTSET_TIMCMP2             (HRTIM_SET1R_CMP2)      /*!< Timer compare 2 event forces an output level transition */
1383 #define LL_HRTIM_OUTPUTSET_TIMCMP3             (HRTIM_SET1R_CMP3)      /*!< Timer compare 3 event forces an output level transition */
1384 #define LL_HRTIM_OUTPUTSET_TIMCMP4             (HRTIM_SET1R_CMP4)      /*!< Timer compare 4 event forces an output level transition */
1385 #define LL_HRTIM_OUTPUTSET_MASTERPER           (HRTIM_SET1R_MSTPER)    /*!< The master timer period event forces an output level transition */
1386 #define LL_HRTIM_OUTPUTSET_MASTERCMP1          (HRTIM_SET1R_MSTCMP1)   /*!< Master Timer compare 1 event forces an output level transition */
1387 #define LL_HRTIM_OUTPUTSET_MASTERCMP2          (HRTIM_SET1R_MSTCMP2)   /*!< Master Timer compare 2 event forces an output level transition */
1388 #define LL_HRTIM_OUTPUTSET_MASTERCMP3          (HRTIM_SET1R_MSTCMP3)   /*!< Master Timer compare 3 event forces an output level transition */
1389 #define LL_HRTIM_OUTPUTSET_MASTERCMP4          (HRTIM_SET1R_MSTCMP4)   /*!< Master Timer compare 4 event forces an output level transition */
1390 /* Timer Events mapping for Timer A */
1391 #define LL_HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its active state */
1392 #define LL_HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its active state */
1393 #define LL_HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its active state */
1394 #define LL_HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its active state */
1395 #define LL_HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its active state */
1396 #define LL_HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its active state */
1397 #define LL_HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its active state */
1398 #define LL_HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its active state */
1399 #define LL_HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its active state */
1400 /* Timer Events mapping for Timer B */
1401 #define LL_HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its active state */
1402 #define LL_HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its active state */
1403 #define LL_HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its active state */
1404 #define LL_HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its active state */
1405 #define LL_HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its active state */
1406 #define LL_HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its active state */
1407 #define LL_HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its active state */
1408 #define LL_HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its active state */
1409 #define LL_HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its active state */
1410 /* Timer Events mapping for Timer C */
1411 #define LL_HRTIM_OUTPUTSET_TIMCEV1_TIMACMP2    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its active state */
1412 #define LL_HRTIM_OUTPUTSET_TIMCEV2_TIMACMP3    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its active state */
1413 #define LL_HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its active state */
1414 #define LL_HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its active state */
1415 #define LL_HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its active state */
1416 #define LL_HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its active state */
1417 #define LL_HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its active state */
1418 #define LL_HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its active state */
1419 #define LL_HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its active state */
1420 /* Timer Events mapping for Timer D */
1421 #define LL_HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its active state */
1422 #define LL_HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its active state */
1423 #define LL_HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its active state */
1424 #define LL_HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its active state */
1425 #define LL_HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its active state */
1426 #define LL_HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its active state */
1427 #define LL_HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its active state */
1428 #define LL_HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its active state */
1429 #define LL_HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its active state */
1430 /* Timer Events mapping for Timer E */
1431 #define LL_HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its active state */
1432 #define LL_HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its active state */
1433 #define LL_HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its active state */
1434 #define LL_HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its active state */
1435 #define LL_HRTIM_OUTPUTSET_TIMEEV5_TIMCCMP2    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its active state */
1436 #define LL_HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its active state */
1437 #define LL_HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its active state */
1438 #define LL_HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its active state */
1439 #define LL_HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its active state */
1440 /* Timer Events mapping for Timer F */
1441 #define LL_HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its active state */
1442 #define LL_HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its active state */
1443 #define LL_HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its active state */
1444 #define LL_HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its active state */
1445 #define LL_HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its active state */
1446 #define LL_HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its active state */
1447 #define LL_HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its active state */
1448 #define LL_HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its active state */
1449 #define LL_HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its active state */
1450 #define LL_HRTIM_OUTPUTSET_EEV_1               (HRTIM_SET1R_EXTVNT1)   /*!< External event 1 forces an output level transition */
1451 #define LL_HRTIM_OUTPUTSET_EEV_2               (HRTIM_SET1R_EXTVNT2)   /*!< External event 2 forces an output level transition */
1452 #define LL_HRTIM_OUTPUTSET_EEV_3               (HRTIM_SET1R_EXTVNT3)   /*!< External event 3 forces an output level transition */
1453 #define LL_HRTIM_OUTPUTSET_EEV_4               (HRTIM_SET1R_EXTVNT4)   /*!< External event 4 forces an output level transition */
1454 #define LL_HRTIM_OUTPUTSET_EEV_5               (HRTIM_SET1R_EXTVNT5)   /*!< External event 5 forces an output level transition */
1455 #define LL_HRTIM_OUTPUTSET_EEV_6               (HRTIM_SET1R_EXTVNT6)   /*!< External event 6 forces an output level transition */
1456 #define LL_HRTIM_OUTPUTSET_EEV_7               (HRTIM_SET1R_EXTVNT7)   /*!< External event 7 forces an output level transition */
1457 #define LL_HRTIM_OUTPUTSET_EEV_8               (HRTIM_SET1R_EXTVNT8)   /*!< External event 8 forces an output level transition */
1458 #define LL_HRTIM_OUTPUTSET_EEV_9               (HRTIM_SET1R_EXTVNT9)   /*!< External event 9 forces an output level transition */
1459 #define LL_HRTIM_OUTPUTSET_EEV_10              (HRTIM_SET1R_EXTVNT10)  /*!< External event 10 forces an output level transition */
1460 #define LL_HRTIM_OUTPUTSET_UPDATE              (HRTIM_SET1R_UPDATE)    /*!< Timer register update event forces an output level transition */
1461 /**
1462   * @}
1463   */
1464 
1465 /** @defgroup HRTIM_Output_Reset_Source HRTIM Output Reset Source
1466   * @{
1467   * @brief Constants defining the events that can be selected to configure the
1468   *        set crossbar of a timer output
1469   */
1470 #define LL_HRTIM_OUTPUTRESET_NONE                0x00000000U             /*!< Reset the output reset crossbar */
1471 #define LL_HRTIM_OUTPUTRESET_RESYNC              (HRTIM_RST1R_RESYNC)    /*!< Timer reset event coming solely from software or SYNC input forces the output to its inactive state */
1472 #define LL_HRTIM_OUTPUTRESET_TIMPER              (HRTIM_RST1R_PER)       /*!< Timer period event forces the output to its inactive state */
1473 #define LL_HRTIM_OUTPUTRESET_TIMCMP1             (HRTIM_RST1R_CMP1)      /*!< Timer compare 1 event forces the output to its inactive state */
1474 #define LL_HRTIM_OUTPUTRESET_TIMCMP2             (HRTIM_RST1R_CMP2)      /*!< Timer compare 2 event forces the output to its inactive state */
1475 #define LL_HRTIM_OUTPUTRESET_TIMCMP3             (HRTIM_RST1R_CMP3)      /*!< Timer compare 3 event forces the output to its inactive state */
1476 #define LL_HRTIM_OUTPUTRESET_TIMCMP4             (HRTIM_RST1R_CMP4)      /*!< Timer compare 4 event forces the output to its inactive state */
1477 #define LL_HRTIM_OUTPUTRESET_MASTERPER           (HRTIM_RST1R_MSTPER)    /*!< The master timer period event forces the output to its inactive state */
1478 #define LL_HRTIM_OUTPUTRESET_MASTERCMP1          (HRTIM_RST1R_MSTCMP1)   /*!< Master Timer compare 1 event forces the output to its inactive state */
1479 #define LL_HRTIM_OUTPUTRESET_MASTERCMP2          (HRTIM_RST1R_MSTCMP2)   /*!< Master Timer compare 2 event forces the output to its inactive state */
1480 #define LL_HRTIM_OUTPUTRESET_MASTERCMP3          (HRTIM_RST1R_MSTCMP3)   /*!< Master Timer compare 3 event forces the output to its inactive state */
1481 #define LL_HRTIM_OUTPUTRESET_MASTERCMP4          (HRTIM_RST1R_MSTCMP4)   /*!< Master Timer compare 4 event forces the output to its inactive state */
1482 /* Timer Events mapping for Timer A */
1483 #define LL_HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1    (HRTIM_RST1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its inactive state */
1484 #define LL_HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2    (HRTIM_RST1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its inactive state */
1485 #define LL_HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2    (HRTIM_RST1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its inactive state */
1486 #define LL_HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3    (HRTIM_RST1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its inactive state */
1487 #define LL_HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1    (HRTIM_RST1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its inactive state */
1488 #define LL_HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2    (HRTIM_RST1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its inactive state */
1489 #define LL_HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3    (HRTIM_RST1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its inactive state */
1490 #define LL_HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4    (HRTIM_RST1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its inactive state */
1491 #define LL_HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4    (HRTIM_RST1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its inactive state */
1492 /* Timer Events mapping for Timer B */
1493 #define LL_HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1    (HRTIM_RST1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its inactive state */
1494 #define LL_HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2    (HRTIM_RST1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its inactive state */
1495 #define LL_HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3    (HRTIM_RST1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its inactive state */
1496 #define LL_HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4    (HRTIM_RST1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its inactive state */
1497 #define LL_HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3    (HRTIM_RST1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its inactive state */
1498 #define LL_HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4    (HRTIM_RST1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its inactive state */
1499 #define LL_HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1    (HRTIM_RST1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its inactive state */
1500 #define LL_HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2    (HRTIM_RST1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its inactive state */
1501 #define LL_HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3    (HRTIM_RST1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its inactive state */
1502 /* Timer Events mapping for Timer C */
1503 #define LL_HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP2    (HRTIM_RST1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its inactive state */
1504 #define LL_HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP3    (HRTIM_RST1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its inactive state */
1505 #define LL_HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2    (HRTIM_RST1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its inactive state */
1506 #define LL_HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3    (HRTIM_RST1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its inactive state */
1507 #define LL_HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2    (HRTIM_RST1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its inactive state */
1508 #define LL_HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4    (HRTIM_RST1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its inactive state */
1509 #define LL_HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3    (HRTIM_RST1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its inactive state */
1510 #define LL_HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4    (HRTIM_RST1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its inactive state */
1511 #define LL_HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2    (HRTIM_RST1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its inactive state */
1512 /* Timer Events mapping for Timer D */
1513 #define LL_HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1    (HRTIM_RST1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its inactive state */
1514 #define LL_HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4    (HRTIM_RST1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its inactive state */
1515 #define LL_HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2    (HRTIM_RST1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its inactive state */
1516 #define LL_HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4    (HRTIM_RST1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its inactive state */
1517 #define LL_HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4    (HRTIM_RST1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its inactive state */
1518 #define LL_HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1    (HRTIM_RST1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its inactive state */
1519 #define LL_HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4    (HRTIM_RST1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its inactive state */
1520 #define LL_HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1    (HRTIM_RST1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its inactive state */
1521 #define LL_HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3    (HRTIM_RST1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its inactive state */
1522 /* Timer Events mapping for Timer E */
1523 #define LL_HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4    (HRTIM_RST1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its inactive state */
1524 #define LL_HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3    (HRTIM_RST1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its inactive state */
1525 #define LL_HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4    (HRTIM_RST1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its inactive state */
1526 #define LL_HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1    (HRTIM_RST1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its inactive state */
1527 #define LL_HRTIM_OUTPUTRESET_TIMEEV5_TIMCCMP2    (HRTIM_RST1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its inactive state */
1528 #define LL_HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1    (HRTIM_RST1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its inactive state */
1529 #define LL_HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2    (HRTIM_RST1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its inactive state */
1530 #define LL_HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3    (HRTIM_RST1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its inactive state */
1531 #define LL_HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4    (HRTIM_RST1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its inactive state */
1532 /* Timer Events mapping for Timer F */
1533 #define LL_HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3    (HRTIM_RST1R_TIMEVNT1)  /*!< Timer event 1 forces the output to its inactive state */
1534 #define LL_HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1    (HRTIM_RST1R_TIMEVNT2)  /*!< Timer event 2 forces the output to its inactive state */
1535 #define LL_HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4    (HRTIM_RST1R_TIMEVNT3)  /*!< Timer event 3 forces the output to its inactive state */
1536 #define LL_HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1    (HRTIM_RST1R_TIMEVNT4)  /*!< Timer event 4 forces the output to its inactive state */
1537 #define LL_HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4    (HRTIM_RST1R_TIMEVNT5)  /*!< Timer event 5 forces the output to its inactive state */
1538 #define LL_HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3    (HRTIM_RST1R_TIMEVNT6)  /*!< Timer event 6 forces the output to its inactive state */
1539 #define LL_HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4    (HRTIM_RST1R_TIMEVNT7)  /*!< Timer event 7 forces the output to its inactive state */
1540 #define LL_HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2    (HRTIM_RST1R_TIMEVNT8)  /*!< Timer event 8 forces the output to its inactive state */
1541 #define LL_HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3    (HRTIM_RST1R_TIMEVNT9)  /*!< Timer event 9 forces the output to its inactive state */
1542 #define LL_HRTIM_OUTPUTRESET_EEV_1               (HRTIM_RST1R_EXTVNT1)   /*!< External event 1 forces the output to its inactive state */
1543 #define LL_HRTIM_OUTPUTRESET_EEV_2               (HRTIM_RST1R_EXTVNT2)   /*!< External event 2 forces the output to its inactive state */
1544 #define LL_HRTIM_OUTPUTRESET_EEV_3               (HRTIM_RST1R_EXTVNT3)   /*!< External event 3 forces the output to its inactive state */
1545 #define LL_HRTIM_OUTPUTRESET_EEV_4               (HRTIM_RST1R_EXTVNT4)   /*!< External event 4 forces the output to its inactive state */
1546 #define LL_HRTIM_OUTPUTRESET_EEV_5               (HRTIM_RST1R_EXTVNT5)   /*!< External event 5 forces the output to its inactive state */
1547 #define LL_HRTIM_OUTPUTRESET_EEV_6               (HRTIM_RST1R_EXTVNT6)   /*!< External event 6 forces the output to its inactive state */
1548 #define LL_HRTIM_OUTPUTRESET_EEV_7               (HRTIM_RST1R_EXTVNT7)   /*!< External event 7 forces the output to its inactive state */
1549 #define LL_HRTIM_OUTPUTRESET_EEV_8               (HRTIM_RST1R_EXTVNT8)   /*!< External event 8 forces the output to its inactive state */
1550 #define LL_HRTIM_OUTPUTRESET_EEV_9               (HRTIM_RST1R_EXTVNT9)   /*!< External event 9 forces the output to its inactive state */
1551 #define LL_HRTIM_OUTPUTRESET_EEV_10              (HRTIM_RST1R_EXTVNT10)  /*!< External event 10 forces the output to its inactive state */
1552 #define LL_HRTIM_OUTPUTRESET_UPDATE              (HRTIM_RST1R_UPDATE)    /*!< Timer register update event forces the output to its inactive state */
1553 /**
1554   * @}
1555   */
1556 
1557 /** @defgroup HRTIM_LL_EC_OUT_POLARITY OUPUT_POLARITY
1558   * @{
1559   * @brief Constants defining the polarity of a timer output.
1560   */
1561 #define LL_HRTIM_OUT_POSITIVE_POLARITY    0x00000000U             /*!< Output is active HIGH */
1562 #define LL_HRTIM_OUT_NEGATIVE_POLARITY    (HRTIM_OUTR_POL1)       /*!< Output is active LOW */
1563 /**
1564   * @}
1565   */
1566 
1567 /** @defgroup HRTIM_LL_EC_OUT_IDLEMODE OUTPUT IDLE MODE
1568   * @{
1569   * @brief Constants defining whether or not the timer output transition to its IDLE state when burst mode is entered.
1570   */
1571 #define LL_HRTIM_OUT_NO_IDLE             0x00000000U            /*!< The output is not affected by the burst mode operation */
1572 #define LL_HRTIM_OUT_IDLE_WHEN_BURST     (HRTIM_OUTR_IDLM1)     /*!< The output is in idle state when requested by the burst mode controller */
1573 /**
1574   * @}
1575   */
1576 
1577 /** @defgroup HRTIM_LL_EC_INTLVD_MODE INTLVD MODE
1578   * @{
1579   * @brief Constants defining the interleaved mode of an HRTIM Timer instance.
1580   */
1581 #define LL_HRTIM_INTERLEAVED_MODE_DISABLED   0x000U              /*!< HRTIM interleaved Mode is disabled */
1582 #define LL_HRTIM_INTERLEAVED_MODE_DUAL       HRTIM_MCR_HALF      /*!< HRTIM interleaved Mode is Dual */
1583 #define LL_HRTIM_INTERLEAVED_MODE_TRIPLE     HRTIM_MCR_INTLVD_0  /*!< HRTIM interleaved Mode is Triple */
1584 #define LL_HRTIM_INTERLEAVED_MODE_QUAD       HRTIM_MCR_INTLVD_1  /*!< HRTIM interleaved Mode is Quad */
1585 /**
1586   * @}
1587   */
1588 /** @defgroup HRTIM_LL_EC_HALF_MODE HALF MODE
1589   * @{
1590   * @brief Constants defining the half mode of an HRTIM Timer instance.
1591   */
1592 #define LL_HRTIM_HALF_MODE_DISABLED          0x000U              /*!< HRTIM Half Mode is disabled */
1593 #define LL_HRTIM_HALF_MODE_ENABLE            HRTIM_MCR_HALF      /*!< HRTIM Half Mode is Half */
1594 /**
1595   * @}
1596   */
1597 
1598 /** @defgroup HRTIM_LL_EC_OUT_IDLELEVEL OUTPUT IDLE LEVEL
1599   * @{
1600   * @brief Constants defining the output level when output is in IDLE state
1601   */
1602 #define LL_HRTIM_OUT_IDLELEVEL_INACTIVE   0x00000000U           /*!< Output at inactive level when in IDLE state */
1603 #define LL_HRTIM_OUT_IDLELEVEL_ACTIVE     (HRTIM_OUTR_IDLES1)   /*!< Output at active level when in IDLE state */
1604 /**
1605   * @}
1606   */
1607 
1608 /** @defgroup HRTIM_LL_EC_OUT_FAULTSTATE OUTPUT FAULT STATE
1609   * @{
1610   * @brief Constants defining the output level when output is in FAULT state.
1611   */
1612 #define LL_HRTIM_OUT_FAULTSTATE_NO_ACTION 0x00000000U                      /*!< The output is not affected by the fault input */
1613 #define LL_HRTIM_OUT_FAULTSTATE_ACTIVE    (HRTIM_OUTR_FAULT1_0)                        /*!< Output at active level when in FAULT state */
1614 #define LL_HRTIM_OUT_FAULTSTATE_INACTIVE  (HRTIM_OUTR_FAULT1_1)                        /*!< Output at inactive level when in FAULT state */
1615 #define LL_HRTIM_OUT_FAULTSTATE_HIGHZ     (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0)  /*!< Output is tri-stated when in FAULT state */
1616 /**
1617   * @}
1618   */
1619 
1620 /** @defgroup HRTIM_LL_EC_OUT_CHOPPERMODE OUTPUT CHOPPER MODE
1621   * @{
1622   * @brief Constants defining whether or not chopper mode is enabled for a timer output.
1623   */
1624 #define LL_HRTIM_OUT_CHOPPERMODE_DISABLED   0x00000000U             /*!< Output signal is not altered  */
1625 #define LL_HRTIM_OUT_CHOPPERMODE_ENABLED    (HRTIM_OUTR_CHP1)       /*!< Output signal is chopped by a carrier signal  */
1626 /**
1627   * @}
1628   */
1629 
1630 /** @defgroup HRTIM_LL_EC_OUT_BM_ENTRYMODE OUTPUT BURST MODE ENTRY MODE
1631   * @{
1632   * @brief Constants defining the idle state entry mode during a burst mode operation. It is possible to delay the burst mode entry and force the output to an inactive state
1633 during a programmable period before the output takes its idle state.
1634   */
1635 #define LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR   0x00000000U            /*!< The programmed Idle state is applied immediately to the Output */
1636 #define LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED   (HRTIM_OUTR_DIDL1)     /*!< Deadtime is inserted on output before entering the idle mode */
1637 /**
1638   * @}
1639   */
1640 /** @defgroup HRTIM_LL_EC_OUT_LEVEL OUTPUT LEVEL
1641   * @{
1642   * @brief Constants defining the level of a timer output.
1643   */
1644 #define LL_HRTIM_OUT_LEVEL_INACTIVE   0x00000000U            /*!< Corresponds to a logic level 0 for a positive polarity (High) and to a logic level 1 for a negative polarity (Low) */
1645 #define LL_HRTIM_OUT_LEVEL_ACTIVE     ((uint32_t)0x00000001) /*!< Corresponds to a logic level 1 for a positive polarity (High) and to a logic level 0 for a negative polarity (Low) */
1646 /**
1647   * @}
1648   */
1649 
1650 /** @defgroup HRTIM_LL_EC_EE_SRC EXTERNAL EVENT SOURCE
1651   * @{
1652   * @brief Constants defining available sources associated to external events.
1653   */
1654 #define LL_HRTIM_EEV1SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 1 */
1655 #define LL_HRTIM_EEV2SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 2 */
1656 #define LL_HRTIM_EEV3SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 3 */
1657 #define LL_HRTIM_EEV4SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 4 */
1658 #define LL_HRTIM_EEV5SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 5 */
1659 #define LL_HRTIM_EEV6SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 6 */
1660 #define LL_HRTIM_EEV7SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 7 */
1661 #define LL_HRTIM_EEV8SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 8 */
1662 #define LL_HRTIM_EEV9SRC_GPIO        0x00000000U                                   /*!< External event source 1 for External Event 9 */
1663 #define LL_HRTIM_EEV10SRC_GPIO       0x00000000U                                   /*!< External event source 1 for External Event 10 */
1664 #define LL_HRTIM_EEV1SRC_COMP2_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 1 */
1665 #define LL_HRTIM_EEV2SRC_COMP4_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 2 */
1666 #define LL_HRTIM_EEV3SRC_COMP6_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 3 */
1667 #define LL_HRTIM_EEV4SRC_COMP1_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 4 */
1668 #define LL_HRTIM_EEV5SRC_COMP3_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 5 */
1669 #define LL_HRTIM_EEV6SRC_COMP2_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 6 */
1670 #define LL_HRTIM_EEV7SRC_COMP4_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 7 */
1671 #define LL_HRTIM_EEV8SRC_COMP6_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 8 */
1672 #define LL_HRTIM_EEV9SRC_COMP5_OUT   (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 9 */
1673 #define LL_HRTIM_EEV10SRC_COMP7_OUT  (HRTIM_EECR1_EE1SRC_0)                        /*!< External event source 2 for External Event 10 */
1674 #define LL_HRTIM_EEV1SRC_TIM1_TRGO   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 1 */
1675 #define LL_HRTIM_EEV2SRC_TIM2_TRGO   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 2 */
1676 #define LL_HRTIM_EEV3SRC_TIM3_TRGO   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 3 */
1677 #define LL_HRTIM_EEV4SRC_COMP5_OUT   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 4 */
1678 #define LL_HRTIM_EEV5SRC_COMP7_OUT   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 5 */
1679 #define LL_HRTIM_EEV6SRC_COMP1_OUT   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 6 */
1680 #define LL_HRTIM_EEV7SRC_TIM7_TRGO   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 7 */
1681 #define LL_HRTIM_EEV8SRC_COMP3_OUT   (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 8 */
1682 #define LL_HRTIM_EEV9SRC_TIM15_TRGO  (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 9 */
1683 #define LL_HRTIM_EEV10SRC_TIM6_TRGO  (HRTIM_EECR1_EE1SRC_1)                        /*!< External event source 3 for External Event 10 */
1684 #define LL_HRTIM_EEV1SRC_ADC1_AWD1   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 1 */
1685 #define LL_HRTIM_EEV2SRC_ADC1_AWD2   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 2 */
1686 #define LL_HRTIM_EEV3SRC_ADC1_AWD3   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 3 */
1687 #define LL_HRTIM_EEV4SRC_ADC2_AWD1   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 4 */
1688 #define LL_HRTIM_EEV5SRC_ADC2_AWD2   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 5 */
1689 #define LL_HRTIM_EEV6SRC_ADC2_AWD3   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 6 */
1690 #define LL_HRTIM_EEV7SRC_ADC3_AWD1   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 7 */
1691 #define LL_HRTIM_EEV8SRC_ADC4_AWD1   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 8 */
1692 #define LL_HRTIM_EEV9SRC_COMP4_OUT   (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 9 */
1693 #define LL_HRTIM_EEV10SRC_ADC5_AWD1  (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 for External Event 10 */
1694 /**
1695   * @}
1696   */
1697 /** @defgroup HRTIM_LL_EC_EE_POLARITY EXTERNAL EVENT POLARITY
1698   * @{
1699   * @brief Constants defining the polarity of an external event.
1700   */
1701 #define LL_HRTIM_EE_POLARITY_HIGH    0x00000000U             /*!< External event is active high */
1702 #define LL_HRTIM_EE_POLARITY_LOW     (HRTIM_EECR1_EE1POL)    /*!< External event is active low */
1703 /**
1704   * @}
1705   */
1706 
1707 /** @defgroup HRTIM_LL_EC_EE_SENSITIVITY EXTERNAL EVENT SENSITIVITY
1708   * @{
1709   * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive) of an external event.
1710   */
1711 #define LL_HRTIM_EE_SENSITIVITY_LEVEL          0x00000000U                        /*!< External event is active on level */
1712 #define LL_HRTIM_EE_SENSITIVITY_RISINGEDGE     (HRTIM_EECR1_EE1SNS_0)                         /*!< External event is active on Rising edge */
1713 #define LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE    (HRTIM_EECR1_EE1SNS_1)                         /*!< External event is active on Falling edge */
1714 #define LL_HRTIM_EE_SENSITIVITY_BOTHEDGES      (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0)  /*!< External event is active on Rising and Falling edges */
1715 /**
1716   * @}
1717   */
1718 
1719 /** @defgroup HRTIM_LL_EC_EE_FASTMODE EXTERNAL EVENT FAST MODE
1720   * @{
1721   * @brief Constants defining whether or not an external event is programmed in fast mode.
1722   */
1723 #define LL_HRTIM_EE_FASTMODE_DISABLE         0x00000000U              /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs */
1724 #define LL_HRTIM_EE_FASTMODE_ENABLE          (HRTIM_EECR1_EE1FAST)    /*!< External Event is acting asynchronously on outputs (low latency mode) */
1725 /**
1726   * @}
1727   */
1728 
1729 /** @defgroup HRTIM_LL_EC_EE_FILTER EXTERNAL EVENT DIGITAL FILTER
1730   * @{
1731   * @brief Constants defining the frequency used to sample an external event input (fSAMPLING) and the length (N) of the digital filter applied.
1732   */
1733 #define LL_HRTIM_EE_FILTER_NONE      0x00000000U                                                               /*!< Filter disabled */
1734 #define LL_HRTIM_EE_FILTER_1         (HRTIM_EECR3_EE6F_0)                                                                  /*!< fSAMPLING = fHRTIM, N=2 */
1735 #define LL_HRTIM_EE_FILTER_2         (HRTIM_EECR3_EE6F_1)                                                                  /*!< fSAMPLING = fHRTIM, N=4 */
1736 #define LL_HRTIM_EE_FILTER_3         (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING = fHRTIM, N=8 */
1737 #define LL_HRTIM_EE_FILTER_4         (HRTIM_EECR3_EE6F_2)                                                                  /*!< fSAMPLING = fEEVS/2, N=6 */
1738 #define LL_HRTIM_EE_FILTER_5         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING = fEEVS/2, N=8 */
1739 #define LL_HRTIM_EE_FILTER_6         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1)                                             /*!< fSAMPLING = fEEVS/4, N=6 */
1740 #define LL_HRTIM_EE_FILTER_7         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                        /*!< fSAMPLING = fEEVS/4, N=8 */
1741 #define LL_HRTIM_EE_FILTER_8         (HRTIM_EECR3_EE6F_3)                                                                  /*!< fSAMPLING = fEEVS/8, N=6 */
1742 #define LL_HRTIM_EE_FILTER_9         (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING = fEEVS/8, N=8 */
1743 #define LL_HRTIM_EE_FILTER_10        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1)                                             /*!< fSAMPLING = fEEVS/16, N=5 */
1744 #define LL_HRTIM_EE_FILTER_11        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                        /*!< fSAMPLING = fEEVS/16, N=6 */
1745 #define LL_HRTIM_EE_FILTER_12        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2)                                             /*!< fSAMPLING = fEEVS/16, N=8 */
1746 #define LL_HRTIM_EE_FILTER_13        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_0)                       /*!< fSAMPLING = fEEVS/32, N=5 */
1747 #define LL_HRTIM_EE_FILTER_14        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_1)                       /*!< fSAMPLING = fEEVS/32, N=6 */
1748 #define LL_HRTIM_EE_FILTER_15        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)  /*!< fSAMPLING = fEEVS/32, N=8 */
1749 /**
1750   * @}
1751   */
1752 
1753 /** @defgroup HRTIM_LL_EC_EE_PRESCALER EXTERNAL EVENT PRESCALER
1754   * @{
1755   * @brief Constants defining division ratio between the timer clock frequency (fHRTIM) and the external event signal sampling clock (fEEVS) used by the digital filters.
1756   */
1757 #define LL_HRTIM_EE_PRESCALER_DIV1    0x00000000U                     /*!< fEEVS = fHRTIM */
1758 #define LL_HRTIM_EE_PRESCALER_DIV2    (HRTIM_EECR3_EEVSD_0)                       /*!< fEEVS = fHRTIM / 2 */
1759 #define LL_HRTIM_EE_PRESCALER_DIV4    (HRTIM_EECR3_EEVSD_1)                       /*!< fEEVS = fHRTIM / 4 */
1760 #define LL_HRTIM_EE_PRESCALER_DIV8    (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0) /*!< fEEVS = fHRTIM / 8 */
1761 /**
1762   * @}
1763   */
1764 
1765 /** @defgroup HRTIM_LL_EC_EE_COUNTER EXTERNAL EVENT A or B COUNTER
1766   * @{
1767   * @brief Constants defining the external event counter.
1768   */
1769 #define LL_HRTIM_EE_COUNTER_A    ((uint32_t)0U)                     /*!< External Event A Counter */
1770 #define LL_HRTIM_EE_COUNTER_B    ((uint32_t)16U)                    /*!< External Event B Counter */
1771 /**
1772   * @}
1773   */
1774 
1775 /** @defgroup HRTIM_LL_EC_EE_COUNTERRSTMODE EXTERNAL EVENT A or B RESET MODE
1776   * @{
1777   * @brief Constants defining the external event reset mode.
1778   */
1779 #define LL_HRTIM_EE_COUNTER_RSTMODE_UNCONDITIONAL   ((uint32_t)0U)                     /*!< External Event counter is reset on each reset / roll-over event */
1780 #define LL_HRTIM_EE_COUNTER_RSTMODE_CONDITIONAL     ((uint32_t)HRTIM_EEFR3_EEVARSTM)   /*!< External Event counter is reset on each reset / roll-over event only if no event occurs during last counting period */
1781 /**
1782   * @}
1783   */
1784 
1785 /** @defgroup HRTIM_LL_EC_FLT_SRC FAULT SOURCE
1786   * @{
1787   * @brief Constants defining whether a faults is be triggered by any external or internal fault source.
1788   */
1789 #define LL_HRTIM_FLT_SRC_DIGITALINPUT         0x00000000U                /*!< Fault input is FLT input pin */
1790 #define LL_HRTIM_FLT_SRC_INTERNAL             HRTIM_FLTINR1_FLT1SRC_0    /*!< Fault input is FLT_Int signal (e.g. internal comparator) */
1791 #define LL_HRTIM_FLT_SRC_EEVINPUT             HRTIM_FLTINR2_FLT1SRC_1    /*!< Fault input is external event  pin */
1792 /**
1793   * @}
1794   */
1795 
1796 /** @defgroup HRTIM_LL_EC_FLT_POLARITY FAULT POLARITY
1797   * @{
1798   * @brief Constants defining the polarity of a fault event.
1799   */
1800 #define LL_HRTIM_FLT_POLARITY_LOW     0x00000000U                /*!< Fault input is active low */
1801 #define LL_HRTIM_FLT_POLARITY_HIGH    (HRTIM_FLTINR1_FLT1P)      /*!< Fault input is active high */
1802 /**
1803   * @}
1804   */
1805 
1806 /** @defgroup HRTIM_LL_EC_FLT_FILTER FAULT DIGITAL FILTER
1807   * @{
1808   * @brief Constants defining the frequency used to sample the fault input (fSAMPLING) and the length (N) of the digital filter applied.
1809   */
1810 #define LL_HRTIM_FLT_FILTER_NONE      0x00000000U                                                                          /*!< Filter disabled */
1811 #define LL_HRTIM_FLT_FILTER_1         (HRTIM_FLTINR1_FLT1F_0)                                                                          /*!< fSAMPLING= fHRTIM, N=2 */
1812 #define LL_HRTIM_FLT_FILTER_2         (HRTIM_FLTINR1_FLT1F_1)                                                                          /*!< fSAMPLING= fHRTIM, N=4 */
1813 #define LL_HRTIM_FLT_FILTER_3         (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fHRTIM, N=8 */
1814 #define LL_HRTIM_FLT_FILTER_4         (HRTIM_FLTINR1_FLT1F_2)                                                                          /*!< fSAMPLING= fFLTS/2, N=6 */
1815 #define LL_HRTIM_FLT_FILTER_5         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fFLTS/2, N=8 */
1816 #define LL_HRTIM_FLT_FILTER_6         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1)                                                  /*!< fSAMPLING= fFLTS/4, N=6 */
1817 #define LL_HRTIM_FLT_FILTER_7         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/4, N=8 */
1818 #define LL_HRTIM_FLT_FILTER_8         (HRTIM_FLTINR1_FLT1F_3)                                                                          /*!< fSAMPLING= fFLTS/8, N=6 */
1819 #define LL_HRTIM_FLT_FILTER_9         (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fFLTS/8, N=8 */
1820 #define LL_HRTIM_FLT_FILTER_10        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1)                                                  /*!< fSAMPLING= fFLTS/16, N=5 */
1821 #define LL_HRTIM_FLT_FILTER_11        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/16, N=6 */
1822 #define LL_HRTIM_FLT_FILTER_12        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2)                                                  /*!< fSAMPLING= fFLTS/16, N=8 */
1823 #define LL_HRTIM_FLT_FILTER_13        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/32, N=5 */
1824 #define LL_HRTIM_FLT_FILTER_14        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1)                          /*!< fSAMPLING= fFLTS/32, N=6 */
1825 #define LL_HRTIM_FLT_FILTER_15        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)  /*!< fSAMPLING= fFLTS/32, N=8 */
1826 /**
1827   * @}
1828   */
1829 
1830 /** @defgroup HRTIM_LL_EC_FLT_PRESCALER BURST FAULT PRESCALER
1831   * @{
1832   * @brief Constants defining the division ratio between the timer clock frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used  by the digital filters.
1833   */
1834 #define LL_HRTIM_FLT_PRESCALER_DIV1    0x00000000U                                     /*!< fFLTS = fHRTIM */
1835 #define LL_HRTIM_FLT_PRESCALER_DIV2    (HRTIM_FLTINR2_FLTSD_0)                         /*!< fFLTS = fHRTIM / 2 */
1836 #define LL_HRTIM_FLT_PRESCALER_DIV4    (HRTIM_FLTINR2_FLTSD_1)                         /*!< fFLTS = fHRTIM / 4 */
1837 #define LL_HRTIM_FLT_PRESCALER_DIV8    (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS = fHRTIM / 8 */
1838 /**
1839   * @}
1840   */
1841 
1842 /** @defgroup HRTIM_LL_EC_FLT_BLKS FAULT BLANKING Source
1843   * @{
1844   * @brief Constants defining the Blanking Source of a fault event.
1845   */
1846 #define LL_HRTIM_FLT_BLANKING_RSTALIGNED            0x00000000U                /*!< Fault blanking source is Reset-aligned  */
1847 #define LL_HRTIM_FLT_BLANKING_MOVING                (HRTIM_FLTINR3_FLT1BLKS)   /*!< Fault blanking source is Moving window */
1848 /**
1849   * @}
1850   */
1851 
1852 /** @defgroup HRTIM_LL_EC_FLT_RSTM FAULT Counter RESET Mode
1853   * @{
1854   * @brief Constants defining the Counter RESet Mode of a fault event.
1855   */
1856 #define LL_HRTIM_FLT_COUNTERRST_UNCONDITIONAL    0x00000000U                    /*!< Fault counter is reset on each reset / roll-over event */
1857 #define LL_HRTIM_FLT_COUNTERRST_CONDITIONAL      (HRTIM_FLTINR3_FLT1RSTM)       /*!< Fault counter is reset on each reset / roll-over event only if no fault occurred during last counting
1858 period. */
1859 /**
1860   * @}
1861   */
1862 
1863 /** @defgroup HRTIM_LL_EC_BM_MODE BURST MODE OPERATING MODE
1864   * @{
1865   * @brief Constants defining if the burst mode is entered once or if it is continuously operating.
1866   */
1867 #define LL_HRTIM_BM_MODE_SINGLESHOT  0x00000000U            /*!< Burst mode operates in single shot mode */
1868 #define LL_HRTIM_BM_MODE_CONTINOUS   (HRTIM_BMCR_BMOM)      /*!< Burst mode operates in continuous mode */
1869 /**
1870   * @}
1871   */
1872 
1873 /** @defgroup HRTIM_LL_EC_BM_CLKSRC BURST MODE CLOCK SOURCE
1874   * @{
1875   * @brief Constants defining the clock source for the burst mode counter.
1876   */
1877 #define LL_HRTIM_BM_CLKSRC_MASTER     0x00000000U                                         /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter */
1878 #define LL_HRTIM_BM_CLKSRC_TIMER_A    (HRTIM_BMCR_BMCLK_0)                                            /*!< Timer A counter reset/roll-over is used as clock source for the burst mode counter */
1879 #define LL_HRTIM_BM_CLKSRC_TIMER_B    (HRTIM_BMCR_BMCLK_1)                                            /*!< Timer B counter reset/roll-over is used as clock source for the burst mode counter */
1880 #define LL_HRTIM_BM_CLKSRC_TIMER_C    (HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0)                       /*!< Timer C counter reset/roll-over is used as clock source for the burst mode counter */
1881 #define LL_HRTIM_BM_CLKSRC_TIMER_D    (HRTIM_BMCR_BMCLK_2)                                            /*!< Timer D counter reset/roll-over is used as clock source for the burst mode counter */
1882 #define LL_HRTIM_BM_CLKSRC_TIMER_E    (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_0)                       /*!< Timer E counter reset/roll-over is used as clock source for the burst mode counter */
1883 #define LL_HRTIM_BM_CLKSRC_TIMER_F    (HRTIM_BMCR_BMCLK_3 | HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0)  /*!< Timer F counter reset/roll-over is used as clock source for the burst mode counter */
1884 #define LL_HRTIM_BM_CLKSRC_TIM16_OC   (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1)                       /*!< On-chip Event 1 (BMClk[1]), acting as a burst mode counter clock */
1885 #define LL_HRTIM_BM_CLKSRC_TIM17_OC   (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0)  /*!< On-chip Event 2 (BMClk[2]), acting as a burst mode counter clock */
1886 #define LL_HRTIM_BM_CLKSRC_TIM7_TRGO  (HRTIM_BMCR_BMCLK_3)                                            /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock */
1887 #define LL_HRTIM_BM_CLKSRC_FHRTIM     (HRTIM_BMCR_BMCLK_3 | HRTIM_BMCR_BMCLK_1)                       /*!< Prescaled fHRTIM clock is used as clock source for the burst mode counter */
1888 /**
1889   * @}
1890   */
1891 
1892 /** @defgroup HRTIM_LL_EC_BM_PRESCALER BURST MODE PRESCALER
1893   * @{
1894   * @brief Constants defining the prescaling ratio of the fHRTIM clock for the burst mode controller (fBRST).
1895   */
1896 #define LL_HRTIM_BM_PRESCALER_DIV1     0x00000000U                                                                 /*!< fBRST = fHRTIM */
1897 #define LL_HRTIM_BM_PRESCALER_DIV2     (HRTIM_BMCR_BMPRSC_0)                                                                   /*!< fBRST = fHRTIM/2 */
1898 #define LL_HRTIM_BM_PRESCALER_DIV4     (HRTIM_BMCR_BMPRSC_1)                                                                   /*!< fBRST = fHRTIM/4 */
1899 #define LL_HRTIM_BM_PRESCALER_DIV8     (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/8 */
1900 #define LL_HRTIM_BM_PRESCALER_DIV16    (HRTIM_BMCR_BMPRSC_2)                                                                   /*!< fBRST = fHRTIM/16 */
1901 #define LL_HRTIM_BM_PRESCALER_DIV32    (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/32 */
1902 #define LL_HRTIM_BM_PRESCALER_DIV64    (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1)                                             /*!< fBRST = fHRTIM/64 */
1903 #define LL_HRTIM_BM_PRESCALER_DIV128   (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/128 */
1904 #define LL_HRTIM_BM_PRESCALER_DIV256   (HRTIM_BMCR_BMPRSC_3)                                                                   /*!< fBRST = fHRTIM/256 */
1905 #define LL_HRTIM_BM_PRESCALER_DIV512   (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/512 */
1906 #define LL_HRTIM_BM_PRESCALER_DIV1024  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1)                                             /*!< fBRST = fHRTIM/1024 */
1907 #define LL_HRTIM_BM_PRESCALER_DIV2048  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/2048*/
1908 #define LL_HRTIM_BM_PRESCALER_DIV4096  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2)                                             /*!< fBRST = fHRTIM/4096 */
1909 #define LL_HRTIM_BM_PRESCALER_DIV8192  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/8192 */
1910 #define LL_HRTIM_BM_PRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1)                       /*!< fBRST = fHRTIM/16384 */
1911 #define LL_HRTIM_BM_PRESCALER_DIV32768 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32768 */
1912 /**
1913   * @}
1914   */
1915 
1916 /** @defgroup HRTIM_LL_EC_BM_TRIG HRTIM BURST MODE TRIGGER
1917   * @{
1918   * @brief Constants defining the events that can be used to trig the burst mode operation.
1919   */
1920 #define LL_HRTIM_BM_TRIG_NONE               0x00000000U             /*!<  No trigger */
1921 #define LL_HRTIM_BM_TRIG_MASTER_RESET       (HRTIM_BMTRGR_MSTRST)   /*!<  Master timer reset event is starting the burst mode operation */
1922 #define LL_HRTIM_BM_TRIG_MASTER_REPETITION  (HRTIM_BMTRGR_MSTREP)   /*!<  Master timer repetition event is starting the burst mode operation */
1923 #define LL_HRTIM_BM_TRIG_MASTER_CMP1        (HRTIM_BMTRGR_MSTCMP1)  /*!<  Master timer compare 1 event is starting the burst mode operation */
1924 #define LL_HRTIM_BM_TRIG_MASTER_CMP2        (HRTIM_BMTRGR_MSTCMP2)  /*!<  Master timer compare 2 event is starting the burst mode operation */
1925 #define LL_HRTIM_BM_TRIG_MASTER_CMP3        (HRTIM_BMTRGR_MSTCMP3)  /*!<  Master timer compare 3 event is starting the burst mode operation */
1926 #define LL_HRTIM_BM_TRIG_MASTER_CMP4        (HRTIM_BMTRGR_MSTCMP4)  /*!<  Master timer compare 4 event is starting the burst mode operation */
1927 #define LL_HRTIM_BM_TRIG_TIMA_RESET         (HRTIM_BMTRGR_TARST)    /*!< Timer A reset event is starting the burst mode operation */
1928 #define LL_HRTIM_BM_TRIG_TIMA_REPETITION    (HRTIM_BMTRGR_TAREP)    /*!< Timer A repetition event is starting the burst mode operation */
1929 #define LL_HRTIM_BM_TRIG_TIMA_CMP1          (HRTIM_BMTRGR_TACMP1)   /*!< Timer A compare 1 event is starting the burst mode operation */
1930 #define LL_HRTIM_BM_TRIG_TIMA_CMP2          (HRTIM_BMTRGR_TACMP2)   /*!< Timer A compare 2 event is starting the burst mode operation */
1931 #define LL_HRTIM_BM_TRIG_TIMB_RESET         (HRTIM_BMTRGR_TBRST)    /*!< Timer B reset event is starting the burst mode operation */
1932 #define LL_HRTIM_BM_TRIG_TIMB_REPETITION    (HRTIM_BMTRGR_TBREP)    /*!< Timer B repetition event is starting the burst mode operation */
1933 #define LL_HRTIM_BM_TRIG_TIMB_CMP1          (HRTIM_BMTRGR_TBCMP1)   /*!< Timer B compare 1 event is starting the burst mode operation */
1934 #define LL_HRTIM_BM_TRIG_TIMB_CMP2          (HRTIM_BMTRGR_TBCMP2)   /*!< Timer B compare 2 event is starting the burst mode operation */
1935 #define LL_HRTIM_BM_TRIG_TIMC_RESET         (HRTIM_BMTRGR_TCRST)    /*!< Timer C resetevent is starting the burst mode operation  */
1936 #define LL_HRTIM_BM_TRIG_TIMC_REPETITION    (HRTIM_BMTRGR_TCREP)    /*!< Timer C repetition event is starting the burst mode operation */
1937 #define LL_HRTIM_BM_TRIG_TIMC_CMP1          (HRTIM_BMTRGR_TCCMP1)   /*!< Timer C compare 1 event is starting the burst mode operation */
1938 #define LL_HRTIM_BM_TRIG_TIMD_RESET         (HRTIM_BMTRGR_TDRST)    /*!< Timer D reset event is starting the burst mode operation */
1939 #define LL_HRTIM_BM_TRIG_TIMD_REPETITION    (HRTIM_BMTRGR_TDREP)    /*!< Timer D repetition event is starting the burst mode operation */
1940 #define LL_HRTIM_BM_TRIG_TIMD_CMP2          (HRTIM_BMTRGR_TDCMP2)   /*!< Timer D compare 2 event is starting the burst mode operation */
1941 #define LL_HRTIM_BM_TRIG_TIME_REPETITION    (HRTIM_BMTRGR_TEREP)    /*!< Timer E repetition event is starting the burst mode operation */
1942 #define LL_HRTIM_BM_TRIG_TIME_CMP1          (HRTIM_BMTRGR_TECMP1)   /*!< Timer E compare 1 event is starting the burst mode operation */
1943 #define LL_HRTIM_BM_TRIG_TIME_CMP2          (HRTIM_BMTRGR_TECMP2)   /*!< Timer E compare 2 event is starting the burst mode operation */
1944 #define LL_HRTIM_BM_TRIG_TIMF_RESET         (HRTIM_BMTRGR_TFRST)    /*!< Timer F reset event is starting the burst mode operation */
1945 #define LL_HRTIM_BM_TRIG_TIMF_REPETITION    (HRTIM_BMTRGR_TFREP)    /*!< Timer F repetition event is starting the burst mode operation */
1946 #define LL_HRTIM_BM_TRIG_TIMF_CMP1          (HRTIM_BMTRGR_TFCMP1)   /*!< Timer F compare 1 event is starting the burst mode operation */
1947 #define LL_HRTIM_BM_TRIG_TIMA_EVENT7        (HRTIM_BMTRGR_TAEEV7)   /*!< Timer A period following an external event 7 (conditioned by TIMA filters) is starting the burst mode operation  */
1948 #define LL_HRTIM_BM_TRIG_TIMD_EVENT8        (HRTIM_BMTRGR_TDEEV8)   /*!< Timer D period following an external event 8 (conditioned by TIMD filters) is starting the burst mode operation  */
1949 #define LL_HRTIM_BM_TRIG_EVENT_7            (HRTIM_BMTRGR_EEV7)     /*!< External event 7 conditioned by TIMA filters is starting the burst mode operation */
1950 #define LL_HRTIM_BM_TRIG_EVENT_8            (HRTIM_BMTRGR_EEV8)     /*!< External event 8 conditioned by TIMD filters is starting the burst mode operation */
1951 #define LL_HRTIM_BM_TRIG_EVENT_ONCHIP       (HRTIM_BMTRGR_OCHPEV)   /*!< A rising edge on an on-chip Event (for instance from GP timer or comparator) triggers the burst mode operation */
1952 /**
1953   * @}
1954   */
1955 
1956 /** @defgroup HRTIM_LL_EC_BM_STATUS HRTIM BURST MODE STATUS
1957   * @{
1958   * @brief Constants defining the operating state of the burst mode controller.
1959   */
1960 #define LL_HRTIM_BM_STATUS_NORMAL             0x00000000U           /*!< Normal operation */
1961 #define LL_HRTIM_BM_STATUS_BURST_ONGOING      HRTIM_BMCR_BMSTAT     /*!< Burst operation on-going */
1962 /**
1963   * @}
1964   */
1965 
1966 /** @defgroup HRTIM_LL_COUNTER_MODE Counter Mode
1967   * @{
1968   * @brief Constants defining the Counter Up Down Mode.
1969   */
1970 #define LL_HRTIM_COUNTING_MODE_UP                    0x00000000U           /*!< counter is operating in up-counting mode */
1971 #define LL_HRTIM_COUNTING_MODE_UP_DOWN               HRTIM_TIMCR2_UDM      /*!< counter is operating in up-down counting mode  */
1972 /**
1973   * @}
1974   */
1975 
1976 /** @defgroup HRTIM_LL_COUNTER_Roll-Over counter Mode
1977   * @{
1978   * @brief Constants defining the Roll-Over counter Mode.
1979   */
1980 #define LL_HRTIM_ROLLOVER_MODE_PER            2U                        /*!< Event generated when counter reaches period value  ('crest' mode) */
1981 #define LL_HRTIM_ROLLOVER_MODE_RST            1U                        /*!< Event generated when counter equals 0 ('valley' mode) */
1982 #define LL_HRTIM_ROLLOVER_MODE_BOTH           0U                        /*!< Event generated when counter reach both conditions (0 or HRTIM_PERxR value) */
1983 /**
1984   * @}
1985   */
1986 
1987 /** @defgroup HRTIM_Timer_TrigHalf_Mode HRTIM Timer Triggered-Half Mode
1988   * @{
1989   * @brief Constants defining how the timer counter operates.
1990   */
1991 #define LL_HRTIM_TRIGHALF_DISABLED        0x00000000U            /*!< Timer Compare 2 register is behaving in standard mode */
1992 #define LL_HRTIM_TRIGHALF_ENABLED         HRTIM_TIMCR2_TRGHLF    /*!< Timer Compare 2 register is behaving in triggered-half mode  */
1993 /**
1994   * @}
1995   */
1996 
1997 /** @defgroup HRTIM_LL_COUNTER_Compare Greater than compare PWM Mode
1998   * @{
1999   * @brief Constants defining the greater than compare 1 or 3 PWM Mode.
2000   */
2001 #define LL_HRTIM_GTCMP1_EQUAL             0x00000000U            /*!< event is generated when counter is equal to compare value */
2002 #define LL_HRTIM_GTCMP1_GREATER           HRTIM_TIMCR2_GTCMP1    /*!< event is generated when counter is greater than compare value */
2003 #define LL_HRTIM_GTCMP3_EQUAL             0x00000000U            /*!< event is generated when counter is equal to compare value */
2004 #define LL_HRTIM_GTCMP3_GREATER           HRTIM_TIMCR2_GTCMP3    /*!< event is generated when counter is greater than compare value */
2005 /**
2006   * @}
2007   */
2008 
2009 /** @defgroup HRTIM_LL_COUNTER_DCDE Enabling the Dual Channel DAC Triggering
2010   * @{
2011   * @brief Constants enabling the Dual Channel DAC Reset trigger mechanism.
2012   */
2013 #define LL_HRTIM_DCDE_DISABLED      0x00000000U              /*!<  Dual Channel DAC trigger is generated on counter reset or roll-over event */
2014 #define LL_HRTIM_DCDE_ENABLED       HRTIM_TIMCR2_DCDE        /*!<  Dual Channel DAC trigger is generated on output 1 set  event */
2015 /**
2016   * @}
2017   */
2018 
2019 /** @defgroup HRTIM_LL_COUNTER_DCDR Dual Channel DAC Reset Trigger
2020   * @{
2021   * @brief Constants defining the Dual Channel DAC Reset trigger.
2022   */
2023 #define LL_HRTIM_DCDR_COUNTER       0x00000000U              /*!< Dual Channel DAC trigger is generated on counter reset or roll-over event */
2024 #define LL_HRTIM_DCDR_OUT1SET       HRTIM_TIMCR2_DCDR        /*!< Dual Channel DAC trigger is generated on output 1 set  event */
2025 /**
2026   * @}
2027   */
2028 
2029 /** @defgroup HRTIM_LL_COUNTER_DCDS Dual Channel DAC Step trigger
2030   * @{
2031   * @brief Constants defining the Dual Channel DAC Step trigger.
2032   */
2033 #define LL_HRTIM_DCDS_CMP2          0x00000000U              /*!< trigger is generated on compare 2 event */
2034 #define LL_HRTIM_DCDS_OUT1RST       HRTIM_TIMCR2_DCDS        /*!< trigger is generated on output 1 reset event */
2035 /**
2036   * @}
2037   */
2038 
2039 /**
2040   * @}
2041   */
2042 
2043 /* Exported macro ------------------------------------------------------------*/
2044 /** @defgroup HRTIM_LL_Exported_Macros HRTIM Exported Macros
2045   * @{
2046   */
2047 
2048 /** @defgroup HRTIM_LL_EM_WRITE_READ Common Write and read registers Macros
2049   * @{
2050   */
2051 
2052 /**
2053   * @brief  Write a value in HRTIM register
2054   * @param  __INSTANCE__ HRTIM Instance
2055   * @param  __REG__ Register to be written
2056   * @param  __VALUE__ Value to be written in the register
2057   * @retval None
2058   */
2059 #define LL_HRTIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
2060 
2061 /**
2062   * @brief  Read a value in HRTIM register
2063   * @param  __INSTANCE__ HRTIM Instance
2064   * @param  __REG__ Register to be read
2065   * @retval Register value
2066   */
2067 #define LL_HRTIM_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
2068 /**
2069   * @}
2070   */
2071 
2072 /** @defgroup HRTIM_LL_EM_Exported_Macros Exported_Macros
2073   * @{
2074   */
2075 /**
2076   * @brief  HELPER macro returning the output state from output enable/disable status
2077   * @param  __OUTPUT_STATUS_EN__ output enable status
2078   * @param  __OUTPUT_STATUS_DIS__ output Disable status
2079   * @retval Returned value can be one of the following values:
2080   *         @arg @ref LL_HRTIM_OUTPUTSTATE_IDLE
2081   *         @arg @ref LL_HRTIM_OUTPUTSTATE_RUN
2082   *         @arg @ref LL_HRTIM_OUTPUTSTATE_FAULT
2083   */
2084 #define __LL_HRTIM_GET_OUTPUT_STATE(__OUTPUT_STATUS_EN__, __OUTPUT_STATUS_DIS__)\
2085   (((__OUTPUT_STATUS_EN__) == 1) ?  LL_HRTIM_OUTPUTSTATE_RUN :\
2086    ((__OUTPUT_STATUS_DIS__) == 0) ? LL_HRTIM_OUTPUTSTATE_IDLE : LL_HRTIM_OUTPUTSTATE_FAULT)
2087 /**
2088   * @}
2089   */
2090 
2091 /**
2092   * @}
2093   */
2094 
2095 /* Exported functions --------------------------------------------------------*/
2096 /** @defgroup HRTIM_LL_Exported_Functions HRTIM Exported Functions
2097   * @{
2098   */
2099 /** @defgroup HRTIM_LL_EF_HRTIM_Control HRTIM_Control
2100   * @{
2101   */
2102 
2103 /**
2104   * @brief  Select the HRTIM synchronization input source.
2105   * @note This function must not be called when  the concerned timer(s) is (are) enabled .
2106   * @rmtoll MCR          SYNCIN        LL_HRTIM_SetSyncInSrc
2107   * @param  HRTIMx High Resolution Timer instance
2108   * @param  SyncInSrc This parameter can be one of the following values:
2109   *         @arg @ref LL_HRTIM_SYNCIN_SRC_NONE
2110   *         @arg @ref LL_HRTIM_SYNCIN_SRC_TIM_EVENT
2111   *         @arg @ref LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT
2112   * @retval None
2113   */
LL_HRTIM_SetSyncInSrc(HRTIM_TypeDef * HRTIMx,uint32_t SyncInSrc)2114 __STATIC_INLINE void LL_HRTIM_SetSyncInSrc(HRTIM_TypeDef *HRTIMx, uint32_t SyncInSrc)
2115 {
2116   MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_IN, SyncInSrc);
2117 }
2118 
2119 /**
2120   * @brief  Get actual HRTIM synchronization input source.
2121   * @rmtoll MCR          SYNCIN        LL_HRTIM_SetSyncInSrc
2122   * @param  HRTIMx High Resolution Timer instance
2123   * @retval SyncInSrc Returned value can be one of the following values:
2124   *         @arg @ref LL_HRTIM_SYNCIN_SRC_NONE
2125   *         @arg @ref LL_HRTIM_SYNCIN_SRC_TIM_EVENT
2126   *         @arg @ref LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT
2127   */
LL_HRTIM_GetSyncInSrc(const HRTIM_TypeDef * HRTIMx)2128 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncInSrc(const HRTIM_TypeDef *HRTIMx)
2129 {
2130   return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_IN));
2131 }
2132 
2133 /**
2134   * @brief  Configure the HRTIM synchronization output.
2135   * @rmtoll MCR          SYNCSRC      LL_HRTIM_ConfigSyncOut\n
2136   *         MCR          SYNCOUT      LL_HRTIM_ConfigSyncOut
2137   * @param  HRTIMx High Resolution Timer instance
2138   * @param  Config This parameter can be one of the following values:
2139   *         @arg @ref LL_HRTIM_SYNCOUT_DISABLED
2140   *         @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE
2141   *         @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE
2142   * @param  Src This parameter can be one of the following values:
2143   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START
2144   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1
2145   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START
2146   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1
2147   * @retval None
2148   */
LL_HRTIM_ConfigSyncOut(HRTIM_TypeDef * HRTIMx,uint32_t Config,uint32_t Src)2149 __STATIC_INLINE void LL_HRTIM_ConfigSyncOut(HRTIM_TypeDef *HRTIMx, uint32_t Config, uint32_t Src)
2150 {
2151   MODIFY_REG(HRTIMx->sMasterRegs.MCR, (HRTIM_MCR_SYNC_OUT | HRTIM_MCR_SYNC_SRC), (Config | Src));
2152 }
2153 
2154 /**
2155   * @brief  Set the routing and conditioning of the synchronization output event.
2156   * @rmtoll MCR          SYNCOUT      LL_HRTIM_SetSyncOutConfig
2157   * @note This function can be called only when the master timer is enabled.
2158   * @param  HRTIMx High Resolution Timer instance
2159   * @param  SyncOutConfig This parameter can be one of the following values:
2160   *         @arg @ref LL_HRTIM_SYNCOUT_DISABLED
2161   *         @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE
2162   *         @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE
2163   * @retval None
2164   */
LL_HRTIM_SetSyncOutConfig(HRTIM_TypeDef * HRTIMx,uint32_t SyncOutConfig)2165 __STATIC_INLINE void LL_HRTIM_SetSyncOutConfig(HRTIM_TypeDef *HRTIMx, uint32_t SyncOutConfig)
2166 {
2167   MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_OUT, SyncOutConfig);
2168 }
2169 
2170 /**
2171   * @brief  Get actual routing and conditioning of the synchronization output event.
2172   * @rmtoll MCR          SYNCOUT      LL_HRTIM_GetSyncOutConfig
2173   * @param  HRTIMx High Resolution Timer instance
2174   * @retval SyncOutConfig Returned value can be one of the following values:
2175   *         @arg @ref LL_HRTIM_SYNCOUT_DISABLED
2176   *         @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE
2177   *         @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE
2178   */
LL_HRTIM_GetSyncOutConfig(const HRTIM_TypeDef * HRTIMx)2179 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncOutConfig(const HRTIM_TypeDef *HRTIMx)
2180 {
2181   return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_OUT));
2182 }
2183 
2184 /**
2185   * @brief  Set the source and event to be sent on the HRTIM synchronization output.
2186   * @rmtoll MCR          SYNCSRC      LL_HRTIM_SetSyncOutSrc
2187   * @param  HRTIMx High Resolution Timer instance
2188   * @param  SyncOutSrc This parameter can be one of the following values:
2189   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START
2190   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1
2191   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START
2192   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1
2193   * @retval None
2194   */
LL_HRTIM_SetSyncOutSrc(HRTIM_TypeDef * HRTIMx,uint32_t SyncOutSrc)2195 __STATIC_INLINE void LL_HRTIM_SetSyncOutSrc(HRTIM_TypeDef *HRTIMx, uint32_t SyncOutSrc)
2196 {
2197   MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_SRC, SyncOutSrc);
2198 }
2199 
2200 /**
2201   * @brief  Get actual  source and event sent on the HRTIM synchronization output.
2202   * @rmtoll MCR          SYNCSRC      LL_HRTIM_GetSyncOutSrc
2203   * @param  HRTIMx High Resolution Timer instance
2204   * @retval SyncOutSrc Returned value can be one of the following values:
2205   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START
2206   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1
2207   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START
2208   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1
2209   */
LL_HRTIM_GetSyncOutSrc(const HRTIM_TypeDef * HRTIMx)2210 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncOutSrc(const HRTIM_TypeDef *HRTIMx)
2211 {
2212   return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_SRC));
2213 }
2214 
2215 /**
2216   * @brief  Disable (temporarily) update event generation.
2217   * @rmtoll CR1          MUDIS         LL_HRTIM_SuspendUpdate\n
2218   *         CR1          TAUDIS        LL_HRTIM_SuspendUpdate\n
2219   *         CR1          TBUDIS        LL_HRTIM_SuspendUpdate\n
2220   *         CR1          TCUDIS        LL_HRTIM_SuspendUpdate\n
2221   *         CR1          TDUDIS        LL_HRTIM_SuspendUpdate\n
2222   *         CR1          TEUDIS        LL_HRTIM_SuspendUpdate\n
2223   *         CR1          TFUDIS        LL_HRTIM_SuspendUpdate
2224   * @note Allow to temporarily disable the transfer from preload to active
2225   *      registers, whatever the selected update event. This allows to modify
2226   *      several registers in multiple timers.
2227   * @param  HRTIMx High Resolution Timer instance
2228   * @param  Timers This parameter can be a combination of the following values:
2229   *         @arg @ref LL_HRTIM_TIMER_MASTER
2230   *         @arg @ref LL_HRTIM_TIMER_A
2231   *         @arg @ref LL_HRTIM_TIMER_B
2232   *         @arg @ref LL_HRTIM_TIMER_C
2233   *         @arg @ref LL_HRTIM_TIMER_D
2234   *         @arg @ref LL_HRTIM_TIMER_E
2235   *         @arg @ref LL_HRTIM_TIMER_F
2236   * @retval None
2237   */
LL_HRTIM_SuspendUpdate(HRTIM_TypeDef * HRTIMx,uint32_t Timers)2238 __STATIC_INLINE void LL_HRTIM_SuspendUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
2239 {
2240   /* clear register before applying the new value */
2241   CLEAR_BIT(HRTIMx->sCommonRegs.CR1, ((LL_HRTIM_TIMER_ALL >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK));
2242   SET_BIT(HRTIMx->sCommonRegs.CR1, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK));
2243 }
2244 
2245 /**
2246   * @brief  Enable update event generation.
2247   * @rmtoll CR1          MUDIS         LL_HRTIM_ResumeUpdate\n
2248   *         CR1          TAUDIS        LL_HRTIM_ResumeUpdate\n
2249   *         CR1          TBUDIS        LL_HRTIM_ResumeUpdate\n
2250   *         CR1          TCUDIS        LL_HRTIM_ResumeUpdate\n
2251   *         CR1          TDUDIS        LL_HRTIM_ResumeUpdate\n
2252   *         CR1          TEUDIS        LL_HRTIM_ResumeUpdate\n
2253   *         CR1          TFUDIS        LL_HRTIM_ResumeUpdate
2254   * @note The regular update event takes place.
2255   * @param  HRTIMx High Resolution Timer instance
2256   * @param  Timers This parameter can be a combination of the following values:
2257   *         @arg @ref LL_HRTIM_TIMER_MASTER
2258   *         @arg @ref LL_HRTIM_TIMER_A
2259   *         @arg @ref LL_HRTIM_TIMER_B
2260   *         @arg @ref LL_HRTIM_TIMER_C
2261   *         @arg @ref LL_HRTIM_TIMER_D
2262   *         @arg @ref LL_HRTIM_TIMER_E
2263   *         @arg @ref LL_HRTIM_TIMER_F
2264   * @retval None
2265   */
LL_HRTIM_ResumeUpdate(HRTIM_TypeDef * HRTIMx,uint32_t Timers)2266 __STATIC_INLINE void LL_HRTIM_ResumeUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
2267 {
2268   CLEAR_BIT(HRTIMx->sCommonRegs.CR1, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK));
2269 }
2270 
2271 /**
2272   * @brief  Force an immediate transfer from the preload to the active register .
2273   * @rmtoll CR2          MSWU          LL_HRTIM_ForceUpdate\n
2274   *         CR2          TASWU         LL_HRTIM_ForceUpdate\n
2275   *         CR2          TBSWU         LL_HRTIM_ForceUpdate\n
2276   *         CR2          TCSWU         LL_HRTIM_ForceUpdate\n
2277   *         CR2          TDSWU         LL_HRTIM_ForceUpdate\n
2278   *         CR2          TESWU         LL_HRTIM_ForceUpdate\n
2279   *         CR2          TFSWU         LL_HRTIM_ForceUpdate
2280   * @note Any pending update request is cancelled.
2281   * @param  HRTIMx High Resolution Timer instance
2282   * @param  Timers This parameter can be a combination of the following values:
2283   *         @arg @ref LL_HRTIM_TIMER_MASTER
2284   *         @arg @ref LL_HRTIM_TIMER_A
2285   *         @arg @ref LL_HRTIM_TIMER_B
2286   *         @arg @ref LL_HRTIM_TIMER_C
2287   *         @arg @ref LL_HRTIM_TIMER_D
2288   *         @arg @ref LL_HRTIM_TIMER_E
2289   *         @arg @ref LL_HRTIM_TIMER_F
2290   * @retval None
2291   */
LL_HRTIM_ForceUpdate(HRTIM_TypeDef * HRTIMx,uint32_t Timers)2292 __STATIC_INLINE void LL_HRTIM_ForceUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
2293 {
2294   SET_BIT(HRTIMx->sCommonRegs.CR2, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR2_SWUPD_MASK));
2295 }
2296 
2297 /**
2298   * @brief  Reset the HRTIM timer(s) counter.
2299   * @rmtoll CR2          MRST          LL_HRTIM_CounterReset\n
2300   *         CR2          TARST         LL_HRTIM_CounterReset\n
2301   *         CR2          TBRST         LL_HRTIM_CounterReset\n
2302   *         CR2          TCRST         LL_HRTIM_CounterReset\n
2303   *         CR2          TDRST         LL_HRTIM_CounterReset\n
2304   *         CR2          TERST         LL_HRTIM_CounterReset\n
2305   *         CR2          TFRST         LL_HRTIM_CounterReset
2306   * @param  HRTIMx High Resolution Timer instance
2307   * @param  Timers This parameter can be a combination of the following values:
2308   *         @arg @ref LL_HRTIM_TIMER_MASTER
2309   *         @arg @ref LL_HRTIM_TIMER_A
2310   *         @arg @ref LL_HRTIM_TIMER_B
2311   *         @arg @ref LL_HRTIM_TIMER_C
2312   *         @arg @ref LL_HRTIM_TIMER_D
2313   *         @arg @ref LL_HRTIM_TIMER_E
2314   *         @arg @ref LL_HRTIM_TIMER_F
2315   * @retval None
2316   */
LL_HRTIM_CounterReset(HRTIM_TypeDef * HRTIMx,uint32_t Timers)2317 __STATIC_INLINE void LL_HRTIM_CounterReset(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
2318 {
2319   SET_BIT(HRTIMx->sCommonRegs.CR2, (((Timers >> HRTIM_MCR_MCEN_Pos) << HRTIM_CR2_MRST_Pos) & HRTIM_CR2_SWRST_MASK));
2320 }
2321 
2322 /**
2323   * @brief  enable the swap of the Timer Output.
2324   * @note   the HRTIM_SETA1R and HRTIM_RSTA1R are coding for the output A2,
2325   *         and the HRTIM_SETA2R and HRTIM_RSTA2R are coding for the output A1
2326   * @note   This bit is not significant when the Push-pull mode is enabled (PSHPLL = 1)
2327   * @rmtoll CR2          SWPA         LL_HRTIM_EnableSwapOutputs\n
2328   *         CR2          SWPB         LL_HRTIM_EnableSwapOutputs\n
2329   *         CR2          SWPC         LL_HRTIM_EnableSwapOutputs\n
2330   *         CR2          SWPD         LL_HRTIM_EnableSwapOutputs\n
2331   *         CR2          SWPE         LL_HRTIM_EnableSwapOutputs\n
2332   *         CR2          SWPF         LL_HRTIM_EnableSwapOutputs
2333   * @param  HRTIMx High Resolution Timer instance
2334   * @param  Timer This parameter can be one of the following values:
2335   *         @arg @ref LL_HRTIM_TIMER_A
2336   *         @arg @ref LL_HRTIM_TIMER_B
2337   *         @arg @ref LL_HRTIM_TIMER_C
2338   *         @arg @ref LL_HRTIM_TIMER_D
2339   *         @arg @ref LL_HRTIM_TIMER_E
2340   *         @arg @ref LL_HRTIM_TIMER_F
2341   * @retval None
2342   */
LL_HRTIM_EnableSwapOutputs(HRTIM_TypeDef * HRTIMx,uint32_t Timer)2343 __STATIC_INLINE void LL_HRTIM_EnableSwapOutputs(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2344 {
2345   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
2346 
2347   SET_BIT(HRTIMx->sCommonRegs.CR2, (uint32_t)(HRTIM_CR2_SWPA) << iTimer);
2348 }
2349 
2350 /**
2351   * @brief  disable the swap of the Timer Output.
2352   * @note   the HRTIM_SETA1R and HRTIM_RSTA1R are coding for the output A1,
2353   *         and the HRTIM_SETA2R and HRTIM_RSTA2R are coding for the output A2
2354   * @note   This bit is not significant when the Push-pull mode is enabled (PSHPLL = 1)
2355   * @rmtoll CR2          SWPA         LL_HRTIM_DisableSwapOutputs\n
2356   *         CR2          SWPB         LL_HRTIM_DisableSwapOutputs\n
2357   *         CR2          SWPC         LL_HRTIM_DisableSwapOutputs\n
2358   *         CR2          SWPD         LL_HRTIM_DisableSwapOutputs\n
2359   *         CR2          SWPE         LL_HRTIM_DisableSwapOutputs\n
2360   *         CR2          SWPF         LL_HRTIM_DisableSwapOutputs
2361   * @param  HRTIMx High Resolution Timer instance
2362   * @param  Timer This parameter can be one of the following values:
2363   *         @arg @ref LL_HRTIM_TIMER_A
2364   *         @arg @ref LL_HRTIM_TIMER_B
2365   *         @arg @ref LL_HRTIM_TIMER_C
2366   *         @arg @ref LL_HRTIM_TIMER_D
2367   *         @arg @ref LL_HRTIM_TIMER_E
2368   *         @arg @ref LL_HRTIM_TIMER_F
2369   * @retval None
2370   */
LL_HRTIM_DisableSwapOutputs(HRTIM_TypeDef * HRTIMx,uint32_t Timer)2371 __STATIC_INLINE void LL_HRTIM_DisableSwapOutputs(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2372 {
2373   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
2374 
2375   CLEAR_BIT(HRTIMx->sCommonRegs.CR2, (HRTIM_CR2_SWPA << iTimer));
2376 }
2377 
2378 /**
2379   * @brief  reports the Timer Outputs swap position.
2380   * @note   This bit is not significant when the Push-pull mode is enabled (PSHPLL = 1)
2381   * @rmtoll CR2          SWPA         LL_HRTIM_IsEnabledSwapOutputs\n
2382   *         CR2          SWPB         LL_HRTIM_IsEnabledSwapOutputs\n
2383   *         CR2          SWPC         LL_HRTIM_IsEnabledSwapOutputs\n
2384   *         CR2          SWPD         LL_HRTIM_IsEnabledSwapOutputs\n
2385   *         CR2          SWPE         LL_HRTIM_IsEnabledSwapOutputs\n
2386   *         CR2          SWPF         LL_HRTIM_IsEnabledSwapOutputs
2387   * @param  HRTIMx High Resolution Timer instance
2388   * @param  Timer This parameter can be one of the following values:
2389   *         @arg @ref LL_HRTIM_TIMER_A
2390   *         @arg @ref LL_HRTIM_TIMER_B
2391   *         @arg @ref LL_HRTIM_TIMER_C
2392   *         @arg @ref LL_HRTIM_TIMER_D
2393   *         @arg @ref LL_HRTIM_TIMER_E
2394   *         @arg @ref LL_HRTIM_TIMER_F
2395   * @retval
2396   *         1: HRTIM_SETA1R and HRTIM_RSTA1R are coding for the output A2,
2397   *            HRTIM_SETA2R and HRTIM_RSTA2R are coding for the output A1
2398   *         0: HRTIM_SETA1R and HRTIM_RSTA1R are coding for the output A1,
2399   *            HRTIM_SETA2R and HRTIM_RSTA2R are coding for the output A2
2400   */
LL_HRTIM_IsEnabledSwapOutputs(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)2401 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledSwapOutputs(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2402 {
2403   uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos) & 0x1FU);
2404 
2405   return (READ_BIT(HRTIMx->sCommonRegs.CR2, (uint32_t)(HRTIM_CR2_SWPA) << iTimer) >> ((HRTIM_CR2_SWPA_Pos + iTimer)));
2406 }
2407 
2408 /**
2409   * @brief  Enable the HRTIM timer(s) output(s) .
2410   * @rmtoll OENR         TA1OEN        LL_HRTIM_EnableOutput\n
2411   *         OENR         TA2OEN        LL_HRTIM_EnableOutput\n
2412   *         OENR         TB1OEN        LL_HRTIM_EnableOutput\n
2413   *         OENR         TB2OEN        LL_HRTIM_EnableOutput\n
2414   *         OENR         TC1OEN        LL_HRTIM_EnableOutput\n
2415   *         OENR         TC2OEN        LL_HRTIM_EnableOutput\n
2416   *         OENR         TD1OEN        LL_HRTIM_EnableOutput\n
2417   *         OENR         TD2OEN        LL_HRTIM_EnableOutput\n
2418   *         OENR         TE1OEN        LL_HRTIM_EnableOutput\n
2419   *         OENR         TE2OEN        LL_HRTIM_EnableOutput\n
2420   *         OENR         TF1OEN        LL_HRTIM_EnableOutput\n
2421   *         OENR         TF2OEN        LL_HRTIM_EnableOutput
2422   * @param  HRTIMx High Resolution Timer instance
2423   * @param  Outputs This parameter can be a combination of the following values:
2424   *         @arg @ref LL_HRTIM_OUTPUT_TA1
2425   *         @arg @ref LL_HRTIM_OUTPUT_TA2
2426   *         @arg @ref LL_HRTIM_OUTPUT_TB1
2427   *         @arg @ref LL_HRTIM_OUTPUT_TB2
2428   *         @arg @ref LL_HRTIM_OUTPUT_TC1
2429   *         @arg @ref LL_HRTIM_OUTPUT_TC2
2430   *         @arg @ref LL_HRTIM_OUTPUT_TD1
2431   *         @arg @ref LL_HRTIM_OUTPUT_TD2
2432   *         @arg @ref LL_HRTIM_OUTPUT_TE1
2433   *         @arg @ref LL_HRTIM_OUTPUT_TE2
2434   *         @arg @ref LL_HRTIM_OUTPUT_TF1
2435   *         @arg @ref LL_HRTIM_OUTPUT_TF2
2436   * @retval None
2437   */
LL_HRTIM_EnableOutput(HRTIM_TypeDef * HRTIMx,uint32_t Outputs)2438 __STATIC_INLINE void LL_HRTIM_EnableOutput(HRTIM_TypeDef *HRTIMx, uint32_t Outputs)
2439 {
2440   SET_BIT(HRTIMx->sCommonRegs.OENR, (Outputs & HRTIM_OENR_OEN_MASK));
2441 }
2442 
2443 /**
2444   * @brief  Disable the HRTIM timer(s) output(s) .
2445   * @rmtoll OENR         TA1OEN        LL_HRTIM_DisableOutput\n
2446   *         OENR         TA2OEN        LL_HRTIM_DisableOutput\n
2447   *         OENR         TB1OEN        LL_HRTIM_DisableOutput\n
2448   *         OENR         TB2OEN        LL_HRTIM_DisableOutput\n
2449   *         OENR         TC1OEN        LL_HRTIM_DisableOutput\n
2450   *         OENR         TC2OEN        LL_HRTIM_DisableOutput\n
2451   *         OENR         TD1OEN        LL_HRTIM_DisableOutput\n
2452   *         OENR         TD2OEN        LL_HRTIM_DisableOutput\n
2453   *         OENR         TE1OEN        LL_HRTIM_DisableOutput\n
2454   *         OENR         TE2OEN        LL_HRTIM_DisableOutput\n
2455   *         OENR         TF1OEN        LL_HRTIM_DisableOutput\n
2456   *         OENR         TF2OEN        LL_HRTIM_DisableOutput
2457   * @param  HRTIMx High Resolution Timer instance
2458   * @param  Outputs This parameter can be a combination of the following values:
2459   *         @arg @ref LL_HRTIM_OUTPUT_TA1
2460   *         @arg @ref LL_HRTIM_OUTPUT_TA2
2461   *         @arg @ref LL_HRTIM_OUTPUT_TB1
2462   *         @arg @ref LL_HRTIM_OUTPUT_TB2
2463   *         @arg @ref LL_HRTIM_OUTPUT_TC1
2464   *         @arg @ref LL_HRTIM_OUTPUT_TC2
2465   *         @arg @ref LL_HRTIM_OUTPUT_TD1
2466   *         @arg @ref LL_HRTIM_OUTPUT_TD2
2467   *         @arg @ref LL_HRTIM_OUTPUT_TE1
2468   *         @arg @ref LL_HRTIM_OUTPUT_TE2
2469   *         @arg @ref LL_HRTIM_OUTPUT_TF1
2470   *         @arg @ref LL_HRTIM_OUTPUT_TF2
2471   * @retval None
2472   */
LL_HRTIM_DisableOutput(HRTIM_TypeDef * HRTIMx,uint32_t Outputs)2473 __STATIC_INLINE void LL_HRTIM_DisableOutput(HRTIM_TypeDef *HRTIMx, uint32_t Outputs)
2474 {
2475   SET_BIT(HRTIMx->sCommonRegs.ODISR, (Outputs & HRTIM_OENR_ODIS_MASK));
2476 }
2477 
2478 /**
2479   * @brief  Indicates whether the HRTIM timer output is enabled.
2480   * @rmtoll OENR         TA1OEN        LL_HRTIM_IsEnabledOutput\n
2481   *         OENR         TA2OEN        LL_HRTIM_IsEnabledOutput\n
2482   *         OENR         TB1OEN        LL_HRTIM_IsEnabledOutput\n
2483   *         OENR         TB2OEN        LL_HRTIM_IsEnabledOutput\n
2484   *         OENR         TC1OEN        LL_HRTIM_IsEnabledOutput\n
2485   *         OENR         TC2OEN        LL_HRTIM_IsEnabledOutput\n
2486   *         OENR         TD1OEN        LL_HRTIM_IsEnabledOutput\n
2487   *         OENR         TD2OEN        LL_HRTIM_IsEnabledOutput\n
2488   *         OENR         TE1OEN        LL_HRTIM_IsEnabledOutput\n
2489   *         OENR         TE2OEN        LL_HRTIM_IsEnabledOutput\n
2490   *         OENR         TF1OEN        LL_HRTIM_IsEnabledOutput\n
2491   *         OENR         TF2OEN        LL_HRTIM_IsEnabledOutput
2492   * @param  HRTIMx High Resolution Timer instance
2493   * @param  Output This parameter can be one of the following values:
2494   *         @arg @ref LL_HRTIM_OUTPUT_TA1
2495   *         @arg @ref LL_HRTIM_OUTPUT_TA2
2496   *         @arg @ref LL_HRTIM_OUTPUT_TB1
2497   *         @arg @ref LL_HRTIM_OUTPUT_TB2
2498   *         @arg @ref LL_HRTIM_OUTPUT_TC1
2499   *         @arg @ref LL_HRTIM_OUTPUT_TC2
2500   *         @arg @ref LL_HRTIM_OUTPUT_TD1
2501   *         @arg @ref LL_HRTIM_OUTPUT_TD2
2502   *         @arg @ref LL_HRTIM_OUTPUT_TE1
2503   *         @arg @ref LL_HRTIM_OUTPUT_TE2
2504   *         @arg @ref LL_HRTIM_OUTPUT_TF1
2505   *         @arg @ref LL_HRTIM_OUTPUT_TF2
2506   * @retval State of TxyOEN bit in HRTIM_OENR register (1 or 0).
2507   */
LL_HRTIM_IsEnabledOutput(const HRTIM_TypeDef * HRTIMx,uint32_t Output)2508 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledOutput(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
2509 {
2510   return ((READ_BIT(HRTIMx->sCommonRegs.OENR, Output) == Output) ? 1UL : 0UL);
2511 }
2512 
2513 /**
2514   * @brief  Indicates whether the HRTIM timer output is disabled.
2515   * @rmtoll ODISR        TA1ODIS        LL_HRTIM_IsDisabledOutput\n
2516   *         ODISR        TA2ODIS        LL_HRTIM_IsDisabledOutput\n
2517   *         ODISR        TB1ODIS        LL_HRTIM_IsDisabledOutput\n
2518   *         ODISR        TB2ODIS        LL_HRTIM_IsDisabledOutput\n
2519   *         ODISR        TC1ODIS        LL_HRTIM_IsDisabledOutput\n
2520   *         ODISR        TC2ODIS        LL_HRTIM_IsDisabledOutput\n
2521   *         ODISR        TD1ODIS        LL_HRTIM_IsDisabledOutput\n
2522   *         ODISR        TD2ODIS        LL_HRTIM_IsDisabledOutput\n
2523   *         ODISR        TE1ODIS        LL_HRTIM_IsDisabledOutput\n
2524   *         ODISR        TE2ODIS        LL_HRTIM_IsDisabledOutput\n
2525   *         ODISR        TF1ODIS        LL_HRTIM_IsDisabledOutput\n
2526   *         ODISR        TF2ODIS        LL_HRTIM_IsDisabledOutput
2527   * @param  HRTIMx High Resolution Timer instance
2528   * @param  Output This parameter can be one of the following values:
2529   *         @arg @ref LL_HRTIM_OUTPUT_TA1
2530   *         @arg @ref LL_HRTIM_OUTPUT_TA2
2531   *         @arg @ref LL_HRTIM_OUTPUT_TB1
2532   *         @arg @ref LL_HRTIM_OUTPUT_TB2
2533   *         @arg @ref LL_HRTIM_OUTPUT_TC1
2534   *         @arg @ref LL_HRTIM_OUTPUT_TC2
2535   *         @arg @ref LL_HRTIM_OUTPUT_TD1
2536   *         @arg @ref LL_HRTIM_OUTPUT_TD2
2537   *         @arg @ref LL_HRTIM_OUTPUT_TE1
2538   *         @arg @ref LL_HRTIM_OUTPUT_TE2
2539   *         @arg @ref LL_HRTIM_OUTPUT_TF1
2540   *         @arg @ref LL_HRTIM_OUTPUT_TF2
2541   * @retval State of TxyODS bit in HRTIM_OENR register (1 or 0).
2542   */
LL_HRTIM_IsDisabledOutput(const HRTIM_TypeDef * HRTIMx,uint32_t Output)2543 __STATIC_INLINE uint32_t LL_HRTIM_IsDisabledOutput(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
2544 {
2545   return ((READ_BIT(HRTIMx->sCommonRegs.OENR, Output) == 0U) ? 1UL : 0UL);
2546 }
2547 
2548 /**
2549   * @brief  Configure an ADC trigger.
2550   * @rmtoll CR1          ADC1USRC        LL_HRTIM_ConfigADCTrig\n
2551   *         CR1          ADC2USRC        LL_HRTIM_ConfigADCTrig\n
2552   *         CR1          ADC3USRC        LL_HRTIM_ConfigADCTrig\n
2553   *         CR1          ADC4USRC        LL_HRTIM_ConfigADCTrig\n
2554   *         ADC1R        ADC1MC1         LL_HRTIM_ConfigADCTrig\n
2555   *         ADC1R        ADC1MC2         LL_HRTIM_ConfigADCTrig\n
2556   *         ADC1R        ADC1MC3         LL_HRTIM_ConfigADCTrig\n
2557   *         ADC1R        ADC1MC4         LL_HRTIM_ConfigADCTrig\n
2558   *         ADC1R        ADC1MPER        LL_HRTIM_ConfigADCTrig\n
2559   *         ADC1R        ADC1EEV1        LL_HRTIM_ConfigADCTrig\n
2560   *         ADC1R        ADC1EEV2        LL_HRTIM_ConfigADCTrig\n
2561   *         ADC1R        ADC1EEV3        LL_HRTIM_ConfigADCTrig\n
2562   *         ADC1R        ADC1EEV4        LL_HRTIM_ConfigADCTrig\n
2563   *         ADC1R        ADC1EEV5        LL_HRTIM_ConfigADCTrig\n
2564   *         ADC1R        ADC1TFC2        LL_HRTIM_ConfigADCTrig\n
2565   *         ADC1R        ADC1TAC3        LL_HRTIM_ConfigADCTrig\n
2566   *         ADC1R        ADC1TAC4        LL_HRTIM_ConfigADCTrig\n
2567   *         ADC1R        ADC1TAPER       LL_HRTIM_ConfigADCTrig\n
2568   *         ADC1R        ADC1TARST       LL_HRTIM_ConfigADCTrig\n
2569   *         ADC1R        ADC1TFC3        LL_HRTIM_ConfigADCTrig\n
2570   *         ADC1R        ADC1TBC3        LL_HRTIM_ConfigADCTrig\n
2571   *         ADC1R        ADC1TBC4        LL_HRTIM_ConfigADCTrig\n
2572   *         ADC1R        ADC1TBPER       LL_HRTIM_ConfigADCTrig\n
2573   *         ADC1R        ADC1TBRST       LL_HRTIM_ConfigADCTrig\n
2574   *         ADC1R        ADC1TFC4        LL_HRTIM_ConfigADCTrig\n
2575   *         ADC1R        ADC1TCC3        LL_HRTIM_ConfigADCTrig\n
2576   *         ADC1R        ADC1TCC4        LL_HRTIM_ConfigADCTrig\n
2577   *         ADC1R        ADC1TCPER       LL_HRTIM_ConfigADCTrig\n
2578   *         ADC1R        ADC1TFPER       LL_HRTIM_ConfigADCTrig\n
2579   *         ADC1R        ADC1TDC3        LL_HRTIM_ConfigADCTrig\n
2580   *         ADC1R        ADC1TDC4        LL_HRTIM_ConfigADCTrig\n
2581   *         ADC1R        ADC1TDPER       LL_HRTIM_ConfigADCTrig\n
2582   *         ADC1R        ADC1TFRST       LL_HRTIM_ConfigADCTrig\n
2583   *         ADC1R        ADC1TEC3        LL_HRTIM_ConfigADCTrig\n
2584   *         ADC1R        ADC1TEC4        LL_HRTIM_ConfigADCTrig\n
2585   *         ADC1R        ADC1TEPER       LL_HRTIM_ConfigADCTrig\n
2586   *         ADC2R        ADC2MC1         LL_HRTIM_ConfigADCTrig\n
2587   *         ADC2R        ADC2MC2         LL_HRTIM_ConfigADCTrig\n
2588   *         ADC2R        ADC2MC3         LL_HRTIM_ConfigADCTrig\n
2589   *         ADC2R        ADC2MC4         LL_HRTIM_ConfigADCTrig\n
2590   *         ADC2R        ADC2MPER        LL_HRTIM_ConfigADCTrig\n
2591   *         ADC2R        ADC2EEV6        LL_HRTIM_ConfigADCTrig\n
2592   *         ADC2R        ADC2EEV7        LL_HRTIM_ConfigADCTrig\n
2593   *         ADC2R        ADC2EEV8        LL_HRTIM_ConfigADCTrig\n
2594   *         ADC2R        ADC2EEV9        LL_HRTIM_ConfigADCTrig\n
2595   *         ADC2R        ADC2EEV10       LL_HRTIM_ConfigADCTrig\n
2596   *         ADC2R        ADC2TAC2        LL_HRTIM_ConfigADCTrig\n
2597   *         ADC2R        ADC2TFC2        LL_HRTIM_ConfigADCTrig\n
2598   *         ADC2R        ADC2TAC4        LL_HRTIM_ConfigADCTrig\n
2599   *         ADC2R        ADC2TAPER       LL_HRTIM_ConfigADCTrig\n
2600   *         ADC2R        ADC2TBC2        LL_HRTIM_ConfigADCTrig\n
2601   *         ADC2R        ADC2TFC3        LL_HRTIM_ConfigADCTrig\n
2602   *         ADC2R        ADC2TBC4        LL_HRTIM_ConfigADCTrig\n
2603   *         ADC2R        ADC2TBPER       LL_HRTIM_ConfigADCTrig\n
2604   *         ADC2R        ADC2TCC2        LL_HRTIM_ConfigADCTrig\n
2605   *         ADC2R        ADC2TFC4        LL_HRTIM_ConfigADCTrig\n
2606   *         ADC2R        ADC2TCC4        LL_HRTIM_ConfigADCTrig\n
2607   *         ADC2R        ADC2TCPER       LL_HRTIM_ConfigADCTrig\n
2608   *         ADC2R        ADC2TCRST       LL_HRTIM_ConfigADCTrig\n
2609   *         ADC2R        ADC2TDC2        LL_HRTIM_ConfigADCTrig\n
2610   *         ADC2R        ADC2TFPER       LL_HRTIM_ConfigADCTrig\n
2611   *         ADC2R        ADC2TDC4        LL_HRTIM_ConfigADCTrig\n
2612   *         ADC2R        ADC2TDPER       LL_HRTIM_ConfigADCTrig\n
2613   *         ADC2R        ADC2TDRST       LL_HRTIM_ConfigADCTrig\n
2614   *         ADC2R        ADC2TEC2        LL_HRTIM_ConfigADCTrig\n
2615   *         ADC2R        ADC2TEC3        LL_HRTIM_ConfigADCTrig\n
2616   *         ADC2R        ADC2TEC4        LL_HRTIM_ConfigADCTrig\n
2617   *         ADC2R        ADC2TERST       LL_HRTIM_ConfigADCTrig\n
2618   *         ADC3R        ADC3MC1         LL_HRTIM_ConfigADCTrig\n
2619   *         ADC3R        ADC3MC2         LL_HRTIM_ConfigADCTrig\n
2620   *         ADC3R        ADC3MC3         LL_HRTIM_ConfigADCTrig\n
2621   *         ADC3R        ADC3MC4         LL_HRTIM_ConfigADCTrig\n
2622   *         ADC3R        ADC3MPER        LL_HRTIM_ConfigADCTrig\n
2623   *         ADC3R        ADC3EEV1        LL_HRTIM_ConfigADCTrig\n
2624   *         ADC3R        ADC3EEV2        LL_HRTIM_ConfigADCTrig\n
2625   *         ADC3R        ADC3EEV3        LL_HRTIM_ConfigADCTrig\n
2626   *         ADC3R        ADC3EEV4        LL_HRTIM_ConfigADCTrig\n
2627   *         ADC3R        ADC3EEV5        LL_HRTIM_ConfigADCTrig\n
2628   *         ADC3R        ADC3TFC2        LL_HRTIM_ConfigADCTrig\n
2629   *         ADC3R        ADC3TAC3        LL_HRTIM_ConfigADCTrig\n
2630   *         ADC3R        ADC3TAC4        LL_HRTIM_ConfigADCTrig\n
2631   *         ADC3R        ADC3TAPER       LL_HRTIM_ConfigADCTrig\n
2632   *         ADC3R        ADC3TARST       LL_HRTIM_ConfigADCTrig\n
2633   *         ADC3R        ADC3TFC3        LL_HRTIM_ConfigADCTrig\n
2634   *         ADC3R        ADC3TBC3        LL_HRTIM_ConfigADCTrig\n
2635   *         ADC3R        ADC3TBC4        LL_HRTIM_ConfigADCTrig\n
2636   *         ADC3R        ADC3TBPER       LL_HRTIM_ConfigADCTrig\n
2637   *         ADC3R        ADC3TBRST       LL_HRTIM_ConfigADCTrig\n
2638   *         ADC3R        ADC3TFC4        LL_HRTIM_ConfigADCTrig\n
2639   *         ADC3R        ADC3TCC3        LL_HRTIM_ConfigADCTrig\n
2640   *         ADC3R        ADC3TCC4        LL_HRTIM_ConfigADCTrig\n
2641   *         ADC3R        ADC3TCPER       LL_HRTIM_ConfigADCTrig\n
2642   *         ADC3R        ADC3TFPER       LL_HRTIM_ConfigADCTrig\n
2643   *         ADC3R        ADC3TDC3        LL_HRTIM_ConfigADCTrig\n
2644   *         ADC3R        ADC3TDC4        LL_HRTIM_ConfigADCTrig\n
2645   *         ADC3R        ADC3TDPER       LL_HRTIM_ConfigADCTrig\n
2646   *         ADC3R        ADC3TFRST       LL_HRTIM_ConfigADCTrig\n
2647   *         ADC3R        ADC3TEC3        LL_HRTIM_ConfigADCTrig\n
2648   *         ADC3R        ADC3TEC4        LL_HRTIM_ConfigADCTrig\n
2649   *         ADC3R        ADC3TEPER       LL_HRTIM_ConfigADCTrig\n
2650   *         ADC4R        ADC4MC1         LL_HRTIM_ConfigADCTrig\n
2651   *         ADC4R        ADC4MC2         LL_HRTIM_ConfigADCTrig\n
2652   *         ADC4R        ADC4MC3         LL_HRTIM_ConfigADCTrig\n
2653   *         ADC4R        ADC4MC4         LL_HRTIM_ConfigADCTrig\n
2654   *         ADC4R        ADC4MPER        LL_HRTIM_ConfigADCTrig\n
2655   *         ADC4R        ADC4EEV6        LL_HRTIM_ConfigADCTrig\n
2656   *         ADC4R        ADC4EEV7        LL_HRTIM_ConfigADCTrig\n
2657   *         ADC4R        ADC4EEV8        LL_HRTIM_ConfigADCTrig\n
2658   *         ADC4R        ADC4EEV9        LL_HRTIM_ConfigADCTrig\n
2659   *         ADC4R        ADC4EEV10       LL_HRTIM_ConfigADCTrig\n
2660   *         ADC4R        ADC4TAC2        LL_HRTIM_ConfigADCTrig\n
2661   *         ADC4R        ADC4TFC2        LL_HRTIM_ConfigADCTrig\n
2662   *         ADC4R        ADC4TAC4        LL_HRTIM_ConfigADCTrig\n
2663   *         ADC4R        ADC4TAPER       LL_HRTIM_ConfigADCTrig\n
2664   *         ADC4R        ADC4TBC2        LL_HRTIM_ConfigADCTrig\n
2665   *         ADC4R        ADC4TFC3        LL_HRTIM_ConfigADCTrig\n
2666   *         ADC4R        ADC4TBC4        LL_HRTIM_ConfigADCTrig\n
2667   *         ADC4R        ADC4TBPER       LL_HRTIM_ConfigADCTrig\n
2668   *         ADC4R        ADC4TCC2        LL_HRTIM_ConfigADCTrig\n
2669   *         ADC4R        ADC4TFC4        LL_HRTIM_ConfigADCTrig\n
2670   *         ADC4R        ADC4TCC4        LL_HRTIM_ConfigADCTrig\n
2671   *         ADC4R        ADC4TCPER       LL_HRTIM_ConfigADCTrig\n
2672   *         ADC4R        ADC4TCRST       LL_HRTIM_ConfigADCTrig\n
2673   *         ADC4R        ADC4TDC2        LL_HRTIM_ConfigADCTrig\n
2674   *         ADC4R        ADC4TFPER       LL_HRTIM_ConfigADCTrig\n
2675   *         ADC4R        ADC4TDC4        LL_HRTIM_ConfigADCTrig\n
2676   *         ADC4R        ADC4TDPER       LL_HRTIM_ConfigADCTrig\n
2677   *         ADC4R        ADC4TDRST       LL_HRTIM_ConfigADCTrig\n
2678   *         ADC4R        ADC4TEC2        LL_HRTIM_ConfigADCTrig\n
2679   *         ADC4R        ADC4TEC3        LL_HRTIM_ConfigADCTrig\n
2680   *         ADC4R        ADC4TEC4        LL_HRTIM_ConfigADCTrig\n
2681   *         ADC4R        ADC4TERST       LL_HRTIM_ConfigADCTrig
2682   * @param  HRTIMx High Resolution Timer instance
2683   * @param  ADCTrig This parameter can be one of the following values:
2684   *         @arg @ref LL_HRTIM_ADCTRIG_1
2685   *         @arg @ref LL_HRTIM_ADCTRIG_2
2686   *         @arg @ref LL_HRTIM_ADCTRIG_3
2687   *         @arg @ref LL_HRTIM_ADCTRIG_4
2688   * @param  Update This parameter can be one of the following values:
2689   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER
2690   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A
2691   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B
2692   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C
2693   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D
2694   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E
2695   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_F
2696   * @param  Src This parameter can be a combination of the following values:
2697   *
2698   *         For ADC trigger 1 and ADC trigger 3:
2699   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE
2700   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1
2701   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2
2702   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3
2703   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4
2704   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER
2705   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1
2706   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2
2707   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3
2708   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4
2709   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5
2710   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3
2711   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4
2712   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER
2713   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST
2714   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3
2715   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4
2716   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER
2717   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST
2718   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3
2719   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4
2720   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER
2721   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3
2722   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4
2723   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER
2724   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3
2725   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4
2726   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER
2727   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP2
2728   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP3
2729   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP4
2730   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFPER
2731   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFRST
2732   *
2733   *         For ADC trigger 2 and ADC trigger 4:
2734   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE
2735   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1
2736   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2
2737   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3
2738   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4
2739   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER
2740   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6
2741   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7
2742   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8
2743   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9
2744   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10
2745   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2
2746   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4
2747   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER
2748   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2
2749   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4
2750   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER
2751   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2
2752   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4
2753   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER
2754   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST
2755   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2
2756   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4
2757   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER
2758   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST
2759   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2
2760   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3
2761   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4
2762   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST
2763   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP2
2764   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP3
2765   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP4
2766   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFPER
2767   *
2768   *         For ADC trigger 5, ADC trigger 7 and ADC trigger 9 this parameter
2769   *         can be one of the following values:
2770   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP1
2771   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP2
2772   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP3
2773   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP4
2774   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MPER
2775   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV1
2776   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV2
2777   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV3
2778   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV4
2779   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV5
2780   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP3
2781   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP4
2782   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_PER
2783   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_RST
2784   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP3
2785   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP4
2786   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_PER
2787   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_RST
2788   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP3
2789   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP4
2790   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_PER
2791   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP3
2792   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP4
2793   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_PER
2794   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_CMP3
2795   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_CMP4
2796   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_PER
2797   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP2
2798   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP3
2799   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP4
2800   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_PER
2801   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_RST
2802   *
2803   *         For ADC trigger 6, ADC trigger 8 and ADC trigger 10 this parameter
2804   *         can be one of the following values:
2805   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP1
2806   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP2
2807   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP3
2808   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP4
2809   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MPER
2810   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV6
2811   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV7
2812   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV8
2813   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV9
2814   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV10
2815   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP2
2816   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP4
2817   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_PER
2818   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP2
2819   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP4
2820   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_PER
2821   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP2
2822   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP4
2823   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_PER
2824   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_RST
2825   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP2
2826   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP4
2827   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_PER
2828   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_RST
2829   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP2
2830   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP3
2831   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP4
2832   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_RST
2833   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP2
2834   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP3
2835   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP4
2836   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_PER
2837   * @retval None
2838   */
LL_HRTIM_ConfigADCTrig(HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig,uint32_t Update,uint32_t Src)2839 __STATIC_INLINE void LL_HRTIM_ConfigADCTrig(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Update, uint32_t Src)
2840 {
2841   __IO uint32_t *padcur = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.CR1) +
2842                                                        REG_OFFSET_TAB_ADCUR[ADCTrig]));
2843   __IO uint32_t *padcer = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) +
2844                                                        REG_OFFSET_TAB_ADCER[ADCTrig]));
2845   MODIFY_REG(*padcur, REG_MASK_TAB_ADCUR[ADCTrig], (Update << REG_SHIFT_TAB_ADCUR[ADCTrig]));
2846   MODIFY_REG(*padcer, REG_MASK_TAB_ADCER[ADCTrig], (Src << REG_SHIFT_TAB_ADCER[ADCTrig]));
2847 }
2848 
2849 /**
2850   * @brief  Associate the ADCx trigger to a timer triggering the update of the HRTIM_ADCxR register.
2851   * @rmtoll CR1          ADC1USRC         LL_HRTIM_SetADCTrigUpdate\n
2852   *         CR1          ADC2USRC         LL_HRTIM_SetADCTrigUpdate\n
2853   *         CR1          ADC3USRC         LL_HRTIM_SetADCTrigUpdate\n
2854   *         CR1          ADC4USRC         LL_HRTIM_SetADCTrigUpdate\n
2855   *         ADCUR        ADC5USRC         LL_HRTIM_SetADCTrigUpdate\n
2856   *         ADCUR        ADC6USRC         LL_HRTIM_SetADCTrigUpdate\n
2857   *         ADCUR        ADC7USRC         LL_HRTIM_SetADCTrigUpdate\n
2858   *         ADCUR        ADC8USRC         LL_HRTIM_SetADCTrigUpdate\n
2859   *         ADCUR        ADC9USRC         LL_HRTIM_SetADCTrigUpdate\n
2860   *         ADCUR        ADC10USRC        LL_HRTIM_SetADCTrigUpdate
2861   * @note When the preload is disabled in the source timer, the HRTIM_ADCxR
2862   *       registers are not preloaded either: a write access will result in an
2863   *       immediate update of the trigger source.
2864   * @param  HRTIMx High Resolution Timer instance
2865   * @param  ADCTrig This parameter can be one of the following values:
2866   *         @arg @ref LL_HRTIM_ADCTRIG_1
2867   *         @arg @ref LL_HRTIM_ADCTRIG_2
2868   *         @arg @ref LL_HRTIM_ADCTRIG_3
2869   *         @arg @ref LL_HRTIM_ADCTRIG_4
2870   *         @arg @ref LL_HRTIM_ADCTRIG_5
2871   *         @arg @ref LL_HRTIM_ADCTRIG_6
2872   *         @arg @ref LL_HRTIM_ADCTRIG_7
2873   *         @arg @ref LL_HRTIM_ADCTRIG_8
2874   *         @arg @ref LL_HRTIM_ADCTRIG_9
2875   *         @arg @ref LL_HRTIM_ADCTRIG_10
2876   * @param  Update This parameter can be one of the following values:
2877   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER
2878   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A
2879   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B
2880   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C
2881   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D
2882   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E
2883   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_F
2884   * @retval None
2885   */
LL_HRTIM_SetADCTrigUpdate(HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig,uint32_t Update)2886 __STATIC_INLINE void LL_HRTIM_SetADCTrigUpdate(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Update)
2887 {
2888   __IO uint32_t *preg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.CR1) +
2889                                                      REG_OFFSET_TAB_ADCUR[ADCTrig]));
2890   MODIFY_REG(*preg, REG_MASK_TAB_ADCUR[ADCTrig], (Update << REG_SHIFT_TAB_ADCUR[ADCTrig]));
2891 }
2892 
2893 /**
2894   * @brief  Get the source timer triggering the update of the HRTIM_ADCxR register.
2895   * @rmtoll CR1          ADC1USRC        LL_HRTIM_GetADCTrigUpdate\n
2896   *         CR1          ADC2USRC        LL_HRTIM_GetADCTrigUpdate\n
2897   *         CR1          ADC3USRC        LL_HRTIM_GetADCTrigUpdate\n
2898   *         CR1          ADC4USRC        LL_HRTIM_GetADCTrigUpdate\n
2899   *         ADCUR        ADC5USRC        LL_HRTIM_GetADCTrigUpdate\n
2900   *         ADCUR        ADC6USRC        LL_HRTIM_GetADCTrigUpdate\n
2901   *         ADCUR        ADC7USRC        LL_HRTIM_GetADCTrigUpdate\n
2902   *         ADCUR        ADC8USRC        LL_HRTIM_GetADCTrigUpdate\n
2903   *         ADCUR        ADC9USRC        LL_HRTIM_GetADCTrigUpdate\n
2904   *         ADCUR        ADC10USRC       LL_HRTIM_GetADCTrigUpdate
2905   * @param  HRTIMx High Resolution Timer instance
2906   * @param  ADCTrig This parameter can be one of the following values:
2907   *         @arg @ref LL_HRTIM_ADCTRIG_1
2908   *         @arg @ref LL_HRTIM_ADCTRIG_2
2909   *         @arg @ref LL_HRTIM_ADCTRIG_3
2910   *         @arg @ref LL_HRTIM_ADCTRIG_4
2911   *         @arg @ref LL_HRTIM_ADCTRIG_5
2912   *         @arg @ref LL_HRTIM_ADCTRIG_6
2913   *         @arg @ref LL_HRTIM_ADCTRIG_7
2914   *         @arg @ref LL_HRTIM_ADCTRIG_8
2915   *         @arg @ref LL_HRTIM_ADCTRIG_9
2916   *         @arg @ref LL_HRTIM_ADCTRIG_10
2917   * @retval Update Returned value can be one of the following values:
2918   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER
2919   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A
2920   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B
2921   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C
2922   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D
2923   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E
2924   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_F
2925   */
LL_HRTIM_GetADCTrigUpdate(const HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig)2926 __STATIC_INLINE uint32_t LL_HRTIM_GetADCTrigUpdate(const HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig)
2927 {
2928   const __IO uint32_t *preg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.CR1) +
2929                                                            REG_OFFSET_TAB_ADCUR[ADCTrig]));
2930   return (READ_BIT(*preg, (REG_MASK_TAB_ADCUR[ADCTrig])) >> REG_SHIFT_TAB_ADCUR[ADCTrig]);
2931 }
2932 
2933 /**
2934   * @brief  Specify which events (timer events and/or external events) are used as triggers for ADC conversion.
2935   * @rmtoll ADC1R        ADC1MC1         LL_HRTIM_SetADCTrigSrc\n
2936   *         ADC1R        ADC1MC2         LL_HRTIM_SetADCTrigSrc\n
2937   *         ADC1R        ADC1MC3         LL_HRTIM_SetADCTrigSrc\n
2938   *         ADC1R        ADC1MC4         LL_HRTIM_SetADCTrigSrc\n
2939   *         ADC1R        ADC1MPER        LL_HRTIM_SetADCTrigSrc\n
2940   *         ADC1R        ADC1EEV1        LL_HRTIM_SetADCTrigSrc\n
2941   *         ADC1R        ADC1EEV2        LL_HRTIM_SetADCTrigSrc\n
2942   *         ADC1R        ADC1EEV3        LL_HRTIM_SetADCTrigSrc\n
2943   *         ADC1R        ADC1EEV4        LL_HRTIM_SetADCTrigSrc\n
2944   *         ADC1R        ADC1EEV5        LL_HRTIM_SetADCTrigSrc\n
2945   *         ADC1R        ADC1TFC2        LL_HRTIM_SetADCTrigSrc\n
2946   *         ADC1R        ADC1TAC3        LL_HRTIM_SetADCTrigSrc\n
2947   *         ADC1R        ADC1TAC4        LL_HRTIM_SetADCTrigSrc\n
2948   *         ADC1R        ADC1TAPER       LL_HRTIM_SetADCTrigSrc\n
2949   *         ADC1R        ADC1TARST       LL_HRTIM_SetADCTrigSrc\n
2950   *         ADC1R        ADC1TFC3        LL_HRTIM_SetADCTrigSrc\n
2951   *         ADC1R        ADC1TBC3        LL_HRTIM_SetADCTrigSrc\n
2952   *         ADC1R        ADC1TBC4        LL_HRTIM_SetADCTrigSrc\n
2953   *         ADC1R        ADC1TBPER       LL_HRTIM_SetADCTrigSrc\n
2954   *         ADC1R        ADC1TBRST       LL_HRTIM_SetADCTrigSrc\n
2955   *         ADC1R        ADC1TFC4        LL_HRTIM_SetADCTrigSrc\n
2956   *         ADC1R        ADC1TCC3        LL_HRTIM_SetADCTrigSrc\n
2957   *         ADC1R        ADC1TCC4        LL_HRTIM_SetADCTrigSrc\n
2958   *         ADC1R        ADC1TCPER       LL_HRTIM_SetADCTrigSrc\n
2959   *         ADC1R        ADC1TFPER       LL_HRTIM_SetADCTrigSrc\n
2960   *         ADC1R        ADC1TDC3        LL_HRTIM_SetADCTrigSrc\n
2961   *         ADC1R        ADC1TDC4        LL_HRTIM_SetADCTrigSrc\n
2962   *         ADC1R        ADC1TDPER       LL_HRTIM_SetADCTrigSrc\n
2963   *         ADC1R        ADC1TFRST       LL_HRTIM_SetADCTrigSrc\n
2964   *         ADC1R        ADC1TEC3        LL_HRTIM_SetADCTrigSrc\n
2965   *         ADC1R        ADC1TEC4        LL_HRTIM_SetADCTrigSrc\n
2966   *         ADC1R        ADC1TEPER       LL_HRTIM_SetADCTrigSrc\n
2967   *         ADC2R        ADC2MC1         LL_HRTIM_SetADCTrigSrc\n
2968   *         ADC2R        ADC2MC2         LL_HRTIM_SetADCTrigSrc\n
2969   *         ADC2R        ADC2MC3         LL_HRTIM_SetADCTrigSrc\n
2970   *         ADC2R        ADC2MC4         LL_HRTIM_SetADCTrigSrc\n
2971   *         ADC2R        ADC2MPER        LL_HRTIM_SetADCTrigSrc\n
2972   *         ADC2R        ADC2EEV6        LL_HRTIM_SetADCTrigSrc\n
2973   *         ADC2R        ADC2EEV7        LL_HRTIM_SetADCTrigSrc\n
2974   *         ADC2R        ADC2EEV8        LL_HRTIM_SetADCTrigSrc\n
2975   *         ADC2R        ADC2EEV9        LL_HRTIM_SetADCTrigSrc\n
2976   *         ADC2R        ADC2EEV10       LL_HRTIM_SetADCTrigSrc\n
2977   *         ADC2R        ADC2TAC2        LL_HRTIM_SetADCTrigSrc\n
2978   *         ADC2R        ADC2TFC2        LL_HRTIM_SetADCTrigSrc\n
2979   *         ADC2R        ADC2TAC4        LL_HRTIM_SetADCTrigSrc\n
2980   *         ADC2R        ADC2TAPER       LL_HRTIM_SetADCTrigSrc\n
2981   *         ADC2R        ADC2TBC2        LL_HRTIM_SetADCTrigSrc\n
2982   *         ADC2R        ADC2TFC3        LL_HRTIM_SetADCTrigSrc\n
2983   *         ADC2R        ADC2TBC4        LL_HRTIM_SetADCTrigSrc\n
2984   *         ADC2R        ADC2TBPER       LL_HRTIM_SetADCTrigSrc\n
2985   *         ADC2R        ADC2TCC2        LL_HRTIM_SetADCTrigSrc\n
2986   *         ADC2R        ADC2TFC4        LL_HRTIM_SetADCTrigSrc\n
2987   *         ADC2R        ADC2TCC4        LL_HRTIM_SetADCTrigSrc\n
2988   *         ADC2R        ADC2TCPER       LL_HRTIM_SetADCTrigSrc\n
2989   *         ADC2R        ADC2TCRST       LL_HRTIM_SetADCTrigSrc\n
2990   *         ADC2R        ADC2TDC2        LL_HRTIM_SetADCTrigSrc\n
2991   *         ADC2R        ADC2TFPER       LL_HRTIM_SetADCTrigSrc\n
2992   *         ADC2R        ADC2TDC4        LL_HRTIM_SetADCTrigSrc\n
2993   *         ADC2R        ADC2TDPER       LL_HRTIM_SetADCTrigSrc\n
2994   *         ADC2R        ADC2TDRST       LL_HRTIM_SetADCTrigSrc\n
2995   *         ADC2R        ADC2TEC2        LL_HRTIM_SetADCTrigSrc\n
2996   *         ADC2R        ADC2TEC3        LL_HRTIM_SetADCTrigSrc\n
2997   *         ADC2R        ADC2TEC4        LL_HRTIM_SetADCTrigSrc\n
2998   *         ADC2R        ADC2TERST       LL_HRTIM_SetADCTrigSrc\n
2999   *         ADC3R        ADC3MC1         LL_HRTIM_SetADCTrigSrc\n
3000   *         ADC3R        ADC3MC2         LL_HRTIM_SetADCTrigSrc\n
3001   *         ADC3R        ADC3MC3         LL_HRTIM_SetADCTrigSrc\n
3002   *         ADC3R        ADC3MC4         LL_HRTIM_SetADCTrigSrc\n
3003   *         ADC3R        ADC3MPER        LL_HRTIM_SetADCTrigSrc\n
3004   *         ADC3R        ADC3EEV1        LL_HRTIM_SetADCTrigSrc\n
3005   *         ADC3R        ADC3EEV2        LL_HRTIM_SetADCTrigSrc\n
3006   *         ADC3R        ADC3EEV3        LL_HRTIM_SetADCTrigSrc\n
3007   *         ADC3R        ADC3EEV4        LL_HRTIM_SetADCTrigSrc\n
3008   *         ADC3R        ADC3EEV5        LL_HRTIM_SetADCTrigSrc\n
3009   *         ADC3R        ADC3TFC2        LL_HRTIM_SetADCTrigSrc\n
3010   *         ADC3R        ADC3TAC3        LL_HRTIM_SetADCTrigSrc\n
3011   *         ADC3R        ADC3TAC4        LL_HRTIM_SetADCTrigSrc\n
3012   *         ADC3R        ADC3TAPER       LL_HRTIM_SetADCTrigSrc\n
3013   *         ADC3R        ADC3TARST       LL_HRTIM_SetADCTrigSrc\n
3014   *         ADC3R        ADC3TFC3        LL_HRTIM_SetADCTrigSrc\n
3015   *         ADC3R        ADC3TBC3        LL_HRTIM_SetADCTrigSrc\n
3016   *         ADC3R        ADC3TBC4        LL_HRTIM_SetADCTrigSrc\n
3017   *         ADC3R        ADC3TBPER       LL_HRTIM_SetADCTrigSrc\n
3018   *         ADC3R        ADC3TBRST       LL_HRTIM_SetADCTrigSrc\n
3019   *         ADC3R        ADC3TFC4        LL_HRTIM_SetADCTrigSrc\n
3020   *         ADC3R        ADC3TCC3        LL_HRTIM_SetADCTrigSrc\n
3021   *         ADC3R        ADC3TCC4        LL_HRTIM_SetADCTrigSrc\n
3022   *         ADC3R        ADC3TCPER       LL_HRTIM_SetADCTrigSrc\n
3023   *         ADC3R        ADC3TFPER       LL_HRTIM_SetADCTrigSrc\n
3024   *         ADC3R        ADC3TDC3        LL_HRTIM_SetADCTrigSrc\n
3025   *         ADC3R        ADC3TDC4        LL_HRTIM_SetADCTrigSrc\n
3026   *         ADC3R        ADC3TDPER       LL_HRTIM_SetADCTrigSrc\n
3027   *         ADC3R        ADC3TFRST       LL_HRTIM_SetADCTrigSrc\n
3028   *         ADC3R        ADC3TEC3        LL_HRTIM_SetADCTrigSrc\n
3029   *         ADC3R        ADC3TEC4        LL_HRTIM_SetADCTrigSrc\n
3030   *         ADC3R        ADC3TEPER       LL_HRTIM_SetADCTrigSrc\n
3031   *         ADC4R        ADC4MC1         LL_HRTIM_SetADCTrigSrc\n
3032   *         ADC4R        ADC4MC2         LL_HRTIM_SetADCTrigSrc\n
3033   *         ADC4R        ADC4MC3         LL_HRTIM_SetADCTrigSrc\n
3034   *         ADC4R        ADC4MC4         LL_HRTIM_SetADCTrigSrc\n
3035   *         ADC4R        ADC4MPER        LL_HRTIM_SetADCTrigSrc\n
3036   *         ADC4R        ADC4EEV6        LL_HRTIM_SetADCTrigSrc\n
3037   *         ADC4R        ADC4EEV7        LL_HRTIM_SetADCTrigSrc\n
3038   *         ADC4R        ADC4EEV8        LL_HRTIM_SetADCTrigSrc\n
3039   *         ADC4R        ADC4EEV9        LL_HRTIM_SetADCTrigSrc\n
3040   *         ADC4R        ADC4EEV10       LL_HRTIM_SetADCTrigSrc\n
3041   *         ADC4R        ADC4TAC2        LL_HRTIM_SetADCTrigSrc\n
3042   *         ADC4R        ADC4TFC2        LL_HRTIM_SetADCTrigSrc\n
3043   *         ADC4R        ADC4TAC4        LL_HRTIM_SetADCTrigSrc\n
3044   *         ADC4R        ADC4TAPER       LL_HRTIM_SetADCTrigSrc\n
3045   *         ADC4R        ADC4TBC2        LL_HRTIM_SetADCTrigSrc\n
3046   *         ADC4R        ADC4TFC3        LL_HRTIM_SetADCTrigSrc\n
3047   *         ADC4R        ADC4TBC4        LL_HRTIM_SetADCTrigSrc\n
3048   *         ADC4R        ADC4TBPER       LL_HRTIM_SetADCTrigSrc\n
3049   *         ADC4R        ADC4TCC2        LL_HRTIM_SetADCTrigSrc\n
3050   *         ADC4R        ADC4TFC4        LL_HRTIM_SetADCTrigSrc\n
3051   *         ADC4R        ADC4TCC4        LL_HRTIM_SetADCTrigSrc\n
3052   *         ADC4R        ADC4TCPER       LL_HRTIM_SetADCTrigSrc\n
3053   *         ADC4R        ADC4TCRST       LL_HRTIM_SetADCTrigSrc\n
3054   *         ADC4R        ADC4TDC2        LL_HRTIM_SetADCTrigSrc\n
3055   *         ADC4R        ADC4TFPER       LL_HRTIM_SetADCTrigSrc\n
3056   *         ADC4R        ADC4TDC4        LL_HRTIM_SetADCTrigSrc\n
3057   *         ADC4R        ADC4TDPER       LL_HRTIM_SetADCTrigSrc\n
3058   *         ADC4R        ADC4TDRST       LL_HRTIM_SetADCTrigSrc\n
3059   *         ADC4R        ADC4TEC2        LL_HRTIM_SetADCTrigSrc\n
3060   *         ADC4R        ADC4TEC3        LL_HRTIM_SetADCTrigSrc\n
3061   *         ADC4R        ADC4TEC4        LL_HRTIM_SetADCTrigSrc\n
3062   *         ADC4R        ADC4TERST       LL_HRTIM_SetADCTrigSrc\n
3063   *         ADCER        ADC5TRG         LL_HRTIM_SetADCTrigSrc\n
3064   *         ADCER        ADC6TRG         LL_HRTIM_SetADCTrigSrc\n
3065   *         ADCER        ADC7TRG         LL_HRTIM_SetADCTrigSrc\n
3066   *         ADCER        ADC8TRG         LL_HRTIM_SetADCTrigSrc\n
3067   *         ADCER        ADC9TRG         LL_HRTIM_SetADCTrigSrc\n
3068   *         ADCER        ADC10TRG        LL_HRTIM_SetADCTrigSrc
3069   * @param  HRTIMx High Resolution Timer instance
3070   * @param  ADCTrig This parameter can be one of the following values:
3071   *         @arg @ref LL_HRTIM_ADCTRIG_1
3072   *         @arg @ref LL_HRTIM_ADCTRIG_2
3073   *         @arg @ref LL_HRTIM_ADCTRIG_3
3074   *         @arg @ref LL_HRTIM_ADCTRIG_4
3075   *         @arg @ref LL_HRTIM_ADCTRIG_5
3076   *         @arg @ref LL_HRTIM_ADCTRIG_6
3077   *         @arg @ref LL_HRTIM_ADCTRIG_7
3078   *         @arg @ref LL_HRTIM_ADCTRIG_8
3079   *         @arg @ref LL_HRTIM_ADCTRIG_9
3080   *         @arg @ref LL_HRTIM_ADCTRIG_10
3081   * @param  Src
3082   *         For ADC trigger 1 and ADC trigger 3 this parameter can be a
3083   *         combination of the following values:
3084   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE
3085   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1
3086   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2
3087   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3
3088   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4
3089   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER
3090   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1
3091   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2
3092   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3
3093   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4
3094   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5
3095   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3
3096   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4
3097   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER
3098   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST
3099   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3
3100   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4
3101   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER
3102   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST
3103   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3
3104   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4
3105   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER
3106   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3
3107   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4
3108   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER
3109   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3
3110   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4
3111   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER
3112   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP2
3113   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP3
3114   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP4
3115   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFPER
3116   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFRST
3117   *
3118   *         For ADC trigger 2 and ADC trigger 4 this parameter can be a
3119   *         combination of the following values:
3120   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE
3121   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1
3122   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2
3123   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3
3124   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4
3125   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER
3126   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6
3127   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7
3128   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8
3129   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9
3130   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10
3131   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2
3132   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4
3133   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER
3134   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2
3135   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4
3136   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER
3137   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2
3138   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4
3139   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER
3140   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST
3141   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2
3142   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4
3143   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER
3144   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST
3145   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2
3146   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3
3147   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4
3148   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST
3149   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP2
3150   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP3
3151   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP4
3152   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFPER
3153   *
3154   *         For ADC trigger 5, ADC trigger 7 and ADC trigger 9 this parameter
3155   *         can be one of the following values:
3156   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP1
3157   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP2
3158   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP3
3159   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP4
3160   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MPER
3161   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV1
3162   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV2
3163   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV3
3164   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV4
3165   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV5
3166   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP3
3167   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP4
3168   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_PER
3169   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_RST
3170   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP3
3171   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP4
3172   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_PER
3173   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_RST
3174   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP3
3175   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP4
3176   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_PER
3177   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP3
3178   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP4
3179   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_PER
3180   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_CMP3
3181   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_CMP4
3182   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_PER
3183   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP2
3184   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP3
3185   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP4
3186   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_PER
3187   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_RST
3188   *
3189   *         For ADC trigger 6, ADC trigger 8 and ADC trigger 10 this parameter
3190   *         can be one of the following values:
3191   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP1
3192   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP2
3193   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP3
3194   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP4
3195   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MPER
3196   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV6
3197   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV7
3198   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV8
3199   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV9
3200   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV10
3201   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP2
3202   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP4
3203   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_PER
3204   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP2
3205   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP4
3206   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_PER
3207   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP2
3208   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP4
3209   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_PER
3210   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_RST
3211   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP2
3212   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP4
3213   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_PER
3214   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_RST
3215   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP2
3216   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP3
3217   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP4
3218   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_RST
3219   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP2
3220   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP3
3221   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP4
3222   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_PER
3223   * @retval None
3224   */
LL_HRTIM_SetADCTrigSrc(HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig,uint32_t Src)3225 __STATIC_INLINE void LL_HRTIM_SetADCTrigSrc(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Src)
3226 {
3227   __IO uint32_t *preg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) +
3228                                                      REG_OFFSET_TAB_ADCER[ADCTrig]));
3229   MODIFY_REG(*preg, REG_MASK_TAB_ADCER[ADCTrig], (Src << REG_SHIFT_TAB_ADCER[ADCTrig]));
3230 }
3231 
3232 /**
3233   * @brief  Indicate which events (timer events and/or external events) are currently used as triggers for ADC conversion.
3234   * @rmtoll ADC1R        ADC1MC1         LL_HRTIM_GetADCTrigSrc\n
3235   *         ADC1R        ADC1MC2         LL_HRTIM_GetADCTrigSrc\n
3236   *         ADC1R        ADC1MC3         LL_HRTIM_GetADCTrigSrc\n
3237   *         ADC1R        ADC1MC4         LL_HRTIM_GetADCTrigSrc\n
3238   *         ADC1R        ADC1MPER        LL_HRTIM_GetADCTrigSrc\n
3239   *         ADC1R        ADC1EEV1        LL_HRTIM_GetADCTrigSrc\n
3240   *         ADC1R        ADC1EEV2        LL_HRTIM_GetADCTrigSrc\n
3241   *         ADC1R        ADC1EEV3        LL_HRTIM_GetADCTrigSrc\n
3242   *         ADC1R        ADC1EEV4        LL_HRTIM_GetADCTrigSrc\n
3243   *         ADC1R        ADC1EEV5        LL_HRTIM_GetADCTrigSrc\n
3244   *         ADC1R        ADC1TFC2        LL_HRTIM_GetADCTrigSrc\n
3245   *         ADC1R        ADC1TAC3        LL_HRTIM_GetADCTrigSrc\n
3246   *         ADC1R        ADC1TAC4        LL_HRTIM_GetADCTrigSrc\n
3247   *         ADC1R        ADC1TAPER       LL_HRTIM_GetADCTrigSrc\n
3248   *         ADC1R        ADC1TARST       LL_HRTIM_GetADCTrigSrc\n
3249   *         ADC1R        ADC1TFC3        LL_HRTIM_GetADCTrigSrc\n
3250   *         ADC1R        ADC1TBC3        LL_HRTIM_GetADCTrigSrc\n
3251   *         ADC1R        ADC1TBC4        LL_HRTIM_GetADCTrigSrc\n
3252   *         ADC1R        ADC1TBPER       LL_HRTIM_GetADCTrigSrc\n
3253   *         ADC1R        ADC1TBRST       LL_HRTIM_GetADCTrigSrc\n
3254   *         ADC1R        ADC1TFC4        LL_HRTIM_GetADCTrigSrc\n
3255   *         ADC1R        ADC1TCC3        LL_HRTIM_GetADCTrigSrc\n
3256   *         ADC1R        ADC1TCC4        LL_HRTIM_GetADCTrigSrc\n
3257   *         ADC1R        ADC1TCPER       LL_HRTIM_GetADCTrigSrc\n
3258   *         ADC1R        ADC1TFPER       LL_HRTIM_GetADCTrigSrc\n
3259   *         ADC1R        ADC1TDC3        LL_HRTIM_GetADCTrigSrc\n
3260   *         ADC1R        ADC1TDC4        LL_HRTIM_GetADCTrigSrc\n
3261   *         ADC1R        ADC1TDPER       LL_HRTIM_GetADCTrigSrc\n
3262   *         ADC1R        ADC1TFRST       LL_HRTIM_GetADCTrigSrc\n
3263   *         ADC1R        ADC1TEC3        LL_HRTIM_GetADCTrigSrc\n
3264   *         ADC1R        ADC1TEC4        LL_HRTIM_GetADCTrigSrc\n
3265   *         ADC1R        ADC1TEPER       LL_HRTIM_GetADCTrigSrc\n
3266   *         ADC2R        ADC2MC1         LL_HRTIM_GetADCTrigSrc\n
3267   *         ADC2R        ADC2MC2         LL_HRTIM_GetADCTrigSrc\n
3268   *         ADC2R        ADC2MC3         LL_HRTIM_GetADCTrigSrc\n
3269   *         ADC2R        ADC2MC4         LL_HRTIM_GetADCTrigSrc\n
3270   *         ADC2R        ADC2MPER        LL_HRTIM_GetADCTrigSrc\n
3271   *         ADC2R        ADC2EEV6        LL_HRTIM_GetADCTrigSrc\n
3272   *         ADC2R        ADC2EEV7        LL_HRTIM_GetADCTrigSrc\n
3273   *         ADC2R        ADC2EEV8        LL_HRTIM_GetADCTrigSrc\n
3274   *         ADC2R        ADC2EEV9        LL_HRTIM_GetADCTrigSrc\n
3275   *         ADC2R        ADC2EEV10       LL_HRTIM_GetADCTrigSrc\n
3276   *         ADC2R        ADC2TAC2        LL_HRTIM_GetADCTrigSrc\n
3277   *         ADC2R        ADC2TFC2        LL_HRTIM_GetADCTrigSrc\n
3278   *         ADC2R        ADC2TAC4        LL_HRTIM_GetADCTrigSrc\n
3279   *         ADC2R        ADC2TAPER       LL_HRTIM_GetADCTrigSrc\n
3280   *         ADC2R        ADC2TBC2        LL_HRTIM_GetADCTrigSrc\n
3281   *         ADC2R        ADC2TFC3        LL_HRTIM_GetADCTrigSrc\n
3282   *         ADC2R        ADC2TBC4        LL_HRTIM_GetADCTrigSrc\n
3283   *         ADC2R        ADC2TBPER       LL_HRTIM_GetADCTrigSrc\n
3284   *         ADC2R        ADC2TCC2        LL_HRTIM_GetADCTrigSrc\n
3285   *         ADC2R        ADC2TFC4        LL_HRTIM_GetADCTrigSrc\n
3286   *         ADC2R        ADC2TCC4        LL_HRTIM_GetADCTrigSrc\n
3287   *         ADC2R        ADC2TCPER       LL_HRTIM_GetADCTrigSrc\n
3288   *         ADC2R        ADC2TCRST       LL_HRTIM_GetADCTrigSrc\n
3289   *         ADC2R        ADC2TDC2        LL_HRTIM_GetADCTrigSrc\n
3290   *         ADC2R        ADC2TFPER       LL_HRTIM_GetADCTrigSrc\n
3291   *         ADC2R        ADC2TDC4        LL_HRTIM_GetADCTrigSrc\n
3292   *         ADC2R        ADC2TDPER       LL_HRTIM_GetADCTrigSrc\n
3293   *         ADC2R        ADC2TDRST       LL_HRTIM_GetADCTrigSrc\n
3294   *         ADC2R        ADC2TEC2        LL_HRTIM_GetADCTrigSrc\n
3295   *         ADC2R        ADC2TEC3        LL_HRTIM_GetADCTrigSrc\n
3296   *         ADC2R        ADC2TEC4        LL_HRTIM_GetADCTrigSrc\n
3297   *         ADC2R        ADC2TERST       LL_HRTIM_GetADCTrigSrc\n
3298   *         ADC3R        ADC3MC1         LL_HRTIM_GetADCTrigSrc\n
3299   *         ADC3R        ADC3MC2         LL_HRTIM_GetADCTrigSrc\n
3300   *         ADC3R        ADC3MC3         LL_HRTIM_GetADCTrigSrc\n
3301   *         ADC3R        ADC3MC4         LL_HRTIM_GetADCTrigSrc\n
3302   *         ADC3R        ADC3MPER        LL_HRTIM_GetADCTrigSrc\n
3303   *         ADC3R        ADC3EEV1        LL_HRTIM_GetADCTrigSrc\n
3304   *         ADC3R        ADC3EEV2        LL_HRTIM_GetADCTrigSrc\n
3305   *         ADC3R        ADC3EEV3        LL_HRTIM_GetADCTrigSrc\n
3306   *         ADC3R        ADC3EEV4        LL_HRTIM_GetADCTrigSrc\n
3307   *         ADC3R        ADC3EEV5        LL_HRTIM_GetADCTrigSrc\n
3308   *         ADC3R        ADC3TFC2        LL_HRTIM_GetADCTrigSrc\n
3309   *         ADC3R        ADC3TAC3        LL_HRTIM_GetADCTrigSrc\n
3310   *         ADC3R        ADC3TAC4        LL_HRTIM_GetADCTrigSrc\n
3311   *         ADC3R        ADC3TAPER       LL_HRTIM_GetADCTrigSrc\n
3312   *         ADC3R        ADC3TARST       LL_HRTIM_GetADCTrigSrc\n
3313   *         ADC3R        ADC3TFC3        LL_HRTIM_GetADCTrigSrc\n
3314   *         ADC3R        ADC3TBC3        LL_HRTIM_GetADCTrigSrc\n
3315   *         ADC3R        ADC3TBC4        LL_HRTIM_GetADCTrigSrc\n
3316   *         ADC3R        ADC3TBPER       LL_HRTIM_GetADCTrigSrc\n
3317   *         ADC3R        ADC3TBRST       LL_HRTIM_GetADCTrigSrc\n
3318   *         ADC3R        ADC3TFC4        LL_HRTIM_GetADCTrigSrc\n
3319   *         ADC3R        ADC3TCC3        LL_HRTIM_GetADCTrigSrc\n
3320   *         ADC3R        ADC3TCC4        LL_HRTIM_GetADCTrigSrc\n
3321   *         ADC3R        ADC3TCPER       LL_HRTIM_GetADCTrigSrc\n
3322   *         ADC3R        ADC3TFPER       LL_HRTIM_GetADCTrigSrc\n
3323   *         ADC3R        ADC3TDC3        LL_HRTIM_GetADCTrigSrc\n
3324   *         ADC3R        ADC3TDC4        LL_HRTIM_GetADCTrigSrc\n
3325   *         ADC3R        ADC3TDPER       LL_HRTIM_GetADCTrigSrc\n
3326   *         ADC3R        ADC3TFRST       LL_HRTIM_GetADCTrigSrc\n
3327   *         ADC3R        ADC3TEC3        LL_HRTIM_GetADCTrigSrc\n
3328   *         ADC3R        ADC3TEC4        LL_HRTIM_GetADCTrigSrc\n
3329   *         ADC3R        ADC3TEPER       LL_HRTIM_GetADCTrigSrc\n
3330   *         ADC4R        ADC4MC1         LL_HRTIM_GetADCTrigSrc\n
3331   *         ADC4R        ADC4MC2         LL_HRTIM_GetADCTrigSrc\n
3332   *         ADC4R        ADC4MC3         LL_HRTIM_GetADCTrigSrc\n
3333   *         ADC4R        ADC4MC4         LL_HRTIM_GetADCTrigSrc\n
3334   *         ADC4R        ADC4MPER        LL_HRTIM_GetADCTrigSrc\n
3335   *         ADC4R        ADC4EEV6        LL_HRTIM_GetADCTrigSrc\n
3336   *         ADC4R        ADC4EEV7        LL_HRTIM_GetADCTrigSrc\n
3337   *         ADC4R        ADC4EEV8        LL_HRTIM_GetADCTrigSrc\n
3338   *         ADC4R        ADC4EEV9        LL_HRTIM_GetADCTrigSrc\n
3339   *         ADC4R        ADC4EEV10       LL_HRTIM_GetADCTrigSrc\n
3340   *         ADC4R        ADC4TAC2        LL_HRTIM_GetADCTrigSrc\n
3341   *         ADC4R        ADC4TFC2        LL_HRTIM_GetADCTrigSrc\n
3342   *         ADC4R        ADC4TAC4        LL_HRTIM_GetADCTrigSrc\n
3343   *         ADC4R        ADC4TAPER       LL_HRTIM_GetADCTrigSrc\n
3344   *         ADC4R        ADC4TBC2        LL_HRTIM_GetADCTrigSrc\n
3345   *         ADC4R        ADC4TFC3        LL_HRTIM_GetADCTrigSrc\n
3346   *         ADC4R        ADC4TBC4        LL_HRTIM_GetADCTrigSrc\n
3347   *         ADC4R        ADC4TBPER       LL_HRTIM_GetADCTrigSrc\n
3348   *         ADC4R        ADC4TCC2        LL_HRTIM_GetADCTrigSrc\n
3349   *         ADC4R        ADC4TFC4        LL_HRTIM_GetADCTrigSrc\n
3350   *         ADC4R        ADC4TCC4        LL_HRTIM_GetADCTrigSrc\n
3351   *         ADC4R        ADC4TCPER       LL_HRTIM_GetADCTrigSrc\n
3352   *         ADC4R        ADC4TCRST       LL_HRTIM_GetADCTrigSrc\n
3353   *         ADC4R        ADC4TDC2        LL_HRTIM_GetADCTrigSrc\n
3354   *         ADC4R        ADC4TFPER       LL_HRTIM_GetADCTrigSrc\n
3355   *         ADC4R        ADC4TDC4        LL_HRTIM_GetADCTrigSrc\n
3356   *         ADC4R        ADC4TDPER       LL_HRTIM_GetADCTrigSrc\n
3357   *         ADC4R        ADC4TDRST       LL_HRTIM_GetADCTrigSrc\n
3358   *         ADC4R        ADC4TEC2        LL_HRTIM_GetADCTrigSrc\n
3359   *         ADC4R        ADC4TEC3        LL_HRTIM_GetADCTrigSrc\n
3360   *         ADC4R        ADC4TEC4        LL_HRTIM_GetADCTrigSrc\n
3361   *         ADC4R        ADC4TERST       LL_HRTIM_GetADCTrigSrc
3362   *         ADCER        ADC5TRG         LL_HRTIM_SetADCTrigSrc\n
3363   *         ADCER        ADC6TRG         LL_HRTIM_SetADCTrigSrc\n
3364   *         ADCER        ADC7TRG         LL_HRTIM_SetADCTrigSrc\n
3365   *         ADCER        ADC8TRG         LL_HRTIM_SetADCTrigSrc\n
3366   *         ADCER        ADC9TRG         LL_HRTIM_SetADCTrigSrc\n
3367   *         ADCER        ADC10TRG        LL_HRTIM_SetADCTrigSrc
3368   * @param  HRTIMx High Resolution Timer instance
3369   * @param  HRTIMx High Resolution Timer instance
3370   * @param  ADCTrig This parameter can be one of the following values:
3371   *         @arg @ref LL_HRTIM_ADCTRIG_1
3372   *         @arg @ref LL_HRTIM_ADCTRIG_2
3373   *         @arg @ref LL_HRTIM_ADCTRIG_3
3374   *         @arg @ref LL_HRTIM_ADCTRIG_4
3375   *         @arg @ref LL_HRTIM_ADCTRIG_5
3376   *         @arg @ref LL_HRTIM_ADCTRIG_6
3377   *         @arg @ref LL_HRTIM_ADCTRIG_7
3378   *         @arg @ref LL_HRTIM_ADCTRIG_8
3379   *         @arg @ref LL_HRTIM_ADCTRIG_9
3380   *         @arg @ref LL_HRTIM_ADCTRIG_10
3381   * @retval Src This parameter can be a combination of the following values:
3382   *
3383   *         For ADC trigger 1 and ADC trigger 3 this parameter can be a
3384   *         combination of the following values:
3385   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE
3386   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1
3387   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2
3388   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3
3389   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4
3390   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER
3391   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1
3392   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2
3393   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3
3394   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4
3395   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5
3396   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3
3397   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4
3398   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER
3399   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST
3400   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3
3401   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4
3402   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER
3403   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST
3404   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3
3405   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4
3406   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER
3407   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3
3408   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4
3409   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER
3410   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3
3411   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4
3412   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER
3413   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP2
3414   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP3
3415   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFCMP4
3416   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFPER
3417   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMFRST
3418   *
3419   *         For ADC trigger 2 and ADC trigger 4 this parameter can be a
3420   *         combination of the following values:
3421   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE
3422   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1
3423   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2
3424   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3
3425   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4
3426   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER
3427   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6
3428   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7
3429   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8
3430   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9
3431   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10
3432   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2
3433   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4
3434   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER
3435   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2
3436   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4
3437   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER
3438   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2
3439   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4
3440   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER
3441   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST
3442   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2
3443   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4
3444   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER
3445   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST
3446   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2
3447   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3
3448   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4
3449   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST
3450   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP2
3451   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP3
3452   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFCMP4
3453   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMFPER
3454   *
3455   *         For ADC trigger 5, ADC trigger 7 and ADC trigger 9 this parameter
3456   *         can be one of the following values:
3457   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP1
3458   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP2
3459   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP3
3460   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MCMP4
3461   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_MPER
3462   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV1
3463   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV2
3464   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV3
3465   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV4
3466   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_EEV5
3467   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP3
3468   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_CMP4
3469   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_PER
3470   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMA_RST
3471   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP3
3472   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_CMP4
3473   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_PER
3474   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMB_RST
3475   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP3
3476   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_CMP4
3477   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMC_PER
3478   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP3
3479   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_CMP4
3480   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMD_PER
3481   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_CMP3
3482   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_CMP4
3483   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIME_PER
3484   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP2
3485   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP3
3486   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_CMP4
3487   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_PER
3488   *         @arg @ref LL_HRTIM_ADCTRIG_SRC579_TIMF_RST
3489   *
3490   *         For ADC trigger 6, ADC trigger 8 and ADC trigger 10 this parameter
3491   *         can be one of the following values:
3492   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP1
3493   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP2
3494   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP3
3495   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MCMP4
3496   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_MPER
3497   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV6
3498   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV7
3499   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV8
3500   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV9
3501   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_EEV10
3502   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP2
3503   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_CMP4
3504   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMA_PER
3505   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP2
3506   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_CMP4
3507   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMB_PER
3508   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP2
3509   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_CMP4
3510   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_PER
3511   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMC_RST
3512   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP2
3513   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_CMP4
3514   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_PER
3515   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMD_RST
3516   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP2
3517   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP3
3518   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_CMP4
3519   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIME_RST
3520   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP2
3521   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP3
3522   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_CMP4
3523   *         @arg @ref LL_HRTIM_ADCTRIG_SRC6810_TIMF_PER
3524   */
LL_HRTIM_GetADCTrigSrc(const HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig)3525 __STATIC_INLINE uint32_t LL_HRTIM_GetADCTrigSrc(const HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig)
3526 {
3527   const __IO uint32_t *preg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) +
3528                                                            REG_OFFSET_TAB_ADCER[ADCTrig]));
3529   return (READ_BIT(*preg, (REG_MASK_TAB_ADCER[ADCTrig])) >> REG_SHIFT_TAB_ADCER[ADCTrig]);
3530 
3531 }
3532 
3533 
3534 /**
3535   * @brief  Select the ADC post scaler.
3536   * @note This function allows to adjust each ADC trigger rate individually.
3537   * @note In center-aligned mode, the ADC trigger rate is also dependent on
3538   *       ADROM[1:0] bitfield, programmed in the source timer
3539   *       (see function @ref LL_HRTIM_TIM_SetADCRollOverMode)
3540   * @rmtoll ADCPS2       ADC10PSC        LL_HRTIM_SetADCPostScaler\n
3541   *         ADCPS2       ADC9PSC         LL_HRTIM_SetADCPostScaler\n
3542   *         ADCPS2       ADC8PSC         LL_HRTIM_SetADCPostScaler\n
3543   *         ADCPS2       ADC7PSC         LL_HRTIM_SetADCPostScaler\n
3544   *         ADCPS2       ADC6PSC         LL_HRTIM_SetADCPostScaler\n
3545   *         ADCPS1       ADC5PSC         LL_HRTIM_SetADCPostScaler\n
3546   *         ADCPS1       ADC4PSC         LL_HRTIM_SetADCPostScaler\n
3547   *         ADCPS1       ADC3PSC         LL_HRTIM_SetADCPostScaler\n
3548   *         ADCPS1       ADC2PSC         LL_HRTIM_SetADCPostScaler\n
3549   *         ADCPS1       ADC1PSC         LL_HRTIM_SetADCPostScaler
3550   * @param  HRTIMx High Resolution Timer instance
3551   * @param  ADCTrig This parameter can be one of the following values:
3552   *         @arg @ref LL_HRTIM_ADCTRIG_1
3553   *         @arg @ref LL_HRTIM_ADCTRIG_2
3554   *         @arg @ref LL_HRTIM_ADCTRIG_3
3555   *         @arg @ref LL_HRTIM_ADCTRIG_4
3556   *         @arg @ref LL_HRTIM_ADCTRIG_5
3557   *         @arg @ref LL_HRTIM_ADCTRIG_6
3558   *         @arg @ref LL_HRTIM_ADCTRIG_7
3559   *         @arg @ref LL_HRTIM_ADCTRIG_8
3560   *         @arg @ref LL_HRTIM_ADCTRIG_9
3561   *         @arg @ref LL_HRTIM_ADCTRIG_10
3562   * @param  PostScaler This parameter can be a number between Min_Data=0 and Max_Data=31
3563   * @retval None
3564   */
LL_HRTIM_SetADCPostScaler(HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig,uint32_t PostScaler)3565 __STATIC_INLINE void LL_HRTIM_SetADCPostScaler(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t PostScaler)
3566 {
3567 
3568   uint64_t mask = (uint64_t)(HRTIM_ADCPS1_AD1PSC) << (REG_OFFSET_TAB_ADCPSx[ADCTrig]);
3569   uint64_t ratio = (uint64_t)(PostScaler) << (REG_OFFSET_TAB_ADCPSx[ADCTrig]);
3570 
3571   MODIFY_REG(HRTIMx->sCommonRegs.ADCPS1, (uint32_t)mask, (uint32_t)ratio);
3572   MODIFY_REG(HRTIMx->sCommonRegs.ADCPS2, (uint32_t)(mask >> 32U), (uint32_t)(ratio >> 32U));
3573 
3574 }
3575 
3576 /**
3577   * @brief  Get the selected ADC post scaler.
3578   * @rmtoll ADCPS2       ADC10PSC        LL_HRTIM_GetADCPostScaler\n
3579   *         ADCPS2       ADC9PSC         LL_HRTIM_GetADCPostScaler\n
3580   *         ADCPS2       ADC8PSC         LL_HRTIM_GetADCPostScaler\n
3581   *         ADCPS2       ADC7PSC         LL_HRTIM_GetADCPostScaler\n
3582   *         ADCPS2       ADC6PSC         LL_HRTIM_GetADCPostScaler\n
3583   *         ADCPS1       ADC5PSC         LL_HRTIM_GetADCPostScaler\n
3584   *         ADCPS1       ADC4PSC         LL_HRTIM_GetADCPostScaler\n
3585   *         ADCPS1       ADC3PSC         LL_HRTIM_GetADCPostScaler\n
3586   *         ADCPS1       ADC2PSC         LL_HRTIM_GetADCPostScaler\n
3587   *         ADCPS1       ADC1PSC         LL_HRTIM_GetADCPostScaler
3588   * @param  HRTIMx High Resolution Timer instance
3589   * @param  ADCTrig This parameter can be one of the following values:
3590   *         @arg @ref LL_HRTIM_ADCTRIG_1
3591   *         @arg @ref LL_HRTIM_ADCTRIG_2
3592   *         @arg @ref LL_HRTIM_ADCTRIG_3
3593   *         @arg @ref LL_HRTIM_ADCTRIG_4
3594   *         @arg @ref LL_HRTIM_ADCTRIG_5
3595   *         @arg @ref LL_HRTIM_ADCTRIG_6
3596   *         @arg @ref LL_HRTIM_ADCTRIG_7
3597   *         @arg @ref LL_HRTIM_ADCTRIG_8
3598   *         @arg @ref LL_HRTIM_ADCTRIG_9
3599   *         @arg @ref LL_HRTIM_ADCTRIG_10
3600   * @retval  PostScaler This parameter can be a number between Min_Data=0 and Max_Data=31
3601   */
LL_HRTIM_GetADCPostScaler(const HRTIM_TypeDef * HRTIMx,uint32_t ADCTrig)3602 __STATIC_INLINE uint32_t LL_HRTIM_GetADCPostScaler(const HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig)
3603 {
3604 
3605   uint32_t reg1 = READ_REG(HRTIMx->sCommonRegs.ADCPS1);
3606   uint32_t reg2 = READ_REG(HRTIMx->sCommonRegs.ADCPS2);
3607 
3608   uint64_t mask = (uint64_t)(HRTIM_ADCPS1_AD1PSC) << (REG_OFFSET_TAB_ADCPSx[ADCTrig]);
3609   uint64_t ratio = (uint64_t)(reg1) | ((uint64_t)(reg2) << 32U);
3610 
3611   return (uint32_t)((ratio & mask) >> (REG_OFFSET_TAB_ADCPSx[ADCTrig])) ;
3612 
3613 }
3614 
3615 /**
3616   * @brief  Configure the DLL calibration mode.
3617   * @rmtoll DLLCR        CALEN         LL_HRTIM_ConfigDLLCalibration\n
3618   *         DLLCR        CALRTE        LL_HRTIM_ConfigDLLCalibration
3619   * @param  HRTIMx High Resolution Timer instance
3620   * @param  Mode This parameter can be one of the following values:
3621   *         @arg @ref LL_HRTIM_DLLCALIBRATION_MODE_SINGLESHOT
3622   *         @arg @ref LL_HRTIM_DLLCALIBRATION_MODE_CONTINUOUS
3623   * @param  Period This parameter can be one of the following values:
3624   *         @arg @ref LL_HRTIM_DLLCALIBRATION_RATE_0
3625   *         @arg @ref LL_HRTIM_DLLCALIBRATION_RATE_1
3626   *         @arg @ref LL_HRTIM_DLLCALIBRATION_RATE_2
3627   *         @arg @ref LL_HRTIM_DLLCALIBRATION_RATE_3
3628   * @retval None
3629   */
LL_HRTIM_ConfigDLLCalibration(HRTIM_TypeDef * HRTIMx,uint32_t Mode,uint32_t Period)3630 __STATIC_INLINE void LL_HRTIM_ConfigDLLCalibration(HRTIM_TypeDef *HRTIMx, uint32_t Mode, uint32_t Period)
3631 {
3632   MODIFY_REG(HRTIMx->sCommonRegs.DLLCR, (HRTIM_DLLCR_CALEN | HRTIM_DLLCR_CALRTE), (Mode | Period));
3633 }
3634 
3635 /**
3636   * @brief  Launch DLL calibration
3637   * @rmtoll DLLCR        CAL           LL_HRTIM_StartDLLCalibration
3638   * @param  HRTIMx High Resolution Timer instance
3639   * @retval None
3640   */
LL_HRTIM_StartDLLCalibration(HRTIM_TypeDef * HRTIMx)3641 __STATIC_INLINE void LL_HRTIM_StartDLLCalibration(HRTIM_TypeDef *HRTIMx)
3642 {
3643   SET_BIT(HRTIMx->sCommonRegs.DLLCR, HRTIM_DLLCR_CAL);
3644 }
3645 
3646 /**
3647   * @}
3648   */
3649 
3650 /** @defgroup HRTIM_LL_EF_HRTIM_Timer_Control HRTIM_Timer_Control
3651   * @{
3652   */
3653 
3654 /**
3655   * @brief  Enable timer(s) counter.
3656   * @rmtoll MDIER        TFCEN         LL_HRTIM_TIM_CounterEnable\n
3657   *         MDIER        TECEN         LL_HRTIM_TIM_CounterEnable\n
3658   *         MDIER        TDCEN         LL_HRTIM_TIM_CounterEnable\n
3659   *         MDIER        TCCEN         LL_HRTIM_TIM_CounterEnable\n
3660   *         MDIER        TBCEN         LL_HRTIM_TIM_CounterEnable\n
3661   *         MDIER        TACEN         LL_HRTIM_TIM_CounterEnable\n
3662   *         MDIER        MCEN          LL_HRTIM_TIM_CounterEnable
3663   * @param  HRTIMx High Resolution Timer instance
3664   * @param  Timers This parameter can be a combination of the following values:
3665   *         @arg @ref LL_HRTIM_TIMER_MASTER
3666   *         @arg @ref LL_HRTIM_TIMER_A
3667   *         @arg @ref LL_HRTIM_TIMER_B
3668   *         @arg @ref LL_HRTIM_TIMER_C
3669   *         @arg @ref LL_HRTIM_TIMER_D
3670   *         @arg @ref LL_HRTIM_TIMER_E
3671   *         @arg @ref LL_HRTIM_TIMER_F
3672   * @retval None
3673   */
LL_HRTIM_TIM_CounterEnable(HRTIM_TypeDef * HRTIMx,uint32_t Timers)3674 __STATIC_INLINE void LL_HRTIM_TIM_CounterEnable(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
3675 {
3676   SET_BIT(HRTIMx->sMasterRegs.MCR, Timers);
3677 }
3678 
3679 /**
3680   * @brief  Disable timer(s) counter.
3681   * @rmtoll MDIER        TFCEN         LL_HRTIM_TIM_CounterDisable\n
3682   *         MDIER        TECEN         LL_HRTIM_TIM_CounterDisable\n
3683   *         MDIER        TDCEN         LL_HRTIM_TIM_CounterDisable\n
3684   *         MDIER        TCCEN         LL_HRTIM_TIM_CounterDisable\n
3685   *         MDIER        TBCEN         LL_HRTIM_TIM_CounterDisable\n
3686   *         MDIER        TACEN         LL_HRTIM_TIM_CounterDisable\n
3687   *         MDIER        MCEN          LL_HRTIM_TIM_CounterDisable
3688   * @param  HRTIMx High Resolution Timer instance
3689   * @param  Timers This parameter can be a combination of the following values:
3690   *         @arg @ref LL_HRTIM_TIMER_MASTER
3691   *         @arg @ref LL_HRTIM_TIMER_A
3692   *         @arg @ref LL_HRTIM_TIMER_B
3693   *         @arg @ref LL_HRTIM_TIMER_C
3694   *         @arg @ref LL_HRTIM_TIMER_D
3695   *         @arg @ref LL_HRTIM_TIMER_E
3696   *         @arg @ref LL_HRTIM_TIMER_F
3697   * @retval None
3698   */
LL_HRTIM_TIM_CounterDisable(HRTIM_TypeDef * HRTIMx,uint32_t Timers)3699 __STATIC_INLINE void LL_HRTIM_TIM_CounterDisable(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
3700 {
3701   CLEAR_BIT(HRTIMx->sMasterRegs.MCR, Timers);
3702 }
3703 
3704 /**
3705   * @brief  Indicate whether the timer counter is enabled.
3706   * @rmtoll MDIER        TFCEN         LL_HRTIM_TIM_IsCounterEnabled\n
3707   *         MDIER        TECEN         LL_HRTIM_TIM_IsCounterEnabled\n
3708   *         MDIER        TDCEN         LL_HRTIM_TIM_IsCounterEnabled\n
3709   *         MDIER        TCCEN         LL_HRTIM_TIM_IsCounterEnabled\n
3710   *         MDIER        TBCEN         LL_HRTIM_TIM_IsCounterEnabled\n
3711   *         MDIER        TACEN         LL_HRTIM_TIM_IsCounterEnabled\n
3712   *         MDIER        MCEN          LL_HRTIM_TIM_IsCounterEnabled
3713   * @param  HRTIMx High Resolution Timer instance
3714   * @param  Timer This parameter can be one of the following values:
3715   *         @arg @ref LL_HRTIM_TIMER_MASTER
3716   *         @arg @ref LL_HRTIM_TIMER_A
3717   *         @arg @ref LL_HRTIM_TIMER_B
3718   *         @arg @ref LL_HRTIM_TIMER_C
3719   *         @arg @ref LL_HRTIM_TIMER_D
3720   *         @arg @ref LL_HRTIM_TIMER_E
3721   *         @arg @ref LL_HRTIM_TIMER_F
3722   * @retval State of MCEN or TxCEN bit HRTIM_MCR register (1 or 0).
3723   */
LL_HRTIM_TIM_IsCounterEnabled(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)3724 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsCounterEnabled(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3725 {
3726   return ((READ_BIT(HRTIMx->sMasterRegs.MCR, Timer) == (Timer)) ? 1UL : 0UL);
3727 }
3728 
3729 /**
3730   * @brief  Set the timer clock prescaler ratio.
3731   * @rmtoll MCR        CKPSC         LL_HRTIM_TIM_SetPrescaler\n
3732   *         TIMxCR     CKPSC         LL_HRTIM_TIM_SetPrescaler
3733   * @note The counter clock equivalent frequency (CK_CNT) is equal to fHRCK / 2^CKPSC[2:0].
3734   * @note The prescaling ratio cannot be modified once the timer counter is enabled.
3735   * @param  HRTIMx High Resolution Timer instance
3736   * @param  Timer This parameter can be one of the following values:
3737   *         @arg @ref LL_HRTIM_TIMER_MASTER
3738   *         @arg @ref LL_HRTIM_TIMER_A
3739   *         @arg @ref LL_HRTIM_TIMER_B
3740   *         @arg @ref LL_HRTIM_TIMER_C
3741   *         @arg @ref LL_HRTIM_TIMER_D
3742   *         @arg @ref LL_HRTIM_TIMER_E
3743   *         @arg @ref LL_HRTIM_TIMER_F
3744   * @param  Prescaler This parameter can be one of the following values:
3745   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL32
3746   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL16
3747   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL8
3748   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL4
3749   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL2
3750   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV1
3751   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV2
3752   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV4
3753   * @retval None
3754   */
LL_HRTIM_TIM_SetPrescaler(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Prescaler)3755 __STATIC_INLINE void LL_HRTIM_TIM_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler)
3756 {
3757   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3758   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3759   MODIFY_REG(*pReg, HRTIM_MCR_CK_PSC, Prescaler);
3760 }
3761 
3762 /**
3763   * @brief  Get the timer clock prescaler ratio
3764   * @rmtoll MCR        CKPSC         LL_HRTIM_TIM_GetPrescaler\n
3765   *         TIMxCR     CKPSC         LL_HRTIM_TIM_GetPrescaler
3766   * @param  HRTIMx High Resolution Timer instance
3767   * @param  Timer This parameter can be one of the following values:
3768   *         @arg @ref LL_HRTIM_TIMER_MASTER
3769   *         @arg @ref LL_HRTIM_TIMER_A
3770   *         @arg @ref LL_HRTIM_TIMER_B
3771   *         @arg @ref LL_HRTIM_TIMER_C
3772   *         @arg @ref LL_HRTIM_TIMER_D
3773   *         @arg @ref LL_HRTIM_TIMER_E
3774   *         @arg @ref LL_HRTIM_TIMER_F
3775   * @retval Prescaler Returned value can be one of the following values:
3776   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL32
3777   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL16
3778   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL8
3779   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL4
3780   *         @arg @ref LL_HRTIM_PRESCALERRATIO_MUL2
3781   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV1
3782   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV2
3783   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV4
3784   */
LL_HRTIM_TIM_GetPrescaler(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)3785 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetPrescaler(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3786 {
3787   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3788   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3789   return (READ_BIT(*pReg, HRTIM_MCR_CK_PSC));
3790 }
3791 
3792 /**
3793   * @brief  Set the counter operating mode mode (single-shot, continuous or re-triggerable).
3794   * @rmtoll MCR        CONT         LL_HRTIM_TIM_SetCounterMode\n
3795   *         MCR        RETRIG       LL_HRTIM_TIM_SetCounterMode\n
3796   *         TIMxCR     CONT         LL_HRTIM_TIM_SetCounterMode\n
3797   *         TIMxCR     RETRIG       LL_HRTIM_TIM_SetCounterMode
3798   * @param  HRTIMx High Resolution Timer instance
3799   * @param  Timer This parameter can be one of the following values:
3800   *         @arg @ref LL_HRTIM_TIMER_MASTER
3801   *         @arg @ref LL_HRTIM_TIMER_A
3802   *         @arg @ref LL_HRTIM_TIMER_B
3803   *         @arg @ref LL_HRTIM_TIMER_C
3804   *         @arg @ref LL_HRTIM_TIMER_D
3805   *         @arg @ref LL_HRTIM_TIMER_E
3806   *         @arg @ref LL_HRTIM_TIMER_F
3807   * @param  Mode This parameter can be one of the following values:
3808   *         @arg @ref LL_HRTIM_MODE_CONTINUOUS
3809   *         @arg @ref LL_HRTIM_MODE_SINGLESHOT
3810   *         @arg @ref LL_HRTIM_MODE_RETRIGGERABLE
3811   * @retval None
3812   */
LL_HRTIM_TIM_SetCounterMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)3813 __STATIC_INLINE void LL_HRTIM_TIM_SetCounterMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
3814 {
3815   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3816   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3817   MODIFY_REG(*pReg, (HRTIM_TIMCR_RETRIG | HRTIM_MCR_CONT), Mode);
3818 }
3819 
3820 /**
3821   * @brief  Get the counter operating mode mode
3822   * @rmtoll MCR        CONT         LL_HRTIM_TIM_GetCounterMode\n
3823   *         MCR        RETRIG       LL_HRTIM_TIM_GetCounterMode\n
3824   *         TIMxCR     CONT         LL_HRTIM_TIM_GetCounterMode\n
3825   *         TIMxCR     RETRIG       LL_HRTIM_TIM_GetCounterMode
3826   * @param  HRTIMx High Resolution Timer instance
3827   * @param  Timer This parameter can be one of the following values:
3828   *         @arg @ref LL_HRTIM_TIMER_MASTER
3829   *         @arg @ref LL_HRTIM_TIMER_A
3830   *         @arg @ref LL_HRTIM_TIMER_B
3831   *         @arg @ref LL_HRTIM_TIMER_C
3832   *         @arg @ref LL_HRTIM_TIMER_D
3833   *         @arg @ref LL_HRTIM_TIMER_E
3834   *         @arg @ref LL_HRTIM_TIMER_F
3835   * @retval Mode Returned value can be one of the following values:
3836   *         @arg @ref LL_HRTIM_MODE_CONTINUOUS
3837   *         @arg @ref LL_HRTIM_MODE_SINGLESHOT
3838   *         @arg @ref LL_HRTIM_MODE_RETRIGGERABLE
3839   */
LL_HRTIM_TIM_GetCounterMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)3840 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCounterMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3841 {
3842   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3843   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3844   return (READ_BIT(*pReg, (HRTIM_MCR_RETRIG | HRTIM_MCR_CONT)));
3845 }
3846 
3847 /**
3848   * @brief  Enable the half duty-cycle mode.
3849   * @rmtoll MCR        HALF         LL_HRTIM_TIM_EnableHalfMode\n
3850   *         TIMxCR     HALF         LL_HRTIM_TIM_EnableHalfMode
3851   * @note When the half mode is enabled, HRTIM_MCMP1R (or HRTIM_CMP1xR)
3852   *       active register is automatically updated with HRTIM_MPER/2
3853   *       (or HRTIM_PERxR/2) value when HRTIM_MPER (or HRTIM_PERxR) register is written.
3854   * @param  HRTIMx High Resolution Timer instance
3855   * @param  Timer This parameter can be one of the following values:
3856   *         @arg @ref LL_HRTIM_TIMER_MASTER
3857   *         @arg @ref LL_HRTIM_TIMER_A
3858   *         @arg @ref LL_HRTIM_TIMER_B
3859   *         @arg @ref LL_HRTIM_TIMER_C
3860   *         @arg @ref LL_HRTIM_TIMER_D
3861   *         @arg @ref LL_HRTIM_TIMER_E
3862   *         @arg @ref LL_HRTIM_TIMER_F
3863   * @retval None
3864   */
LL_HRTIM_TIM_EnableHalfMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer)3865 __STATIC_INLINE void LL_HRTIM_TIM_EnableHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3866 {
3867   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3868   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3869   SET_BIT(*pReg, HRTIM_MCR_HALF);
3870 }
3871 
3872 /**
3873   * @brief  Disable the half duty-cycle mode.
3874   * @rmtoll MCR        HALF         LL_HRTIM_TIM_DisableHalfMode\n
3875   *         TIMxCR     HALF         LL_HRTIM_TIM_DisableHalfMode
3876   * @param  HRTIMx High Resolution Timer instance
3877   * @param  Timer This parameter can be one of the following values:
3878   *         @arg @ref LL_HRTIM_TIMER_MASTER
3879   *         @arg @ref LL_HRTIM_TIMER_A
3880   *         @arg @ref LL_HRTIM_TIMER_B
3881   *         @arg @ref LL_HRTIM_TIMER_C
3882   *         @arg @ref LL_HRTIM_TIMER_D
3883   *         @arg @ref LL_HRTIM_TIMER_E
3884   *         @arg @ref LL_HRTIM_TIMER_F
3885   * @retval None
3886   */
LL_HRTIM_TIM_DisableHalfMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer)3887 __STATIC_INLINE void LL_HRTIM_TIM_DisableHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3888 {
3889   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3890   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3891   CLEAR_BIT(*pReg, HRTIM_MCR_HALF);
3892   CLEAR_BIT(*pReg, HRTIM_MCR_INTLVD << REG_SHIFT_TAB_INTLVD[iTimer]);
3893 }
3894 
3895 /**
3896   * @brief  Indicate whether half duty-cycle mode is enabled for a given timer.
3897   * @rmtoll MCR        HALF         LL_HRTIM_TIM_IsEnabledHalfMode\n
3898   *         TIMxCR     HALF         LL_HRTIM_TIM_IsEnabledHalfMode
3899   * @param  HRTIMx High Resolution Timer instance
3900   * @param  Timer This parameter can be one of the following values:
3901   *         @arg @ref LL_HRTIM_TIMER_MASTER
3902   *         @arg @ref LL_HRTIM_TIMER_A
3903   *         @arg @ref LL_HRTIM_TIMER_B
3904   *         @arg @ref LL_HRTIM_TIMER_C
3905   *         @arg @ref LL_HRTIM_TIMER_D
3906   *         @arg @ref LL_HRTIM_TIMER_E
3907   *         @arg @ref LL_HRTIM_TIMER_F
3908   * @retval State of HALF bit to 1 in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0).
3909   */
LL_HRTIM_TIM_IsEnabledHalfMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)3910 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledHalfMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3911 {
3912   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3913   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3914 
3915   return ((READ_BIT(*pReg, HRTIM_MCR_HALF) == (HRTIM_MCR_HALF)) ? 1UL : 0UL);
3916 }
3917 
3918 /**
3919   * @brief  Enable the Re-Syncronisation Update.
3920   * @note   The update coming from adjacent timers (when MSTU, TAU, TBU, TCU, TDU, TEU, TFU bit is set)
3921   *         or from a software update (TxSWU bit) is taken into account on the following reset/roll-over.
3922   * @note   LL_HRTIM_ForceUpdate must be called prior programming the syncrhonization mode to force
3923   *         immediate update of the slave timer registers.
3924   * @rmtoll TIMxCR     RSYNCU         LL_HRTIM_TIM_EnableResyncUpdate
3925   * @param  HRTIMx High Resolution Timer instance
3926   * @param  Timer This parameter can be one of the following values:
3927   *         @arg @ref LL_HRTIM_TIMER_A
3928   *         @arg @ref LL_HRTIM_TIMER_B
3929   *         @arg @ref LL_HRTIM_TIMER_C
3930   *         @arg @ref LL_HRTIM_TIMER_D
3931   *         @arg @ref LL_HRTIM_TIMER_E
3932   *         @arg @ref LL_HRTIM_TIMER_F
3933   * @retval None
3934   */
LL_HRTIM_TIM_EnableResyncUpdate(HRTIM_TypeDef * HRTIMx,uint32_t Timer)3935 __STATIC_INLINE void LL_HRTIM_TIM_EnableResyncUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3936 {
3937   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3938   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3939                                                      REG_OFFSET_TAB_TIMER[iTimer]));
3940   SET_BIT(*pReg, HRTIM_TIMCR_RSYNCU);
3941   /* This bit is significant only when UPDGAT[3:0] = 0000, it is ignored otherwise */
3942 }
3943 
3944 /**
3945   * @brief  Disable the Re-Syncronisation Update.
3946   * @note   The update coming from adjacent timers (when MSTU, TAU, TBU, TCU, TDU, TEU, TFU bit is set)
3947   *         or from a software update (TxSWU bit) is taken into account immediately.
3948   * @rmtoll TIMxCR     RSYNCU         LL_HRTIM_TIM_DisableResyncUpdate
3949   * @param  HRTIMx High Resolution Timer instance
3950   * @param  Timer This parameter can be one of the following values:
3951   *         @arg @ref LL_HRTIM_TIMER_A
3952   *         @arg @ref LL_HRTIM_TIMER_B
3953   *         @arg @ref LL_HRTIM_TIMER_C
3954   *         @arg @ref LL_HRTIM_TIMER_D
3955   *         @arg @ref LL_HRTIM_TIMER_E
3956   *         @arg @ref LL_HRTIM_TIMER_F
3957   * @retval None
3958   */
LL_HRTIM_TIM_DisableResyncUpdate(HRTIM_TypeDef * HRTIMx,uint32_t Timer)3959 __STATIC_INLINE void LL_HRTIM_TIM_DisableResyncUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3960 {
3961   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3962   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3963                                                      REG_OFFSET_TAB_TIMER[iTimer]));
3964 
3965   CLEAR_BIT(*pReg, HRTIM_TIMCR_RSYNCU);
3966   /* This bit is significant only when UPDGAT[3:0] = 0000, it is ignored otherwise */
3967 }
3968 
3969 /**
3970   * @brief  Indicate whether the Re-Syncronisation Update is enabled.
3971   * @note   This bit specifies whether update source coming outside
3972   *         from the timing unit must be synchronized
3973   * @rmtoll TIMxCR     RSYNCU         LL_HRTIM_TIM_IsEnabledResyncUpdate
3974   * @param  HRTIMx High Resolution Timer instance
3975   * @param  Timer This parameter can be one of the following values:
3976   *         @arg @ref LL_HRTIM_TIMER_A
3977   *         @arg @ref LL_HRTIM_TIMER_B
3978   *         @arg @ref LL_HRTIM_TIMER_C
3979   *         @arg @ref LL_HRTIM_TIMER_D
3980   *         @arg @ref LL_HRTIM_TIMER_E
3981   *         @arg @ref LL_HRTIM_TIMER_F
3982   * @retval State of RSYNC bit in HRTIM_TIMxCR register (1 or 0).
3983   */
LL_HRTIM_TIM_IsEnabledResyncUpdate(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)3984 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledResyncUpdate(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3985 {
3986   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3987   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3988                                                            REG_OFFSET_TAB_TIMER[iTimer]));
3989 
3990   return ((READ_BIT(*pReg, HRTIM_TIMCR_RSYNCU) == (HRTIM_TIMCR_RSYNCU)) ? 1UL : 0UL);
3991   /* This bit is significant only when UPDGAT[3:0] = 0000, it is ignored otherwise */
3992 }
3993 
3994 /**
3995   * @note Interleaved mode complements the Half mode and helps the implementation of interleaved topologies.
3996   * @note When interleaved mode is enabled, the content of the compare registers is overridden.
3997   * @rmtoll MCR        HALF      LL_HRTIM_TIM_SetInterleavedMode\n
3998   *         MCR        INTLVD    LL_HRTIM_TIM_SetInterleavedMode\n
3999   *         TIMxCR     HALF      LL_HRTIM_TIM_SetInterleavedMode\n
4000   *         TIMxCR     INTLVD    LL_HRTIM_TIM_SetInterleavedMode
4001   * @param  HRTIMx High Resolution Timer instance
4002   * @param  Timer This parameter can be one of the following values:
4003   *         @arg @ref LL_HRTIM_TIMER_MASTER
4004   *         @arg @ref LL_HRTIM_TIMER_A
4005   *         @arg @ref LL_HRTIM_TIMER_B
4006   *         @arg @ref LL_HRTIM_TIMER_C
4007   *         @arg @ref LL_HRTIM_TIMER_D
4008   *         @arg @ref LL_HRTIM_TIMER_E
4009   *         @arg @ref LL_HRTIM_TIMER_F
4010   * @param  Mode This parameter can be one of the following values:
4011   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_DISABLED
4012   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_DUAL
4013   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_TRIPLE
4014   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_QUAD
4015   * @retval None
4016   */
LL_HRTIM_TIM_SetInterleavedMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)4017 __STATIC_INLINE void LL_HRTIM_TIM_SetInterleavedMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
4018 {
4019   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4020   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4021 
4022   MODIFY_REG(*pReg, REG_MASK_TAB_INTLVD[iTimer],
4023              ((Mode & HRTIM_MCR_HALF) | ((Mode & HRTIM_MCR_INTLVD) << REG_SHIFT_TAB_INTLVD[iTimer])));
4024 }
4025 
4026 /**
4027   * @brief  get the Interleaved configuration.
4028   * @rmtoll MCR        INTLVD         LL_HRTIM_TIM_GetInterleavedMode\n
4029   *         TIMxCR     INTLVD         LL_HRTIM_TIM_GetInterleavedMode
4030   * @note The interleaved Mode is Triple or Quad if HALF bit is disabled
4031   *              the interleaved Mode is dual if HALF bit is set,
4032 
4033   *              HRTIM_MCMP1R (or HRTIM_CMP1xR) active register is automatically updated
4034   *              with HRTIM_MPER/2 or HRTIM_MPER/4
4035   *       (or HRTIM_PERxR/2) value when HRTIM_MPER (or HRTIM_PERxR) register is written.
4036 
4037   * @param  HRTIMx High Resolution Timer instance
4038   * @param  Timer This parameter can be one of the following values:
4039   *         @arg @ref LL_HRTIM_TIMER_MASTER
4040   *         @arg @ref LL_HRTIM_TIMER_A
4041   *         @arg @ref LL_HRTIM_TIMER_B
4042   *         @arg @ref LL_HRTIM_TIMER_C
4043   *         @arg @ref LL_HRTIM_TIMER_D
4044   *         @arg @ref LL_HRTIM_TIMER_E
4045   *         @arg @ref LL_HRTIM_TIMER_F
4046   * @retval This parameter can be one of the following values:
4047   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_DISABLED
4048   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_DUAL
4049   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_TRIPLE
4050   *         @arg @ref LL_HRTIM_INTERLEAVED_MODE_QUAD
4051   */
LL_HRTIM_TIM_GetInterleavedMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4052 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetInterleavedMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4053 {
4054   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4055   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4056 
4057   uint32_t Mode = READ_BIT(*pReg, (REG_MASK_TAB_INTLVD[iTimer]));
4058   return ((Mode & HRTIM_MCR_HALF) | ((Mode  >> REG_SHIFT_TAB_INTLVD[iTimer]) &  HRTIM_MCR_INTLVD));
4059 }
4060 
4061 /**
4062   * @brief  Enable the timer start when receiving a synchronization input event.
4063   * @rmtoll MCR        SYNCSTRTM        LL_HRTIM_TIM_EnableStartOnSync\n
4064   *         TIMxCR     SYNSTRTA         LL_HRTIM_TIM_EnableStartOnSync
4065   * @param  HRTIMx High Resolution Timer instance
4066   * @param  Timer This parameter can be one of the following values:
4067   *         @arg @ref LL_HRTIM_TIMER_MASTER
4068   *         @arg @ref LL_HRTIM_TIMER_A
4069   *         @arg @ref LL_HRTIM_TIMER_B
4070   *         @arg @ref LL_HRTIM_TIMER_C
4071   *         @arg @ref LL_HRTIM_TIMER_D
4072   *         @arg @ref LL_HRTIM_TIMER_E
4073   *         @arg @ref LL_HRTIM_TIMER_F
4074   * @retval None
4075   */
LL_HRTIM_TIM_EnableStartOnSync(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4076 __STATIC_INLINE void LL_HRTIM_TIM_EnableStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4077 {
4078   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4079   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4080   SET_BIT(*pReg, HRTIM_MCR_SYNCSTRTM);
4081 }
4082 
4083 /**
4084   * @brief  Disable the timer start when receiving a synchronization input event.
4085   * @rmtoll MCR        SYNCSTRTM        LL_HRTIM_TIM_DisableStartOnSync\n
4086   *         TIMxCR     SYNSTRTA         LL_HRTIM_TIM_DisableStartOnSync
4087   * @param  HRTIMx High Resolution Timer instance
4088   * @param  Timer This parameter can be one of the following values:
4089   *         @arg @ref LL_HRTIM_TIMER_MASTER
4090   *         @arg @ref LL_HRTIM_TIMER_A
4091   *         @arg @ref LL_HRTIM_TIMER_B
4092   *         @arg @ref LL_HRTIM_TIMER_C
4093   *         @arg @ref LL_HRTIM_TIMER_D
4094   *         @arg @ref LL_HRTIM_TIMER_E
4095   *         @arg @ref LL_HRTIM_TIMER_F
4096   * @retval None
4097   */
LL_HRTIM_TIM_DisableStartOnSync(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4098 __STATIC_INLINE void LL_HRTIM_TIM_DisableStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4099 {
4100   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4101   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4102   CLEAR_BIT(*pReg, HRTIM_MCR_SYNCSTRTM);
4103 }
4104 
4105 /**
4106   * @brief  Indicate whether the timer start when receiving a synchronization input event.
4107   * @rmtoll MCR        SYNCSTRTM        LL_HRTIM_TIM_IsEnabledStartOnSync\n
4108   *         TIMxCR     SYNSTRTA         LL_HRTIM_TIM_IsEnabledStartOnSync
4109   * @param  HRTIMx High Resolution Timer instance
4110   * @param  Timer This parameter can be one of the following values:
4111   *         @arg @ref LL_HRTIM_TIMER_MASTER
4112   *         @arg @ref LL_HRTIM_TIMER_A
4113   *         @arg @ref LL_HRTIM_TIMER_B
4114   *         @arg @ref LL_HRTIM_TIMER_C
4115   *         @arg @ref LL_HRTIM_TIMER_D
4116   *         @arg @ref LL_HRTIM_TIMER_E
4117   *         @arg @ref LL_HRTIM_TIMER_F
4118   * @retval State of SYNCSTRTx bit in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0).
4119   */
LL_HRTIM_TIM_IsEnabledStartOnSync(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4120 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledStartOnSync(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4121 {
4122   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4123   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4124 
4125   return ((READ_BIT(*pReg, HRTIM_MCR_SYNCSTRTM) == (HRTIM_MCR_SYNCSTRTM)) ? 1UL : 0UL);
4126 }
4127 
4128 /**
4129   * @brief  Enable the timer reset when receiving a synchronization input event.
4130   * @rmtoll MCR        SYNCRSTM        LL_HRTIM_TIM_EnableResetOnSync\n
4131   *         TIMxCR     SYNCRSTA        LL_HRTIM_TIM_EnableResetOnSync
4132   * @param  HRTIMx High Resolution Timer instance
4133   * @param  Timer This parameter can be one of the following values:
4134   *         @arg @ref LL_HRTIM_TIMER_MASTER
4135   *         @arg @ref LL_HRTIM_TIMER_A
4136   *         @arg @ref LL_HRTIM_TIMER_B
4137   *         @arg @ref LL_HRTIM_TIMER_C
4138   *         @arg @ref LL_HRTIM_TIMER_D
4139   *         @arg @ref LL_HRTIM_TIMER_E
4140   *         @arg @ref LL_HRTIM_TIMER_F
4141   * @retval None
4142   */
LL_HRTIM_TIM_EnableResetOnSync(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4143 __STATIC_INLINE void LL_HRTIM_TIM_EnableResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4144 {
4145   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4146   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4147   SET_BIT(*pReg, HRTIM_MCR_SYNCRSTM);
4148 }
4149 
4150 /**
4151   * @brief  Disable the timer reset when receiving a synchronization input event.
4152   * @rmtoll MCR        SYNCRSTM        LL_HRTIM_TIM_DisableResetOnSync\n
4153   *         TIMxCR     SYNCRSTA        LL_HRTIM_TIM_DisableResetOnSync
4154   * @param  HRTIMx High Resolution Timer instance
4155   * @param  Timer This parameter can be one of the following values:
4156   *         @arg @ref LL_HRTIM_TIMER_MASTER
4157   *         @arg @ref LL_HRTIM_TIMER_A
4158   *         @arg @ref LL_HRTIM_TIMER_B
4159   *         @arg @ref LL_HRTIM_TIMER_C
4160   *         @arg @ref LL_HRTIM_TIMER_D
4161   *         @arg @ref LL_HRTIM_TIMER_E
4162   *         @arg @ref LL_HRTIM_TIMER_F
4163   * @retval None
4164   */
LL_HRTIM_TIM_DisableResetOnSync(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4165 __STATIC_INLINE void LL_HRTIM_TIM_DisableResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4166 {
4167   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4168   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4169   CLEAR_BIT(*pReg, HRTIM_MCR_SYNCRSTM);
4170 }
4171 
4172 /**
4173   * @brief  Indicate whether the timer reset when receiving a synchronization input event.
4174   * @rmtoll MCR        SYNCRSTM        LL_HRTIM_TIM_IsEnabledResetOnSync\n
4175   *         TIMxCR     SYNCRSTA        LL_HRTIM_TIM_IsEnabledResetOnSync
4176   * @param  HRTIMx High Resolution Timer instance
4177   * @param  Timer This parameter can be one of the following values:
4178   *         @arg @ref LL_HRTIM_TIMER_MASTER
4179   *         @arg @ref LL_HRTIM_TIMER_A
4180   *         @arg @ref LL_HRTIM_TIMER_B
4181   *         @arg @ref LL_HRTIM_TIMER_C
4182   *         @arg @ref LL_HRTIM_TIMER_D
4183   *         @arg @ref LL_HRTIM_TIMER_E
4184   *         @arg @ref LL_HRTIM_TIMER_F
4185   * @retval None
4186   */
LL_HRTIM_TIM_IsEnabledResetOnSync(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4187 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledResetOnSync(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4188 {
4189   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4190   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4191 
4192   return ((READ_BIT(*pReg, HRTIM_MCR_SYNCRSTM) == (HRTIM_MCR_SYNCRSTM)) ? 1UL : 0UL);
4193 }
4194 
4195 /**
4196   * @brief  Set the HRTIM output the DAC synchronization event is generated on (DACtrigOutx).
4197   * @rmtoll MCR        DACSYNC        LL_HRTIM_TIM_SetDACTrig\n
4198   *         TIMxCR     DACSYNC        LL_HRTIM_TIM_SetDACTrig
4199   * @param  HRTIMx High Resolution Timer instance
4200   * @param  Timer This parameter can be one of the following values:
4201   *         @arg @ref LL_HRTIM_TIMER_MASTER
4202   *         @arg @ref LL_HRTIM_TIMER_A
4203   *         @arg @ref LL_HRTIM_TIMER_B
4204   *         @arg @ref LL_HRTIM_TIMER_C
4205   *         @arg @ref LL_HRTIM_TIMER_D
4206   *         @arg @ref LL_HRTIM_TIMER_E
4207   *         @arg @ref LL_HRTIM_TIMER_F
4208   * @param  DACTrig This parameter can be one of the following values:
4209   *         @arg @ref LL_HRTIM_DACTRIG_NONE
4210   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_1
4211   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_2
4212   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_3
4213   * @retval None
4214   */
LL_HRTIM_TIM_SetDACTrig(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t DACTrig)4215 __STATIC_INLINE void LL_HRTIM_TIM_SetDACTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DACTrig)
4216 {
4217   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4218   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4219   MODIFY_REG(*pReg, HRTIM_MCR_DACSYNC, DACTrig);
4220 }
4221 
4222 /**
4223   * @brief  Get the HRTIM output the DAC synchronization event is generated on (DACtrigOutx).
4224   * @rmtoll MCR        DACSYNC        LL_HRTIM_TIM_GetDACTrig\n
4225   *         TIMxCR     DACSYNC        LL_HRTIM_TIM_GetDACTrig
4226   * @param  HRTIMx High Resolution Timer instance
4227   * @param  Timer This parameter can be one of the following values:
4228   *         @arg @ref LL_HRTIM_TIMER_MASTER
4229   *         @arg @ref LL_HRTIM_TIMER_A
4230   *         @arg @ref LL_HRTIM_TIMER_B
4231   *         @arg @ref LL_HRTIM_TIMER_C
4232   *         @arg @ref LL_HRTIM_TIMER_D
4233   *         @arg @ref LL_HRTIM_TIMER_E
4234   *         @arg @ref LL_HRTIM_TIMER_F
4235   * @retval DACTrig Returned value can be one of the following values:
4236   *         @arg @ref LL_HRTIM_DACTRIG_NONE
4237   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_1
4238   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_2
4239   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_3
4240   */
LL_HRTIM_TIM_GetDACTrig(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4241 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDACTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4242 {
4243   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4244   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4245   return (READ_BIT(*pReg, HRTIM_MCR_DACSYNC));
4246 }
4247 
4248 /**
4249   * @brief  Enable the timer registers preload mechanism.
4250   * @rmtoll MCR        PREEN        LL_HRTIM_TIM_EnablePreload\n
4251   *         TIMxCR     PREEN        LL_HRTIM_TIM_EnablePreload
4252   * @note When the preload mode is enabled, accessed registers are shadow registers.
4253   *       Their content is transferred into the active register after an update request,
4254   *       either software or synchronized with an event.
4255   * @param  HRTIMx High Resolution Timer instance
4256   * @param  Timer This parameter can be one of the following values:
4257   *         @arg @ref LL_HRTIM_TIMER_MASTER
4258   *         @arg @ref LL_HRTIM_TIMER_A
4259   *         @arg @ref LL_HRTIM_TIMER_B
4260   *         @arg @ref LL_HRTIM_TIMER_C
4261   *         @arg @ref LL_HRTIM_TIMER_D
4262   *         @arg @ref LL_HRTIM_TIMER_E
4263   *         @arg @ref LL_HRTIM_TIMER_F
4264   * @retval None
4265   */
LL_HRTIM_TIM_EnablePreload(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4266 __STATIC_INLINE void LL_HRTIM_TIM_EnablePreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4267 {
4268   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4269   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4270   SET_BIT(*pReg, HRTIM_MCR_PREEN);
4271 }
4272 
4273 /**
4274   * @brief  Disable the timer registers preload mechanism.
4275   * @rmtoll MCR        PREEN        LL_HRTIM_TIM_DisablePreload\n
4276   *         TIMxCR     PREEN        LL_HRTIM_TIM_DisablePreload
4277   * @param  HRTIMx High Resolution Timer instance
4278   * @param  Timer This parameter can be one of the following values:
4279   *         @arg @ref LL_HRTIM_TIMER_MASTER
4280   *         @arg @ref LL_HRTIM_TIMER_A
4281   *         @arg @ref LL_HRTIM_TIMER_B
4282   *         @arg @ref LL_HRTIM_TIMER_C
4283   *         @arg @ref LL_HRTIM_TIMER_D
4284   *         @arg @ref LL_HRTIM_TIMER_E
4285   *         @arg @ref LL_HRTIM_TIMER_F
4286   * @retval None
4287   */
LL_HRTIM_TIM_DisablePreload(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4288 __STATIC_INLINE void LL_HRTIM_TIM_DisablePreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4289 {
4290   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4291   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4292   CLEAR_BIT(*pReg, HRTIM_MCR_PREEN);
4293 }
4294 
4295 /**
4296   * @brief  Indicate whether the timer registers preload mechanism is enabled.
4297   * @rmtoll MCR        PREEN        LL_HRTIM_TIM_IsEnabledPreload\n
4298   *         TIMxCR     PREEN        LL_HRTIM_TIM_IsEnabledPreload
4299   * @param  HRTIMx High Resolution Timer instance
4300   * @param  Timer This parameter can be one of the following values:
4301   *         @arg @ref LL_HRTIM_TIMER_MASTER
4302   *         @arg @ref LL_HRTIM_TIMER_A
4303   *         @arg @ref LL_HRTIM_TIMER_B
4304   *         @arg @ref LL_HRTIM_TIMER_C
4305   *         @arg @ref LL_HRTIM_TIMER_D
4306   *         @arg @ref LL_HRTIM_TIMER_E
4307   *         @arg @ref LL_HRTIM_TIMER_F
4308   * @retval State of PREEN bit in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0).
4309   */
LL_HRTIM_TIM_IsEnabledPreload(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4310 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledPreload(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4311 {
4312   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4313   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4314 
4315   return ((READ_BIT(*pReg, HRTIM_MCR_PREEN) == (HRTIM_MCR_PREEN)) ? 1UL : 0UL);
4316 }
4317 
4318 /**
4319   * @brief  Set the timer register update trigger.
4320   * @rmtoll MCR           MREPU      LL_HRTIM_TIM_SetUpdateTrig\n
4321   *         TIMxCR        TAU        LL_HRTIM_TIM_SetUpdateTrig\n
4322   *         TIMxCR        TBU        LL_HRTIM_TIM_SetUpdateTrig\n
4323   *         TIMxCR        TCU        LL_HRTIM_TIM_SetUpdateTrig\n
4324   *         TIMxCR        TDU        LL_HRTIM_TIM_SetUpdateTrig\n
4325   *         TIMxCR        TEU        LL_HRTIM_TIM_SetUpdateTrig\n
4326   *         TIMxCR        TFU        LL_HRTIM_TIM_SetUpdateTrig\n
4327   *         TIMxCR        MSTU       LL_HRTIM_TIM_SetUpdateTrig
4328   * @param  HRTIMx High Resolution Timer instance
4329   * @param  Timer This parameter can be one of the following values:
4330   *         @arg @ref LL_HRTIM_TIMER_MASTER
4331   *         @arg @ref LL_HRTIM_TIMER_A
4332   *         @arg @ref LL_HRTIM_TIMER_B
4333   *         @arg @ref LL_HRTIM_TIMER_C
4334   *         @arg @ref LL_HRTIM_TIMER_D
4335   *         @arg @ref LL_HRTIM_TIMER_E
4336   *         @arg @ref LL_HRTIM_TIMER_F
4337   * @param  UpdateTrig This parameter can be one of the following values:
4338   *
4339   *         For the master timer this parameter can be one of the following values:
4340   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
4341   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
4342   *
4343   *         For timer A..F this parameter can be:
4344   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
4345   *         or a combination of the following values:
4346   *         @arg @ref LL_HRTIM_UPDATETRIG_MASTER
4347   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_A
4348   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_B
4349   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_C
4350   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_D
4351   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_E
4352   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_F
4353   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
4354   *         @arg @ref LL_HRTIM_UPDATETRIG_RESET
4355   * @retval None
4356   */
LL_HRTIM_TIM_SetUpdateTrig(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t UpdateTrig)4357 __STATIC_INLINE void LL_HRTIM_TIM_SetUpdateTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t UpdateTrig)
4358 {
4359   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4360   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4361   MODIFY_REG(*pReg, REG_MASK_TAB_UPDATETRIG[iTimer], UpdateTrig << REG_SHIFT_TAB_UPDATETRIG[iTimer]);
4362 }
4363 
4364 /**
4365   * @brief  Get the timer register update trigger.
4366   * @rmtoll MCR           MREPU      LL_HRTIM_TIM_GetUpdateTrig\n
4367   *         TIMxCR        TBU        LL_HRTIM_TIM_GetUpdateTrig\n
4368   *         TIMxCR        TCU        LL_HRTIM_TIM_GetUpdateTrig\n
4369   *         TIMxCR        TDU        LL_HRTIM_TIM_GetUpdateTrig\n
4370   *         TIMxCR        TEU        LL_HRTIM_TIM_GetUpdateTrig\n
4371   *         TIMxCR        TFU        LL_HRTIM_TIM_GetUpdateTrig\n
4372   *         TIMxCR        MSTU       LL_HRTIM_TIM_GetUpdateTrig
4373   * @param  HRTIMx High Resolution Timer instance
4374   * @param  Timer This parameter can be one of the following values:
4375   *         @arg @ref LL_HRTIM_TIMER_MASTER
4376   *         @arg @ref LL_HRTIM_TIMER_A
4377   *         @arg @ref LL_HRTIM_TIMER_B
4378   *         @arg @ref LL_HRTIM_TIMER_C
4379   *         @arg @ref LL_HRTIM_TIMER_D
4380   *         @arg @ref LL_HRTIM_TIMER_E
4381   *         @arg @ref LL_HRTIM_TIMER_F
4382   * @retval UpdateTrig Returned value can be one of the following values:
4383   *
4384   *         For the master timer this parameter can be one of the following values:
4385   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
4386   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
4387   *
4388   *         For timer A..F this parameter can be:
4389   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
4390   *         or a combination of the following values:
4391   *         @arg @ref LL_HRTIM_UPDATETRIG_MASTER
4392   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_A
4393   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_B
4394   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_C
4395   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_D
4396   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_E
4397   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_F
4398   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
4399   *         @arg @ref LL_HRTIM_UPDATETRIG_RESET
4400   */
LL_HRTIM_TIM_GetUpdateTrig(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4401 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetUpdateTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4402 {
4403   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4404   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4405   return (READ_BIT(*pReg, REG_MASK_TAB_UPDATETRIG[iTimer]) >>  REG_SHIFT_TAB_UPDATETRIG[iTimer]);
4406 }
4407 
4408 /**
4409   * @brief  Set  the timer registers update condition (how the registers update occurs relatively to the burst DMA  transaction or an external update request received on one of the update enable inputs (UPD_EN[3:1])).
4410   * @rmtoll MCR           BRSTDMA      LL_HRTIM_TIM_SetUpdateGating\n
4411   *         TIMxCR        UPDGAT       LL_HRTIM_TIM_SetUpdateGating
4412   * @param  HRTIMx High Resolution Timer instance
4413   * @param  Timer This parameter can be one of the following values:
4414   *         @arg @ref LL_HRTIM_TIMER_MASTER
4415   *         @arg @ref LL_HRTIM_TIMER_A
4416   *         @arg @ref LL_HRTIM_TIMER_B
4417   *         @arg @ref LL_HRTIM_TIMER_C
4418   *         @arg @ref LL_HRTIM_TIMER_D
4419   *         @arg @ref LL_HRTIM_TIMER_E
4420   *         @arg @ref LL_HRTIM_TIMER_F
4421   * @param  UpdateGating This parameter can be one of the following values:
4422   *
4423   *         For the master timer this parameter can be one of the following values:
4424   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
4425   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
4426   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
4427   *
4428   *         For the timer A..F this parameter can be one of the following values:
4429   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
4430   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
4431   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
4432   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1
4433   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2
4434   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3
4435   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE
4436   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE
4437   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE
4438   * @retval None
4439   */
LL_HRTIM_TIM_SetUpdateGating(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t UpdateGating)4440 __STATIC_INLINE void LL_HRTIM_TIM_SetUpdateGating(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t UpdateGating)
4441 {
4442   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4443   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4444   MODIFY_REG(*pReg, REG_MASK_TAB_UPDATEGATING[iTimer], (UpdateGating << REG_SHIFT_TAB_UPDATEGATING[iTimer]));
4445 }
4446 
4447 /**
4448   * @brief  Get  the timer registers update condition.
4449   * @rmtoll MCR           BRSTDMA      LL_HRTIM_TIM_GetUpdateGating\n
4450   *         TIMxCR        UPDGAT       LL_HRTIM_TIM_GetUpdateGating
4451   * @param  HRTIMx High Resolution Timer instance
4452   * @param  Timer This parameter can be one of the following values:
4453   *         @arg @ref LL_HRTIM_TIMER_MASTER
4454   *         @arg @ref LL_HRTIM_TIMER_A
4455   *         @arg @ref LL_HRTIM_TIMER_B
4456   *         @arg @ref LL_HRTIM_TIMER_C
4457   *         @arg @ref LL_HRTIM_TIMER_D
4458   *         @arg @ref LL_HRTIM_TIMER_E
4459   *         @arg @ref LL_HRTIM_TIMER_F
4460   * @retval UpdateGating Returned value can be one of the following values:
4461   *
4462   *         For the master timer this parameter can be one of the following values:
4463   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
4464   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
4465   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
4466   *
4467   *         For the timer A..F this parameter can be one of the following values:
4468   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
4469   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
4470   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
4471   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1
4472   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2
4473   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3
4474   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE
4475   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE
4476   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE
4477   */
LL_HRTIM_TIM_GetUpdateGating(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4478 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetUpdateGating(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4479 {
4480   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4481   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
4482   return (READ_BIT(*pReg, REG_MASK_TAB_UPDATEGATING[iTimer]) >>  REG_SHIFT_TAB_UPDATEGATING[iTimer]);
4483 }
4484 
4485 /**
4486   * @brief  Enable the push-pull mode.
4487   * @rmtoll TIMxCR        PSHPLL       LL_HRTIM_TIM_EnablePushPullMode
4488   * @param  HRTIMx High Resolution Timer instance
4489   * @param  Timer This parameter can be one of the following values:
4490   *         @arg @ref LL_HRTIM_TIMER_A
4491   *         @arg @ref LL_HRTIM_TIMER_B
4492   *         @arg @ref LL_HRTIM_TIMER_C
4493   *         @arg @ref LL_HRTIM_TIMER_D
4494   *         @arg @ref LL_HRTIM_TIMER_E
4495   *         @arg @ref LL_HRTIM_TIMER_F
4496   * @retval None
4497   */
LL_HRTIM_TIM_EnablePushPullMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4498 __STATIC_INLINE void LL_HRTIM_TIM_EnablePushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4499 {
4500   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4501   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
4502                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4503   SET_BIT(*pReg, HRTIM_TIMCR_PSHPLL);
4504 }
4505 
4506 /**
4507   * @brief  Disable the push-pull mode.
4508   * @rmtoll TIMxCR        PSHPLL       LL_HRTIM_TIM_DisablePushPullMode
4509   * @param  HRTIMx High Resolution Timer instance
4510   * @param  Timer This parameter can be one of the following values:
4511   *         @arg @ref LL_HRTIM_TIMER_A
4512   *         @arg @ref LL_HRTIM_TIMER_B
4513   *         @arg @ref LL_HRTIM_TIMER_C
4514   *         @arg @ref LL_HRTIM_TIMER_D
4515   *         @arg @ref LL_HRTIM_TIMER_E
4516   *         @arg @ref LL_HRTIM_TIMER_F
4517   * @retval None
4518   */
LL_HRTIM_TIM_DisablePushPullMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer)4519 __STATIC_INLINE void LL_HRTIM_TIM_DisablePushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4520 {
4521   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4522   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
4523                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4524   CLEAR_BIT(*pReg, HRTIM_TIMCR_PSHPLL);
4525 }
4526 
4527 /**
4528   * @brief  Indicate whether the push-pull mode is enabled.
4529   * @rmtoll TIMxCR        PSHPLL       LL_HRTIM_TIM_IsEnabledPushPullMode\n
4530   * @param  HRTIMx High Resolution Timer instance
4531   * @param  Timer This parameter can be one of the following values:
4532   *         @arg @ref LL_HRTIM_TIMER_A
4533   *         @arg @ref LL_HRTIM_TIMER_B
4534   *         @arg @ref LL_HRTIM_TIMER_C
4535   *         @arg @ref LL_HRTIM_TIMER_D
4536   *         @arg @ref LL_HRTIM_TIMER_E
4537   *         @arg @ref LL_HRTIM_TIMER_F
4538   * @retval State of PSHPLL bit in HRTIM_TIMxCR register (1 or 0).
4539   */
LL_HRTIM_TIM_IsEnabledPushPullMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4540 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledPushPullMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4541 {
4542   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4543   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
4544                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4545   return ((READ_BIT(*pReg, HRTIM_TIMCR_PSHPLL) == (HRTIM_TIMCR_PSHPLL)) ? 1UL : 0UL);
4546 }
4547 
4548 /**
4549   * @brief  Set the functioning mode of the compare unit (CMP2 or CMP4 can operate in standard mode or in auto delayed mode).
4550   * @rmtoll TIMxCR        DELCMP2       LL_HRTIM_TIM_SetCompareMode\n
4551   *         TIMxCR        DELCMP4       LL_HRTIM_TIM_SetCompareMode
4552   * @note In auto-delayed mode  the compare match occurs independently from the timer counter value.
4553   * @param  HRTIMx High Resolution Timer instance
4554   * @param  Timer This parameter can be one of the following values:
4555   *         @arg @ref LL_HRTIM_TIMER_A
4556   *         @arg @ref LL_HRTIM_TIMER_B
4557   *         @arg @ref LL_HRTIM_TIMER_C
4558   *         @arg @ref LL_HRTIM_TIMER_D
4559   *         @arg @ref LL_HRTIM_TIMER_E
4560   *         @arg @ref LL_HRTIM_TIMER_F
4561   * @param  CompareUnit This parameter can be one of the following values:
4562   *         @arg @ref LL_HRTIM_COMPAREUNIT_2
4563   *         @arg @ref LL_HRTIM_COMPAREUNIT_4
4564   * @param  Mode This parameter can be one of the following values:
4565   *         @arg @ref LL_HRTIM_COMPAREMODE_REGULAR
4566   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT
4567   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP1
4568   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP3
4569   * @retval None
4570   */
LL_HRTIM_TIM_SetCompareMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CompareUnit,uint32_t Mode)4571 __STATIC_INLINE void LL_HRTIM_TIM_SetCompareMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareUnit,
4572                                                  uint32_t Mode)
4573 {
4574   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4575   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
4576                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4577   uint32_t shift = (((uint32_t)POSITION_VAL(CompareUnit) - (uint32_t)POSITION_VAL(LL_HRTIM_COMPAREUNIT_2)) & 0x1FU);
4578   MODIFY_REG(* pReg, (HRTIM_TIMCR_DELCMP2 << shift), (Mode << shift));
4579 }
4580 
4581 /**
4582   * @brief  Get the functioning mode of the compare unit.
4583   * @rmtoll TIMxCR        DELCMP2       LL_HRTIM_TIM_GetCompareMode\n
4584   *         TIMxCR        DELCMP4       LL_HRTIM_TIM_GetCompareMode
4585   * @param  HRTIMx High Resolution Timer instance
4586   * @param  Timer This parameter can be one of the following values:
4587   *         @arg @ref LL_HRTIM_TIMER_A
4588   *         @arg @ref LL_HRTIM_TIMER_B
4589   *         @arg @ref LL_HRTIM_TIMER_C
4590   *         @arg @ref LL_HRTIM_TIMER_D
4591   *         @arg @ref LL_HRTIM_TIMER_E
4592   *         @arg @ref LL_HRTIM_TIMER_F
4593   * @param  CompareUnit This parameter can be one of the following values:
4594   *         @arg @ref LL_HRTIM_COMPAREUNIT_2
4595   *         @arg @ref LL_HRTIM_COMPAREUNIT_4
4596   * @retval Mode Returned value can be one of the following values:
4597   *         @arg @ref LL_HRTIM_COMPAREMODE_REGULAR
4598   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT
4599   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP1
4600   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP3
4601   */
LL_HRTIM_TIM_GetCompareMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CompareUnit)4602 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompareMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareUnit)
4603 {
4604   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4605   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
4606                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4607   uint32_t shift = (((uint32_t)POSITION_VAL(CompareUnit) - (uint32_t)POSITION_VAL(LL_HRTIM_COMPAREUNIT_2)) & 0x1FU);
4608   return (READ_BIT(*pReg, (HRTIM_TIMCR_DELCMP2 << shift)) >>  shift);
4609 }
4610 
4611 /**
4612   * @brief  Set the timer counter value.
4613   * @rmtoll MCNTR        MCNT       LL_HRTIM_TIM_SetCounter\n
4614   *         CNTxR        CNTx       LL_HRTIM_TIM_SetCounter
4615   * @note  This function can only be called when the timer is stopped.
4616   * @note  For HR clock prescaling ratio below 32 (CKPSC[2:0] < 5), the least
4617   *        significant bits of the counter are not significant. They cannot be
4618   *        written and return 0 when read.
4619   * @note The timer behavior is not guaranteed if the counter value is set above
4620   *       the period.
4621   * @param  HRTIMx High Resolution Timer instance
4622   * @param  Timer This parameter can be one of the following values:
4623   *         @arg @ref LL_HRTIM_TIMER_MASTER
4624   *         @arg @ref LL_HRTIM_TIMER_A
4625   *         @arg @ref LL_HRTIM_TIMER_B
4626   *         @arg @ref LL_HRTIM_TIMER_C
4627   *         @arg @ref LL_HRTIM_TIMER_D
4628   *         @arg @ref LL_HRTIM_TIMER_E
4629   *         @arg @ref LL_HRTIM_TIMER_F
4630   * @param  Counter Value between 0 and 0xFFFF
4631   * @retval None
4632   */
LL_HRTIM_TIM_SetCounter(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Counter)4633 __STATIC_INLINE void LL_HRTIM_TIM_SetCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Counter)
4634 {
4635   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4636   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCNTR) +
4637                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4638   MODIFY_REG(* pReg, HRTIM_MCNTR_MCNTR, Counter);
4639 }
4640 
4641 /**
4642   * @brief  Get actual timer counter value.
4643   * @rmtoll MCNTR        MCNT       LL_HRTIM_TIM_GetCounter\n
4644   *         CNTxR        CNTx       LL_HRTIM_TIM_GetCounter
4645   * @param  HRTIMx High Resolution Timer instance
4646   * @param  Timer This parameter can be one of the following values:
4647   *         @arg @ref LL_HRTIM_TIMER_MASTER
4648   *         @arg @ref LL_HRTIM_TIMER_A
4649   *         @arg @ref LL_HRTIM_TIMER_B
4650   *         @arg @ref LL_HRTIM_TIMER_C
4651   *         @arg @ref LL_HRTIM_TIMER_D
4652   *         @arg @ref LL_HRTIM_TIMER_E
4653   *         @arg @ref LL_HRTIM_TIMER_F
4654   * @retval Counter Value between 0 and 0xFFFF
4655   */
LL_HRTIM_TIM_GetCounter(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4656 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCounter(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4657 {
4658   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4659   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCNTR) +
4660                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4661   return (READ_BIT(*pReg, HRTIM_MCNTR_MCNTR));
4662 }
4663 
4664 /**
4665   * @brief  Set the timer period value.
4666   * @rmtoll MPER        MPER       LL_HRTIM_TIM_SetPeriod\n
4667   *         PERxR       PERx       LL_HRTIM_TIM_SetPeriod
4668   * @param  HRTIMx High Resolution Timer instance
4669   * @param  Timer This parameter can be one of the following values:
4670   *         @arg @ref LL_HRTIM_TIMER_MASTER
4671   *         @arg @ref LL_HRTIM_TIMER_A
4672   *         @arg @ref LL_HRTIM_TIMER_B
4673   *         @arg @ref LL_HRTIM_TIMER_C
4674   *         @arg @ref LL_HRTIM_TIMER_D
4675   *         @arg @ref LL_HRTIM_TIMER_E
4676   *         @arg @ref LL_HRTIM_TIMER_F
4677   * @param  Period Value between 0 and 0xFFFF
4678   * @retval None
4679   */
LL_HRTIM_TIM_SetPeriod(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Period)4680 __STATIC_INLINE void LL_HRTIM_TIM_SetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Period)
4681 {
4682   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4683   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MPER) +
4684                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4685   MODIFY_REG(* pReg, HRTIM_MPER_MPER, Period);
4686 }
4687 
4688 /**
4689   * @brief  Get actual timer period value.
4690   * @rmtoll MPER        MPER       LL_HRTIM_TIM_GetPeriod\n
4691   *         PERxR       PERx       LL_HRTIM_TIM_GetPeriod
4692   * @param  HRTIMx High Resolution Timer instance
4693   * @param  Timer This parameter can be one of the following values:
4694   *         @arg @ref LL_HRTIM_TIMER_MASTER
4695   *         @arg @ref LL_HRTIM_TIMER_A
4696   *         @arg @ref LL_HRTIM_TIMER_B
4697   *         @arg @ref LL_HRTIM_TIMER_C
4698   *         @arg @ref LL_HRTIM_TIMER_D
4699   *         @arg @ref LL_HRTIM_TIMER_E
4700   *         @arg @ref LL_HRTIM_TIMER_F
4701   * @retval Period Value between 0 and 0xFFFF
4702   */
LL_HRTIM_TIM_GetPeriod(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4703 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetPeriod(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4704 {
4705   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4706   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MPER) +
4707                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4708   return (READ_BIT(*pReg, HRTIM_MPER_MPER));
4709 }
4710 
4711 /**
4712   * @brief  Set the timer repetition period value.
4713   * @rmtoll MREP        MREP       LL_HRTIM_TIM_SetRepetition\n
4714   *         REPxR       REPx       LL_HRTIM_TIM_SetRepetition
4715   * @param  HRTIMx High Resolution Timer instance
4716   * @param  Timer This parameter can be one of the following values:
4717   *         @arg @ref LL_HRTIM_TIMER_MASTER
4718   *         @arg @ref LL_HRTIM_TIMER_A
4719   *         @arg @ref LL_HRTIM_TIMER_B
4720   *         @arg @ref LL_HRTIM_TIMER_C
4721   *         @arg @ref LL_HRTIM_TIMER_D
4722   *         @arg @ref LL_HRTIM_TIMER_E
4723   *         @arg @ref LL_HRTIM_TIMER_F
4724   * @param  Repetition Value between 0 and 0xFF
4725   * @retval None
4726   */
LL_HRTIM_TIM_SetRepetition(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Repetition)4727 __STATIC_INLINE void LL_HRTIM_TIM_SetRepetition(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Repetition)
4728 {
4729   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4730   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MREP) +
4731                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4732   MODIFY_REG(* pReg, HRTIM_MREP_MREP, Repetition);
4733 }
4734 
4735 /**
4736   * @brief  Get actual timer repetition period value.
4737   * @rmtoll MREP        MREP       LL_HRTIM_TIM_GetRepetition\n
4738   *         REPxR       REPx       LL_HRTIM_TIM_GetRepetition
4739   * @param  HRTIMx High Resolution Timer instance
4740   * @param  Timer This parameter can be one of the following values:
4741   *         @arg @ref LL_HRTIM_TIMER_MASTER
4742   *         @arg @ref LL_HRTIM_TIMER_A
4743   *         @arg @ref LL_HRTIM_TIMER_B
4744   *         @arg @ref LL_HRTIM_TIMER_C
4745   *         @arg @ref LL_HRTIM_TIMER_D
4746   *         @arg @ref LL_HRTIM_TIMER_E
4747   *         @arg @ref LL_HRTIM_TIMER_F
4748   * @retval Repetition Value between 0 and 0xFF
4749   */
LL_HRTIM_TIM_GetRepetition(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4750 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetRepetition(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4751 {
4752   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4753   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MREP) +
4754                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4755   return (READ_BIT(*pReg, HRTIM_MREP_MREP));
4756 }
4757 
4758 /**
4759   * @brief  Set the compare value of the compare unit 1.
4760   * @rmtoll MCMP1R      MCMP1       LL_HRTIM_TIM_SetCompare1\n
4761   *         CMP1xR      CMP1x       LL_HRTIM_TIM_SetCompare1
4762   * @param  HRTIMx High Resolution Timer instance
4763   * @param  Timer This parameter can be one of the following values:
4764   *         @arg @ref LL_HRTIM_TIMER_MASTER
4765   *         @arg @ref LL_HRTIM_TIMER_A
4766   *         @arg @ref LL_HRTIM_TIMER_B
4767   *         @arg @ref LL_HRTIM_TIMER_C
4768   *         @arg @ref LL_HRTIM_TIMER_D
4769   *         @arg @ref LL_HRTIM_TIMER_E
4770   *         @arg @ref LL_HRTIM_TIMER_F
4771   * @param  CompareValue Compare value must be above or equal to 3
4772   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4773   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4774   * @retval None
4775   */
LL_HRTIM_TIM_SetCompare1(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CompareValue)4776 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare1(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
4777 {
4778   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4779   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP1R) +
4780                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4781   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP1R, CompareValue);
4782 }
4783 
4784 /**
4785   * @brief  Get actual compare value of the compare unit 1.
4786   * @rmtoll MCMP1R      MCMP1       LL_HRTIM_TIM_GetCompare1\n
4787   *         CMP1xR      CMP1x       LL_HRTIM_TIM_GetCompare1
4788   * @param  HRTIMx High Resolution Timer instance
4789   * @param  Timer This parameter can be one of the following values:
4790   *         @arg @ref LL_HRTIM_TIMER_MASTER
4791   *         @arg @ref LL_HRTIM_TIMER_A
4792   *         @arg @ref LL_HRTIM_TIMER_B
4793   *         @arg @ref LL_HRTIM_TIMER_C
4794   *         @arg @ref LL_HRTIM_TIMER_D
4795   *         @arg @ref LL_HRTIM_TIMER_E
4796   *         @arg @ref LL_HRTIM_TIMER_F
4797   * @retval CompareValue Compare value must be above or equal to 3
4798   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4799   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4800   */
LL_HRTIM_TIM_GetCompare1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4801 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4802 {
4803   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4804   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP1R) +
4805                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4806   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP1R));
4807 }
4808 
4809 /**
4810   * @brief  Set the compare value of the compare unit 2.
4811   * @rmtoll MCMP2R      MCMP2       LL_HRTIM_TIM_SetCompare2\n
4812   *         CMP2xR      CMP2x       LL_HRTIM_TIM_SetCompare2
4813   * @param  HRTIMx High Resolution Timer instance
4814   * @param  Timer This parameter can be one of the following values:
4815   *         @arg @ref LL_HRTIM_TIMER_MASTER
4816   *         @arg @ref LL_HRTIM_TIMER_A
4817   *         @arg @ref LL_HRTIM_TIMER_B
4818   *         @arg @ref LL_HRTIM_TIMER_C
4819   *         @arg @ref LL_HRTIM_TIMER_D
4820   *         @arg @ref LL_HRTIM_TIMER_E
4821   *         @arg @ref LL_HRTIM_TIMER_F
4822   * @param  CompareValue Compare value must be above or equal to 3
4823   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4824   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4825   * @retval None
4826   */
LL_HRTIM_TIM_SetCompare2(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CompareValue)4827 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare2(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
4828 {
4829   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4830   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP2R) +
4831                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4832   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP2R, CompareValue);
4833 }
4834 
4835 /**
4836   * @brief  Get actual compare value of the compare unit 2.
4837   * @rmtoll MCMP2R      MCMP2       LL_HRTIM_TIM_GetCompare2\n
4838   *         CMP2xR      CMP2x       LL_HRTIM_TIM_GetCompare2\n
4839   * @param  HRTIMx High Resolution Timer instance
4840   * @param  Timer This parameter can be one of the following values:
4841   *         @arg @ref LL_HRTIM_TIMER_MASTER
4842   *         @arg @ref LL_HRTIM_TIMER_A
4843   *         @arg @ref LL_HRTIM_TIMER_B
4844   *         @arg @ref LL_HRTIM_TIMER_C
4845   *         @arg @ref LL_HRTIM_TIMER_D
4846   *         @arg @ref LL_HRTIM_TIMER_E
4847   *         @arg @ref LL_HRTIM_TIMER_F
4848   * @retval CompareValue Compare value must be above or equal to 3
4849   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4850   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4851   */
LL_HRTIM_TIM_GetCompare2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4852 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4853 {
4854   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4855   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP2R) +
4856                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4857   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP2R));
4858 }
4859 
4860 /**
4861   * @brief  Set the compare value of the compare unit 3.
4862   * @rmtoll MCMP3R      MCMP3       LL_HRTIM_TIM_SetCompare3\n
4863   *         CMP3xR      CMP3x       LL_HRTIM_TIM_SetCompare3
4864   * @param  HRTIMx High Resolution Timer instance
4865   * @param  Timer This parameter can be one of the following values:
4866   *         @arg @ref LL_HRTIM_TIMER_MASTER
4867   *         @arg @ref LL_HRTIM_TIMER_A
4868   *         @arg @ref LL_HRTIM_TIMER_B
4869   *         @arg @ref LL_HRTIM_TIMER_C
4870   *         @arg @ref LL_HRTIM_TIMER_D
4871   *         @arg @ref LL_HRTIM_TIMER_E
4872   *         @arg @ref LL_HRTIM_TIMER_F
4873   * @param  CompareValue Compare value must be above or equal to 3
4874   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4875   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4876   * @retval None
4877   */
LL_HRTIM_TIM_SetCompare3(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CompareValue)4878 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare3(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
4879 {
4880   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4881   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP3R) +
4882                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4883   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP3R, CompareValue);
4884 }
4885 
4886 /**
4887   * @brief  Get actual compare value of the compare unit 3.
4888   * @rmtoll MCMP3R      MCMP3       LL_HRTIM_TIM_GetCompare3\n
4889   *         CMP3xR      CMP3x       LL_HRTIM_TIM_GetCompare3
4890   * @param  HRTIMx High Resolution Timer instance
4891   * @param  Timer This parameter can be one of the following values:
4892   *         @arg @ref LL_HRTIM_TIMER_MASTER
4893   *         @arg @ref LL_HRTIM_TIMER_A
4894   *         @arg @ref LL_HRTIM_TIMER_B
4895   *         @arg @ref LL_HRTIM_TIMER_C
4896   *         @arg @ref LL_HRTIM_TIMER_D
4897   *         @arg @ref LL_HRTIM_TIMER_E
4898   *         @arg @ref LL_HRTIM_TIMER_F
4899   * @retval CompareValue Compare value must be above or equal to 3
4900   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4901   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4902   */
LL_HRTIM_TIM_GetCompare3(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4903 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4904 {
4905   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4906   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP3R) +
4907                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4908   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP3R));
4909 }
4910 
4911 /**
4912   * @brief  Set the compare value of the compare unit 4.
4913   * @rmtoll MCMP4R      MCMP4       LL_HRTIM_TIM_SetCompare4\n
4914   *         CMP4xR      CMP4x       LL_HRTIM_TIM_SetCompare4
4915   * @param  HRTIMx High Resolution Timer instance
4916   * @param  Timer This parameter can be one of the following values:
4917   *         @arg @ref LL_HRTIM_TIMER_MASTER
4918   *         @arg @ref LL_HRTIM_TIMER_A
4919   *         @arg @ref LL_HRTIM_TIMER_B
4920   *         @arg @ref LL_HRTIM_TIMER_C
4921   *         @arg @ref LL_HRTIM_TIMER_D
4922   *         @arg @ref LL_HRTIM_TIMER_E
4923   *         @arg @ref LL_HRTIM_TIMER_F
4924   * @param  CompareValue Compare value must be above or equal to 3
4925   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4926   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4927   * @retval None
4928   */
LL_HRTIM_TIM_SetCompare4(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CompareValue)4929 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare4(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
4930 {
4931   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4932   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP4R) +
4933                                                      REG_OFFSET_TAB_TIMER[iTimer]));
4934   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP4R, CompareValue);
4935 }
4936 
4937 /**
4938   * @brief  Get actual compare value of the compare unit 4.
4939   * @rmtoll MCMP4R      MCMP4       LL_HRTIM_TIM_GetCompare4\n
4940   *         CMP4xR      CMP4x       LL_HRTIM_TIM_GetCompare4
4941   * @param  HRTIMx High Resolution Timer instance
4942   * @param  Timer This parameter can be one of the following values:
4943   *         @arg @ref LL_HRTIM_TIMER_MASTER
4944   *         @arg @ref LL_HRTIM_TIMER_A
4945   *         @arg @ref LL_HRTIM_TIMER_B
4946   *         @arg @ref LL_HRTIM_TIMER_C
4947   *         @arg @ref LL_HRTIM_TIMER_D
4948   *         @arg @ref LL_HRTIM_TIMER_E
4949   *         @arg @ref LL_HRTIM_TIMER_F
4950   * @retval CompareValue Compare value must be above or equal to 3
4951   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
4952   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
4953   */
LL_HRTIM_TIM_GetCompare4(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)4954 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4955 {
4956   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4957   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP4R) +
4958                                                            REG_OFFSET_TAB_TIMER[iTimer]));
4959   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP4R));
4960 }
4961 
4962 /**
4963   * @brief  Set the reset trigger of a timer counter.
4964   * @rmtoll RSTxR      UPDT           LL_HRTIM_TIM_SetResetTrig\n
4965   *         RSTxR      CMP2           LL_HRTIM_TIM_SetResetTrig\n
4966   *         RSTxR      CMP4           LL_HRTIM_TIM_SetResetTrig\n
4967   *         RSTxR      MSTPER         LL_HRTIM_TIM_SetResetTrig\n
4968   *         RSTxR      MSTCMP1        LL_HRTIM_TIM_SetResetTrig\n
4969   *         RSTxR      MSTCMP2        LL_HRTIM_TIM_SetResetTrig\n
4970   *         RSTxR      MSTCMP3        LL_HRTIM_TIM_SetResetTrig\n
4971   *         RSTxR      MSTCMP4        LL_HRTIM_TIM_SetResetTrig\n
4972   *         RSTxR      EXTEVNT1       LL_HRTIM_TIM_SetResetTrig\n
4973   *         RSTxR      EXTEVNT2       LL_HRTIM_TIM_SetResetTrig\n
4974   *         RSTxR      EXTEVNT3       LL_HRTIM_TIM_SetResetTrig\n
4975   *         RSTxR      EXTEVNT4       LL_HRTIM_TIM_SetResetTrig\n
4976   *         RSTxR      EXTEVNT5       LL_HRTIM_TIM_SetResetTrig\n
4977   *         RSTxR      EXTEVNT6       LL_HRTIM_TIM_SetResetTrig\n
4978   *         RSTxR      EXTEVNT7       LL_HRTIM_TIM_SetResetTrig\n
4979   *         RSTxR      EXTEVNT8       LL_HRTIM_TIM_SetResetTrig\n
4980   *         RSTxR      EXTEVNT9       LL_HRTIM_TIM_SetResetTrig\n
4981   *         RSTxR      EXTEVNT10      LL_HRTIM_TIM_SetResetTrig\n
4982   *         RSTxR      TIMBCMP1       LL_HRTIM_TIM_SetResetTrig\n
4983   *         RSTxR      TIMBCMP2       LL_HRTIM_TIM_SetResetTrig\n
4984   *         RSTxR      TIMBCMP4       LL_HRTIM_TIM_SetResetTrig\n
4985   *         RSTxR      TIMCCMP1       LL_HRTIM_TIM_SetResetTrig\n
4986   *         RSTxR      TIMCCMP2       LL_HRTIM_TIM_SetResetTrig\n
4987   *         RSTxR      TIMCCMP4       LL_HRTIM_TIM_SetResetTrig\n
4988   *         RSTxR      TIMDCMP1       LL_HRTIM_TIM_SetResetTrig\n
4989   *         RSTxR      TIMDCMP2       LL_HRTIM_TIM_SetResetTrig\n
4990   *         RSTxR      TIMDCMP4       LL_HRTIM_TIM_SetResetTrig\n
4991   *         RSTxR      TIMECMP1       LL_HRTIM_TIM_SetResetTrig\n
4992   *         RSTxR      TIMECMP2       LL_HRTIM_TIM_SetResetTrig\n
4993   *         RSTxR      TIMECMP4       LL_HRTIM_TIM_SetResetTrig\n
4994   *         RSTxR      TIMFCMP1       LL_HRTIM_TIM_SetResetTrig\n
4995   *         RSTxR      TIMFCMP2       LL_HRTIM_TIM_SetResetTrig
4996   * @note The reset of the timer counter can be triggered by up to 30 events
4997   *       that can be selected among the following sources:
4998   *         @arg The timing unit: Compare 2, Compare 4 and Update (3 events).
4999   *         @arg The master timer: Reset and Compare 1..4 (5 events).
5000   *         @arg The external events EXTEVNT1..10 (10 events).
5001   *         @arg All other timing units (e.g. Timer B..F for timer A): Compare 1, 2 and 4 (12 events).
5002   * @param  HRTIMx High Resolution Timer instance
5003   * @param  Timer This parameter can be one of the following values:
5004   *         @arg @ref LL_HRTIM_TIMER_A
5005   *         @arg @ref LL_HRTIM_TIMER_B
5006   *         @arg @ref LL_HRTIM_TIMER_C
5007   *         @arg @ref LL_HRTIM_TIMER_D
5008   *         @arg @ref LL_HRTIM_TIMER_E
5009   *         @arg @ref LL_HRTIM_TIMER_F
5010   * @param  ResetTrig This parameter can be a combination of the following values:
5011   *         @arg @ref LL_HRTIM_RESETTRIG_NONE
5012   *         @arg @ref LL_HRTIM_RESETTRIG_UPDATE
5013   *         @arg @ref LL_HRTIM_RESETTRIG_CMP2
5014   *         @arg @ref LL_HRTIM_RESETTRIG_CMP4
5015   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_PER
5016   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP1
5017   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP2
5018   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP3
5019   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP4
5020   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_1
5021   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_2
5022   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_3
5023   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_4
5024   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_5
5025   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_6
5026   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_7
5027   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_8
5028   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_9
5029   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_10
5030   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP1
5031   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP2
5032   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP4
5033   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP1
5034   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP2
5035   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP4
5036   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP1
5037   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP2
5038   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP4
5039   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP1
5040   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP2
5041   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP4
5042   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER5_CMP1
5043   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER5_CMP2
5044   * @retval None
5045   */
LL_HRTIM_TIM_SetResetTrig(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t ResetTrig)5046 __STATIC_INLINE void LL_HRTIM_TIM_SetResetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t ResetTrig)
5047 {
5048   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5049   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTxR) +
5050                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5051   WRITE_REG(*pReg, ResetTrig);
5052 }
5053 
5054 /**
5055   * @brief  Get actual reset trigger of a timer counter.
5056   * @rmtoll RSTxR      UPDT           LL_HRTIM_TIM_GetResetTrig\n
5057   *         RSTxR      CMP2           LL_HRTIM_TIM_GetResetTrig\n
5058   *         RSTxR      CMP4           LL_HRTIM_TIM_GetResetTrig\n
5059   *         RSTxR      MSTPER         LL_HRTIM_TIM_GetResetTrig\n
5060   *         RSTxR      MSTCMP1        LL_HRTIM_TIM_GetResetTrig\n
5061   *         RSTxR      MSTCMP2        LL_HRTIM_TIM_GetResetTrig\n
5062   *         RSTxR      MSTCMP3        LL_HRTIM_TIM_GetResetTrig\n
5063   *         RSTxR      MSTCMP4        LL_HRTIM_TIM_GetResetTrig\n
5064   *         RSTxR      EXTEVNT1       LL_HRTIM_TIM_GetResetTrig\n
5065   *         RSTxR      EXTEVNT2       LL_HRTIM_TIM_GetResetTrig\n
5066   *         RSTxR      EXTEVNT3       LL_HRTIM_TIM_GetResetTrig\n
5067   *         RSTxR      EXTEVNT4       LL_HRTIM_TIM_GetResetTrig\n
5068   *         RSTxR      EXTEVNT5       LL_HRTIM_TIM_GetResetTrig\n
5069   *         RSTxR      EXTEVNT6       LL_HRTIM_TIM_GetResetTrig\n
5070   *         RSTxR      EXTEVNT7       LL_HRTIM_TIM_GetResetTrig\n
5071   *         RSTxR      EXTEVNT8       LL_HRTIM_TIM_GetResetTrig\n
5072   *         RSTxR      EXTEVNT9       LL_HRTIM_TIM_GetResetTrig\n
5073   *         RSTxR      EXTEVNT10      LL_HRTIM_TIM_GetResetTrig\n
5074   *         RSTxR      TIMBCMP1       LL_HRTIM_TIM_GetResetTrig\n
5075   *         RSTxR      TIMBCMP2       LL_HRTIM_TIM_GetResetTrig\n
5076   *         RSTxR      TIMBCMP4       LL_HRTIM_TIM_GetResetTrig\n
5077   *         RSTxR      TIMCCMP1       LL_HRTIM_TIM_GetResetTrig\n
5078   *         RSTxR      TIMCCMP2       LL_HRTIM_TIM_GetResetTrig\n
5079   *         RSTxR      TIMCCMP4       LL_HRTIM_TIM_GetResetTrig\n
5080   *         RSTxR      TIMDCMP1       LL_HRTIM_TIM_GetResetTrig\n
5081   *         RSTxR      TIMDCMP2       LL_HRTIM_TIM_GetResetTrig\n
5082   *         RSTxR      TIMDCMP4       LL_HRTIM_TIM_GetResetTrig\n
5083   *         RSTxR      TIMECMP1       LL_HRTIM_TIM_GetResetTrig\n
5084   *         RSTxR      TIMECMP2       LL_HRTIM_TIM_GetResetTrig\n
5085   *         RSTxR      TIMECMP4       LL_HRTIM_TIM_GetResetTrig\n
5086   *         RSTxR      TIMFCMP1       LL_HRTIM_TIM_GetResetTrig\n
5087   *         RSTxR      TIMFCMP2       LL_HRTIM_TIM_GetResetTrig
5088   * @param  HRTIMx High Resolution Timer instance
5089   * @param  Timer This parameter can be one of the following values:
5090   *         @arg @ref LL_HRTIM_TIMER_A
5091   *         @arg @ref LL_HRTIM_TIMER_B
5092   *         @arg @ref LL_HRTIM_TIMER_C
5093   *         @arg @ref LL_HRTIM_TIMER_D
5094   *         @arg @ref LL_HRTIM_TIMER_E
5095   *         @arg @ref LL_HRTIM_TIMER_F
5096   * @retval ResetTrig Returned value can be one of the following values:
5097   *         @arg @ref LL_HRTIM_RESETTRIG_NONE
5098   *         @arg @ref LL_HRTIM_RESETTRIG_UPDATE
5099   *         @arg @ref LL_HRTIM_RESETTRIG_CMP2
5100   *         @arg @ref LL_HRTIM_RESETTRIG_CMP4
5101   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_PER
5102   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP1
5103   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP2
5104   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP3
5105   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP4
5106   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_1
5107   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_2
5108   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_3
5109   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_4
5110   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_5
5111   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_6
5112   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_7
5113   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_8
5114   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_9
5115   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_10
5116   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP1
5117   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP2
5118   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP4
5119   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP1
5120   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP2
5121   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP4
5122   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP1
5123   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP2
5124   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP4
5125   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP1
5126   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP2
5127   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP4
5128   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER5_CMP1
5129   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER5_CMP2
5130   */
LL_HRTIM_TIM_GetResetTrig(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5131 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetResetTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5132 {
5133   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5134   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTxR) +
5135                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5136   return (READ_REG(*pReg));
5137 }
5138 
5139 /**
5140   * @brief  Get captured value for capture unit 1.
5141   * @rmtoll CPT1xR      CPT1x           LL_HRTIM_TIM_GetCapture1
5142   * @param  HRTIMx High Resolution Timer instance
5143   * @param  Timer This parameter can be one of the following values:
5144   *         @arg @ref LL_HRTIM_TIMER_A
5145   *         @arg @ref LL_HRTIM_TIMER_B
5146   *         @arg @ref LL_HRTIM_TIMER_C
5147   *         @arg @ref LL_HRTIM_TIMER_D
5148   *         @arg @ref LL_HRTIM_TIMER_E
5149   *         @arg @ref LL_HRTIM_TIMER_F
5150   * @retval Captured value
5151   */
LL_HRTIM_TIM_GetCapture1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5152 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5153 {
5154   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5155   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT1xR) +
5156                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5157   return (READ_REG(*pReg));
5158 }
5159 
5160 /**
5161   * @brief  Get the counting direction when capture 1 event occurred.
5162   * @rmtoll CPT1xR      DIR           LL_HRTIM_TIM_GetCapture1Direction
5163   * @param  HRTIMx High Resolution Timer instance
5164   * @param  Timer This parameter can be one of the following values:
5165   *         @arg @ref LL_HRTIM_TIMER_A
5166   *         @arg @ref LL_HRTIM_TIMER_B
5167   *         @arg @ref LL_HRTIM_TIMER_C
5168   *         @arg @ref LL_HRTIM_TIMER_D
5169   *         @arg @ref LL_HRTIM_TIMER_E
5170   *         @arg @ref LL_HRTIM_TIMER_F
5171   * @retval Filter This parameter can be one of the following values:
5172   *         @arg @ref  LL_HRTIM_COUNTING_MODE_UP
5173   *         @arg @ref  LL_HRTIM_COUNTING_MODE_UP_DOWN
5174   */
LL_HRTIM_TIM_GetCapture1Direction(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5175 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture1Direction(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5176 {
5177   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5178   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT1xR) +
5179                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5180   return ((READ_BIT(*pReg, HRTIM_CPT1R_DIR) >> HRTIM_CPT1R_DIR_Pos) << HRTIM_TIMCR2_UDM_Pos);
5181 }
5182 
5183 /**
5184   * @brief  Get captured value for capture unit 2.
5185   * @rmtoll CPT2xR      CPT2x           LL_HRTIM_TIM_GetCapture2
5186   * @param  HRTIMx High Resolution Timer instance
5187   * @param  Timer This parameter can be one of the following values:
5188   *         @arg @ref LL_HRTIM_TIMER_A
5189   *         @arg @ref LL_HRTIM_TIMER_B
5190   *         @arg @ref LL_HRTIM_TIMER_C
5191   *         @arg @ref LL_HRTIM_TIMER_D
5192   *         @arg @ref LL_HRTIM_TIMER_E
5193   *         @arg @ref LL_HRTIM_TIMER_F
5194   * @retval Captured value
5195   */
LL_HRTIM_TIM_GetCapture2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5196 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5197 {
5198   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5199   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT2xR) +
5200                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5201   return (READ_REG(*pReg));
5202 }
5203 
5204 /**
5205   * @brief  Get the counting direction when capture 2 event occurred.
5206   * @rmtoll CPT2xR      DIR           LL_HRTIM_TIM_GetCapture2Direction
5207   * @param  HRTIMx High Resolution Timer instance
5208   * @param  Timer This parameter can be one of the following values:
5209   *         @arg @ref LL_HRTIM_TIMER_A
5210   *         @arg @ref LL_HRTIM_TIMER_B
5211   *         @arg @ref LL_HRTIM_TIMER_C
5212   *         @arg @ref LL_HRTIM_TIMER_D
5213   *         @arg @ref LL_HRTIM_TIMER_E
5214   *         @arg @ref LL_HRTIM_TIMER_F
5215   * @retval Filter This parameter can be one of the following values:
5216   *         @arg @ref  LL_HRTIM_COUNTING_MODE_UP
5217   *         @arg @ref  LL_HRTIM_COUNTING_MODE_UP_DOWN
5218   */
LL_HRTIM_TIM_GetCapture2Direction(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5219 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture2Direction(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5220 {
5221   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5222   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT2xR) +
5223                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5224   return ((READ_BIT(*pReg, HRTIM_CPT2R_DIR) >> HRTIM_CPT2R_DIR_Pos) << HRTIM_TIMCR2_UDM_Pos);
5225 }
5226 
5227 /**
5228   * @brief  Set the trigger of a capture unit for a given timer.
5229   * @rmtoll CPT1xCR      SWCPT            LL_HRTIM_TIM_SetCaptureTrig\n
5230   *         CPT1xCR      UPDCPT           LL_HRTIM_TIM_SetCaptureTrig\n
5231   *         CPT1xCR      EXEV1CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5232   *         CPT1xCR      EXEV2CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5233   *         CPT1xCR      EXEV3CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5234   *         CPT1xCR      EXEV4CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5235   *         CPT1xCR      EXEV5CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5236   *         CPT1xCR      EXEV6CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5237   *         CPT1xCR      EXEV7CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5238   *         CPT1xCR      EXEV8CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5239   *         CPT1xCR      EXEV9CPT         LL_HRTIM_TIM_SetCaptureTrig\n
5240   *         CPT1xCR      EXEV10CPT        LL_HRTIM_TIM_SetCaptureTrig\n
5241   *         CPT1xCR      TA1SET           LL_HRTIM_TIM_SetCaptureTrig\n
5242   *         CPT1xCR      TA1RST           LL_HRTIM_TIM_SetCaptureTrig\n
5243   *         CPT1xCR      TACMP1           LL_HRTIM_TIM_SetCaptureTrig\n
5244   *         CPT1xCR      TACMP2           LL_HRTIM_TIM_SetCaptureTrig\n
5245   *         CPT1xCR      TB1SET           LL_HRTIM_TIM_SetCaptureTrig\n
5246   *         CPT1xCR      TB1RST           LL_HRTIM_TIM_SetCaptureTrig\n
5247   *         CPT1xCR      TBCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
5248   *         CPT1xCR      TBCMP2           LL_HRTIM_TIM_SetCaptureTrig\n
5249   *         CPT1xCR      TC1SET           LL_HRTIM_TIM_SetCaptureTrig\n
5250   *         CPT1xCR      TC1RST           LL_HRTIM_TIM_SetCaptureTrig\n
5251   *         CPT1xCR      TCCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
5252   *         CPT1xCR      TCCMP2           LL_HRTIM_TIM_SetCaptureTrig\n
5253   *         CPT1xCR      TD1SET           LL_HRTIM_TIM_SetCaptureTrig\n
5254   *         CPT1xCR      TD1RST           LL_HRTIM_TIM_SetCaptureTrig\n
5255   *         CPT1xCR      TDCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
5256   *         CPT1xCR      TDCMP2           LL_HRTIM_TIM_SetCaptureTrig\n
5257   *         CPT1xCR      TE1SET           LL_HRTIM_TIM_SetCaptureTrig\n
5258   *         CPT1xCR      TE1RST           LL_HRTIM_TIM_SetCaptureTrig\n
5259   *         CPT1xCR      TECMP1           LL_HRTIM_TIM_SetCaptureTrig\n
5260   *         CPT1xCR      TECMP2           LL_HRTIM_TIM_SetCaptureTrig\n
5261   *         CPT1xCR      TF1SET           LL_HRTIM_TIM_SetCaptureTrig\n
5262   *         CPT1xCR      TF1RST           LL_HRTIM_TIM_SetCaptureTrig\n
5263   *         CPT1xCR      TFCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
5264   *         CPT1xCR      TFCMP2           LL_HRTIM_TIM_SetCaptureTrig
5265   * @param  HRTIMx High Resolution Timer instance
5266   * @param  Timer This parameter can be one of the following values:
5267   *         @arg @ref LL_HRTIM_TIMER_A
5268   *         @arg @ref LL_HRTIM_TIMER_B
5269   *         @arg @ref LL_HRTIM_TIMER_C
5270   *         @arg @ref LL_HRTIM_TIMER_D
5271   *         @arg @ref LL_HRTIM_TIMER_E
5272   *         @arg @ref LL_HRTIM_TIMER_F
5273   * @param  CaptureUnit This parameter can be one of the following values:
5274   *         @arg @ref LL_HRTIM_CAPTUREUNIT_1
5275   *         @arg @ref LL_HRTIM_CAPTUREUNIT_2
5276   * @param  CaptureTrig This parameter can be a combination of the following values:
5277   *         @arg @ref LL_HRTIM_CAPTURETRIG_NONE
5278   *         @arg @ref LL_HRTIM_CAPTURETRIG_SW
5279   *         @arg @ref LL_HRTIM_CAPTURETRIG_UPDATE
5280   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_1
5281   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_2
5282   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_3
5283   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_4
5284   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_5
5285   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_6
5286   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_7
5287   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_8
5288   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_9
5289   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_10
5290   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_SET
5291   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_RESET
5292   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP1
5293   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP2
5294   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_SET
5295   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_RESET
5296   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP1
5297   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP2
5298   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_SET
5299   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_RESET
5300   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP1
5301   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP2
5302   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_SET
5303   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_RESET
5304   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP1
5305   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP2
5306   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_SET
5307   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_RESET
5308   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP1
5309   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP2
5310   *         @arg @ref LL_HRTIM_CAPTURETRIG_TF1_SET
5311   *         @arg @ref LL_HRTIM_CAPTURETRIG_TF1_RESET
5312   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMF_CMP1
5313   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMF_CMP2
5314   * @retval None
5315   */
LL_HRTIM_TIM_SetCaptureTrig(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CaptureUnit,uint64_t CaptureTrig)5316 __STATIC_INLINE void LL_HRTIM_TIM_SetCaptureTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CaptureUnit,
5317                                                  uint64_t CaptureTrig)
5318 {
5319   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5320   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].CPT1xCR) +
5321                                                      REG_OFFSET_TAB_TIMER[iTimer] + (CaptureUnit * 4U)));
5322 
5323   uint32_t cfg1 = (uint32_t)(CaptureTrig & 0x0000000000000FFFU);
5324   uint32_t cfg2 = (uint32_t)((CaptureTrig & 0xFFFFF00F00000000U) >> 32U);
5325 
5326   cfg2 = (cfg2 & REG_MASK_TAB_CPT[iTimer]) | ((cfg2 & 0x0000000FU) << (REG_SHIFT_TAB_CPT[iTimer]));
5327 
5328   WRITE_REG(*pReg, (cfg1 | cfg2));
5329 
5330 }
5331 
5332 /**
5333   * @brief  Get actual trigger of a capture unit for a given timer.
5334   * @rmtoll CPT1xCR      SWCPT            LL_HRTIM_TIM_GetCaptureTrig\n
5335   *         CPT1xCR      UPDCPT           LL_HRTIM_TIM_GetCaptureTrig\n
5336   *         CPT1xCR      EXEV1CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5337   *         CPT1xCR      EXEV2CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5338   *         CPT1xCR      EXEV3CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5339   *         CPT1xCR      EXEV4CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5340   *         CPT1xCR      EXEV5CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5341   *         CPT1xCR      EXEV6CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5342   *         CPT1xCR      EXEV7CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5343   *         CPT1xCR      EXEV8CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5344   *         CPT1xCR      EXEV9CPT         LL_HRTIM_TIM_GetCaptureTrig\n
5345   *         CPT1xCR      EXEV10CPT        LL_HRTIM_TIM_GetCaptureTrig\n
5346   *         CPT1xCR      TA1SET           LL_HRTIM_TIM_GetCaptureTrig\n
5347   *         CPT1xCR      TA1RST           LL_HRTIM_TIM_GetCaptureTrig\n
5348   *         CPT1xCR      TACMP1           LL_HRTIM_TIM_GetCaptureTrig\n
5349   *         CPT1xCR      TACMP2           LL_HRTIM_TIM_GetCaptureTrig\n
5350   *         CPT1xCR      TB1SET           LL_HRTIM_TIM_GetCaptureTrig\n
5351   *         CPT1xCR      TB1RST           LL_HRTIM_TIM_GetCaptureTrig\n
5352   *         CPT1xCR      TBCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
5353   *         CPT1xCR      TBCMP2           LL_HRTIM_TIM_GetCaptureTrig\n
5354   *         CPT1xCR      TC1SET           LL_HRTIM_TIM_GetCaptureTrig\n
5355   *         CPT1xCR      TC1RST           LL_HRTIM_TIM_GetCaptureTrig\n
5356   *         CPT1xCR      TCCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
5357   *         CPT1xCR      TCCMP2           LL_HRTIM_TIM_GetCaptureTrig\n
5358   *         CPT1xCR      TD1SET           LL_HRTIM_TIM_GetCaptureTrig\n
5359   *         CPT1xCR      TD1RST           LL_HRTIM_TIM_GetCaptureTrig\n
5360   *         CPT1xCR      TDCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
5361   *         CPT1xCR      TDCMP2           LL_HRTIM_TIM_GetCaptureTrig\n
5362   *         CPT1xCR      TE1SET           LL_HRTIM_TIM_GetCaptureTrig\n
5363   *         CPT1xCR      TE1RST           LL_HRTIM_TIM_GetCaptureTrig\n
5364   *         CPT1xCR      TECMP1           LL_HRTIM_TIM_GetCaptureTrig\n
5365   *         CPT1xCR      TECMP2           LL_HRTIM_TIM_GetCaptureTrig\n
5366   *         CPT1xCR      TF1SET           LL_HRTIM_TIM_GetCaptureTrig\n
5367   *         CPT1xCR      TF1RST           LL_HRTIM_TIM_GetCaptureTrig\n
5368   *         CPT1xCR      TFCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
5369   *         CPT1xCR      TFCMP2           LL_HRTIM_TIM_GetCaptureTrig
5370   * @param  HRTIMx High Resolution Timer instance
5371   * @param  Timer This parameter can be one of the following values:
5372   *         @arg @ref LL_HRTIM_TIMER_A
5373   *         @arg @ref LL_HRTIM_TIMER_B
5374   *         @arg @ref LL_HRTIM_TIMER_C
5375   *         @arg @ref LL_HRTIM_TIMER_D
5376   *         @arg @ref LL_HRTIM_TIMER_E
5377   *         @arg @ref LL_HRTIM_TIMER_F
5378   * @param  CaptureUnit This parameter can be one of the following values:
5379   *         @arg @ref LL_HRTIM_CAPTUREUNIT_1
5380   *         @arg @ref LL_HRTIM_CAPTUREUNIT_2
5381   * @retval CaptureTrig This parameter can be a combination of the following values:
5382   *         @arg @ref LL_HRTIM_CAPTURETRIG_NONE
5383   *         @arg @ref LL_HRTIM_CAPTURETRIG_SW
5384   *         @arg @ref LL_HRTIM_CAPTURETRIG_UPDATE
5385   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_1
5386   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_2
5387   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_3
5388   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_4
5389   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_5
5390   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_6
5391   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_7
5392   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_8
5393   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_9
5394   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_10
5395   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_SET
5396   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_RESET
5397   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP1
5398   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP2
5399   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_SET
5400   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_RESET
5401   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP1
5402   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP2
5403   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_SET
5404   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_RESET
5405   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP1
5406   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP2
5407   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_SET
5408   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_RESET
5409   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP1
5410   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP2
5411   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_SET
5412   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_RESET
5413   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP1
5414   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP2
5415   *         @arg @ref LL_HRTIM_CAPTURETRIG_TF1_SET
5416   *         @arg @ref LL_HRTIM_CAPTURETRIG_TF1_RESET
5417   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMF_CMP1
5418   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMF_CMP2
5419   */
LL_HRTIM_TIM_GetCaptureTrig(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t CaptureUnit)5420 __STATIC_INLINE uint64_t LL_HRTIM_TIM_GetCaptureTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CaptureUnit)
5421 {
5422   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5423   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].CPT1xCR) +
5424                                                            (uint32_t)REG_OFFSET_TAB_TIMER[iTimer & 0x7U] + (CaptureUnit * 4U)));
5425 
5426   uint64_t cfg;
5427   uint32_t CaptureTrig = READ_REG(*pReg);
5428 
5429   cfg = (uint64_t)(uint32_t)(((CaptureTrig & 0xFFFFF000U) & (uint32_t)REG_MASK_TAB_CPT[iTimer]) | (((CaptureTrig & 0xFFFFF000U) & (uint32_t)~REG_MASK_TAB_CPT[iTimer]) >> (REG_SHIFT_TAB_CPT[iTimer])));
5430 
5431   return ((uint64_t)(((uint64_t)CaptureTrig & (uint64_t)0x00000FFFU) | (uint64_t)((cfg) << 32U)));
5432 }
5433 
5434 /**
5435   * @brief  Enable deadtime insertion for a given timer.
5436   * @rmtoll OUTxR      DTEN           LL_HRTIM_TIM_EnableDeadTime
5437   * @param  HRTIMx High Resolution Timer instance
5438   * @param  Timer This parameter can be one of the following values:
5439   *         @arg @ref LL_HRTIM_TIMER_A
5440   *         @arg @ref LL_HRTIM_TIMER_B
5441   *         @arg @ref LL_HRTIM_TIMER_C
5442   *         @arg @ref LL_HRTIM_TIMER_D
5443   *         @arg @ref LL_HRTIM_TIMER_E
5444   *         @arg @ref LL_HRTIM_TIMER_F
5445   * @retval None
5446   */
LL_HRTIM_TIM_EnableDeadTime(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5447 __STATIC_INLINE void LL_HRTIM_TIM_EnableDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5448 {
5449   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5450   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5451                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5452   SET_BIT(*pReg, HRTIM_OUTR_DTEN);
5453 }
5454 
5455 /**
5456   * @brief  Disable deadtime insertion for a given timer.
5457   * @rmtoll OUTxR      DTEN           LL_HRTIM_TIM_DisableDeadTime
5458   * @param  HRTIMx High Resolution Timer instance
5459   * @param  Timer This parameter can be one of the following values:
5460   *         @arg @ref LL_HRTIM_TIMER_A
5461   *         @arg @ref LL_HRTIM_TIMER_B
5462   *         @arg @ref LL_HRTIM_TIMER_C
5463   *         @arg @ref LL_HRTIM_TIMER_D
5464   *         @arg @ref LL_HRTIM_TIMER_E
5465   *         @arg @ref LL_HRTIM_TIMER_F
5466   * @retval None
5467   */
LL_HRTIM_TIM_DisableDeadTime(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5468 __STATIC_INLINE void LL_HRTIM_TIM_DisableDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5469 {
5470   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5471   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5472                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5473   CLEAR_BIT(*pReg, HRTIM_OUTR_DTEN);
5474 }
5475 
5476 /**
5477   * @brief  Indicate whether deadtime insertion is enabled for a given timer.
5478   * @rmtoll OUTxR      DTEN           LL_HRTIM_TIM_IsEnabledDeadTime
5479   * @param  HRTIMx High Resolution Timer instance
5480   * @param  Timer This parameter can be one of the following values:
5481   *         @arg @ref LL_HRTIM_TIMER_A
5482   *         @arg @ref LL_HRTIM_TIMER_B
5483   *         @arg @ref LL_HRTIM_TIMER_C
5484   *         @arg @ref LL_HRTIM_TIMER_D
5485   *         @arg @ref LL_HRTIM_TIMER_E
5486   *         @arg @ref LL_HRTIM_TIMER_F
5487   * @retval State of DTEN bit in HRTIM_OUTxR register (1 or 0).
5488   */
LL_HRTIM_TIM_IsEnabledDeadTime(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5489 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDeadTime(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5490 {
5491   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5492   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5493                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5494 
5495   return ((READ_BIT(*pReg, HRTIM_OUTR_DTEN) == (HRTIM_OUTR_DTEN)) ? 1UL : 0UL);
5496 }
5497 
5498 /**
5499   * @brief  Set the delayed protection (DLYPRT) mode.
5500   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_SetDLYPRTMode\n
5501   *         OUTxR      DLYPRT         LL_HRTIM_TIM_SetDLYPRTMode
5502   * @note   This function must be called prior enabling the delayed protection
5503   * @note   Balanced Idle mode is only available in push-pull mode
5504   * @param  HRTIMx High Resolution Timer instance
5505   * @param  Timer This parameter can be one of the following values:
5506   *         @arg @ref LL_HRTIM_TIMER_A
5507   *         @arg @ref LL_HRTIM_TIMER_B
5508   *         @arg @ref LL_HRTIM_TIMER_C
5509   *         @arg @ref LL_HRTIM_TIMER_D
5510   *         @arg @ref LL_HRTIM_TIMER_E
5511   *         @arg @ref LL_HRTIM_TIMER_F
5512   * @param  DLYPRTMode Delayed protection (DLYPRT) mode
5513   *
5514   *         For timers A, B and C this parameter can be one of the following values:
5515   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV6
5516   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV6
5517   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV6
5518   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV6
5519   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV7
5520   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV7
5521   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV7
5522   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV7
5523   *
5524   *         For timers D, E and F this parameter can be one of the following values:
5525   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV8
5526   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV8
5527   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV8
5528   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV8
5529   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV9
5530   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV9
5531   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV9
5532   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV9
5533   * @retval None
5534   */
LL_HRTIM_TIM_SetDLYPRTMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t DLYPRTMode)5535 __STATIC_INLINE void LL_HRTIM_TIM_SetDLYPRTMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DLYPRTMode)
5536 {
5537   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5538   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5539                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5540   MODIFY_REG(*pReg, HRTIM_OUTR_DLYPRT, DLYPRTMode);
5541 }
5542 
5543 /**
5544   * @brief  Get the delayed protection (DLYPRT) mode.
5545   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_GetDLYPRTMode\n
5546   *         OUTxR      DLYPRT         LL_HRTIM_TIM_GetDLYPRTMode
5547   * @param  HRTIMx High Resolution Timer instance
5548   * @param  Timer This parameter can be one of the following values:
5549   *         @arg @ref LL_HRTIM_TIMER_A
5550   *         @arg @ref LL_HRTIM_TIMER_B
5551   *         @arg @ref LL_HRTIM_TIMER_C
5552   *         @arg @ref LL_HRTIM_TIMER_D
5553   *         @arg @ref LL_HRTIM_TIMER_E
5554   *         @arg @ref LL_HRTIM_TIMER_F
5555   * @retval DLYPRTMode Delayed protection (DLYPRT) mode
5556   *
5557   *         For timers A, B and C this parameter can be one of the following values:
5558   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV6
5559   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV6
5560   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV6
5561   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV6
5562   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV7
5563   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV7
5564   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV7
5565   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV7
5566   *
5567   *         For timers D, E and F this parameter can be one of the following values:
5568   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV8
5569   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV8
5570   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV8
5571   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV8
5572   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV9
5573   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV9
5574   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV9
5575   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV9
5576   */
LL_HRTIM_TIM_GetDLYPRTMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5577 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDLYPRTMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5578 {
5579   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5580   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5581                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5582   return (READ_BIT(*pReg, HRTIM_OUTR_DLYPRT));
5583 }
5584 
5585 /**
5586   * @brief  Enable delayed protection (DLYPRT) for a given timer.
5587   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_EnableDLYPRT
5588   * @note   This function must not be called once the concerned timer is enabled
5589   * @param  HRTIMx High Resolution Timer instance
5590   * @param  Timer This parameter can be one of the following values:
5591   *         @arg @ref LL_HRTIM_TIMER_A
5592   *         @arg @ref LL_HRTIM_TIMER_B
5593   *         @arg @ref LL_HRTIM_TIMER_C
5594   *         @arg @ref LL_HRTIM_TIMER_D
5595   *         @arg @ref LL_HRTIM_TIMER_E
5596   *         @arg @ref LL_HRTIM_TIMER_F
5597   * @retval None
5598   */
LL_HRTIM_TIM_EnableDLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5599 __STATIC_INLINE void LL_HRTIM_TIM_EnableDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5600 {
5601   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5602   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5603                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5604   SET_BIT(*pReg, HRTIM_OUTR_DLYPRTEN);
5605 }
5606 
5607 /**
5608   * @brief  Disable delayed protection (DLYPRT) for a given timer.
5609   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_DisableDLYPRT
5610   * @note   This function must not be called once the concerned timer is enabled
5611   * @param  HRTIMx High Resolution Timer instance
5612   * @param  Timer This parameter can be one of the following values:
5613   *         @arg @ref LL_HRTIM_TIMER_A
5614   *         @arg @ref LL_HRTIM_TIMER_B
5615   *         @arg @ref LL_HRTIM_TIMER_C
5616   *         @arg @ref LL_HRTIM_TIMER_D
5617   *         @arg @ref LL_HRTIM_TIMER_E
5618   *         @arg @ref LL_HRTIM_TIMER_F
5619   * @retval None
5620   */
LL_HRTIM_TIM_DisableDLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5621 __STATIC_INLINE void LL_HRTIM_TIM_DisableDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5622 {
5623   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5624   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5625                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5626   CLEAR_BIT(*pReg, HRTIM_OUTR_DLYPRTEN);
5627 }
5628 
5629 /**
5630   * @brief  Indicate whether delayed protection (DLYPRT) is enabled for a given timer.
5631   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_IsEnabledDLYPRT
5632   * @param  HRTIMx High Resolution Timer instance
5633   * @param  Timer This parameter can be one of the following values:
5634   *         @arg @ref LL_HRTIM_TIMER_A
5635   *         @arg @ref LL_HRTIM_TIMER_B
5636   *         @arg @ref LL_HRTIM_TIMER_C
5637   *         @arg @ref LL_HRTIM_TIMER_D
5638   *         @arg @ref LL_HRTIM_TIMER_E
5639   *         @arg @ref LL_HRTIM_TIMER_F
5640   * @retval State of DLYPRTEN bit in HRTIM_OUTxR register (1 or 0).
5641   */
LL_HRTIM_TIM_IsEnabledDLYPRT(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5642 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5643 {
5644   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5645   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5646                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5647   return ((READ_BIT(*pReg, HRTIM_OUTR_DLYPRTEN) == (HRTIM_OUTR_DLYPRTEN)) ? 1UL : 0UL);
5648 }
5649 
5650 /**
5651   * @brief  Enable the Balanced Idle Automatic Resume (BIAR) for a given timer.
5652   * @rmtoll OUTxR      BIAR       LL_HRTIM_TIM_EnableBIAR
5653   * @note   This function must not be called once the concerned timer is enabled
5654   * @param  HRTIMx High Resolution Timer instance
5655   * @param  Timer This parameter can be one of the following values:
5656   *         @arg @ref LL_HRTIM_TIMER_A
5657   *         @arg @ref LL_HRTIM_TIMER_B
5658   *         @arg @ref LL_HRTIM_TIMER_C
5659   *         @arg @ref LL_HRTIM_TIMER_D
5660   *         @arg @ref LL_HRTIM_TIMER_E
5661   *         @arg @ref LL_HRTIM_TIMER_F
5662   * @retval None
5663   */
LL_HRTIM_TIM_EnableBIAR(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5664 __STATIC_INLINE void LL_HRTIM_TIM_EnableBIAR(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5665 {
5666   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5667   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5668                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5669   SET_BIT(*pReg, HRTIM_OUTR_BIAR);
5670 }
5671 
5672 /**
5673   * @brief  Disable the Balanced Idle Automatic Resume (BIAR) for a given timer.
5674   * @rmtoll OUTxR      BIAR       LL_HRTIM_TIM_DisableBIAR
5675   * @note   This function must not be called once the concerned timer is enabled
5676   * @param  HRTIMx High Resolution Timer instance
5677   * @param  Timer This parameter can be one of the following values:
5678   *         @arg @ref LL_HRTIM_TIMER_A
5679   *         @arg @ref LL_HRTIM_TIMER_B
5680   *         @arg @ref LL_HRTIM_TIMER_C
5681   *         @arg @ref LL_HRTIM_TIMER_D
5682   *         @arg @ref LL_HRTIM_TIMER_E
5683   *         @arg @ref LL_HRTIM_TIMER_F
5684   * @retval None
5685   */
LL_HRTIM_TIM_DisableBIAR(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5686 __STATIC_INLINE void LL_HRTIM_TIM_DisableBIAR(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5687 {
5688   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5689   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].OUTxR) +
5690                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5691   CLEAR_BIT(*pReg, HRTIM_OUTR_BIAR);
5692 }
5693 
5694 /**
5695   * @brief  Indicate whether the Balanced Idle Automatic Resume (BIAR) is enabled for a given timer.
5696   * @rmtoll OUTxR      BIAR       LL_HRTIM_TIM_IsEnabledBIAR
5697   * @param  HRTIMx High Resolution Timer instance
5698   * @param  Timer This parameter can be one of the following values:
5699   *         @arg @ref LL_HRTIM_TIMER_A
5700   *         @arg @ref LL_HRTIM_TIMER_B
5701   *         @arg @ref LL_HRTIM_TIMER_C
5702   *         @arg @ref LL_HRTIM_TIMER_D
5703   *         @arg @ref LL_HRTIM_TIMER_E
5704   *         @arg @ref LL_HRTIM_TIMER_F
5705   * @retval State of DLYPRTEN bit in HRTIM_OUTxR register (1 or 0).
5706   */
LL_HRTIM_TIM_IsEnabledBIAR(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5707 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledBIAR(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5708 {
5709   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5710   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5711                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5712 
5713   return ((READ_BIT(*pReg, HRTIM_OUTR_BIAR) == (HRTIM_OUTR_BIAR)) ? 1UL : 0UL);
5714 }
5715 
5716 /**
5717   * @brief  Enable the fault channel(s) for a given timer.
5718   * @rmtoll FLTxR      FLT1EN       LL_HRTIM_TIM_EnableFault\n
5719   *         FLTxR      FLT2EN       LL_HRTIM_TIM_EnableFault\n
5720   *         FLTxR      FLT3EN       LL_HRTIM_TIM_EnableFault\n
5721   *         FLTxR      FLT4EN       LL_HRTIM_TIM_EnableFault\n
5722   *         FLTxR      FLT5EN       LL_HRTIM_TIM_EnableFault\n
5723   *         FLTxR      FLT6EN       LL_HRTIM_TIM_EnableFault
5724   * @param  HRTIMx High Resolution Timer instance
5725   * @param  Timer This parameter can be one of the following values:
5726   *         @arg @ref LL_HRTIM_TIMER_A
5727   *         @arg @ref LL_HRTIM_TIMER_B
5728   *         @arg @ref LL_HRTIM_TIMER_C
5729   *         @arg @ref LL_HRTIM_TIMER_D
5730   *         @arg @ref LL_HRTIM_TIMER_E
5731   *         @arg @ref LL_HRTIM_TIMER_F
5732   * @param  Faults This parameter can be a combination of the following values:
5733   *         @arg @ref LL_HRTIM_FAULT_1
5734   *         @arg @ref LL_HRTIM_FAULT_2
5735   *         @arg @ref LL_HRTIM_FAULT_3
5736   *         @arg @ref LL_HRTIM_FAULT_4
5737   *         @arg @ref LL_HRTIM_FAULT_5
5738   *         @arg @ref LL_HRTIM_FAULT_6
5739   * @retval None
5740   */
LL_HRTIM_TIM_EnableFault(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Faults)5741 __STATIC_INLINE void LL_HRTIM_TIM_EnableFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Faults)
5742 {
5743   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5744   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
5745                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5746   SET_BIT(*pReg, Faults);
5747 }
5748 
5749 /**
5750   * @brief  Disable the fault channel(s) for a given timer.
5751   * @rmtoll FLTxR      FLT1EN       LL_HRTIM_TIM_DisableFault\n
5752   *         FLTxR      FLT2EN       LL_HRTIM_TIM_DisableFault\n
5753   *         FLTxR      FLT3EN       LL_HRTIM_TIM_DisableFault\n
5754   *         FLTxR      FLT4EN       LL_HRTIM_TIM_DisableFault\n
5755   *         FLTxR      FLT5EN       LL_HRTIM_TIM_DisableFault\n
5756   *         FLTxR      FLT6EN       LL_HRTIM_TIM_DisableFault
5757   * @param  HRTIMx High Resolution Timer instance
5758   * @param  Timer This parameter can be one of the following values:
5759   *         @arg @ref LL_HRTIM_TIMER_A
5760   *         @arg @ref LL_HRTIM_TIMER_B
5761   *         @arg @ref LL_HRTIM_TIMER_C
5762   *         @arg @ref LL_HRTIM_TIMER_D
5763   *         @arg @ref LL_HRTIM_TIMER_E
5764   *         @arg @ref LL_HRTIM_TIMER_F
5765   * @param  Faults This parameter can be a combination of the following values:
5766   *         @arg @ref LL_HRTIM_FAULT_1
5767   *         @arg @ref LL_HRTIM_FAULT_2
5768   *         @arg @ref LL_HRTIM_FAULT_3
5769   *         @arg @ref LL_HRTIM_FAULT_4
5770   *         @arg @ref LL_HRTIM_FAULT_5
5771   *         @arg @ref LL_HRTIM_FAULT_6
5772   * @retval None
5773   */
LL_HRTIM_TIM_DisableFault(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Faults)5774 __STATIC_INLINE void LL_HRTIM_TIM_DisableFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Faults)
5775 {
5776   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5777   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
5778                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5779   CLEAR_BIT(*pReg, Faults);
5780 }
5781 
5782 /**
5783   * @brief  Indicate whether the fault channel is enabled for a given timer.
5784   * @rmtoll FLTxR      FLT1EN       LL_HRTIM_TIM_IsEnabledFault\n
5785   *         FLTxR      FLT2EN       LL_HRTIM_TIM_IsEnabledFault\n
5786   *         FLTxR      FLT3EN       LL_HRTIM_TIM_IsEnabledFault\n
5787   *         FLTxR      FLT4EN       LL_HRTIM_TIM_IsEnabledFault\n
5788   *         FLTxR      FLT5EN       LL_HRTIM_TIM_IsEnabledFault\n
5789   *         FLTxR      FLT6EN       LL_HRTIM_TIM_IsEnabledFault
5790   * @param  HRTIMx High Resolution Timer instance
5791   * @param  Timer This parameter can be one of the following values:
5792   *         @arg @ref LL_HRTIM_TIMER_A
5793   *         @arg @ref LL_HRTIM_TIMER_B
5794   *         @arg @ref LL_HRTIM_TIMER_C
5795   *         @arg @ref LL_HRTIM_TIMER_D
5796   *         @arg @ref LL_HRTIM_TIMER_E
5797   *         @arg @ref LL_HRTIM_TIMER_F
5798   * @param  Fault This parameter can be one of the following values:
5799   *         @arg @ref LL_HRTIM_FAULT_1
5800   *         @arg @ref LL_HRTIM_FAULT_2
5801   *         @arg @ref LL_HRTIM_FAULT_3
5802   *         @arg @ref LL_HRTIM_FAULT_4
5803   *         @arg @ref LL_HRTIM_FAULT_5
5804   *         @arg @ref LL_HRTIM_FAULT_6
5805   * @retval State of FLTxEN bit in HRTIM_FLTxR register (1 or 0).
5806   */
LL_HRTIM_TIM_IsEnabledFault(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Fault)5807 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledFault(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Fault)
5808 {
5809   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5810   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
5811                                                            REG_OFFSET_TAB_TIMER[iTimer]));
5812 
5813   return ((READ_BIT(*pReg, Fault) == (Fault)) ? 1UL : 0UL);
5814 }
5815 
5816 /**
5817   * @brief  Lock the fault conditioning set-up for a given timer.
5818   * @rmtoll FLTxR      FLTLCK       LL_HRTIM_TIM_LockFault
5819   * @note Timer fault-related set-up is frozen until the next HRTIM or system reset
5820   * @param  HRTIMx High Resolution Timer instance
5821   * @param  Timer This parameter can be one of the following values:
5822   *         @arg @ref LL_HRTIM_TIMER_A
5823   *         @arg @ref LL_HRTIM_TIMER_B
5824   *         @arg @ref LL_HRTIM_TIMER_C
5825   *         @arg @ref LL_HRTIM_TIMER_D
5826   *         @arg @ref LL_HRTIM_TIMER_E
5827   *         @arg @ref LL_HRTIM_TIMER_F
5828   * @retval None
5829   */
LL_HRTIM_TIM_LockFault(HRTIM_TypeDef * HRTIMx,uint32_t Timer)5830 __STATIC_INLINE void LL_HRTIM_TIM_LockFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5831 {
5832   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5833   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
5834                                                      REG_OFFSET_TAB_TIMER[iTimer]));
5835   SET_BIT(*pReg, HRTIM_FLTR_FLTLCK);
5836 }
5837 
5838 /**
5839   * @brief  Define how the timer behaves during a burst mode operation.
5840   * @rmtoll BMCR      MTBM       LL_HRTIM_TIM_SetBurstModeOption\n
5841   *         BMCR      TABM       LL_HRTIM_TIM_SetBurstModeOption\n
5842   *         BMCR      TBBM       LL_HRTIM_TIM_SetBurstModeOption\n
5843   *         BMCR      TCBM       LL_HRTIM_TIM_SetBurstModeOption\n
5844   *         BMCR      TDBM       LL_HRTIM_TIM_SetBurstModeOption\n
5845   *         BMCR      TEBM       LL_HRTIM_TIM_SetBurstModeOption\n
5846   *         BMCR      TFBM       LL_HRTIM_TIM_SetBurstModeOption
5847   * @note This function must not be called when the burst mode is enabled
5848   * @param  HRTIMx High Resolution Timer instance
5849   * @param  Timer This parameter can be one of the following values:
5850   *         @arg @ref LL_HRTIM_TIMER_MASTER
5851   *         @arg @ref LL_HRTIM_TIMER_A
5852   *         @arg @ref LL_HRTIM_TIMER_B
5853   *         @arg @ref LL_HRTIM_TIMER_C
5854   *         @arg @ref LL_HRTIM_TIMER_D
5855   *         @arg @ref LL_HRTIM_TIMER_E
5856   *         @arg @ref LL_HRTIM_TIMER_F
5857   * @param  BurtsModeOption This parameter can be one of the following values:
5858   *         @arg @ref LL_HRTIM_BURSTMODE_MAINTAINCLOCK
5859   *         @arg @ref LL_HRTIM_BURSTMODE_RESETCOUNTER
5860   * @retval None
5861   */
LL_HRTIM_TIM_SetBurstModeOption(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t BurtsModeOption)5862 __STATIC_INLINE void LL_HRTIM_TIM_SetBurstModeOption(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t BurtsModeOption)
5863 {
5864   uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos) & 0x1FU);
5865   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, Timer, BurtsModeOption << iTimer);
5866 }
5867 
5868 /**
5869   * @brief  Retrieve how the timer behaves during a burst mode operation.
5870   * @rmtoll BMCR      MCR        LL_HRTIM_TIM_GetBurstModeOption\n
5871   *         BMCR      TABM       LL_HRTIM_TIM_GetBurstModeOption\n
5872   *         BMCR      TBBM       LL_HRTIM_TIM_GetBurstModeOption\n
5873   *         BMCR      TCBM       LL_HRTIM_TIM_GetBurstModeOption\n
5874   *         BMCR      TDBM       LL_HRTIM_TIM_GetBurstModeOption\n
5875   *         BMCR      TEBM       LL_HRTIM_TIM_GetBurstModeOption\n
5876   *         BMCR      TFBM       LL_HRTIM_TIM_GetBurstModeOption
5877   * @param  HRTIMx High Resolution Timer instance
5878   * @param  Timer This parameter can be one of the following values:
5879   *         @arg @ref LL_HRTIM_TIMER_MASTER
5880   *         @arg @ref LL_HRTIM_TIMER_A
5881   *         @arg @ref LL_HRTIM_TIMER_B
5882   *         @arg @ref LL_HRTIM_TIMER_C
5883   *         @arg @ref LL_HRTIM_TIMER_D
5884   *         @arg @ref LL_HRTIM_TIMER_E
5885   *         @arg @ref LL_HRTIM_TIMER_F
5886   * @retval BurtsMode This parameter can be one of the following values:
5887   *         @arg @ref LL_HRTIM_BURSTMODE_MAINTAINCLOCK
5888   *         @arg @ref LL_HRTIM_BURSTMODE_RESETCOUNTER
5889   */
LL_HRTIM_TIM_GetBurstModeOption(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)5890 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetBurstModeOption(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5891 {
5892   uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos) & 0x1FU);
5893   return (READ_BIT(HRTIMx->sCommonRegs.BMCR, Timer) >> iTimer);
5894 }
5895 
5896 /**
5897   * @brief  Program which registers are to be written by Burst DMA transfers.
5898   * @rmtoll BDMUPDR      MTBM        LL_HRTIM_TIM_ConfigBurstDMA\n
5899   *         BDMUPDR      MICR        LL_HRTIM_TIM_ConfigBurstDMA\n
5900   *         BDMUPDR      MDIER       LL_HRTIM_TIM_ConfigBurstDMA\n
5901   *         BDMUPDR      MCNT        LL_HRTIM_TIM_ConfigBurstDMA\n
5902   *         BDMUPDR      MPER        LL_HRTIM_TIM_ConfigBurstDMA\n
5903   *         BDMUPDR      MREP        LL_HRTIM_TIM_ConfigBurstDMA\n
5904   *         BDMUPDR      MCMP1       LL_HRTIM_TIM_ConfigBurstDMA\n
5905   *         BDMUPDR      MCMP2       LL_HRTIM_TIM_ConfigBurstDMA\n
5906   *         BDMUPDR      MCMP3       LL_HRTIM_TIM_ConfigBurstDMA\n
5907   *         BDMUPDR      MCMP4       LL_HRTIM_TIM_ConfigBurstDMA\n
5908   *         BDTxUPDR     TIMxCR      LL_HRTIM_TIM_ConfigBurstDMA\n
5909   *         BDTxUPDR     TIMxICR     LL_HRTIM_TIM_ConfigBurstDMA\n
5910   *         BDTxUPDR     TIMxDIER    LL_HRTIM_TIM_ConfigBurstDMA\n
5911   *         BDTxUPDR     TIMxCNT     LL_HRTIM_TIM_ConfigBurstDMA\n
5912   *         BDTxUPDR     TIMxPER     LL_HRTIM_TIM_ConfigBurstDMA\n
5913   *         BDTxUPDR     TIMxREP     LL_HRTIM_TIM_ConfigBurstDMA\n
5914   *         BDTxUPDR     TIMxCMP1    LL_HRTIM_TIM_ConfigBurstDMA\n
5915   *         BDTxUPDR     TIMxCMP2    LL_HRTIM_TIM_ConfigBurstDMA\n
5916   *         BDTxUPDR     TIMxCMP3    LL_HRTIM_TIM_ConfigBurstDMA\n
5917   *         BDTxUPDR     TIMxCMP4    LL_HRTIM_TIM_ConfigBurstDMA\n
5918   *         BDTxUPDR     TIMxDTR     LL_HRTIM_TIM_ConfigBurstDMA\n
5919   *         BDTxUPDR     TIMxSET1R   LL_HRTIM_TIM_ConfigBurstDMA\n
5920   *         BDTxUPDR     TIMxRST1R   LL_HRTIM_TIM_ConfigBurstDMA\n
5921   *         BDTxUPDR     TIMxSET2R   LL_HRTIM_TIM_ConfigBurstDMA\n
5922   *         BDTxUPDR     TIMxRST2R   LL_HRTIM_TIM_ConfigBurstDMA\n
5923   *         BDTxUPDR     TIMxEEFR1   LL_HRTIM_TIM_ConfigBurstDMA\n
5924   *         BDTxUPDR     TIMxEEFR2   LL_HRTIM_TIM_ConfigBurstDMA\n
5925   *         BDTxUPDR     TIMxRSTR    LL_HRTIM_TIM_ConfigBurstDMA\n
5926   *         BDTxUPDR     TIMxOUTR    LL_HRTIM_TIM_ConfigBurstDMA\n
5927   *         BDTxUPDR     TIMxLTCH    LL_HRTIM_TIM_ConfigBurstDMA
5928   * @param  HRTIMx High Resolution Timer instance
5929   * @param  Timer This parameter can be one of the following values:
5930   *         @arg @ref LL_HRTIM_TIMER_MASTER
5931   *         @arg @ref LL_HRTIM_TIMER_A
5932   *         @arg @ref LL_HRTIM_TIMER_B
5933   *         @arg @ref LL_HRTIM_TIMER_C
5934   *         @arg @ref LL_HRTIM_TIMER_D
5935   *         @arg @ref LL_HRTIM_TIMER_E
5936   *         @arg @ref LL_HRTIM_TIMER_F
5937   * @param  Registers Registers to be updated by the DMA request
5938   *
5939   *         For Master timer this parameter can be can be a combination of the following values:
5940   *         @arg @ref LL_HRTIM_BURSTDMA_NONE
5941   *         @arg @ref LL_HRTIM_BURSTDMA_MCR
5942   *         @arg @ref LL_HRTIM_BURSTDMA_MICR
5943   *         @arg @ref LL_HRTIM_BURSTDMA_MDIER
5944   *         @arg @ref LL_HRTIM_BURSTDMA_MCNT
5945   *         @arg @ref LL_HRTIM_BURSTDMA_MPER
5946   *         @arg @ref LL_HRTIM_BURSTDMA_MREP
5947   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP1
5948   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP2
5949   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP3
5950   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP4
5951   *
5952   *         For Timers A..F this parameter can be can be a combination of the following values:
5953   *         @arg @ref LL_HRTIM_BURSTDMA_NONE
5954   *         @arg @ref LL_HRTIM_BURSTDMA_TIMMCR
5955   *         @arg @ref LL_HRTIM_BURSTDMA_TIMICR
5956   *         @arg @ref LL_HRTIM_BURSTDMA_TIMDIER
5957   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCNT
5958   *         @arg @ref LL_HRTIM_BURSTDMA_TIMPER
5959   *         @arg @ref LL_HRTIM_BURSTDMA_TIMREP
5960   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP1
5961   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP2
5962   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP3
5963   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP4
5964   *         @arg @ref LL_HRTIM_BURSTDMA_TIMDTR
5965   *         @arg @ref LL_HRTIM_BURSTDMA_TIMSET1R
5966   *         @arg @ref LL_HRTIM_BURSTDMA_TIMRST1R
5967   *         @arg @ref LL_HRTIM_BURSTDMA_TIMSET2R
5968   *         @arg @ref LL_HRTIM_BURSTDMA_TIMRST2R
5969   *         @arg @ref LL_HRTIM_BURSTDMA_TIMEEFR1
5970   *         @arg @ref LL_HRTIM_BURSTDMA_TIMEEFR2
5971   *         @arg @ref LL_HRTIM_BURSTDMA_TIMRSTR
5972   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCHPR
5973   *         @arg @ref LL_HRTIM_BURSTDMA_TIMOUTR
5974   *         @arg @ref LL_HRTIM_BURSTDMA_TIMFLTR
5975   *         @arg @ref LL_HRTIM_BURSTDMA_CR2
5976   *         @arg @ref LL_HRTIM_BURSTDMA_EEFR3
5977   * @retval None
5978   */
LL_HRTIM_TIM_ConfigBurstDMA(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Registers)5979 __STATIC_INLINE void LL_HRTIM_TIM_ConfigBurstDMA(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Registers)
5980 {
5981   const uint8_t REG_OFFSET_TAB_BDTUPR[] =
5982   {
5983     0x00U,   /* BDMUPR ; offset = 0x000 */
5984     0x04U,   /* BDAUPR ; offset = 0x05C */
5985     0x08U,   /* BDBUPR ; offset = 0x060 */
5986     0x0CU,   /* BDCUPR ; offset = 0x064 */
5987     0x10U,   /* BDDUPR ; offset = 0x068 */
5988     0x14U,   /* BDEUPR ; offset = 0x06C */
5989     0x1CU    /* BDFUPR ; offset = 0x074 */
5990   };
5991 
5992   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
5993   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.BDMUPR) + REG_OFFSET_TAB_BDTUPR[iTimer]));
5994   WRITE_REG(*pReg, Registers);
5995 }
5996 
5997 /**
5998   * @brief  Indicate on which output the signal is currently applied.
5999   * @rmtoll TIMxISR      CPPSTAT        LL_HRTIM_TIM_GetCurrentPushPullStatus
6000   * @note Only significant when the timer operates in push-pull mode.
6001   * @param  HRTIMx High Resolution Timer instance
6002   * @param  Timer This parameter can be one of the following values:
6003   *         @arg @ref LL_HRTIM_TIMER_A
6004   *         @arg @ref LL_HRTIM_TIMER_B
6005   *         @arg @ref LL_HRTIM_TIMER_C
6006   *         @arg @ref LL_HRTIM_TIMER_D
6007   *         @arg @ref LL_HRTIM_TIMER_E
6008   *         @arg @ref LL_HRTIM_TIMER_F
6009   * @retval CPPSTAT This parameter can be one of the following values:
6010   *         @arg @ref LL_HRTIM_CPPSTAT_OUTPUT1
6011   *         @arg @ref LL_HRTIM_CPPSTAT_OUTPUT2
6012   */
LL_HRTIM_TIM_GetCurrentPushPullStatus(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6013 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCurrentPushPullStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6014 {
6015   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
6016   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
6017                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6018   return (READ_BIT(*pReg, HRTIM_TIMISR_CPPSTAT));
6019 }
6020 
6021 /**
6022   * @brief  Indicate on which output the signal was applied, in push-pull mode, balanced fault mode or delayed idle mode, when the protection was triggered.
6023   * @rmtoll TIMxISR      IPPSTAT        LL_HRTIM_TIM_GetIdlePushPullStatus
6024   * @param  HRTIMx High Resolution Timer instance
6025   * @param  Timer This parameter can be one of the following values:
6026   *         @arg @ref LL_HRTIM_TIMER_A
6027   *         @arg @ref LL_HRTIM_TIMER_B
6028   *         @arg @ref LL_HRTIM_TIMER_C
6029   *         @arg @ref LL_HRTIM_TIMER_D
6030   *         @arg @ref LL_HRTIM_TIMER_E
6031   *         @arg @ref LL_HRTIM_TIMER_F
6032   * @retval IPPSTAT This parameter can be one of the following values:
6033   *         @arg @ref LL_HRTIM_IPPSTAT_OUTPUT1
6034   *         @arg @ref LL_HRTIM_IPPSTAT_OUTPUT2
6035   */
LL_HRTIM_TIM_GetIdlePushPullStatus(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6036 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetIdlePushPullStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6037 {
6038   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
6039   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
6040                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6041   return (READ_BIT(*pReg, HRTIM_TIMISR_IPPSTAT));
6042 }
6043 
6044 /**
6045   * @brief  Set the event filter for a given timer.
6046   * @rmtoll EEFxR1      EE1LTCH        LL_HRTIM_TIM_SetEventFilter\n
6047   *         EEFxR1      EE2LTCH        LL_HRTIM_TIM_SetEventFilter\n
6048   *         EEFxR1      EE3LTCH        LL_HRTIM_TIM_SetEventFilter\n
6049   *         EEFxR1      EE4LTCH        LL_HRTIM_TIM_SetEventFilter\n
6050   *         EEFxR1      EE5LTCH        LL_HRTIM_TIM_SetEventFilter\n
6051   *         EEFxR2      EE6LTCH        LL_HRTIM_TIM_SetEventFilter\n
6052   *         EEFxR2      EE7LTCH        LL_HRTIM_TIM_SetEventFilter\n
6053   *         EEFxR2      EE8LTCH        LL_HRTIM_TIM_SetEventFilter\n
6054   *         EEFxR2      EE9LTCH        LL_HRTIM_TIM_SetEventFilter\n
6055   *         EEFxR2      EE10LTCH       LL_HRTIM_TIM_SetEventFilter
6056   * @note This function must not be called when the timer counter is enabled.
6057   * @param  HRTIMx High Resolution Timer instance
6058   * @param  Timer This parameter can be one of the following values:
6059   *         @arg @ref LL_HRTIM_TIMER_A
6060   *         @arg @ref LL_HRTIM_TIMER_B
6061   *         @arg @ref LL_HRTIM_TIMER_C
6062   *         @arg @ref LL_HRTIM_TIMER_D
6063   *         @arg @ref LL_HRTIM_TIMER_E
6064   *         @arg @ref LL_HRTIM_TIMER_F
6065   * @param  Event This parameter can be one of the following values:
6066   *         @arg @ref LL_HRTIM_EVENT_1
6067   *         @arg @ref LL_HRTIM_EVENT_2
6068   *         @arg @ref LL_HRTIM_EVENT_3
6069   *         @arg @ref LL_HRTIM_EVENT_4
6070   *         @arg @ref LL_HRTIM_EVENT_5
6071   *         @arg @ref LL_HRTIM_EVENT_6
6072   *         @arg @ref LL_HRTIM_EVENT_7
6073   *         @arg @ref LL_HRTIM_EVENT_8
6074   *         @arg @ref LL_HRTIM_EVENT_9
6075   *         @arg @ref LL_HRTIM_EVENT_10
6076   * @param  Filter This parameter can be one of the following values:
6077   *         @arg @ref LL_HRTIM_EEFLTR_NONE
6078   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP1
6079   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP2
6080   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP3
6081   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP4
6082   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF1_TIMBCMP1
6083   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF2_TIMBCMP4
6084   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF3_TIMBOUT2
6085   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF4_TIMCCMP1
6086   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF5_TIMCCMP4
6087   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF6_TIMFCMP1
6088   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF7_TIMDCMP1
6089   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF8_TIMECMP2
6090   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF1_TIMACMP1
6091   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF2_TIMACMP4
6092   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF3_TIMAOUT2
6093   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF4_TIMCCMP1
6094   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF5_TIMCCMP2
6095   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF6_TIMFCMP2
6096   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF7_TIMDCMP2
6097   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF8_TIMECMP1
6098   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF1_TIMACMP2
6099   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF2_TIMBCMP1
6100   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF3_TIMBCMP4
6101   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF4_TIMFCMP1
6102   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF5_TIMDCMP1
6103   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF6_TIMDCMP4
6104   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF7_TIMDOUT2
6105   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF8_TIMECMP4
6106   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF1_TIMACMP1
6107   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF2_TIMBCMP2
6108   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF3_TIMCCMP1
6109   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF4_TIMCCMP2
6110   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF5_TIMCOUT2
6111   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF6_TIMECMP1
6112   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF7_TIMECMP4
6113   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF8_TIMFCMP4
6114   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF1_TIMACMP2
6115   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF2_TIMBCMP1
6116   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF3_TIMCCMP1
6117   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF4_TIMFCMP4
6118   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF5_TIMFOUT2
6119   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF6_TIMDCMP1
6120   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF7_TIMDCMP4
6121   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF8_TIMDOUT2
6122   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF1_TIMACMP4
6123   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF2_TIMBCMP2
6124   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF3_TIMCCMP4
6125   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF4_TIMDCMP2
6126   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF5_TIMDCMP4
6127   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF6_TIMECMP1
6128   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF7_TIMECMP4
6129   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF8_TIMEOUT2
6130   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP2
6131   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP3
6132   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGTIM
6133 
6134   * @retval None
6135   */
LL_HRTIM_TIM_SetEventFilter(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Event,uint32_t Filter)6136 __STATIC_INLINE void LL_HRTIM_TIM_SetEventFilter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event, uint32_t Filter)
6137 {
6138   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6139   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6140   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
6141                                                      REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
6142   MODIFY_REG(*pReg, (HRTIM_EEFR1_EE1FLTR << REG_SHIFT_TAB_EExSRC[iEvent]), (Filter << REG_SHIFT_TAB_EExSRC[iEvent]));
6143 }
6144 
6145 /**
6146   * @brief  Get actual event filter settings for a given timer.
6147   * @rmtoll EEFxR1      EE1FLTR        LL_HRTIM_TIM_GetEventFilter\n
6148   *         EEFxR1      EE2FLTR        LL_HRTIM_TIM_GetEventFilter\n
6149   *         EEFxR1      EE3FLTR        LL_HRTIM_TIM_GetEventFilter\n
6150   *         EEFxR1      EE4FLTR        LL_HRTIM_TIM_GetEventFilter\n
6151   *         EEFxR1      EE5FLTR        LL_HRTIM_TIM_GetEventFilter\n
6152   *         EEFxR2      EE6FLTR        LL_HRTIM_TIM_GetEventFilter\n
6153   *         EEFxR2      EE7FLTR        LL_HRTIM_TIM_GetEventFilter\n
6154   *         EEFxR2      EE8FLTR        LL_HRTIM_TIM_GetEventFilter\n
6155   *         EEFxR2      EE9FLTR        LL_HRTIM_TIM_GetEventFilter\n
6156   *         EEFxR2      EE10FLTR       LL_HRTIM_TIM_GetEventFilter
6157   * @param  HRTIMx High Resolution Timer instance
6158   * @param  Timer This parameter can be one of the following values:
6159   *         @arg @ref LL_HRTIM_TIMER_A
6160   *         @arg @ref LL_HRTIM_TIMER_B
6161   *         @arg @ref LL_HRTIM_TIMER_C
6162   *         @arg @ref LL_HRTIM_TIMER_D
6163   *         @arg @ref LL_HRTIM_TIMER_E
6164   *         @arg @ref LL_HRTIM_TIMER_F
6165   * @param  Event This parameter can be one of the following values:
6166   *         @arg @ref LL_HRTIM_EVENT_1
6167   *         @arg @ref LL_HRTIM_EVENT_2
6168   *         @arg @ref LL_HRTIM_EVENT_3
6169   *         @arg @ref LL_HRTIM_EVENT_4
6170   *         @arg @ref LL_HRTIM_EVENT_5
6171   *         @arg @ref LL_HRTIM_EVENT_6
6172   *         @arg @ref LL_HRTIM_EVENT_7
6173   *         @arg @ref LL_HRTIM_EVENT_8
6174   *         @arg @ref LL_HRTIM_EVENT_9
6175   *         @arg @ref LL_HRTIM_EVENT_10
6176   * @retval Filter This parameter can be one of the following values:
6177   *         @arg @ref LL_HRTIM_EEFLTR_NONE
6178   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP1
6179   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP2
6180   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP3
6181   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP4
6182   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF1_TIMBCMP1
6183   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF2_TIMBCMP4
6184   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF3_TIMBOUT2
6185   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF4_TIMCCMP1
6186   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF5_TIMCCMP4
6187   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF6_TIMFCMP1
6188   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF7_TIMDCMP1
6189   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMAEEF8_TIMECMP2
6190   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF1_TIMACMP1
6191   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF2_TIMACMP4
6192   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF3_TIMAOUT2
6193   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF4_TIMCCMP1
6194   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF5_TIMCCMP2
6195   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF6_TIMFCMP2
6196   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF7_TIMDCMP2
6197   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMBEEF8_TIMECMP1
6198   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF1_TIMACMP2
6199   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF2_TIMBCMP1
6200   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF3_TIMBCMP4
6201   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF4_TIMFCMP1
6202   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF5_TIMDCMP1
6203   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF6_TIMDCMP4
6204   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF7_TIMDOUT2
6205   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMCEEF8_TIMECMP4
6206   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF1_TIMACMP1
6207   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF2_TIMBCMP2
6208   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF3_TIMCCMP1
6209   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF4_TIMCCMP2
6210   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF5_TIMCOUT2
6211   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF6_TIMECMP1
6212   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF7_TIMECMP4
6213   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMDEEF8_TIMFCMP4
6214   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF1_TIMACMP2
6215   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF2_TIMBCMP1
6216   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF3_TIMCCMP1
6217   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF4_TIMFCMP4
6218   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF5_TIMFOUT2
6219   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF6_TIMDCMP1
6220   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF7_TIMDCMP4
6221   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMEEEF8_TIMDOUT2
6222   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF1_TIMACMP4
6223   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF2_TIMBCMP2
6224   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF3_TIMCCMP4
6225   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF4_TIMDCMP2
6226   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF5_TIMDCMP4
6227   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF6_TIMECMP1
6228   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF7_TIMECMP4
6229   *         @arg @ref LL_HRTIM_EEFLTR_BLANKING_TIMFEEF8_TIMEOUT2
6230   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP2
6231   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP3
6232   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGTIM
6233   */
LL_HRTIM_TIM_GetEventFilter(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Event)6234 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventFilter(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event)
6235 {
6236   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6237   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6238   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
6239                                                            REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
6240   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR1_EE1FLTR) << (REG_SHIFT_TAB_EExSRC[iEvent])) >> (REG_SHIFT_TAB_EExSRC[iEvent]));
6241 }
6242 
6243 /**
6244   * @brief  Enable or disable event latch mechanism for a given timer.
6245   * @rmtoll EEFxR1      EE1LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6246   *         EEFxR1      EE2LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6247   *         EEFxR1      EE3LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6248   *         EEFxR1      EE4LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6249   *         EEFxR1      EE5LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6250   *         EEFxR2      EE6LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6251   *         EEFxR2      EE7LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6252   *         EEFxR2      EE8LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6253   *         EEFxR2      EE9LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
6254   *         EEFxR2      EE10LTCH       LL_HRTIM_TIM_SetEventLatchStatus
6255   * @note This function must not be called when the timer counter is enabled.
6256   * @param  HRTIMx High Resolution Timer instance
6257   * @param  Timer This parameter can be one of the following values:
6258   *         @arg @ref LL_HRTIM_TIMER_A
6259   *         @arg @ref LL_HRTIM_TIMER_B
6260   *         @arg @ref LL_HRTIM_TIMER_C
6261   *         @arg @ref LL_HRTIM_TIMER_D
6262   *         @arg @ref LL_HRTIM_TIMER_E
6263   *         @arg @ref LL_HRTIM_TIMER_F
6264   * @param  Event This parameter can be one of the following values:
6265   *         @arg @ref LL_HRTIM_EVENT_1
6266   *         @arg @ref LL_HRTIM_EVENT_2
6267   *         @arg @ref LL_HRTIM_EVENT_3
6268   *         @arg @ref LL_HRTIM_EVENT_4
6269   *         @arg @ref LL_HRTIM_EVENT_5
6270   *         @arg @ref LL_HRTIM_EVENT_6
6271   *         @arg @ref LL_HRTIM_EVENT_7
6272   *         @arg @ref LL_HRTIM_EVENT_8
6273   *         @arg @ref LL_HRTIM_EVENT_9
6274   *         @arg @ref LL_HRTIM_EVENT_10
6275   * @param  LatchStatus This parameter can be one of the following values:
6276   *         @arg @ref LL_HRTIM_EELATCH_DISABLED
6277   *         @arg @ref LL_HRTIM_EELATCH_ENABLED
6278   * @retval None
6279   */
LL_HRTIM_TIM_SetEventLatchStatus(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Event,uint32_t LatchStatus)6280 __STATIC_INLINE void LL_HRTIM_TIM_SetEventLatchStatus(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event,
6281                                                       uint32_t LatchStatus)
6282 {
6283   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6284   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6285   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
6286                                                      REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
6287   MODIFY_REG(*pReg, (HRTIM_EEFR1_EE1LTCH << REG_SHIFT_TAB_EExSRC[iEvent]), (LatchStatus << REG_SHIFT_TAB_EExSRC[iEvent]));
6288 }
6289 
6290 /**
6291   * @brief  Get actual event latch status for a given timer.
6292   * @rmtoll EEFxR1      EE1LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6293   *         EEFxR1      EE2LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6294   *         EEFxR1      EE3LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6295   *         EEFxR1      EE4LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6296   *         EEFxR1      EE5LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6297   *         EEFxR2      EE6LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6298   *         EEFxR2      EE7LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6299   *         EEFxR2      EE8LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6300   *         EEFxR2      EE9LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
6301   *         EEFxR2      EE10LTCH       LL_HRTIM_TIM_GetEventLatchStatus
6302   * @param  HRTIMx High Resolution Timer instance
6303   * @param  Timer This parameter can be one of the following values:
6304   *         @arg @ref LL_HRTIM_TIMER_A
6305   *         @arg @ref LL_HRTIM_TIMER_B
6306   *         @arg @ref LL_HRTIM_TIMER_C
6307   *         @arg @ref LL_HRTIM_TIMER_D
6308   *         @arg @ref LL_HRTIM_TIMER_E
6309   *         @arg @ref LL_HRTIM_TIMER_F
6310   * @param  Event This parameter can be one of the following values:
6311   *         @arg @ref LL_HRTIM_EVENT_1
6312   *         @arg @ref LL_HRTIM_EVENT_2
6313   *         @arg @ref LL_HRTIM_EVENT_3
6314   *         @arg @ref LL_HRTIM_EVENT_4
6315   *         @arg @ref LL_HRTIM_EVENT_5
6316   *         @arg @ref LL_HRTIM_EVENT_6
6317   *         @arg @ref LL_HRTIM_EVENT_7
6318   *         @arg @ref LL_HRTIM_EVENT_8
6319   *         @arg @ref LL_HRTIM_EVENT_9
6320   *         @arg @ref LL_HRTIM_EVENT_10
6321   * @retval LatchStatus This parameter can be one of the following values:
6322   *         @arg @ref LL_HRTIM_EELATCH_DISABLED
6323   *         @arg @ref LL_HRTIM_EELATCH_ENABLED
6324   */
LL_HRTIM_TIM_GetEventLatchStatus(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Event)6325 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventLatchStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event)
6326 {
6327   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6328   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6329   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
6330                                                            REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
6331   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR1_EE1LTCH) << REG_SHIFT_TAB_EExSRC[iEvent]) >> (REG_SHIFT_TAB_EExSRC[iEvent]));
6332 }
6333 
6334 /**
6335   * @brief  Select the Trigger-Half operating mode for a given timer.
6336   * @note   This bitfield defines whether the compare 2 register
6337   * @note   is behaving in standard mode (compare match issued as soon as counter equal compare)
6338   * @note   or in triggered-half mode
6339   * @rmtoll TIMxCR2    TRGHLF      LL_HRTIM_TIM_SetTriggeredHalfMode
6340   * @param  HRTIMx High Resolution Timer instance
6341   * @param  Timer This parameter can be one of the following values:
6342   *         @arg @ref LL_HRTIM_TIMER_A
6343   *         @arg @ref LL_HRTIM_TIMER_B
6344   *         @arg @ref LL_HRTIM_TIMER_C
6345   *         @arg @ref LL_HRTIM_TIMER_D
6346   *         @arg @ref LL_HRTIM_TIMER_E
6347   *         @arg @ref LL_HRTIM_TIMER_F
6348   * @param  Mode This parameter can be one of the following values:
6349   *         @arg @ref LL_HRTIM_TRIGHALF_ENABLED
6350   *         @arg @ref LL_HRTIM_TRIGHALF_DISABLED
6351   * @retval None
6352   */
LL_HRTIM_TIM_SetTriggeredHalfMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6353 __STATIC_INLINE void LL_HRTIM_TIM_SetTriggeredHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6354 {
6355   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6356   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6357                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6358   MODIFY_REG(* pReg, HRTIM_TIMCR2_TRGHLF, Mode);
6359 }
6360 
6361 /**
6362   * @brief  Get the Trigger-Half operating mode for a given timer.
6363   * @note   This bitfield reports whether the compare 2 register
6364   * @note   is behaving in standard mode (compare match issued as soon as counter equal compare)
6365   * @note   or in triggered-half mode
6366   * @rmtoll TIMxCR2    TRGHLF      LL_HRTIM_TIM_GetTriggeredHalfMode
6367   * @param  HRTIMx High Resolution Timer instance
6368   * @param  Timer This parameter can be one of the following values:
6369   *         @arg @ref LL_HRTIM_TIMER_A
6370   *         @arg @ref LL_HRTIM_TIMER_B
6371   *         @arg @ref LL_HRTIM_TIMER_C
6372   *         @arg @ref LL_HRTIM_TIMER_D
6373   *         @arg @ref LL_HRTIM_TIMER_E
6374   *         @arg @ref LL_HRTIM_TIMER_F
6375   * @retval Mode This parameter can be one of the following values:
6376   *         @arg @ref LL_HRTIM_TRIGHALF_ENABLED
6377   *         @arg @ref LL_HRTIM_TRIGHALF_DISABLED
6378   */
LL_HRTIM_TIM_GetTriggeredHalfMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6379 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetTriggeredHalfMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6380 {
6381   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6382   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6383                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6384   return (READ_BIT(* pReg, HRTIM_TIMCR2_TRGHLF));
6385 }
6386 
6387 /**
6388   * @brief  Select the compare 1 operating mode.
6389   * @note   This bit defines the compare 1 operating mode:
6390   * @note   0: the compare 1 event is generated when the counter is equal to the compare value
6391   * @note   1: the compare 1 event is generated when the counter is greater than the compare value
6392   * @rmtoll TIMxCR2    GTCMP1      LL_HRTIM_TIM_SetComp1Mode
6393   * @param  HRTIMx High Resolution Timer instance
6394   * @param  Timer This parameter can be one of the following values:
6395   *         @arg @ref LL_HRTIM_TIMER_A
6396   *         @arg @ref LL_HRTIM_TIMER_B
6397   *         @arg @ref LL_HRTIM_TIMER_C
6398   *         @arg @ref LL_HRTIM_TIMER_D
6399   *         @arg @ref LL_HRTIM_TIMER_E
6400   *         @arg @ref LL_HRTIM_TIMER_F
6401   * @param  Mode This parameter can be one of the following values:
6402   *         @arg @ref LL_HRTIM_GTCMP1_EQUAL
6403   *         @arg @ref LL_HRTIM_GTCMP1_GREATER
6404   * @retval None
6405   */
LL_HRTIM_TIM_SetComp1Mode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6406 __STATIC_INLINE void LL_HRTIM_TIM_SetComp1Mode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6407 {
6408   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6409   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6410                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6411   MODIFY_REG(* pReg, HRTIM_TIMCR2_GTCMP1, Mode);
6412 }
6413 
6414 /**
6415   * @brief  Get the selected compare 1 operating mode.
6416   * @note   This bit reports the compare 1 operating mode:
6417   * @note   0: the compare 1 event is generated when the counter is equal to the compare value
6418   * @note   1: the compare 1 event is generated when the counter is greater than the compare value
6419   * @rmtoll TIMxCR2    GTCMP1      LL_HRTIM_TIM_GetComp1Mode
6420   * @param  HRTIMx High Resolution Timer instance
6421   * @param  Timer This parameter can be one of the following values:
6422   *         @arg @ref LL_HRTIM_TIMER_A
6423   *         @arg @ref LL_HRTIM_TIMER_B
6424   *         @arg @ref LL_HRTIM_TIMER_C
6425   *         @arg @ref LL_HRTIM_TIMER_D
6426   *         @arg @ref LL_HRTIM_TIMER_E
6427   *         @arg @ref LL_HRTIM_TIMER_F
6428   * @retval  Mode This parameter can be one of the following values:
6429   *         @arg @ref LL_HRTIM_GTCMP1_EQUAL
6430   *         @arg @ref LL_HRTIM_GTCMP1_GREATER
6431   */
LL_HRTIM_TIM_GetComp1Mode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6432 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetComp1Mode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6433 {
6434   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6435   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6436                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6437   return (READ_BIT(* pReg, HRTIM_TIMCR2_GTCMP1));
6438 }
6439 
6440 /**
6441   * @brief  Select the compare 3 operating mode.
6442   * @note   This bit defines the compare 3 operating mode:
6443   * @note   0: the compare 3 event is generated when the counter is equal to the compare value
6444   * @note   1: the compare 3 event is generated when the counter is greater than the compare value
6445   * @rmtoll TIMxCR2    GTCMP3      LL_HRTIM_TIM_SetComp3Mode
6446   * @param  HRTIMx High Resolution Timer instance
6447   * @param  Timer This parameter can be one of the following values:
6448   *         @arg @ref LL_HRTIM_TIMER_A
6449   *         @arg @ref LL_HRTIM_TIMER_B
6450   *         @arg @ref LL_HRTIM_TIMER_C
6451   *         @arg @ref LL_HRTIM_TIMER_D
6452   *         @arg @ref LL_HRTIM_TIMER_E
6453   *         @arg @ref LL_HRTIM_TIMER_F
6454   * @param  Mode This parameter can be one of the following values:
6455   *         @arg @ref LL_HRTIM_GTCMP3_EQUAL
6456   *         @arg @ref LL_HRTIM_GTCMP3_GREATER
6457   * @retval None
6458   */
LL_HRTIM_TIM_SetComp3Mode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6459 __STATIC_INLINE void LL_HRTIM_TIM_SetComp3Mode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6460 {
6461   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6462   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6463                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6464   MODIFY_REG(* pReg, HRTIM_TIMCR2_GTCMP3, (Mode));
6465 }
6466 
6467 /**
6468   * @brief  Get the selected compare 3 operating mode.
6469   * @note   This bit reports the compare 3 operating mode:
6470   * @note   0: the compare 3 event is generated when the counter is equal to the compare value
6471   * @note   1: the compare 3 event is generated when the counter is greater than the compare value
6472   * @rmtoll TIMxCR2    GTCMP3      LL_HRTIM_TIM_GetComp1Mode
6473   * @param  HRTIMx High Resolution Timer instance
6474   * @param  Timer This parameter can be one of the following values:
6475   *         @arg @ref LL_HRTIM_TIMER_A
6476   *         @arg @ref LL_HRTIM_TIMER_B
6477   *         @arg @ref LL_HRTIM_TIMER_C
6478   *         @arg @ref LL_HRTIM_TIMER_D
6479   *         @arg @ref LL_HRTIM_TIMER_E
6480   *         @arg @ref LL_HRTIM_TIMER_F
6481   * @retval Mode This parameter can be one of the following values:
6482   *         @arg @ref LL_HRTIM_GTCMP3_EQUAL
6483   *         @arg @ref LL_HRTIM_GTCMP3_GREATER
6484   */
LL_HRTIM_TIM_GetComp3Mode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6485 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetComp3Mode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6486 {
6487   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6488   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].TIMxCR2) +
6489                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6490   return (READ_BIT(* pReg, HRTIM_TIMCR2_GTCMP3));
6491 }
6492 
6493 /**
6494   * @brief  Select the roll-over mode.
6495   * @note Only significant in up-down counting mode (see function @ref LL_HRTIM_TIM_SetCountingMode()).
6496   * @note Only concerns the Roll-over event with the following destinations: Update trigger, IRQ
6497   *      and DMA requests, repetition counter decrement and External Event filtering.
6498   * @rmtoll TIMxCR2    ROM      LL_HRTIM_TIM_SetRollOverMode
6499   * @param  HRTIMx High Resolution Timer instance
6500   * @param  Timer This parameter can be one of the following values:
6501   *         @arg @ref LL_HRTIM_TIMER_A
6502   *         @arg @ref LL_HRTIM_TIMER_B
6503   *         @arg @ref LL_HRTIM_TIMER_C
6504   *         @arg @ref LL_HRTIM_TIMER_D
6505   *         @arg @ref LL_HRTIM_TIMER_E
6506   *         @arg @ref LL_HRTIM_TIMER_F
6507   * @param  Mode This parameter can be one of the following values:
6508   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6509   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6510   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6511   * @retval None
6512   */
LL_HRTIM_TIM_SetRollOverMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6513 __STATIC_INLINE void LL_HRTIM_TIM_SetRollOverMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6514 {
6515   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6516   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6517                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6518   MODIFY_REG(* pReg, HRTIM_TIMCR2_ROM, (Mode << HRTIM_TIMCR2_ROM_Pos));
6519 }
6520 
6521 /**
6522   * @brief  Get selected the roll-over mode.
6523   * @rmtoll TIMxCR2    ROM      LL_HRTIM_TIM_GetRollOverMode
6524   * @param  HRTIMx High Resolution Timer instance
6525   * @param  Timer This parameter can be one of the following values:
6526   *         @arg @ref LL_HRTIM_TIMER_A
6527   *         @arg @ref LL_HRTIM_TIMER_B
6528   *         @arg @ref LL_HRTIM_TIMER_C
6529   *         @arg @ref LL_HRTIM_TIMER_D
6530   *         @arg @ref LL_HRTIM_TIMER_E
6531   *         @arg @ref LL_HRTIM_TIMER_F
6532   * @retval Mode returned value can be one of the following values:
6533   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6534   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6535   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6536   */
LL_HRTIM_TIM_GetRollOverMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6537 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetRollOverMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6538 {
6539   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6540   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6541                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6542   return (READ_BIT(*pReg, HRTIM_TIMCR2_ROM) >> HRTIM_TIMCR2_ROM_Pos);
6543 }
6544 
6545 /**
6546   * @brief  Select Fault and Event roll-over mode.
6547   * @note Only significant in up-down counting mode (see function @ref LL_HRTIM_TIM_SetCountingMode()).
6548   * @note only concerns the Roll-over event used by the Fault and Event counters.
6549   * @rmtoll TIMxCR2    FEROM      LL_HRTIM_TIM_SetFaultEventRollOverMode
6550   * @param  HRTIMx High Resolution Timer instance
6551   * @param  Timer This parameter can be one of the following values:
6552   *         @arg @ref LL_HRTIM_TIMER_A
6553   *         @arg @ref LL_HRTIM_TIMER_B
6554   *         @arg @ref LL_HRTIM_TIMER_C
6555   *         @arg @ref LL_HRTIM_TIMER_D
6556   *         @arg @ref LL_HRTIM_TIMER_E
6557   *         @arg @ref LL_HRTIM_TIMER_F
6558   * @param  Mode This parameter can be one of the following values:
6559   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6560   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6561   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6562   * @retval None
6563   */
LL_HRTIM_TIM_SetFaultEventRollOverMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6564 __STATIC_INLINE void LL_HRTIM_TIM_SetFaultEventRollOverMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6565 {
6566   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6567   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6568                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6569   MODIFY_REG(* pReg, HRTIM_TIMCR2_FEROM, (Mode << HRTIM_TIMCR2_FEROM_Pos));
6570 }
6571 
6572 /**
6573   * @brief  Get selected Fault and Event role-over mode.
6574   * @rmtoll TIMxCR2    FEROM      LL_HRTIM_TIM_GetFaultEventRollOverMode
6575   * @param  HRTIMx High Resolution Timer instance
6576   * @param  Timer This parameter can be one of the following values:
6577   *         @arg @ref LL_HRTIM_TIMER_A
6578   *         @arg @ref LL_HRTIM_TIMER_B
6579   *         @arg @ref LL_HRTIM_TIMER_C
6580   *         @arg @ref LL_HRTIM_TIMER_D
6581   *         @arg @ref LL_HRTIM_TIMER_E
6582   *         @arg @ref LL_HRTIM_TIMER_F
6583   * @retval  Mode returned value can be one of the following values:
6584   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6585   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6586   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6587   */
LL_HRTIM_TIM_GetFaultEventRollOverMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6588 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetFaultEventRollOverMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6589 {
6590   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6591   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6592                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6593   return (READ_BIT(*pReg, HRTIM_TIMCR2_FEROM) >> HRTIM_TIMCR2_FEROM_Pos);
6594 }
6595 
6596 /**
6597   * @brief  Select the Burst mode roll-over mode.
6598   * @note Only significant in up-down counting mode (see function @ref LL_HRTIM_TIM_SetCountingMode()).
6599   * @note Only concerns the Roll-over event used in the Burst mode controller, as clock as as burst mode trigger.
6600   * @rmtoll TIMxCR2    BMROM      LL_HRTIM_TIM_SetBMRollOverMode
6601   * @param  HRTIMx High Resolution Timer instance
6602   * @param  Timer This parameter can be one of the following values:
6603   *         @arg @ref LL_HRTIM_TIMER_A
6604   *         @arg @ref LL_HRTIM_TIMER_B
6605   *         @arg @ref LL_HRTIM_TIMER_C
6606   *         @arg @ref LL_HRTIM_TIMER_D
6607   *         @arg @ref LL_HRTIM_TIMER_E
6608   *         @arg @ref LL_HRTIM_TIMER_F
6609   * @param  Mode This parameter can be one of the following values:
6610   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6611   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6612   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6613   * @retval None
6614   */
LL_HRTIM_TIM_SetBMRollOverMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6615 __STATIC_INLINE void LL_HRTIM_TIM_SetBMRollOverMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6616 {
6617   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6618   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6619                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6620   MODIFY_REG(* pReg, HRTIM_TIMCR2_BMROM, (Mode << HRTIM_TIMCR2_BMROM_Pos));
6621 }
6622 
6623 /**
6624   * @brief  Get selected Burst mode roll-over mode.
6625   * @rmtoll TIMxCR2    ROM      LL_HRTIM_TIM_GetBMRollOverMode
6626   * @param  HRTIMx High Resolution Timer instance
6627   * @param  Timer This parameter can be one of the following values:
6628   *         @arg @ref LL_HRTIM_TIMER_A
6629   *         @arg @ref LL_HRTIM_TIMER_B
6630   *         @arg @ref LL_HRTIM_TIMER_C
6631   *         @arg @ref LL_HRTIM_TIMER_D
6632   *         @arg @ref LL_HRTIM_TIMER_E
6633   *         @arg @ref LL_HRTIM_TIMER_F
6634   * @retval  Mode returned value can be one of the following values:
6635   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6636   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6637   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6638   */
LL_HRTIM_TIM_GetBMRollOverMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6639 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetBMRollOverMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6640 {
6641   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6642   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6643                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6644   return (READ_BIT(*pReg, HRTIM_TIMCR2_BMROM) >> HRTIM_TIMCR2_BMROM_Pos);
6645 }
6646 
6647 /**
6648   * @brief  Select the ADC roll-over mode.
6649   * @note Only significant in up-down counting mode (see function @ref LL_HRTIM_TIM_SetCountingMode()).
6650   * @note Only concerns the Roll-over event used to trigger the ADC.
6651   * @rmtoll TIMxCR2    BMROM      LL_HRTIM_TIM_SetADCRollOverMode
6652   * @param  HRTIMx High Resolution Timer instance
6653   * @param  Timer This parameter can be one of the following values:
6654   *         @arg @ref LL_HRTIM_TIMER_A
6655   *         @arg @ref LL_HRTIM_TIMER_B
6656   *         @arg @ref LL_HRTIM_TIMER_C
6657   *         @arg @ref LL_HRTIM_TIMER_D
6658   *         @arg @ref LL_HRTIM_TIMER_E
6659   *         @arg @ref LL_HRTIM_TIMER_F
6660   * @param  Mode This parameter can be one of the following values:
6661   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6662   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6663   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6664   * @retval None
6665   */
LL_HRTIM_TIM_SetADCRollOverMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6666 __STATIC_INLINE void LL_HRTIM_TIM_SetADCRollOverMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6667 {
6668   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6669   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6670                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6671   MODIFY_REG(* pReg, HRTIM_TIMCR2_ADROM, (Mode << HRTIM_TIMCR2_ADROM_Pos));
6672 }
6673 
6674 /**
6675   * @brief  Get selected ADC roll-over mode.
6676   * @rmtoll TIMxCR2    BMROM      LL_HRTIM_TIM_GetADCRollOverMode
6677   * @param  HRTIMx High Resolution Timer instance
6678   * @param  Timer This parameter can be one of the following values:
6679   *         @arg @ref LL_HRTIM_TIMER_A
6680   *         @arg @ref LL_HRTIM_TIMER_B
6681   *         @arg @ref LL_HRTIM_TIMER_C
6682   *         @arg @ref LL_HRTIM_TIMER_D
6683   *         @arg @ref LL_HRTIM_TIMER_E
6684   *         @arg @ref LL_HRTIM_TIMER_F
6685   * @retval  Mode returned value can be one of the following values:
6686   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6687   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6688   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6689   */
LL_HRTIM_TIM_GetADCRollOverMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6690 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetADCRollOverMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6691 {
6692   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6693   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6694                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6695   return (READ_BIT(*pReg, HRTIM_TIMCR2_ADROM) >> HRTIM_TIMCR2_ADROM_Pos);
6696 }
6697 
6698 /**
6699   * @brief  Select the ADC roll-over mode.
6700   * @note Only significant in up-down counting mode (see function @ref LL_HRTIM_TIM_SetCountingMode()).
6701   * @note Only concerns concerns the Roll-over event which sets and/or resets the outputs,
6702   *       as per HRTIM_SETxyR and HRTIM_RSTxyR settings (see function @ref LL_HRTIM_OUT_SetOutputSetSrc()
6703   *       and function @ref LL_HRTIM_OUT_SetOutputResetSrc() respectively).
6704   * @rmtoll TIMxCR2    OUTROM      LL_HRTIM_TIM_SetOutputRollOverMode
6705   * @param  HRTIMx High Resolution Timer instance
6706   * @param  Timer This parameter can be one of the following values:
6707   *         @arg @ref LL_HRTIM_TIMER_A
6708   *         @arg @ref LL_HRTIM_TIMER_B
6709   *         @arg @ref LL_HRTIM_TIMER_C
6710   *         @arg @ref LL_HRTIM_TIMER_D
6711   *         @arg @ref LL_HRTIM_TIMER_E
6712   *         @arg @ref LL_HRTIM_TIMER_F
6713   * @param  Mode This parameter can be one of the following values:
6714   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6715   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6716   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6717   * @retval None
6718   */
LL_HRTIM_TIM_SetOutputRollOverMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6719 __STATIC_INLINE void LL_HRTIM_TIM_SetOutputRollOverMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6720 {
6721   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6722   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6723                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6724   MODIFY_REG(* pReg, HRTIM_TIMCR2_OUTROM, (Mode << HRTIM_TIMCR2_OUTROM_Pos));
6725 }
6726 
6727 /**
6728   * @brief  Get selected ADC roll-over mode.
6729   * @rmtoll TIMxCR2    OUTROM      LL_HRTIM_TIM_GetOutputRollOverMode
6730   * @param  HRTIMx High Resolution Timer instance
6731   * @param  Timer This parameter can be one of the following values:
6732   *         @arg @ref LL_HRTIM_TIMER_A
6733   *         @arg @ref LL_HRTIM_TIMER_B
6734   *         @arg @ref LL_HRTIM_TIMER_C
6735   *         @arg @ref LL_HRTIM_TIMER_D
6736   *         @arg @ref LL_HRTIM_TIMER_E
6737   *         @arg @ref LL_HRTIM_TIMER_F
6738   * @retval  Mode returned value can be one of the following values:
6739   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_PER
6740   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_RST
6741   *         @arg @ref LL_HRTIM_ROLLOVER_MODE_BOTH
6742   */
LL_HRTIM_TIM_GetOutputRollOverMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6743 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetOutputRollOverMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6744 {
6745   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6746   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6747                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6748   return (READ_BIT(*pReg, HRTIM_TIMCR2_OUTROM) >> HRTIM_TIMCR2_OUTROM_Pos);
6749 }
6750 
6751 /**
6752   * @brief  Select the counting mode.
6753   * @note The up-down counting mode is available for both continuous and single-shot
6754   *       (retriggerable and nonretriggerable) operating modes
6755   *       (see function @ref LL_HRTIM_TIM_SetCounterMode()).
6756   * @note The counter roll-over event is defined differently in-up-down counting mode to
6757   *       support various operating condition.
6758   *       See @ref LL_HRTIM_TIM_SetCounterMode()
6759   * @rmtoll TIMxCR2    UDM      LL_HRTIM_TIM_SetCountingMode
6760   * @param  HRTIMx High Resolution Timer instance
6761   * @param  Timer This parameter can be one of the following values:
6762   *         @arg @ref LL_HRTIM_TIMER_A
6763   *         @arg @ref LL_HRTIM_TIMER_B
6764   *         @arg @ref LL_HRTIM_TIMER_C
6765   *         @arg @ref LL_HRTIM_TIMER_D
6766   *         @arg @ref LL_HRTIM_TIMER_E
6767   *         @arg @ref LL_HRTIM_TIMER_F
6768   * @param  Mode This parameter can be one of the following values:
6769   *         @arg @ref LL_HRTIM_COUNTING_MODE_UP
6770   *         @arg @ref LL_HRTIM_COUNTING_MODE_UP_DOWN
6771   * @retval None
6772   */
LL_HRTIM_TIM_SetCountingMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6773 __STATIC_INLINE void LL_HRTIM_TIM_SetCountingMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6774 {
6775   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6776   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6777                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6778   MODIFY_REG(* pReg, HRTIM_TIMCR2_UDM, Mode);
6779 }
6780 
6781 /**
6782   * @brief  Get selected counting mode.
6783   * @rmtoll TIMxCR2    UDM      LL_HRTIM_TIM_GetCountingMode
6784   * @param  HRTIMx High Resolution Timer instance
6785   * @param  Timer This parameter can be one of the following values:
6786   *         @arg @ref LL_HRTIM_TIMER_A
6787   *         @arg @ref LL_HRTIM_TIMER_B
6788   *         @arg @ref LL_HRTIM_TIMER_C
6789   *         @arg @ref LL_HRTIM_TIMER_D
6790   *         @arg @ref LL_HRTIM_TIMER_E
6791   *         @arg @ref LL_HRTIM_TIMER_F
6792   * @retval  Mode returned value can be one of the following values:
6793   *         @arg @ref LL_HRTIM_COUNTING_MODE_UP
6794   *         @arg @ref LL_HRTIM_COUNTING_MODE_UP_DOWN
6795   * @retval None
6796   */
LL_HRTIM_TIM_GetCountingMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6797 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCountingMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6798 {
6799   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6800   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6801                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6802   return (READ_BIT(*pReg, HRTIM_TIMCR2_UDM));
6803 }
6804 
6805 /**
6806   * @brief  Select Dual Channel DAC Reset trigger.
6807   * @note Significant only when Dual channel DAC trigger is enabled
6808   *       (see function @ref LL_HRTIM_TIM_EnableDualDacTrigger()).
6809   * @rmtoll TIMxCR2    DCDR      LL_HRTIM_TIM_SetDualDacResetTrigger
6810   * @param  HRTIMx High Resolution Timer instance
6811   * @param  Timer This parameter can be one of the following values:
6812   *         @arg @ref LL_HRTIM_TIMER_A
6813   *         @arg @ref LL_HRTIM_TIMER_B
6814   *         @arg @ref LL_HRTIM_TIMER_C
6815   *         @arg @ref LL_HRTIM_TIMER_D
6816   *         @arg @ref LL_HRTIM_TIMER_E
6817   *         @arg @ref LL_HRTIM_TIMER_F
6818   * @param  Mode This parameter can be one of the following values:
6819   *         @arg @ref LL_HRTIM_DCDR_COUNTER
6820   *         @arg @ref LL_HRTIM_DCDR_OUT1SET
6821   * @retval None
6822   */
LL_HRTIM_TIM_SetDualDacResetTrigger(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6823 __STATIC_INLINE void LL_HRTIM_TIM_SetDualDacResetTrigger(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6824 {
6825   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6826   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6827                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6828   MODIFY_REG(* pReg, HRTIM_TIMCR2_DCDR, Mode);
6829 }
6830 
6831 /**
6832   * @brief  Get selected Dual Channel DAC Reset trigger.
6833   * @rmtoll TIMxCR2    DCDR      LL_HRTIM_TIM_GetDualDacResetTrigger
6834   * @param  HRTIMx High Resolution Timer instance
6835   * @param  Timer This parameter can be one of the following values:
6836   *         @arg @ref LL_HRTIM_TIMER_A
6837   *         @arg @ref LL_HRTIM_TIMER_B
6838   *         @arg @ref LL_HRTIM_TIMER_C
6839   *         @arg @ref LL_HRTIM_TIMER_D
6840   *         @arg @ref LL_HRTIM_TIMER_E
6841   *         @arg @ref LL_HRTIM_TIMER_F
6842   * @retval  Trigger returned value can be one of the following values:
6843   *         @arg @ref LL_HRTIM_DCDR_COUNTER
6844   *         @arg @ref LL_HRTIM_DCDR_OUT1SET
6845   */
LL_HRTIM_TIM_GetDualDacResetTrigger(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6846 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDualDacResetTrigger(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6847 {
6848   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6849   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6850                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6851   return (READ_BIT(*pReg, HRTIM_TIMCR2_DCDR));
6852 }
6853 
6854 /**
6855   * @brief  Select Dual Channel DAC Reset trigger.
6856   * @rmtoll TIMxCR2    DCDS      LL_HRTIM_TIM_SetDualDacStepTrigger
6857   * @param  HRTIMx High Resolution Timer instance
6858   * @param  Timer This parameter can be one of the following values:
6859   *         @arg @ref LL_HRTIM_TIMER_A
6860   *         @arg @ref LL_HRTIM_TIMER_B
6861   *         @arg @ref LL_HRTIM_TIMER_C
6862   *         @arg @ref LL_HRTIM_TIMER_D
6863   *         @arg @ref LL_HRTIM_TIMER_E
6864   *         @arg @ref LL_HRTIM_TIMER_F
6865   * @param  Mode This parameter can be one of the following values:
6866   *         @arg @ref LL_HRTIM_DCDS_CMP2
6867   *         @arg @ref LL_HRTIM_DCDS_OUT1RST
6868   * @retval None
6869   */
LL_HRTIM_TIM_SetDualDacStepTrigger(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Mode)6870 __STATIC_INLINE void LL_HRTIM_TIM_SetDualDacStepTrigger(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
6871 {
6872   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6873   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6874                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6875   MODIFY_REG(* pReg, HRTIM_TIMCR2_DCDS, Mode);
6876 }
6877 
6878 /**
6879   * @brief  Get selected Dual Channel DAC Reset trigger.
6880   * @rmtoll TIMxCR2    DCDS      LL_HRTIM_TIM_GetDualDacStepTrigger
6881   * @param  HRTIMx High Resolution Timer instance
6882   * @param  Timer This parameter can be one of the following values:
6883   *         @arg @ref LL_HRTIM_TIMER_A
6884   *         @arg @ref LL_HRTIM_TIMER_B
6885   *         @arg @ref LL_HRTIM_TIMER_C
6886   *         @arg @ref LL_HRTIM_TIMER_D
6887   *         @arg @ref LL_HRTIM_TIMER_E
6888   *         @arg @ref LL_HRTIM_TIMER_F
6889   * @retval  Trigger returned value can be one of the following values:
6890   *         @arg @ref LL_HRTIM_DCDS_CMP2
6891   *         @arg @ref LL_HRTIM_DCDS_OUT1RST
6892   */
LL_HRTIM_TIM_GetDualDacStepTrigger(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6893 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDualDacStepTrigger(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6894 {
6895   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6896   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6897                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6898   return (READ_BIT(*pReg, HRTIM_TIMCR2_DCDS));
6899 }
6900 
6901 /**
6902   * @brief  Enable Dual Channel DAC trigger.
6903   * @note Only significant when balanced Idle mode is enabled (see function @ref LL_HRTIM_TIM_SetDLYPRTMode()).
6904   * @rmtoll TIMxCR2      DCDE      LL_HRTIM_TIM_EnableDualDacTrigger
6905   * @param  HRTIMx High Resolution Timer instance
6906   * @param  Timer This parameter can be one of the following values:
6907   *         @arg @ref LL_HRTIM_TIMER_A
6908   *         @arg @ref LL_HRTIM_TIMER_B
6909   *         @arg @ref LL_HRTIM_TIMER_C
6910   *         @arg @ref LL_HRTIM_TIMER_D
6911   *         @arg @ref LL_HRTIM_TIMER_E
6912   *         @arg @ref LL_HRTIM_TIMER_F
6913   * @retval None
6914   */
LL_HRTIM_TIM_EnableDualDacTrigger(HRTIM_TypeDef * HRTIMx,uint32_t Timer)6915 __STATIC_INLINE void LL_HRTIM_TIM_EnableDualDacTrigger(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6916 {
6917   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6918   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6919                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6920   SET_BIT(* pReg, HRTIM_TIMCR2_DCDE);
6921 }
6922 
6923 /**
6924   * @brief  Disable Dual Channel DAC trigger.
6925   * @rmtoll TIMxCR2      DCDE      LL_HRTIM_TIM_DisableDualDacTrigger
6926   * @param  HRTIMx High Resolution Timer instance
6927   * @param  Timer This parameter can be one of the following values:
6928   *         @arg @ref LL_HRTIM_TIMER_A
6929   *         @arg @ref LL_HRTIM_TIMER_B
6930   *         @arg @ref LL_HRTIM_TIMER_C
6931   *         @arg @ref LL_HRTIM_TIMER_D
6932   *         @arg @ref LL_HRTIM_TIMER_E
6933   *         @arg @ref LL_HRTIM_TIMER_F
6934   * @retval None
6935   */
LL_HRTIM_TIM_DisableDualDacTrigger(HRTIM_TypeDef * HRTIMx,uint32_t Timer)6936 __STATIC_INLINE void LL_HRTIM_TIM_DisableDualDacTrigger(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6937 {
6938   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6939   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6940                                                      REG_OFFSET_TAB_TIMER[iTimer]));
6941   CLEAR_BIT(* pReg, HRTIM_TIMCR2_DCDE);
6942 }
6943 
6944 /**
6945   * @brief  Indicate whether Dual Channel DAC trigger is enabled for a given timer.
6946   * @rmtoll TIMxCR2      DCDE      LL_HRTIM_TIM_IsEnabledDualDacTrigger
6947   * @param  HRTIMx High Resolution Timer instance
6948   * @param  Timer This parameter can be one of the following values:
6949   *         @arg @ref LL_HRTIM_TIMER_A
6950   *         @arg @ref LL_HRTIM_TIMER_B
6951   *         @arg @ref LL_HRTIM_TIMER_C
6952   *         @arg @ref LL_HRTIM_TIMER_D
6953   *         @arg @ref LL_HRTIM_TIMER_E
6954   *         @arg @ref LL_HRTIM_TIMER_F
6955   * @retval State of DCDE bit in HRTIM_TIMxCR2 register (1 or 0).
6956   */
LL_HRTIM_TIM_IsEnabledDualDacTrigger(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)6957 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDualDacTrigger(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
6958 {
6959   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6960   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR2) +
6961                                                            REG_OFFSET_TAB_TIMER[iTimer]));
6962 
6963   return ((READ_BIT(* pReg, HRTIM_TIMCR2_DCDE) == (HRTIM_TIMCR2_DCDE)) ? 1UL : 0UL);
6964 }
6965 
6966 
6967 /**
6968   * @brief  Set the external event counter threshold.
6969   * @note The external event is propagated to the timer only if the number
6970   *       of active edges is greater than the external event counter threshold.
6971   * @rmtoll EEFxR3    EEVBCNT      LL_HRTIM_TIM_SetEventCounterThreshold\n
6972   *         EEFxR3    EEVACNT      LL_HRTIM_TIM_SetEventCounterThreshold
6973   * @param  HRTIMx High Resolution Timer instance
6974   * @param  Timer This parameter can be one of the following values:
6975   *         @arg @ref LL_HRTIM_TIMER_A
6976   *         @arg @ref LL_HRTIM_TIMER_B
6977   *         @arg @ref LL_HRTIM_TIMER_C
6978   *         @arg @ref LL_HRTIM_TIMER_D
6979   *         @arg @ref LL_HRTIM_TIMER_E
6980   *         @arg @ref LL_HRTIM_TIMER_F
6981   * @param  EventCounter This parameter can be one of the following values:
6982   *         @arg @ref LL_HRTIM_EE_COUNTER_A
6983   *         @arg @ref LL_HRTIM_EE_COUNTER_B
6984   * @param  Threshold This parameter can be a number between Min_Data=0 and Max_Data=63
6985   * @retval None
6986   */
LL_HRTIM_TIM_SetEventCounterThreshold(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter,uint32_t Threshold)6987 __STATIC_INLINE void LL_HRTIM_TIM_SetEventCounterThreshold(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t EventCounter,
6988                                                            uint32_t Threshold)
6989 {
6990   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
6991   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
6992 
6993   MODIFY_REG(*pReg, (HRTIM_EEFR3_EEVACNT << EventCounter), Threshold << (HRTIM_EEFR3_EEVACNT_Pos + EventCounter));
6994 }
6995 
6996 /**
6997   * @brief  Get the programmed external event counter threshold.
6998   * @rmtoll EEFxR3    EEVBCNT      LL_HRTIM_TIM_GetEventCounterThreshold\n
6999   *         EEFxR3    EEVACNT      LL_HRTIM_TIM_GetEventCounterThreshold
7000   * @param  HRTIMx High Resolution Timer instance
7001   * @param  Timer This parameter can be one of the following values:
7002   *         @arg @ref LL_HRTIM_TIMER_A
7003   *         @arg @ref LL_HRTIM_TIMER_B
7004   *         @arg @ref LL_HRTIM_TIMER_C
7005   *         @arg @ref LL_HRTIM_TIMER_D
7006   *         @arg @ref LL_HRTIM_TIMER_E
7007   *         @arg @ref LL_HRTIM_TIMER_F
7008   * @param  EventCounter This parameter can be one of the following values:
7009   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7010   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7011   * @retval Threshold Value between Min_Data=0 and Max_Data=63
7012   */
LL_HRTIM_TIM_GetEventCounterThreshold(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7013 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventCounterThreshold(const HRTIM_TypeDef *HRTIMx, uint32_t Timer,
7014                                                                uint32_t EventCounter)
7015 {
7016   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7017   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7018 
7019   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR3_EEVACNT) << EventCounter)) >> ((HRTIM_EEFR3_EEVACNT_Pos + EventCounter)))  ;
7020 }
7021 
7022 /**
7023   * @brief  Select the external event counter source.
7024   * @note External event counting is only valid for edge-sensitive
7025   *       external events (See function LL_HRTIM_EE_Config() and function
7026   *       LL_HRTIM_EE_SetSensitivity()).
7027   * @rmtoll EEFxR3    EEVBSEL      LL_HRTIM_TIM_SetEventCounterSource\n
7028   *         EEFxR3    EEVASEL      LL_HRTIM_TIM_SetEventCounterSource
7029   * @param  HRTIMx High Resolution Timer instance
7030   * @param  Timer This parameter can be one of the following values:
7031   *         @arg @ref LL_HRTIM_TIMER_A
7032   *         @arg @ref LL_HRTIM_TIMER_B
7033   *         @arg @ref LL_HRTIM_TIMER_C
7034   *         @arg @ref LL_HRTIM_TIMER_D
7035   *         @arg @ref LL_HRTIM_TIMER_E
7036   *         @arg @ref LL_HRTIM_TIMER_F
7037   * @param  EventCounter This parameter can be one of the following values:
7038   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7039   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7040   * @param  Event This parameter can be one of the following values:
7041   *         @arg @ref LL_HRTIM_EVENT_1
7042   *         @arg @ref LL_HRTIM_EVENT_2
7043   *         @arg @ref LL_HRTIM_EVENT_3
7044   *         @arg @ref LL_HRTIM_EVENT_4
7045   *         @arg @ref LL_HRTIM_EVENT_5
7046   *         @arg @ref LL_HRTIM_EVENT_6
7047   *         @arg @ref LL_HRTIM_EVENT_7
7048   *         @arg @ref LL_HRTIM_EVENT_8
7049   *         @arg @ref LL_HRTIM_EVENT_9
7050   *         @arg @ref LL_HRTIM_EVENT_10
7051   * @retval None
7052   */
LL_HRTIM_TIM_SetEventCounterSource(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter,uint32_t Event)7053 __STATIC_INLINE void LL_HRTIM_TIM_SetEventCounterSource(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t EventCounter,
7054                                                         uint32_t Event)
7055 {
7056   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7057   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7058   uint32_t iEvent = (uint32_t)(POSITION_VAL(Event));
7059 
7060   /* register SEL value is 0 if LL_HRTIM_EVENT_1, 1 if LL_HRTIM_EVENT_1, etc
7061      and 9 if LL_HRTIM_EVENT_10 */
7062   MODIFY_REG(*pReg, (HRTIM_EEFR3_EEVASEL << EventCounter), iEvent << (HRTIM_EEFR3_EEVASEL_Pos + EventCounter));
7063 }
7064 
7065 /**
7066   * @brief  get the selected external event counter source.
7067   *       LL_HRTIM_EE_SetSensitivity()).
7068   * @rmtoll EEFxR3    EEVBSEL      LL_HRTIM_TIM_GetEventCounterSource\n
7069   *         EEFxR3    EEVASEL      LL_HRTIM_TIM_GetEventCounterSource
7070   * @param  HRTIMx High Resolution Timer instance
7071   * @param  Timer This parameter can be one of the following values:
7072   *         @arg @ref LL_HRTIM_TIMER_A
7073   *         @arg @ref LL_HRTIM_TIMER_B
7074   *         @arg @ref LL_HRTIM_TIMER_C
7075   *         @arg @ref LL_HRTIM_TIMER_D
7076   *         @arg @ref LL_HRTIM_TIMER_E
7077   *         @arg @ref LL_HRTIM_TIMER_F
7078   * @param  EventCounter This parameter can be one of the following values:
7079   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7080   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7081   * @retval  Event This parameter can be one of the following values:
7082   *         @arg @ref LL_HRTIM_EVENT_1
7083   *         @arg @ref LL_HRTIM_EVENT_2
7084   *         @arg @ref LL_HRTIM_EVENT_3
7085   *         @arg @ref LL_HRTIM_EVENT_4
7086   *         @arg @ref LL_HRTIM_EVENT_5
7087   *         @arg @ref LL_HRTIM_EVENT_6
7088   *         @arg @ref LL_HRTIM_EVENT_7
7089   *         @arg @ref LL_HRTIM_EVENT_8
7090   *         @arg @ref LL_HRTIM_EVENT_9
7091   *         @arg @ref LL_HRTIM_EVENT_10
7092   */
LL_HRTIM_TIM_GetEventCounterSource(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7093 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventCounterSource(const HRTIM_TypeDef *HRTIMx, uint32_t Timer,
7094                                                             uint32_t EventCounter)
7095 {
7096   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7097   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7098 
7099   uint32_t iEvent = (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR3_EEVASEL) << (EventCounter))) >> ((HRTIM_EEFR3_EEVASEL_Pos + EventCounter));
7100 
7101   /* returned value is 0 if SEL is LL_HRTIM_EVENT_1, 1 if SEL is LL_HRTIM_EVENT_1, etc
7102      and 9 if SEL is LL_HRTIM_EVENT_10 */
7103   return ((uint32_t)0x1U << iEvent)  ;
7104 }
7105 
7106 /**
7107   * @brief  Select the external event counter reset mode.
7108   * @rmtoll EEFxR3    EEVBRSTM      LL_HRTIM_TIM_SetEventCounterResetMode\n
7109   *         EEFxR3    EEVARSTM      LL_HRTIM_TIM_SetEventCounterResetMode
7110   * @param  HRTIMx High Resolution Timer instance
7111   * @param  Timer This parameter can be one of the following values:
7112   *         @arg @ref LL_HRTIM_TIMER_A
7113   *         @arg @ref LL_HRTIM_TIMER_B
7114   *         @arg @ref LL_HRTIM_TIMER_C
7115   *         @arg @ref LL_HRTIM_TIMER_D
7116   *         @arg @ref LL_HRTIM_TIMER_E
7117   *         @arg @ref LL_HRTIM_TIMER_F
7118   * @param  EventCounter This parameter can be one of the following values:
7119   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7120   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7121   * @param  Mode This parameter can be one of the following values:
7122   *         @arg @ref LL_HRTIM_EE_COUNTER_RSTMODE_UNCONDITIONAL
7123   *         @arg @ref LL_HRTIM_EE_COUNTER_RSTMODE_CONDITIONAL
7124   * @retval None
7125   */
LL_HRTIM_TIM_SetEventCounterResetMode(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter,uint32_t Mode)7126 __STATIC_INLINE void LL_HRTIM_TIM_SetEventCounterResetMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t EventCounter,
7127                                                            uint32_t Mode)
7128 {
7129   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7130   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7131 
7132   MODIFY_REG(*pReg, (HRTIM_EEFR3_EEVARSTM << (EventCounter)), Mode << (EventCounter));
7133 }
7134 
7135 /**
7136   * @brief  Get selected external event counter reset mode.
7137   * @rmtoll EEFxR3    EEVBRSTM      LL_HRTIM_TIM_GetEventCounterResetMode\n
7138   *         EEFxR3    EEVARSTM      LL_HRTIM_TIM_GetEventCounterResetMode
7139   * @param  HRTIMx High Resolution Timer instance
7140   * @param  Timer This parameter can be one of the following values:
7141   *         @arg @ref LL_HRTIM_TIMER_A
7142   *         @arg @ref LL_HRTIM_TIMER_B
7143   *         @arg @ref LL_HRTIM_TIMER_C
7144   *         @arg @ref LL_HRTIM_TIMER_D
7145   *         @arg @ref LL_HRTIM_TIMER_E
7146   *         @arg @ref LL_HRTIM_TIMER_F
7147   * @param  EventCounter This parameter can be one of the following values:
7148   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7149   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7150   * @retval  Mode This parameter can be one of the following values:
7151   *         @arg @ref LL_HRTIM_EE_COUNTER_RSTMODE_UNCONDITIONAL
7152   *         @arg @ref LL_HRTIM_EE_COUNTER_RSTMODE_CONDITIONAL
7153   */
LL_HRTIM_TIM_GetEventCounterResetMode(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7154 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventCounterResetMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer,
7155                                                                uint32_t EventCounter)
7156 {
7157   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7158   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7159 
7160   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR3_EEVARSTM) << (EventCounter))) >> (EventCounter))  ;
7161 }
7162 
7163 /**
7164   * @brief  Reset the external event counter.
7165   * @rmtoll EEFxR3    EEVACRES      LL_HRTIM_TIM_ResetEventCounter\n
7166   *         EEFxR3    EEVBCRES      LL_HRTIM_TIM_ResetEventCounter
7167   * @param  HRTIMx High Resolution Timer instance
7168   * @param  Timer This parameter can be one of the following values:
7169   *         @arg @ref LL_HRTIM_TIMER_A
7170   *         @arg @ref LL_HRTIM_TIMER_B
7171   *         @arg @ref LL_HRTIM_TIMER_C
7172   *         @arg @ref LL_HRTIM_TIMER_D
7173   *         @arg @ref LL_HRTIM_TIMER_E
7174   *         @arg @ref LL_HRTIM_TIMER_F
7175   * @param  EventCounter This parameter can be one of the following values:
7176   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7177   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7178   * @retval None
7179   */
LL_HRTIM_TIM_ResetEventCounter(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7180 __STATIC_INLINE void LL_HRTIM_TIM_ResetEventCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t EventCounter)
7181 {
7182   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7183   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7184 
7185   SET_BIT(*pReg, (uint32_t)(HRTIM_EEFR3_EEVACRES) << EventCounter);
7186 }
7187 
7188 /**
7189   * @brief  Enable the external event counter.
7190   * @rmtoll EEFxR3    EEVACE      LL_HRTIM_TIM_EnableEventCounter\n
7191   *         EEFxR3    EEVBCE      LL_HRTIM_TIM_EnableEventCounter
7192   * @param  HRTIMx High Resolution Timer instance
7193   * @param  Timer This parameter can be one of the following values:
7194   *         @arg @ref LL_HRTIM_TIMER_A
7195   *         @arg @ref LL_HRTIM_TIMER_B
7196   *         @arg @ref LL_HRTIM_TIMER_C
7197   *         @arg @ref LL_HRTIM_TIMER_D
7198   *         @arg @ref LL_HRTIM_TIMER_E
7199   *         @arg @ref LL_HRTIM_TIMER_F
7200   * @param  EventCounter This parameter can be one of the following values:
7201   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7202   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7203   * @retval None
7204   */
LL_HRTIM_TIM_EnableEventCounter(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7205 __STATIC_INLINE void LL_HRTIM_TIM_EnableEventCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t EventCounter)
7206 {
7207   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7208   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7209 
7210   SET_BIT(*pReg, (uint32_t)(HRTIM_EEFR3_EEVACE) << EventCounter);
7211 }
7212 
7213 /**
7214   * @brief  Disable the external event counter.
7215   * @rmtoll EEFxR3    EEVACE      LL_HRTIM_TIM_DisableEventCounter\n
7216   *         EEFxR3    EEVBCE      LL_HRTIM_TIM_DisableEventCounter
7217   * @param  HRTIMx High Resolution Timer instance
7218   * @param  Timer This parameter can be one of the following values:
7219   *         @arg @ref LL_HRTIM_TIMER_A
7220   *         @arg @ref LL_HRTIM_TIMER_B
7221   *         @arg @ref LL_HRTIM_TIMER_C
7222   *         @arg @ref LL_HRTIM_TIMER_D
7223   *         @arg @ref LL_HRTIM_TIMER_E
7224   *         @arg @ref LL_HRTIM_TIMER_F
7225   * @param  EventCounter This parameter can be one of the following values:
7226   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7227   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7228   * @retval None
7229   */
LL_HRTIM_TIM_DisableEventCounter(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7230 __STATIC_INLINE void LL_HRTIM_TIM_DisableEventCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t EventCounter)
7231 {
7232   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7233   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7234 
7235   CLEAR_BIT(*pReg, (HRTIM_EEFR3_EEVACE << EventCounter));
7236 }
7237 
7238 
7239 /**
7240   * @brief  Indicate whether the external event counter is enabled for a given timer.
7241   * @rmtoll EEFxR3    EEVACE      LL_HRTIM_TIM_IsEnabledEventCounter\n
7242   *         EEFxR3    EEVBCE      LL_HRTIM_TIM_IsEnabledEventCounter
7243   * @param  HRTIMx High Resolution Timer instance
7244   * @param  Timer This parameter can be one of the following values:
7245   *         @arg @ref LL_HRTIM_TIMER_A
7246   *         @arg @ref LL_HRTIM_TIMER_B
7247   *         @arg @ref LL_HRTIM_TIMER_C
7248   *         @arg @ref LL_HRTIM_TIMER_D
7249   *         @arg @ref LL_HRTIM_TIMER_E
7250   *         @arg @ref LL_HRTIM_TIMER_F
7251   * @param  EventCounter This parameter can be one of the following values:
7252   *         @arg @ref LL_HRTIM_EE_COUNTER_A
7253   *         @arg @ref LL_HRTIM_EE_COUNTER_B
7254   * @retval State of EEVxCE bit in RTIM_EEFxR3 register (1 or 0).
7255   */
LL_HRTIM_TIM_IsEnabledEventCounter(const HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t EventCounter)7256 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledEventCounter(const HRTIM_TypeDef *HRTIMx, uint32_t Timer,
7257                                                             uint32_t EventCounter)
7258 {
7259   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
7260   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[iTimer].EEFxR3)));
7261 
7262   uint32_t temp; /* MISRAC-2012 compliance */
7263   temp = READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR3_EEVACE) << EventCounter);
7264 
7265   return ((temp == ((uint32_t)(HRTIM_EEFR3_EEVACE) << EventCounter)) ? 1UL : 0UL);
7266 }
7267 
7268 /**
7269   * @}
7270   */
7271 
7272 /** @defgroup HRTIM_LL_EF_Dead_Time_Configuration Dead_Time_Configuration
7273   * @{
7274   */
7275 
7276 /**
7277   * @brief  Configure the dead time insertion feature for a given timer.
7278   * @rmtoll DTxR      DTPRSC     LL_HRTIM_DT_Config\n
7279   *         DTxR      SDTF       LL_HRTIM_DT_Config\n
7280   *         DTxR      SDRT       LL_HRTIM_DT_Config
7281   * @param  HRTIMx High Resolution Timer instance
7282   * @param  Timer This parameter can be one of the following values:
7283   *         @arg @ref LL_HRTIM_TIMER_A
7284   *         @arg @ref LL_HRTIM_TIMER_B
7285   *         @arg @ref LL_HRTIM_TIMER_C
7286   *         @arg @ref LL_HRTIM_TIMER_D
7287   *         @arg @ref LL_HRTIM_TIMER_E
7288   *         @arg @ref LL_HRTIM_TIMER_F
7289   * @param  Configuration This parameter must be a combination of all the following values:
7290   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL8 or ... or @ref LL_HRTIM_DT_PRESCALER_DIV16
7291   *         @arg @ref LL_HRTIM_DT_RISING_POSITIVE or @ref LL_HRTIM_DT_RISING_NEGATIVE
7292   *         @arg @ref LL_HRTIM_DT_FALLING_POSITIVE or @ref LL_HRTIM_DT_FALLING_NEGATIVE
7293   * @retval None
7294   */
LL_HRTIM_DT_Config(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Configuration)7295 __STATIC_INLINE void LL_HRTIM_DT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Configuration)
7296 {
7297   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7298   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7299                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7300   MODIFY_REG(*pReg, HRTIM_DTR_SDTF | HRTIM_DTR_DTPRSC | HRTIM_DTR_SDTR, Configuration);
7301 }
7302 
7303 /**
7304   * @brief  Set the deadtime prescaler value.
7305   * @rmtoll DTxR      DTPRSC     LL_HRTIM_DT_SetPrescaler
7306   * @param  HRTIMx High Resolution Timer instance
7307   * @param  Timer This parameter can be one of the following values:
7308   *         @arg @ref LL_HRTIM_TIMER_A
7309   *         @arg @ref LL_HRTIM_TIMER_B
7310   *         @arg @ref LL_HRTIM_TIMER_C
7311   *         @arg @ref LL_HRTIM_TIMER_D
7312   *         @arg @ref LL_HRTIM_TIMER_E
7313   *         @arg @ref LL_HRTIM_TIMER_F
7314   * @param  Prescaler This parameter can be one of the following values:
7315   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL8
7316   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL4
7317   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL2
7318   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV1
7319   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV2
7320   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV4
7321   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV8
7322   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV16
7323   * @retval None
7324   */
LL_HRTIM_DT_SetPrescaler(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Prescaler)7325 __STATIC_INLINE void LL_HRTIM_DT_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler)
7326 {
7327   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7328   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7329                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7330   MODIFY_REG(*pReg, HRTIM_DTR_DTPRSC, Prescaler);
7331 }
7332 
7333 /**
7334   * @brief  Get actual deadtime prescaler value.
7335   * @rmtoll DTxR      DTPRSC     LL_HRTIM_DT_GetPrescaler
7336   * @param  HRTIMx High Resolution Timer instance
7337   * @param  Timer This parameter can be one of the following values:
7338   *         @arg @ref LL_HRTIM_TIMER_A
7339   *         @arg @ref LL_HRTIM_TIMER_B
7340   *         @arg @ref LL_HRTIM_TIMER_C
7341   *         @arg @ref LL_HRTIM_TIMER_D
7342   *         @arg @ref LL_HRTIM_TIMER_E
7343   *         @arg @ref LL_HRTIM_TIMER_F
7344   * @retval Prescaler This parameter can be one of the following values:
7345   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL8
7346   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL4
7347   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL2
7348   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV1
7349   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV2
7350   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV4
7351   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV8
7352   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV16
7353   */
LL_HRTIM_DT_GetPrescaler(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7354 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetPrescaler(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7355 {
7356   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7357   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7358                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7359   return (READ_BIT(*pReg, HRTIM_DTR_DTPRSC));
7360 }
7361 
7362 /**
7363   * @brief  Set the deadtime rising value.
7364   * @rmtoll DTxR      DTR       LL_HRTIM_DT_SetRisingValue
7365   * @param  HRTIMx High Resolution Timer instance
7366   * @param  Timer This parameter can be one of the following values:
7367   *         @arg @ref LL_HRTIM_TIMER_A
7368   *         @arg @ref LL_HRTIM_TIMER_B
7369   *         @arg @ref LL_HRTIM_TIMER_C
7370   *         @arg @ref LL_HRTIM_TIMER_D
7371   *         @arg @ref LL_HRTIM_TIMER_E
7372   *         @arg @ref LL_HRTIM_TIMER_F
7373   * @param  RisingValue Value between 0 and 0x1FF
7374   * @retval None
7375   */
LL_HRTIM_DT_SetRisingValue(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t RisingValue)7376 __STATIC_INLINE void LL_HRTIM_DT_SetRisingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t RisingValue)
7377 {
7378   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7379   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7380                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7381   MODIFY_REG(*pReg, HRTIM_DTR_DTR, RisingValue);
7382 }
7383 
7384 /**
7385   * @brief  Get actual deadtime rising value.
7386   * @rmtoll DTxR      DTR       LL_HRTIM_DT_GetRisingValue
7387   * @param  HRTIMx High Resolution Timer instance
7388   * @param  Timer This parameter can be one of the following values:
7389   *         @arg @ref LL_HRTIM_TIMER_A
7390   *         @arg @ref LL_HRTIM_TIMER_B
7391   *         @arg @ref LL_HRTIM_TIMER_C
7392   *         @arg @ref LL_HRTIM_TIMER_D
7393   *         @arg @ref LL_HRTIM_TIMER_E
7394   *         @arg @ref LL_HRTIM_TIMER_F
7395   * @retval RisingValue Value between 0 and 0x1FF
7396   */
LL_HRTIM_DT_GetRisingValue(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7397 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetRisingValue(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7398 {
7399   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7400   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7401                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7402   return (READ_BIT(*pReg, HRTIM_DTR_DTR));
7403 }
7404 
7405 /**
7406   * @brief  Set the deadtime sign on rising edge.
7407   * @rmtoll DTxR      SDTR       LL_HRTIM_DT_SetRisingSign
7408   * @param  HRTIMx High Resolution Timer instance
7409   * @param  Timer This parameter can be one of the following values:
7410   *         @arg @ref LL_HRTIM_TIMER_A
7411   *         @arg @ref LL_HRTIM_TIMER_B
7412   *         @arg @ref LL_HRTIM_TIMER_C
7413   *         @arg @ref LL_HRTIM_TIMER_D
7414   *         @arg @ref LL_HRTIM_TIMER_E
7415   *         @arg @ref LL_HRTIM_TIMER_F
7416   * @param  RisingSign This parameter can be one of the following values:
7417   *         @arg @ref LL_HRTIM_DT_RISING_POSITIVE
7418   *         @arg @ref LL_HRTIM_DT_RISING_NEGATIVE
7419   * @retval None
7420   */
LL_HRTIM_DT_SetRisingSign(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t RisingSign)7421 __STATIC_INLINE void LL_HRTIM_DT_SetRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t RisingSign)
7422 {
7423   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7424   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7425                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7426   MODIFY_REG(*pReg, HRTIM_DTR_SDTR, RisingSign);
7427 }
7428 
7429 /**
7430   * @brief  Get actual deadtime sign on rising edge.
7431   * @rmtoll DTxR      SDTR       LL_HRTIM_DT_GetRisingSign
7432   * @param  HRTIMx High Resolution Timer instance
7433   * @param  Timer This parameter can be one of the following values:
7434   *         @arg @ref LL_HRTIM_TIMER_A
7435   *         @arg @ref LL_HRTIM_TIMER_B
7436   *         @arg @ref LL_HRTIM_TIMER_C
7437   *         @arg @ref LL_HRTIM_TIMER_D
7438   *         @arg @ref LL_HRTIM_TIMER_E
7439   *         @arg @ref LL_HRTIM_TIMER_F
7440   * @retval RisingSign This parameter can be one of the following values:
7441   *         @arg @ref LL_HRTIM_DT_RISING_POSITIVE
7442   *         @arg @ref LL_HRTIM_DT_RISING_NEGATIVE
7443   */
LL_HRTIM_DT_GetRisingSign(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7444 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetRisingSign(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7445 {
7446   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7447   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7448                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7449   return (READ_BIT(*pReg, HRTIM_DTR_SDTR));
7450 }
7451 
7452 /**
7453   * @brief  Set the deadime falling value.
7454   * @rmtoll DTxR      DTF       LL_HRTIM_DT_SetFallingValue
7455   * @param  HRTIMx High Resolution Timer instance
7456   * @param  Timer This parameter can be one of the following values:
7457   *         @arg @ref LL_HRTIM_TIMER_A
7458   *         @arg @ref LL_HRTIM_TIMER_B
7459   *         @arg @ref LL_HRTIM_TIMER_C
7460   *         @arg @ref LL_HRTIM_TIMER_D
7461   *         @arg @ref LL_HRTIM_TIMER_E
7462   *         @arg @ref LL_HRTIM_TIMER_F
7463   * @param  FallingValue Value between 0 and 0x1FF
7464   * @retval None
7465   */
LL_HRTIM_DT_SetFallingValue(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t FallingValue)7466 __STATIC_INLINE void LL_HRTIM_DT_SetFallingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t FallingValue)
7467 {
7468   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7469   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7470                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7471   MODIFY_REG(*pReg, HRTIM_DTR_DTF, FallingValue << HRTIM_DTR_DTF_Pos);
7472 }
7473 
7474 /**
7475   * @brief  Get actual deadtime falling value
7476   * @rmtoll DTxR      DTF       LL_HRTIM_DT_GetFallingValue
7477   * @param  HRTIMx High Resolution Timer instance
7478   * @param  Timer This parameter can be one of the following values:
7479   *         @arg @ref LL_HRTIM_TIMER_A
7480   *         @arg @ref LL_HRTIM_TIMER_B
7481   *         @arg @ref LL_HRTIM_TIMER_C
7482   *         @arg @ref LL_HRTIM_TIMER_D
7483   *         @arg @ref LL_HRTIM_TIMER_E
7484   *         @arg @ref LL_HRTIM_TIMER_F
7485   * @retval FallingValue Value between 0 and 0x1FF
7486   */
LL_HRTIM_DT_GetFallingValue(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7487 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetFallingValue(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7488 {
7489   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7490   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7491                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7492   return ((READ_BIT(*pReg, HRTIM_DTR_DTF)) >> HRTIM_DTR_DTF_Pos);
7493 }
7494 
7495 /**
7496   * @brief  Set the deadtime sign on falling edge.
7497   * @rmtoll DTxR      SDTF       LL_HRTIM_DT_SetFallingSign
7498   * @param  HRTIMx High Resolution Timer instance
7499   * @param  Timer This parameter can be one of the following values:
7500   *         @arg @ref LL_HRTIM_TIMER_A
7501   *         @arg @ref LL_HRTIM_TIMER_B
7502   *         @arg @ref LL_HRTIM_TIMER_C
7503   *         @arg @ref LL_HRTIM_TIMER_D
7504   *         @arg @ref LL_HRTIM_TIMER_E
7505   *         @arg @ref LL_HRTIM_TIMER_F
7506   * @param  FallingSign This parameter can be one of the following values:
7507   *         @arg @ref LL_HRTIM_DT_FALLING_POSITIVE
7508   *         @arg @ref LL_HRTIM_DT_FALLING_NEGATIVE
7509   * @retval None
7510   */
LL_HRTIM_DT_SetFallingSign(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t FallingSign)7511 __STATIC_INLINE void LL_HRTIM_DT_SetFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t FallingSign)
7512 {
7513   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7514   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7515                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7516   MODIFY_REG(*pReg, HRTIM_DTR_SDTF, FallingSign);
7517 }
7518 
7519 /**
7520   * @brief  Get actual deadtime sign on falling edge.
7521   * @rmtoll DTxR      SDTF       LL_HRTIM_DT_GetFallingSign
7522   * @param  HRTIMx High Resolution Timer instance
7523   * @param  Timer This parameter can be one of the following values:
7524   *         @arg @ref LL_HRTIM_TIMER_A
7525   *         @arg @ref LL_HRTIM_TIMER_B
7526   *         @arg @ref LL_HRTIM_TIMER_C
7527   *         @arg @ref LL_HRTIM_TIMER_D
7528   *         @arg @ref LL_HRTIM_TIMER_E
7529   *         @arg @ref LL_HRTIM_TIMER_F
7530   * @retval FallingSign This parameter can be one of the following values:
7531   *         @arg @ref LL_HRTIM_DT_FALLING_POSITIVE
7532   *         @arg @ref LL_HRTIM_DT_FALLING_NEGATIVE
7533   */
LL_HRTIM_DT_GetFallingSign(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7534 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetFallingSign(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7535 {
7536   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7537   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7538                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7539   return (READ_BIT(*pReg, HRTIM_DTR_SDTF));
7540 }
7541 
7542 /**
7543   * @brief  Lock the deadtime value and sign on rising edge.
7544   * @rmtoll DTxR      DTRLK       LL_HRTIM_DT_LockRising
7545   * @param  HRTIMx High Resolution Timer instance
7546   * @param  Timer This parameter can be one of the following values:
7547   *         @arg @ref LL_HRTIM_TIMER_A
7548   *         @arg @ref LL_HRTIM_TIMER_B
7549   *         @arg @ref LL_HRTIM_TIMER_C
7550   *         @arg @ref LL_HRTIM_TIMER_D
7551   *         @arg @ref LL_HRTIM_TIMER_E
7552   *         @arg @ref LL_HRTIM_TIMER_F
7553   * @retval None
7554   */
LL_HRTIM_DT_LockRising(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7555 __STATIC_INLINE void LL_HRTIM_DT_LockRising(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7556 {
7557   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7558   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7559                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7560   SET_BIT(*pReg, HRTIM_DTR_DTRLK);
7561 }
7562 
7563 /**
7564   * @brief  Lock the deadtime sign on rising edge.
7565   * @rmtoll DTxR      DTRSLK       LL_HRTIM_DT_LockRisingSign
7566   * @param  HRTIMx High Resolution Timer instance
7567   * @param  Timer This parameter can be one of the following values:
7568   *         @arg @ref LL_HRTIM_TIMER_A
7569   *         @arg @ref LL_HRTIM_TIMER_B
7570   *         @arg @ref LL_HRTIM_TIMER_C
7571   *         @arg @ref LL_HRTIM_TIMER_D
7572   *         @arg @ref LL_HRTIM_TIMER_E
7573   *         @arg @ref LL_HRTIM_TIMER_F
7574   * @retval None
7575   */
LL_HRTIM_DT_LockRisingSign(HRTIM_TypeDef * HRTIMx,uint32_t Timer)7576 __STATIC_INLINE void LL_HRTIM_DT_LockRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7577 {
7578   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7579   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7580                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7581   SET_BIT(*pReg, HRTIM_DTR_DTRSLK);
7582 }
7583 
7584 /**
7585   * @brief  Lock the deadtime value and sign on falling edge.
7586   * @rmtoll DTxR      DTFLK       LL_HRTIM_DT_LockFalling
7587   * @param  HRTIMx High Resolution Timer instance
7588   * @param  Timer This parameter can be one of the following values:
7589   *         @arg @ref LL_HRTIM_TIMER_A
7590   *         @arg @ref LL_HRTIM_TIMER_B
7591   *         @arg @ref LL_HRTIM_TIMER_C
7592   *         @arg @ref LL_HRTIM_TIMER_D
7593   *         @arg @ref LL_HRTIM_TIMER_E
7594   *         @arg @ref LL_HRTIM_TIMER_F
7595   * @retval None
7596   */
LL_HRTIM_DT_LockFalling(HRTIM_TypeDef * HRTIMx,uint32_t Timer)7597 __STATIC_INLINE void LL_HRTIM_DT_LockFalling(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7598 {
7599   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7600   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7601                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7602   SET_BIT(*pReg, HRTIM_DTR_DTFLK);
7603 }
7604 
7605 /**
7606   * @brief  Lock the deadtime sign on falling edge.
7607   * @rmtoll DTxR      DTFSLK       LL_HRTIM_DT_LockFallingSign
7608   * @param  HRTIMx High Resolution Timer instance
7609   * @param  Timer This parameter can be one of the following values:
7610   *         @arg @ref LL_HRTIM_TIMER_A
7611   *         @arg @ref LL_HRTIM_TIMER_B
7612   *         @arg @ref LL_HRTIM_TIMER_C
7613   *         @arg @ref LL_HRTIM_TIMER_D
7614   *         @arg @ref LL_HRTIM_TIMER_E
7615   *         @arg @ref LL_HRTIM_TIMER_F
7616   * @retval None
7617   */
LL_HRTIM_DT_LockFallingSign(HRTIM_TypeDef * HRTIMx,uint32_t Timer)7618 __STATIC_INLINE void LL_HRTIM_DT_LockFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7619 {
7620   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7621   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
7622                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7623   SET_BIT(*pReg, HRTIM_DTR_DTFSLK);
7624 }
7625 
7626 /**
7627   * @}
7628   */
7629 
7630 /** @defgroup HRTIM_LL_EF_Chopper_Mode_Configuration Chopper_Mode_Configuration
7631   * @{
7632   */
7633 
7634 /**
7635   * @brief  Configure the chopper stage for a given timer.
7636   * @rmtoll CHPxR      CARFRQ       LL_HRTIM_CHP_Config\n
7637   *         CHPxR      CARDTY       LL_HRTIM_CHP_Config\n
7638   *         CHPxR      STRTPW       LL_HRTIM_CHP_Config
7639   * @note This function must not be called if the chopper mode is already
7640   *       enabled for one of the timer outputs.
7641   * @param  HRTIMx High Resolution Timer instance
7642   * @param  Timer This parameter can be one of the following values:
7643   *         @arg @ref LL_HRTIM_TIMER_A
7644   *         @arg @ref LL_HRTIM_TIMER_B
7645   *         @arg @ref LL_HRTIM_TIMER_C
7646   *         @arg @ref LL_HRTIM_TIMER_D
7647   *         @arg @ref LL_HRTIM_TIMER_E
7648   *         @arg @ref LL_HRTIM_TIMER_F
7649   * @param  Configuration This parameter must be a combination of all the following values:
7650   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16 or ... or @ref LL_HRTIM_CHP_PRESCALER_DIV256
7651   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0 or ... or @ref LL_HRTIM_CHP_DUTYCYCLE_875
7652   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16 or ... or @ref LL_HRTIM_CHP_PULSEWIDTH_256
7653   * @retval None
7654   */
LL_HRTIM_CHP_Config(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Configuration)7655 __STATIC_INLINE void LL_HRTIM_CHP_Config(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Configuration)
7656 {
7657   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7658   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7659                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7660   MODIFY_REG(*pReg, HRTIM_CHPR_STRPW | HRTIM_CHPR_CARDTY | HRTIM_CHPR_CARFRQ, Configuration);
7661 }
7662 
7663 /**
7664   * @brief  Set prescaler determining the carrier frequency to be added on top
7665   *         of the timer output signals when chopper mode is enabled.
7666   * @rmtoll CHPxR      CARFRQ       LL_HRTIM_CHP_SetPrescaler
7667   * @note This function must not be called if the chopper mode is already
7668   *       enabled for one of the timer outputs.
7669   * @param  HRTIMx High Resolution Timer instance
7670   * @param  Timer This parameter can be one of the following values:
7671   *         @arg @ref LL_HRTIM_TIMER_A
7672   *         @arg @ref LL_HRTIM_TIMER_B
7673   *         @arg @ref LL_HRTIM_TIMER_C
7674   *         @arg @ref LL_HRTIM_TIMER_D
7675   *         @arg @ref LL_HRTIM_TIMER_E
7676   *         @arg @ref LL_HRTIM_TIMER_F
7677   * @param  Prescaler This parameter can be one of the following values:
7678   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16
7679   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV32
7680   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV48
7681   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV64
7682   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV80
7683   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV96
7684   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV112
7685   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV128
7686   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV144
7687   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV160
7688   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV176
7689   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV192
7690   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV208
7691   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV224
7692   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV240
7693   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV256
7694   * @retval None
7695   */
LL_HRTIM_CHP_SetPrescaler(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t Prescaler)7696 __STATIC_INLINE void LL_HRTIM_CHP_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler)
7697 {
7698   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7699   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7700                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7701   MODIFY_REG(*pReg, HRTIM_CHPR_CARFRQ, Prescaler);
7702 }
7703 
7704 /**
7705   * @brief  Get actual chopper stage prescaler value.
7706   * @rmtoll CHPxR      CARFRQ       LL_HRTIM_CHP_GetPrescaler
7707   * @param  HRTIMx High Resolution Timer instance
7708   * @param  Timer This parameter can be one of the following values:
7709   *         @arg @ref LL_HRTIM_TIMER_A
7710   *         @arg @ref LL_HRTIM_TIMER_B
7711   *         @arg @ref LL_HRTIM_TIMER_C
7712   *         @arg @ref LL_HRTIM_TIMER_D
7713   *         @arg @ref LL_HRTIM_TIMER_E
7714   *         @arg @ref LL_HRTIM_TIMER_F
7715   * @retval Prescaler This parameter can be one of the following values:
7716   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16
7717   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV32
7718   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV48
7719   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV64
7720   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV80
7721   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV96
7722   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV112
7723   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV128
7724   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV144
7725   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV160
7726   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV176
7727   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV192
7728   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV208
7729   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV224
7730   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV240
7731   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV256
7732   */
LL_HRTIM_CHP_GetPrescaler(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7733 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetPrescaler(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7734 {
7735   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7736   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7737                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7738   return (READ_BIT(*pReg, HRTIM_CHPR_CARFRQ));
7739 }
7740 
7741 /**
7742   * @brief  Set the chopper duty cycle.
7743   * @rmtoll CHPxR      CARDTY       LL_HRTIM_CHP_SetDutyCycle
7744   * @note Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
7745   * @note This function must not be called if the chopper mode is already
7746   *       enabled for one of the timer outputs.
7747   * @param  HRTIMx High Resolution Timer instance
7748   * @param  Timer This parameter can be one of the following values:
7749   *         @arg @ref LL_HRTIM_TIMER_A
7750   *         @arg @ref LL_HRTIM_TIMER_B
7751   *         @arg @ref LL_HRTIM_TIMER_C
7752   *         @arg @ref LL_HRTIM_TIMER_D
7753   *         @arg @ref LL_HRTIM_TIMER_E
7754   *         @arg @ref LL_HRTIM_TIMER_F
7755   * @param  DutyCycle This parameter can be one of the following values:
7756   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0
7757   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_125
7758   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_250
7759   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_375
7760   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_500
7761   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_625
7762   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_750
7763   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_875
7764   * @retval None
7765   */
LL_HRTIM_CHP_SetDutyCycle(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t DutyCycle)7766 __STATIC_INLINE void LL_HRTIM_CHP_SetDutyCycle(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DutyCycle)
7767 {
7768   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7769   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7770                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7771   MODIFY_REG(*pReg, HRTIM_CHPR_CARDTY, DutyCycle);
7772 }
7773 
7774 /**
7775   * @brief  Get actual chopper duty cycle.
7776   * @rmtoll CHPxR      CARDTY       LL_HRTIM_CHP_GetDutyCycle
7777   * @param  HRTIMx High Resolution Timer instance
7778   * @param  Timer This parameter can be one of the following values:
7779   *         @arg @ref LL_HRTIM_TIMER_A
7780   *         @arg @ref LL_HRTIM_TIMER_B
7781   *         @arg @ref LL_HRTIM_TIMER_C
7782   *         @arg @ref LL_HRTIM_TIMER_D
7783   *         @arg @ref LL_HRTIM_TIMER_E
7784   *         @arg @ref LL_HRTIM_TIMER_F
7785   * @retval DutyCycle This parameter can be one of the following values:
7786   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0
7787   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_125
7788   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_250
7789   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_375
7790   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_500
7791   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_625
7792   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_750
7793   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_875
7794   */
LL_HRTIM_CHP_GetDutyCycle(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7795 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetDutyCycle(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7796 {
7797   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7798   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7799                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7800   return (READ_BIT(*pReg, HRTIM_CHPR_CARDTY));
7801 }
7802 
7803 /**
7804   * @brief  Set the start pulse width.
7805   * @rmtoll CHPxR      STRPW       LL_HRTIM_CHP_SetPulseWidth
7806   * @note This function must not be called if the chopper mode is already
7807   *       enabled for one of the timer outputs.
7808   * @param  HRTIMx High Resolution Timer instance
7809   * @param  Timer This parameter can be one of the following values:
7810   *         @arg @ref LL_HRTIM_TIMER_A
7811   *         @arg @ref LL_HRTIM_TIMER_B
7812   *         @arg @ref LL_HRTIM_TIMER_C
7813   *         @arg @ref LL_HRTIM_TIMER_D
7814   *         @arg @ref LL_HRTIM_TIMER_E
7815   *         @arg @ref LL_HRTIM_TIMER_F
7816   * @param  PulseWidth This parameter can be one of the following values:
7817   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16
7818   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_32
7819   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_48
7820   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_64
7821   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_80
7822   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_96
7823   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_112
7824   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_128
7825   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_144
7826   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_160
7827   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_176
7828   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_192
7829   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_208
7830   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_224
7831   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_240
7832   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_256
7833   * @retval None
7834   */
LL_HRTIM_CHP_SetPulseWidth(HRTIM_TypeDef * HRTIMx,uint32_t Timer,uint32_t PulseWidth)7835 __STATIC_INLINE void LL_HRTIM_CHP_SetPulseWidth(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t PulseWidth)
7836 {
7837   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7838   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7839                                                      REG_OFFSET_TAB_TIMER[iTimer]));
7840   MODIFY_REG(*pReg, HRTIM_CHPR_STRPW, PulseWidth);
7841 }
7842 
7843 /**
7844   * @brief  Get actual start pulse width.
7845   * @rmtoll CHPxR      STRPW       LL_HRTIM_CHP_GetPulseWidth
7846   * @param  HRTIMx High Resolution Timer instance
7847   * @param  Timer This parameter can be one of the following values:
7848   *         @arg @ref LL_HRTIM_TIMER_A
7849   *         @arg @ref LL_HRTIM_TIMER_B
7850   *         @arg @ref LL_HRTIM_TIMER_C
7851   *         @arg @ref LL_HRTIM_TIMER_D
7852   *         @arg @ref LL_HRTIM_TIMER_E
7853   *         @arg @ref LL_HRTIM_TIMER_F
7854   * @retval PulseWidth This parameter can be one of the following values:
7855   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16
7856   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_32
7857   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_48
7858   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_64
7859   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_80
7860   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_96
7861   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_112
7862   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_128
7863   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_144
7864   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_160
7865   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_176
7866   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_192
7867   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_208
7868   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_224
7869   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_240
7870   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_256
7871   */
LL_HRTIM_CHP_GetPulseWidth(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)7872 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetPulseWidth(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7873 {
7874   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
7875   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
7876                                                            REG_OFFSET_TAB_TIMER[iTimer]));
7877   return (READ_BIT(*pReg, HRTIM_CHPR_STRPW));
7878 }
7879 
7880 /**
7881   * @}
7882   */
7883 
7884 /** @defgroup HRTIM_LL_EF_Output_Management Output_Management
7885   * @{
7886   */
7887 
7888 /**
7889   * @brief  Set the timer output set source.
7890   * @rmtoll SETx1R      SST          LL_HRTIM_OUT_SetOutputSetSrc\n
7891   *         SETx1R      RESYNC       LL_HRTIM_OUT_SetOutputSetSrc\n
7892   *         SETx1R      PER          LL_HRTIM_OUT_SetOutputSetSrc\n
7893   *         SETx1R      CMP1         LL_HRTIM_OUT_SetOutputSetSrc\n
7894   *         SETx1R      CMP2         LL_HRTIM_OUT_SetOutputSetSrc\n
7895   *         SETx1R      CMP3         LL_HRTIM_OUT_SetOutputSetSrc\n
7896   *         SETx1R      CMP4         LL_HRTIM_OUT_SetOutputSetSrc\n
7897   *         SETx1R      MSTPER       LL_HRTIM_OUT_SetOutputSetSrc\n
7898   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputSetSrc\n
7899   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputSetSrc\n
7900   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputSetSrc\n
7901   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputSetSrc\n
7902   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputSetSrc\n
7903   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputSetSrc\n
7904   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputSetSrc\n
7905   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputSetSrc\n
7906   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputSetSrc\n
7907   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputSetSrc\n
7908   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputSetSrc\n
7909   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputSetSrc\n
7910   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputSetSrc\n
7911   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputSetSrc\n
7912   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputSetSrc\n
7913   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputSetSrc\n
7914   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputSetSrc\n
7915   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputSetSrc\n
7916   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputSetSrc\n
7917   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputSetSrc\n
7918   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputSetSrc\n
7919   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputSetSrc\n
7920   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputSetSrc\n
7921   *         SETx1R      UPDATE       LL_HRTIM_OUT_SetOutputSetSrc\n
7922   *         SETx1R      SST          LL_HRTIM_OUT_SetOutputSetSrc\n
7923   *         SETx1R      RESYNC       LL_HRTIM_OUT_SetOutputSetSrc\n
7924   *         SETx1R      PER          LL_HRTIM_OUT_SetOutputSetSrc\n
7925   *         SETx1R      CMP1         LL_HRTIM_OUT_SetOutputSetSrc\n
7926   *         SETx1R      CMP2         LL_HRTIM_OUT_SetOutputSetSrc\n
7927   *         SETx1R      CMP3         LL_HRTIM_OUT_SetOutputSetSrc\n
7928   *         SETx1R      CMP4         LL_HRTIM_OUT_SetOutputSetSrc\n
7929   *         SETx1R      MSTPER       LL_HRTIM_OUT_SetOutputSetSrc\n
7930   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputSetSrc\n
7931   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputSetSrc\n
7932   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputSetSrc\n
7933   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputSetSrc\n
7934   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputSetSrc\n
7935   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputSetSrc\n
7936   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputSetSrc\n
7937   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputSetSrc\n
7938   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputSetSrc\n
7939   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputSetSrc\n
7940   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputSetSrc\n
7941   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputSetSrc\n
7942   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputSetSrc\n
7943   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputSetSrc\n
7944   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputSetSrc\n
7945   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputSetSrc\n
7946   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputSetSrc\n
7947   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputSetSrc\n
7948   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputSetSrc\n
7949   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputSetSrc\n
7950   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputSetSrc\n
7951   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputSetSrc\n
7952   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputSetSrc\n
7953   *         SETx1R      UPDATE       LL_HRTIM_OUT_SetOutputSetSrc
7954   * @param  HRTIMx High Resolution Timer instance
7955   * @param  Output This parameter can be one of the following values:
7956   *         @arg @ref LL_HRTIM_OUTPUT_TA1
7957   *         @arg @ref LL_HRTIM_OUTPUT_TA2
7958   *         @arg @ref LL_HRTIM_OUTPUT_TB1
7959   *         @arg @ref LL_HRTIM_OUTPUT_TB2
7960   *         @arg @ref LL_HRTIM_OUTPUT_TC1
7961   *         @arg @ref LL_HRTIM_OUTPUT_TC2
7962   *         @arg @ref LL_HRTIM_OUTPUT_TD1
7963   *         @arg @ref LL_HRTIM_OUTPUT_TD2
7964   *         @arg @ref LL_HRTIM_OUTPUT_TE1
7965   *         @arg @ref LL_HRTIM_OUTPUT_TE2
7966   *         @arg @ref LL_HRTIM_OUTPUT_TF1
7967   *         @arg @ref LL_HRTIM_OUTPUT_TF2
7968   * @param SetSrc This parameter can be a combination of the following values:
7969   *         @arg @ref LL_HRTIM_OUTPUTSET_NONE
7970   *         @arg @ref LL_HRTIM_OUTPUTSET_RESYNC
7971   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMPER
7972   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP1
7973   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP2
7974   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP3
7975   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP4
7976   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERPER
7977   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP1
7978   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP2
7979   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP3
7980   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP4
7981   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1
7982   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2
7983   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2
7984   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3
7985   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1
7986   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2
7987   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3
7988   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4
7989   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4
7990   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1
7991   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2
7992   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3
7993   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4
7994   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3
7995   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4
7996   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1
7997   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2
7998   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3
7999   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV1_TIMACMP2
8000   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV2_TIMACMP3
8001   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2
8002   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3
8003   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2
8004   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4
8005   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3
8006   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4
8007   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2
8008   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1
8009   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4
8010   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2
8011   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4
8012   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4
8013   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1
8014   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4
8015   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1
8016   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3
8017   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4
8018   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3
8019   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4
8020   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1
8021   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV5_TIMCCMP2
8022   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1
8023   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2
8024   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3
8025   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4
8026   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3
8027   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1
8028   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4
8029   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1
8030   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4
8031   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3
8032   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4
8033   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2
8034   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3
8035   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_1
8036   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_2
8037   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_3
8038   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_4
8039   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_5
8040   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_6
8041   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_7
8042   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_8
8043   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_9
8044   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_10
8045   *         @arg @ref LL_HRTIM_OUTPUTSET_UPDATE
8046   *         (source = TIMy and destination = TIMx, Compare Unit = CMPz).
8047   * @retval None
8048   */
LL_HRTIM_OUT_SetOutputSetSrc(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t SetSrc)8049 __STATIC_INLINE void LL_HRTIM_OUT_SetOutputSetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t SetSrc)
8050 {
8051   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8052   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) +
8053                                                      REG_OFFSET_TAB_SETxR[iOutput]));
8054   WRITE_REG(*pReg, SetSrc);
8055 }
8056 
8057 /**
8058   * @brief  Get the timer output set source.
8059   * @rmtoll SETx1R      SST          LL_HRTIM_OUT_GetOutputSetSrc\n
8060   *         SETx1R      RESYNC       LL_HRTIM_OUT_GetOutputSetSrc\n
8061   *         SETx1R      PER          LL_HRTIM_OUT_GetOutputSetSrc\n
8062   *         SETx1R      CMP1         LL_HRTIM_OUT_GetOutputSetSrc\n
8063   *         SETx1R      CMP2         LL_HRTIM_OUT_GetOutputSetSrc\n
8064   *         SETx1R      CMP3         LL_HRTIM_OUT_GetOutputSetSrc\n
8065   *         SETx1R      CMP4         LL_HRTIM_OUT_GetOutputSetSrc\n
8066   *         SETx1R      MSTPER       LL_HRTIM_OUT_GetOutputSetSrc\n
8067   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputSetSrc\n
8068   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputSetSrc\n
8069   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputSetSrc\n
8070   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputSetSrc\n
8071   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputSetSrc\n
8072   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputSetSrc\n
8073   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputSetSrc\n
8074   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputSetSrc\n
8075   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputSetSrc\n
8076   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputSetSrc\n
8077   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputSetSrc\n
8078   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputSetSrc\n
8079   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputSetSrc\n
8080   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputSetSrc\n
8081   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputSetSrc\n
8082   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputSetSrc\n
8083   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputSetSrc\n
8084   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputSetSrc\n
8085   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputSetSrc\n
8086   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputSetSrc\n
8087   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputSetSrc\n
8088   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputSetSrc\n
8089   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputSetSrc\n
8090   *         SETx1R      UPDATE       LL_HRTIM_OUT_GetOutputSetSrc\n
8091   *         SETx1R      SST          LL_HRTIM_OUT_GetOutputSetSrc\n
8092   *         SETx1R      RESYNC       LL_HRTIM_OUT_GetOutputSetSrc\n
8093   *         SETx1R      PER          LL_HRTIM_OUT_GetOutputSetSrc\n
8094   *         SETx1R      CMP1         LL_HRTIM_OUT_GetOutputSetSrc\n
8095   *         SETx1R      CMP2         LL_HRTIM_OUT_GetOutputSetSrc\n
8096   *         SETx1R      CMP3         LL_HRTIM_OUT_GetOutputSetSrc\n
8097   *         SETx1R      CMP4         LL_HRTIM_OUT_GetOutputSetSrc\n
8098   *         SETx1R      MSTPER       LL_HRTIM_OUT_GetOutputSetSrc\n
8099   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputSetSrc\n
8100   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputSetSrc\n
8101   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputSetSrc\n
8102   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputSetSrc\n
8103   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputSetSrc\n
8104   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputSetSrc\n
8105   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputSetSrc\n
8106   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputSetSrc\n
8107   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputSetSrc\n
8108   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputSetSrc\n
8109   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputSetSrc\n
8110   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputSetSrc\n
8111   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputSetSrc\n
8112   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputSetSrc\n
8113   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputSetSrc\n
8114   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputSetSrc\n
8115   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputSetSrc\n
8116   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputSetSrc\n
8117   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputSetSrc\n
8118   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputSetSrc\n
8119   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputSetSrc\n
8120   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputSetSrc\n
8121   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputSetSrc\n
8122   *         SETx1R      UPDATE       LL_HRTIM_OUT_GetOutputSetSrc
8123   * @param  HRTIMx High Resolution Timer instance
8124   * @param  Output This parameter can be one of the following values:
8125   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8126   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8127   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8128   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8129   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8130   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8131   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8132   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8133   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8134   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8135   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8136   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8137   * @retval SetSrc This parameter can be a combination of the following values:
8138   *         @arg @ref LL_HRTIM_OUTPUTSET_NONE
8139   *         @arg @ref LL_HRTIM_OUTPUTSET_RESYNC
8140   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMPER
8141   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP1
8142   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP2
8143   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP3
8144   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCMP4
8145   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERPER
8146   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP1
8147   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP2
8148   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP3
8149   *         @arg @ref LL_HRTIM_OUTPUTSET_MASTERCMP4
8150   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1
8151   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2
8152   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2
8153   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3
8154   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1
8155   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2
8156   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3
8157   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4
8158   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4
8159   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1
8160   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2
8161   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3
8162   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4
8163   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3
8164   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4
8165   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1
8166   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2
8167   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3
8168   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV1_TIMACMP2
8169   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV2_TIMACMP3
8170   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2
8171   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3
8172   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2
8173   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4
8174   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3
8175   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4
8176   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2
8177   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1
8178   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4
8179   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2
8180   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4
8181   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4
8182   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1
8183   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4
8184   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1
8185   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3
8186   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4
8187   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3
8188   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4
8189   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1
8190   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV5_TIMCCMP2
8191   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1
8192   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2
8193   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3
8194   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4
8195   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3
8196   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1
8197   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4
8198   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1
8199   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4
8200   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3
8201   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4
8202   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2
8203   *         @arg @ref LL_HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3
8204   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_1
8205   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_2
8206   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_3
8207   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_4
8208   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_5
8209   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_6
8210   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_7
8211   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_8
8212   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_9
8213   *         @arg @ref LL_HRTIM_OUTPUTSET_EEV_10
8214   *         @arg @ref LL_HRTIM_OUTPUTSET_UPDATE
8215   *         (source = TIMy and destination = TIMx, Compare Unit = CMPz).
8216   */
LL_HRTIM_OUT_GetOutputSetSrc(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8217 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetOutputSetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8218 {
8219   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8220   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) +
8221                                                            REG_OFFSET_TAB_SETxR[iOutput]));
8222   return (uint32_t) READ_REG(*pReg);
8223 }
8224 
8225 /**
8226   * @brief  Set the timer output reset source.
8227   * @rmtoll RSTx1R      RST          LL_HRTIM_OUT_SetOutputResetSrc\n
8228   *         RSTx1R      RESYNC       LL_HRTIM_OUT_SetOutputResetSrc\n
8229   *         RSTx1R      PER          LL_HRTIM_OUT_SetOutputResetSrc\n
8230   *         RSTx1R      CMP1         LL_HRTIM_OUT_SetOutputResetSrc\n
8231   *         RSTx1R      CMP2         LL_HRTIM_OUT_SetOutputResetSrc\n
8232   *         RSTx1R      CMP3         LL_HRTIM_OUT_SetOutputResetSrc\n
8233   *         RSTx1R      CMP4         LL_HRTIM_OUT_SetOutputResetSrc\n
8234   *         RSTx1R      MSTPER       LL_HRTIM_OUT_SetOutputResetSrc\n
8235   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputResetSrc\n
8236   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputResetSrc\n
8237   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputResetSrc\n
8238   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputResetSrc\n
8239   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputResetSrc\n
8240   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputResetSrc\n
8241   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputResetSrc\n
8242   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputResetSrc\n
8243   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputResetSrc\n
8244   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputResetSrc\n
8245   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputResetSrc\n
8246   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputResetSrc\n
8247   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputResetSrc\n
8248   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputResetSrc\n
8249   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputResetSrc\n
8250   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputResetSrc\n
8251   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputResetSrc\n
8252   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputResetSrc\n
8253   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputResetSrc\n
8254   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputResetSrc\n
8255   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputResetSrc\n
8256   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputResetSrc\n
8257   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputResetSrc\n
8258   *         RSTx1R      UPDATE       LL_HRTIM_OUT_SetOutputResetSrc\n
8259   *         RSTx1R      RST          LL_HRTIM_OUT_SetOutputResetSrc\n
8260   *         RSTx1R      RESYNC       LL_HRTIM_OUT_SetOutputResetSrc\n
8261   *         RSTx1R      PER          LL_HRTIM_OUT_SetOutputResetSrc\n
8262   *         RSTx1R      CMP1         LL_HRTIM_OUT_SetOutputResetSrc\n
8263   *         RSTx1R      CMP2         LL_HRTIM_OUT_SetOutputResetSrc\n
8264   *         RSTx1R      CMP3         LL_HRTIM_OUT_SetOutputResetSrc\n
8265   *         RSTx1R      CMP4         LL_HRTIM_OUT_SetOutputResetSrc\n
8266   *         RSTx1R      MSTPER       LL_HRTIM_OUT_SetOutputResetSrc\n
8267   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputResetSrc\n
8268   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputResetSrc\n
8269   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputResetSrc\n
8270   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputResetSrc\n
8271   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputResetSrc\n
8272   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputResetSrc\n
8273   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputResetSrc\n
8274   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputResetSrc\n
8275   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputResetSrc\n
8276   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputResetSrc\n
8277   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputResetSrc\n
8278   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputResetSrc\n
8279   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputResetSrc\n
8280   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputResetSrc\n
8281   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputResetSrc\n
8282   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputResetSrc\n
8283   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputResetSrc\n
8284   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputResetSrc\n
8285   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputResetSrc\n
8286   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputResetSrc\n
8287   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputResetSrc\n
8288   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputResetSrc\n
8289   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputResetSrc\n
8290   *         RSTx1R      UPDATE       LL_HRTIM_OUT_SetOutputResetSrc
8291   * @param  HRTIMx High Resolution Timer instance
8292   * @param  Output This parameter can be one of the following values:
8293   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8294   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8295   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8296   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8297   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8298   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8299   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8300   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8301   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8302   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8303   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8304   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8305   * @param ResetSrc This parameter can be a combination of the following values:
8306   *         @arg @ref LL_HRTIM_OUTPUTRESET_NONE
8307   *         @arg @ref LL_HRTIM_OUTPUTRESET_RESYNC
8308   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMPER
8309   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP1
8310   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP2
8311   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP3
8312   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP4
8313   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERPER
8314   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP1
8315   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP2
8316   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP3
8317   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP4
8318   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1
8319   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2
8320   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2
8321   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3
8322   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1
8323   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2
8324   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3
8325   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4
8326   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4
8327   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1
8328   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2
8329   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3
8330   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4
8331   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3
8332   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4
8333   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1
8334   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2
8335   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3
8336   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP2
8337   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP3
8338   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2
8339   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3
8340   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2
8341   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4
8342   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3
8343   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4
8344   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2
8345   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1
8346   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4
8347   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2
8348   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4
8349   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4
8350   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1
8351   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4
8352   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1
8353   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3
8354   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4
8355   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3
8356   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4
8357   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1
8358   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV5_TIMCCMP2
8359   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1
8360   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2
8361   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3
8362   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4
8363   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3
8364   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1
8365   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4
8366   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1
8367   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4
8368   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3
8369   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4
8370   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2
8371   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3
8372   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_1
8373   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_2
8374   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_3
8375   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_4
8376   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_5
8377   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_6
8378   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_7
8379   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_8
8380   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_9
8381   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_10
8382   *         @arg @ref LL_HRTIM_OUTPUTRESET_UPDATE
8383   *         (source = TIMy and destination = TIMx, Compare Unit = CMPz).
8384   * @retval None
8385   */
LL_HRTIM_OUT_SetOutputResetSrc(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t ResetSrc)8386 __STATIC_INLINE void LL_HRTIM_OUT_SetOutputResetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t ResetSrc)
8387 {
8388   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8389   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTx1R) +
8390                                                      REG_OFFSET_TAB_SETxR[iOutput]));
8391   WRITE_REG(*pReg, ResetSrc);
8392 }
8393 
8394 /**
8395   * @brief  Get the timer output set source.
8396   * @rmtoll RSTx1R      RST          LL_HRTIM_OUT_GetOutputResetSrc\n
8397   *         RSTx1R      RESYNC       LL_HRTIM_OUT_GetOutputResetSrc\n
8398   *         RSTx1R      PER          LL_HRTIM_OUT_GetOutputResetSrc\n
8399   *         RSTx1R      CMP1         LL_HRTIM_OUT_GetOutputResetSrc\n
8400   *         RSTx1R      CMP2         LL_HRTIM_OUT_GetOutputResetSrc\n
8401   *         RSTx1R      CMP3         LL_HRTIM_OUT_GetOutputResetSrc\n
8402   *         RSTx1R      CMP4         LL_HRTIM_OUT_GetOutputResetSrc\n
8403   *         RSTx1R      MSTPER       LL_HRTIM_OUT_GetOutputResetSrc\n
8404   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputResetSrc\n
8405   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputResetSrc\n
8406   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputResetSrc\n
8407   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputResetSrc\n
8408   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputResetSrc\n
8409   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputResetSrc\n
8410   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputResetSrc\n
8411   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputResetSrc\n
8412   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputResetSrc\n
8413   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputResetSrc\n
8414   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputResetSrc\n
8415   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputResetSrc\n
8416   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputResetSrc\n
8417   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputResetSrc\n
8418   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputResetSrc\n
8419   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputResetSrc\n
8420   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputResetSrc\n
8421   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputResetSrc\n
8422   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputResetSrc\n
8423   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputResetSrc\n
8424   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputResetSrc\n
8425   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputResetSrc\n
8426   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputResetSrc\n
8427   *         RSTx1R      UPDATE       LL_HRTIM_OUT_GetOutputResetSrc\n
8428   *         RSTx1R      RST          LL_HRTIM_OUT_GetOutputResetSrc\n
8429   *         RSTx1R      RESYNC       LL_HRTIM_OUT_GetOutputResetSrc\n
8430   *         RSTx1R      PER          LL_HRTIM_OUT_GetOutputResetSrc\n
8431   *         RSTx1R      CMP1         LL_HRTIM_OUT_GetOutputResetSrc\n
8432   *         RSTx1R      CMP2         LL_HRTIM_OUT_GetOutputResetSrc\n
8433   *         RSTx1R      CMP3         LL_HRTIM_OUT_GetOutputResetSrc\n
8434   *         RSTx1R      CMP4         LL_HRTIM_OUT_GetOutputResetSrc\n
8435   *         RSTx1R      MSTPER       LL_HRTIM_OUT_GetOutputResetSrc\n
8436   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputResetSrc\n
8437   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputResetSrc\n
8438   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputResetSrc\n
8439   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputResetSrc\n
8440   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputResetSrc\n
8441   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputResetSrc\n
8442   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputResetSrc\n
8443   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputResetSrc\n
8444   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputResetSrc\n
8445   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputResetSrc\n
8446   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputResetSrc\n
8447   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputResetSrc\n
8448   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputResetSrc\n
8449   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputResetSrc\n
8450   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputResetSrc\n
8451   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputResetSrc\n
8452   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputResetSrc\n
8453   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputResetSrc\n
8454   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputResetSrc\n
8455   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputResetSrc\n
8456   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputResetSrc\n
8457   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputResetSrc\n
8458   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputResetSrc\n
8459   *         RSTx1R      UPDATE       LL_HRTIM_OUT_GetOutputResetSrc
8460   * @param  HRTIMx High Resolution Timer instance
8461   * @param  Output This parameter can be one of the following values:
8462   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8463   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8464   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8465   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8466   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8467   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8468   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8469   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8470   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8471   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8472   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8473   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8474   * @retval ResetSrc This parameter can be a combination of the following values:
8475   *         @arg @ref LL_HRTIM_OUTPUTRESET_NONE
8476   *         @arg @ref LL_HRTIM_OUTPUTRESET_RESYNC
8477   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMPER
8478   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP1
8479   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP2
8480   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP3
8481   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCMP4
8482   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERPER
8483   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP1
8484   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP2
8485   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP3
8486   *         @arg @ref LL_HRTIM_OUTPUTRESET_MASTERCMP4
8487   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1
8488   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2
8489   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2
8490   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3
8491   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1
8492   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2
8493   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3
8494   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4
8495   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4
8496   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1
8497   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2
8498   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3
8499   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4
8500   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3
8501   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4
8502   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1
8503   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2
8504   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3
8505   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP2
8506   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP3
8507   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2
8508   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3
8509   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2
8510   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4
8511   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3
8512   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4
8513   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2
8514   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1
8515   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4
8516   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2
8517   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4
8518   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4
8519   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1
8520   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4
8521   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1
8522   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3
8523   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4
8524   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3
8525   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4
8526   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1
8527   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV5_TIMCCMP2
8528   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1
8529   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2
8530   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3
8531   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4
8532   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3
8533   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1
8534   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4
8535   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1
8536   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4
8537   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3
8538   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4
8539   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2
8540   *         @arg @ref LL_HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3
8541   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_1
8542   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_2
8543   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_3
8544   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_4
8545   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_5
8546   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_6
8547   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_7
8548   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_8
8549   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_9
8550   *         @arg @ref LL_HRTIM_OUTPUTRESET_EEV_10
8551   *         @arg @ref LL_HRTIM_OUTPUTRESET_UPDATE
8552   *         (source = TIMy and destination = TIMx, Compare Unit = CMPz).
8553   */
LL_HRTIM_OUT_GetOutputResetSrc(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8554 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetOutputResetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8555 {
8556   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8557   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTx1R) +
8558                                                            REG_OFFSET_TAB_SETxR[iOutput]));
8559   return (uint32_t) READ_REG(*pReg);
8560 }
8561 
8562 /**
8563   * @brief  Configure a timer output.
8564   * @rmtoll OUTxR      POL1          LL_HRTIM_OUT_Config\n
8565   *         OUTxR      IDLEM1        LL_HRTIM_OUT_Config\n
8566   *         OUTxR      IDLES1        LL_HRTIM_OUT_Config\n
8567   *         OUTxR      FAULT1        LL_HRTIM_OUT_Config\n
8568   *         OUTxR      CHP1          LL_HRTIM_OUT_Config\n
8569   *         OUTxR      DIDL1         LL_HRTIM_OUT_Config\n
8570   *         OUTxR      POL2          LL_HRTIM_OUT_Config\n
8571   *         OUTxR      IDLEM2        LL_HRTIM_OUT_Config\n
8572   *         OUTxR      IDLES2        LL_HRTIM_OUT_Config\n
8573   *         OUTxR      FAULT2        LL_HRTIM_OUT_Config\n
8574   *         OUTxR      CHP2          LL_HRTIM_OUT_Config\n
8575   *         OUTxR      DIDL2         LL_HRTIM_OUT_Config
8576   * @param  HRTIMx High Resolution Timer instance
8577   * @param  Output This parameter can be one of the following values:
8578   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8579   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8580   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8581   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8582   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8583   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8584   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8585   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8586   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8587   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8588   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8589   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8590   * @param  Configuration This parameter must be a combination of all the following values:
8591   *         @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY or @ref LL_HRTIM_OUT_NEGATIVE_POLARITY
8592   *         @arg @ref LL_HRTIM_OUT_NO_IDLE or @ref LL_HRTIM_OUT_IDLE_WHEN_BURST
8593   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE or @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE
8594   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION or @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE or @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE or @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ
8595   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED or @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED
8596   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR or @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED
8597   * @retval None
8598   */
LL_HRTIM_OUT_Config(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t Configuration)8599 __STATIC_INLINE void LL_HRTIM_OUT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t Configuration)
8600 {
8601   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8602   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8603                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8604   MODIFY_REG(*pReg, (HRTIM_OUT_CONFIG_MASK << REG_SHIFT_TAB_OUTxR[iOutput]),
8605              (Configuration << REG_SHIFT_TAB_OUTxR[iOutput]));
8606 }
8607 
8608 /**
8609   * @brief  Set the polarity of a timer output.
8610   * @rmtoll OUTxR      POL1          LL_HRTIM_OUT_SetPolarity\n
8611   *         OUTxR      POL2          LL_HRTIM_OUT_SetPolarity
8612   * @param  HRTIMx High Resolution Timer instance
8613   * @param  Output This parameter can be one of the following values:
8614   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8615   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8616   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8617   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8618   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8619   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8620   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8621   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8622   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8623   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8624   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8625   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8626   * @param  Polarity This parameter can be one of the following values:
8627   *         @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY
8628   *         @arg @ref LL_HRTIM_OUT_NEGATIVE_POLARITY
8629   * @retval None
8630   */
LL_HRTIM_OUT_SetPolarity(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t Polarity)8631 __STATIC_INLINE void LL_HRTIM_OUT_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t Polarity)
8632 {
8633   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8634   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8635                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8636   MODIFY_REG(*pReg, (HRTIM_OUTR_POL1 << REG_SHIFT_TAB_OUTxR[iOutput]), (Polarity << REG_SHIFT_TAB_OUTxR[iOutput]));
8637 }
8638 
8639 /**
8640   * @brief  Get actual polarity of the timer output.
8641   * @rmtoll OUTxR      POL1          LL_HRTIM_OUT_GetPolarity\n
8642   *         OUTxR      POL2          LL_HRTIM_OUT_GetPolarity
8643   * @param  HRTIMx High Resolution Timer instance
8644   * @param  Output This parameter can be one of the following values:
8645   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8646   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8647   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8648   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8649   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8650   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8651   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8652   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8653   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8654   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8655   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8656   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8657   * @retval Polarity This parameter can be one of the following values:
8658   *         @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY
8659   *         @arg @ref LL_HRTIM_OUT_NEGATIVE_POLARITY
8660   */
LL_HRTIM_OUT_GetPolarity(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8661 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetPolarity(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8662 {
8663   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8664   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8665                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
8666   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_POL1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
8667 }
8668 
8669 /**
8670   * @brief  Set the output IDLE mode.
8671   * @rmtoll OUTxR      IDLEM1          LL_HRTIM_OUT_SetIdleMode\n
8672   *         OUTxR      IDLEM2          LL_HRTIM_OUT_SetIdleMode
8673   * @note This function must not be called when the burst mode is active
8674   * @param  HRTIMx High Resolution Timer instance
8675   * @param  Output This parameter can be one of the following values:
8676   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8677   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8678   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8679   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8680   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8681   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8682   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8683   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8684   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8685   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8686   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8687   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8688   * @param  IdleMode This parameter can be one of the following values:
8689   *         @arg @ref LL_HRTIM_OUT_NO_IDLE
8690   *         @arg @ref LL_HRTIM_OUT_IDLE_WHEN_BURST
8691   * @retval None
8692   */
LL_HRTIM_OUT_SetIdleMode(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t IdleMode)8693 __STATIC_INLINE void LL_HRTIM_OUT_SetIdleMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t IdleMode)
8694 {
8695   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8696   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8697                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8698   MODIFY_REG(*pReg, (HRTIM_OUTR_IDLM1 << (REG_SHIFT_TAB_OUTxR[iOutput])), (IdleMode << (REG_SHIFT_TAB_OUTxR[iOutput])));
8699 }
8700 
8701 /**
8702   * @brief  Get actual output IDLE mode.
8703   * @rmtoll OUTxR      IDLEM1          LL_HRTIM_OUT_GetIdleMode\n
8704   *         OUTxR      IDLEM2          LL_HRTIM_OUT_GetIdleMode
8705   * @param  HRTIMx High Resolution Timer instance
8706   * @param  Output This parameter can be one of the following values:
8707   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8708   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8709   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8710   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8711   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8712   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8713   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8714   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8715   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8716   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8717   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8718   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8719   * @retval IdleMode This parameter can be one of the following values:
8720   *         @arg @ref LL_HRTIM_OUT_NO_IDLE
8721   *         @arg @ref LL_HRTIM_OUT_IDLE_WHEN_BURST
8722   */
LL_HRTIM_OUT_GetIdleMode(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8723 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetIdleMode(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8724 {
8725   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8726   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8727                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
8728   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_IDLM1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
8729 }
8730 
8731 /**
8732   * @brief  Set the output IDLE level.
8733   * @rmtoll OUTxR      IDLES1          LL_HRTIM_OUT_SetIdleLevel\n
8734   *         OUTxR      IDLES2          LL_HRTIM_OUT_SetIdleLevel
8735   * @note This function must be called prior enabling the timer.
8736   * @note Idle level isn't relevant when the output idle mode is set to LL_HRTIM_OUT_NO_IDLE.
8737   * @param  HRTIMx High Resolution Timer instance
8738   * @param  Output This parameter can be one of the following values:
8739   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8740   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8741   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8742   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8743   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8744   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8745   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8746   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8747   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8748   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8749   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8750   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8751   * @param  IdleLevel This parameter can be one of the following values:
8752   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE
8753   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE
8754   * @retval None
8755   */
LL_HRTIM_OUT_SetIdleLevel(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t IdleLevel)8756 __STATIC_INLINE void LL_HRTIM_OUT_SetIdleLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t IdleLevel)
8757 {
8758   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8759   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8760                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8761   MODIFY_REG(*pReg, (HRTIM_OUTR_IDLES1 << REG_SHIFT_TAB_OUTxR[iOutput]), (IdleLevel << REG_SHIFT_TAB_OUTxR[iOutput]));
8762 }
8763 
8764 /**
8765   * @brief  Get actual output IDLE level.
8766   * @rmtoll OUTxR      IDLES1          LL_HRTIM_OUT_GetIdleLevel\n
8767   *         OUTxR      IDLES2          LL_HRTIM_OUT_GetIdleLevel
8768   * @param  HRTIMx High Resolution Timer instance
8769   * @param  Output This parameter can be one of the following values:
8770   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8771   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8772   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8773   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8774   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8775   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8776   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8777   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8778   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8779   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8780   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8781   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8782   * @retval IdleLevel This parameter can be one of the following values:
8783   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE
8784   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE
8785   */
LL_HRTIM_OUT_GetIdleLevel(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8786 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetIdleLevel(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8787 {
8788   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8789   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8790                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
8791   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_IDLES1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
8792 }
8793 
8794 /**
8795   * @brief  Set the output FAULT state.
8796   * @rmtoll OUTxR      FAULT1          LL_HRTIM_OUT_SetFaultState\n
8797   *         OUTxR      FAULT2          LL_HRTIM_OUT_SetFaultState
8798   * @note This function must not called when the timer is enabled and a fault
8799   *       channel is enabled at timer level.
8800   * @param  HRTIMx High Resolution Timer instance
8801   * @param  Output This parameter can be one of the following values:
8802   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8803   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8804   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8805   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8806   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8807   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8808   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8809   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8810   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8811   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8812   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8813   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8814   * @param  FaultState This parameter can be one of the following values:
8815   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION
8816   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE
8817   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE
8818   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ
8819   * @retval None
8820   */
LL_HRTIM_OUT_SetFaultState(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t FaultState)8821 __STATIC_INLINE void LL_HRTIM_OUT_SetFaultState(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t FaultState)
8822 {
8823   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8824   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8825                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8826   MODIFY_REG(*pReg, (HRTIM_OUTR_FAULT1 << REG_SHIFT_TAB_OUTxR[iOutput]), (FaultState << REG_SHIFT_TAB_OUTxR[iOutput]));
8827 }
8828 
8829 /**
8830   * @brief  Get actual FAULT state.
8831   * @rmtoll OUTxR      FAULT1          LL_HRTIM_OUT_GetFaultState\n
8832   *         OUTxR      FAULT2          LL_HRTIM_OUT_GetFaultState
8833   * @param  HRTIMx High Resolution Timer instance
8834   * @param  Output This parameter can be one of the following values:
8835   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8836   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8837   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8838   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8839   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8840   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8841   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8842   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8843   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8844   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8845   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8846   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8847   * @retval FaultState This parameter can be one of the following values:
8848   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION
8849   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE
8850   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE
8851   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ
8852   */
LL_HRTIM_OUT_GetFaultState(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8853 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetFaultState(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8854 {
8855   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8856   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8857                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
8858   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_FAULT1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
8859 }
8860 
8861 /**
8862   * @brief  Set the output chopper mode.
8863   * @rmtoll OUTxR      CHP1          LL_HRTIM_OUT_SetChopperMode\n
8864   *         OUTxR      CHP2          LL_HRTIM_OUT_SetChopperMode
8865   * @note This function must not called when the timer is enabled.
8866   * @param  HRTIMx High Resolution Timer instance
8867   * @param  Output This parameter can be one of the following values:
8868   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8869   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8870   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8871   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8872   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8873   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8874   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8875   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8876   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8877   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8878   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8879   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8880   * @param  ChopperMode This parameter can be one of the following values:
8881   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED
8882   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED
8883   * @retval None
8884   */
LL_HRTIM_OUT_SetChopperMode(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t ChopperMode)8885 __STATIC_INLINE void LL_HRTIM_OUT_SetChopperMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t ChopperMode)
8886 {
8887   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8888   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8889                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8890   MODIFY_REG(*pReg, (HRTIM_OUTR_CHP1 << REG_SHIFT_TAB_OUTxR[iOutput]), (ChopperMode << REG_SHIFT_TAB_OUTxR[iOutput]));
8891 }
8892 
8893 /**
8894   * @brief  Get actual output chopper mode
8895   * @rmtoll OUTxR      CHP1          LL_HRTIM_OUT_GetChopperMode\n
8896   *         OUTxR      CHP2          LL_HRTIM_OUT_GetChopperMode
8897   * @param  HRTIMx High Resolution Timer instance
8898   * @param  Output This parameter can be one of the following values:
8899   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8900   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8901   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8902   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8903   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8904   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8905   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8906   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8907   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8908   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8909   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8910   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8911   * @retval ChopperMode This parameter can be one of the following values:
8912   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED
8913   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED
8914   */
LL_HRTIM_OUT_GetChopperMode(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8915 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetChopperMode(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8916 {
8917   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8918   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8919                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
8920   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_CHP1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
8921 }
8922 
8923 /**
8924   * @brief  Set the output burst mode entry mode.
8925   * @rmtoll OUTxR      DIDL1          LL_HRTIM_OUT_SetBMEntryMode\n
8926   *         OUTxR      DIDL2          LL_HRTIM_OUT_SetBMEntryMode
8927   * @note This function must not called when the timer is enabled.
8928   * @param  HRTIMx High Resolution Timer instance
8929   * @param  Output This parameter can be one of the following values:
8930   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8931   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8932   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8933   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8934   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8935   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8936   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8937   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8938   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8939   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8940   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8941   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8942   * @param  BMEntryMode This parameter can be one of the following values:
8943   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR
8944   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED
8945   * @retval None
8946   */
LL_HRTIM_OUT_SetBMEntryMode(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t BMEntryMode)8947 __STATIC_INLINE void LL_HRTIM_OUT_SetBMEntryMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t BMEntryMode)
8948 {
8949   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8950   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8951                                                      REG_OFFSET_TAB_OUTxR[iOutput]));
8952   MODIFY_REG(*pReg, (HRTIM_OUTR_DIDL1 << REG_SHIFT_TAB_OUTxR[iOutput]), (BMEntryMode << REG_SHIFT_TAB_OUTxR[iOutput]));
8953 }
8954 
8955 /**
8956   * @brief  Get actual output burst mode entry mode.
8957   * @rmtoll OUTxR      DIDL1          LL_HRTIM_OUT_GetBMEntryMode\n
8958   *         OUTxR      DIDL2          LL_HRTIM_OUT_GetBMEntryMode
8959   * @param  HRTIMx High Resolution Timer instance
8960   * @param  Output This parameter can be one of the following values:
8961   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8962   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8963   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8964   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8965   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8966   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8967   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8968   *         @arg @ref LL_HRTIM_OUTPUT_TD2
8969   *         @arg @ref LL_HRTIM_OUTPUT_TE1
8970   *         @arg @ref LL_HRTIM_OUTPUT_TE2
8971   *         @arg @ref LL_HRTIM_OUTPUT_TF1
8972   *         @arg @ref LL_HRTIM_OUTPUT_TF2
8973   * @retval BMEntryMode This parameter can be one of the following values:
8974   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR
8975   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED
8976   */
LL_HRTIM_OUT_GetBMEntryMode(const HRTIM_TypeDef * HRTIMx,uint32_t Output)8977 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetBMEntryMode(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
8978 {
8979   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
8980   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
8981                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
8982   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_DIDL1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
8983 }
8984 
8985 /**
8986   * @brief  Get the level (active or inactive) of the designated output when the
8987   *         delayed protection was triggered.
8988   * @rmtoll TIMxISR      O1SRSR          LL_HRTIM_OUT_GetDLYPRTOutStatus\n
8989   *         TIMxISR      O2SRSR          LL_HRTIM_OUT_GetDLYPRTOutStatus
8990   * @param  HRTIMx High Resolution Timer instance
8991   * @param  Output This parameter can be one of the following values:
8992   *         @arg @ref LL_HRTIM_OUTPUT_TA1
8993   *         @arg @ref LL_HRTIM_OUTPUT_TA2
8994   *         @arg @ref LL_HRTIM_OUTPUT_TB1
8995   *         @arg @ref LL_HRTIM_OUTPUT_TB2
8996   *         @arg @ref LL_HRTIM_OUTPUT_TC1
8997   *         @arg @ref LL_HRTIM_OUTPUT_TC2
8998   *         @arg @ref LL_HRTIM_OUTPUT_TD1
8999   *         @arg @ref LL_HRTIM_OUTPUT_TD2
9000   *         @arg @ref LL_HRTIM_OUTPUT_TE1
9001   *         @arg @ref LL_HRTIM_OUTPUT_TE2
9002   *         @arg @ref LL_HRTIM_OUTPUT_TF1
9003   *         @arg @ref LL_HRTIM_OUTPUT_TF2
9004   * @retval OutputLevel This parameter can be one of the following values:
9005   *         @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE
9006   *         @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE
9007   */
LL_HRTIM_OUT_GetDLYPRTOutStatus(const HRTIM_TypeDef * HRTIMx,uint32_t Output)9008 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetDLYPRTOutStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
9009 {
9010   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
9011   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxISR) +
9012                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
9013   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_TIMISR_O1STAT) << REG_SHIFT_TAB_OxSTAT[iOutput]) >> REG_SHIFT_TAB_OxSTAT[iOutput]) >>
9014           HRTIM_TIMISR_O1STAT_Pos);
9015 }
9016 
9017 /**
9018   * @brief  Force the timer output to its active or inactive level.
9019   * @rmtoll SETx1R      SST          LL_HRTIM_OUT_ForceLevel\n
9020   *         RSTx1R      SRT          LL_HRTIM_OUT_ForceLevel\n
9021   *         SETx2R      SST          LL_HRTIM_OUT_ForceLevel\n
9022   *         RSTx2R      SRT          LL_HRTIM_OUT_ForceLevel
9023   * @param  HRTIMx High Resolution Timer instance
9024   * @param  Output This parameter can be one of the following values:
9025   *         @arg @ref LL_HRTIM_OUTPUT_TA1
9026   *         @arg @ref LL_HRTIM_OUTPUT_TA2
9027   *         @arg @ref LL_HRTIM_OUTPUT_TB1
9028   *         @arg @ref LL_HRTIM_OUTPUT_TB2
9029   *         @arg @ref LL_HRTIM_OUTPUT_TC1
9030   *         @arg @ref LL_HRTIM_OUTPUT_TC2
9031   *         @arg @ref LL_HRTIM_OUTPUT_TD1
9032   *         @arg @ref LL_HRTIM_OUTPUT_TD2
9033   *         @arg @ref LL_HRTIM_OUTPUT_TE1
9034   *         @arg @ref LL_HRTIM_OUTPUT_TE2
9035   *         @arg @ref LL_HRTIM_OUTPUT_TF1
9036   *         @arg @ref LL_HRTIM_OUTPUT_TF2
9037   * @param  OutputLevel This parameter can be one of the following values:
9038   *         @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE
9039   *         @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE
9040   * @retval None
9041   */
LL_HRTIM_OUT_ForceLevel(HRTIM_TypeDef * HRTIMx,uint32_t Output,uint32_t OutputLevel)9042 __STATIC_INLINE void LL_HRTIM_OUT_ForceLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t OutputLevel)
9043 {
9044   const uint8_t REG_OFFSET_TAB_OUT_LEVEL[] =
9045   {
9046     0x04U,   /* 0: LL_HRTIM_OUT_LEVEL_INACTIVE  */
9047     0x00U    /* 1: LL_HRTIM_OUT_LEVEL_ACTIVE  */
9048   };
9049 
9050   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
9051   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) +
9052                                                      REG_OFFSET_TAB_SETxR[iOutput] + REG_OFFSET_TAB_OUT_LEVEL[OutputLevel]));
9053   SET_BIT(*pReg, HRTIM_SET1R_SST);
9054 }
9055 
9056 /**
9057   * @brief  Get actual output level, before the output stage (chopper, polarity).
9058   * @rmtoll TIMxISR     O1CPY          LL_HRTIM_OUT_GetLevel\n
9059   *         TIMxISR     O2CPY          LL_HRTIM_OUT_GetLevel
9060   * @param  HRTIMx High Resolution Timer instance
9061   * @param  Output This parameter can be one of the following values:
9062   *         @arg @ref LL_HRTIM_OUTPUT_TA1
9063   *         @arg @ref LL_HRTIM_OUTPUT_TA2
9064   *         @arg @ref LL_HRTIM_OUTPUT_TB1
9065   *         @arg @ref LL_HRTIM_OUTPUT_TB2
9066   *         @arg @ref LL_HRTIM_OUTPUT_TC1
9067   *         @arg @ref LL_HRTIM_OUTPUT_TC2
9068   *         @arg @ref LL_HRTIM_OUTPUT_TD1
9069   *         @arg @ref LL_HRTIM_OUTPUT_TD2
9070   *         @arg @ref LL_HRTIM_OUTPUT_TE1
9071   *         @arg @ref LL_HRTIM_OUTPUT_TE2
9072   *         @arg @ref LL_HRTIM_OUTPUT_TF1
9073   *         @arg @ref LL_HRTIM_OUTPUT_TF2
9074   * @retval OutputLevel This parameter can be one of the following values:
9075   *         @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE
9076   *         @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE
9077   */
LL_HRTIM_OUT_GetLevel(const HRTIM_TypeDef * HRTIMx,uint32_t Output)9078 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetLevel(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
9079 {
9080   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
9081   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxISR) +
9082                                                            REG_OFFSET_TAB_OUTxR[iOutput]));
9083   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_TIMISR_O1CPY) << REG_SHIFT_TAB_OxSTAT[iOutput]) >> REG_SHIFT_TAB_OxSTAT[iOutput]) >>
9084           HRTIM_TIMISR_O1CPY_Pos);
9085 }
9086 
9087 /**
9088   * @}
9089   */
9090 
9091 /** @defgroup HRTIM_LL_EF_External_Event_management External_Event_management
9092   * @{
9093   */
9094 
9095 /**
9096   * @brief  Configure external event conditioning.
9097   * @rmtoll EECR1     EE1SRC          LL_HRTIM_EE_Config\n
9098   *         EECR1     EE1POL          LL_HRTIM_EE_Config\n
9099   *         EECR1     EE1SNS          LL_HRTIM_EE_Config\n
9100   *         EECR1     EE1FAST         LL_HRTIM_EE_Config\n
9101   *         EECR1     EE2SRC          LL_HRTIM_EE_Config\n
9102   *         EECR1     EE2POL          LL_HRTIM_EE_Config\n
9103   *         EECR1     EE2SNS          LL_HRTIM_EE_Config\n
9104   *         EECR1     EE2FAST         LL_HRTIM_EE_Config\n
9105   *         EECR1     EE3SRC          LL_HRTIM_EE_Config\n
9106   *         EECR1     EE3POL          LL_HRTIM_EE_Config\n
9107   *         EECR1     EE3SNS          LL_HRTIM_EE_Config\n
9108   *         EECR1     EE3FAST         LL_HRTIM_EE_Config\n
9109   *         EECR1     EE4SRC          LL_HRTIM_EE_Config\n
9110   *         EECR1     EE4POL          LL_HRTIM_EE_Config\n
9111   *         EECR1     EE4SNS          LL_HRTIM_EE_Config\n
9112   *         EECR1     EE4FAST         LL_HRTIM_EE_Config\n
9113   *         EECR1     EE5SRC          LL_HRTIM_EE_Config\n
9114   *         EECR1     EE5POL          LL_HRTIM_EE_Config\n
9115   *         EECR1     EE5SNS          LL_HRTIM_EE_Config\n
9116   *         EECR1     EE5FAST         LL_HRTIM_EE_Config\n
9117   *         EECR2     EE6SRC          LL_HRTIM_EE_Config\n
9118   *         EECR2     EE6POL          LL_HRTIM_EE_Config\n
9119   *         EECR2     EE6SNS          LL_HRTIM_EE_Config\n
9120   *         EECR2     EE6FAST         LL_HRTIM_EE_Config\n
9121   *         EECR2     EE7SRC          LL_HRTIM_EE_Config\n
9122   *         EECR2     EE7POL          LL_HRTIM_EE_Config\n
9123   *         EECR2     EE7SNS          LL_HRTIM_EE_Config\n
9124   *         EECR2     EE7FAST         LL_HRTIM_EE_Config\n
9125   *         EECR2     EE8SRC          LL_HRTIM_EE_Config\n
9126   *         EECR2     EE8POL          LL_HRTIM_EE_Config\n
9127   *         EECR2     EE8SNS          LL_HRTIM_EE_Config\n
9128   *         EECR2     EE8FAST         LL_HRTIM_EE_Config\n
9129   *         EECR2     EE9SRC          LL_HRTIM_EE_Config\n
9130   *         EECR2     EE9POL          LL_HRTIM_EE_Config\n
9131   *         EECR2     EE9SNS          LL_HRTIM_EE_Config\n
9132   *         EECR2     EE9FAST         LL_HRTIM_EE_Config\n
9133   *         EECR2     EE10SRC         LL_HRTIM_EE_Config\n
9134   *         EECR2     EE10POL         LL_HRTIM_EE_Config\n
9135   *         EECR2     EE10SNS         LL_HRTIM_EE_Config\n
9136   *         EECR2     EE10FAST        LL_HRTIM_EE_Config
9137   * @note This function must not be called when the timer counter is enabled.
9138   * @note Event source (EExSrc1..EExSRC4) mapping depends on configured event channel.
9139   * @note Fast mode is available only for LL_HRTIM_EVENT_1..5.
9140   * @param  HRTIMx High Resolution Timer instance
9141   * @param  Event This parameter can be one of the following values:
9142   *         @arg @ref LL_HRTIM_EVENT_1
9143   *         @arg @ref LL_HRTIM_EVENT_2
9144   *         @arg @ref LL_HRTIM_EVENT_3
9145   *         @arg @ref LL_HRTIM_EVENT_4
9146   *         @arg @ref LL_HRTIM_EVENT_5
9147   *         @arg @ref LL_HRTIM_EVENT_6
9148   *         @arg @ref LL_HRTIM_EVENT_7
9149   *         @arg @ref LL_HRTIM_EVENT_8
9150   *         @arg @ref LL_HRTIM_EVENT_9
9151   *         @arg @ref LL_HRTIM_EVENT_10
9152   * @param  Configuration This parameter must be a combination of all the following values:
9153   *         @arg External event source 1 or External event source 2 or External event source 3 or External event source 4
9154   *         @arg @ref LL_HRTIM_EE_POLARITY_HIGH or @ref LL_HRTIM_EE_POLARITY_LOW
9155   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL or @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE or @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE or @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES
9156   *         @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE or @ref LL_HRTIM_EE_FASTMODE_ENABLE
9157   * @retval None
9158   */
LL_HRTIM_EE_Config(HRTIM_TypeDef * HRTIMx,uint32_t Event,uint32_t Configuration)9159 __STATIC_INLINE void LL_HRTIM_EE_Config(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Configuration)
9160 {
9161   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9162   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9163                                                      REG_OFFSET_TAB_EECR[iEvent]));
9164   MODIFY_REG(*pReg, (HRTIM_EE_CONFIG_MASK << REG_SHIFT_TAB_EExSRC[iEvent]),
9165              (Configuration << REG_SHIFT_TAB_EExSRC[iEvent]));
9166 }
9167 
9168 /**
9169   * @brief  Set the external event source.
9170   * @rmtoll EECR1     EE1SRC          LL_HRTIM_EE_SetSrc\n
9171   *         EECR1     EE2SRC          LL_HRTIM_EE_SetSrc\n
9172   *         EECR1     EE3SRC          LL_HRTIM_EE_SetSrc\n
9173   *         EECR1     EE4SRC          LL_HRTIM_EE_SetSrc\n
9174   *         EECR1     EE5SRC          LL_HRTIM_EE_SetSrc\n
9175   *         EECR2     EE6SRC          LL_HRTIM_EE_SetSrc\n
9176   *         EECR2     EE7SRC          LL_HRTIM_EE_SetSrc\n
9177   *         EECR2     EE8SRC          LL_HRTIM_EE_SetSrc\n
9178   *         EECR2     EE9SRC          LL_HRTIM_EE_SetSrc\n
9179   *         EECR2     EE10SRC         LL_HRTIM_EE_SetSrc
9180   * @param  HRTIMx High Resolution Timer instance
9181   * @param  Event This parameter can be one of the following values:
9182   *         @arg @ref LL_HRTIM_EVENT_1
9183   *         @arg @ref LL_HRTIM_EVENT_2
9184   *         @arg @ref LL_HRTIM_EVENT_3
9185   *         @arg @ref LL_HRTIM_EVENT_4
9186   *         @arg @ref LL_HRTIM_EVENT_5
9187   *         @arg @ref LL_HRTIM_EVENT_6
9188   *         @arg @ref LL_HRTIM_EVENT_7
9189   *         @arg @ref LL_HRTIM_EVENT_8
9190   *         @arg @ref LL_HRTIM_EVENT_9
9191   *         @arg @ref LL_HRTIM_EVENT_10
9192   * @param  Src This parameter can be one of the following values:
9193   *         @arg External event source 1
9194   *         @arg External event source 2
9195   *         @arg External event source 3
9196   *         @arg External event source 4
9197   * @retval None
9198   */
LL_HRTIM_EE_SetSrc(HRTIM_TypeDef * HRTIMx,uint32_t Event,uint32_t Src)9199 __STATIC_INLINE void LL_HRTIM_EE_SetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Src)
9200 {
9201   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9202   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9203                                                      REG_OFFSET_TAB_EECR[iEvent]));
9204   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1SRC << REG_SHIFT_TAB_EExSRC[iEvent]), (Src << REG_SHIFT_TAB_EExSRC[iEvent]));
9205 }
9206 
9207 /**
9208   * @brief  Get actual external event source.
9209   * @rmtoll EECR1     EE1SRC          LL_HRTIM_EE_GetSrc\n
9210   *         EECR1     EE2SRC          LL_HRTIM_EE_GetSrc\n
9211   *         EECR1     EE3SRC          LL_HRTIM_EE_GetSrc\n
9212   *         EECR1     EE4SRC          LL_HRTIM_EE_GetSrc\n
9213   *         EECR1     EE5SRC          LL_HRTIM_EE_GetSrc\n
9214   *         EECR2     EE6SRC          LL_HRTIM_EE_GetSrc\n
9215   *         EECR2     EE7SRC          LL_HRTIM_EE_GetSrc\n
9216   *         EECR2     EE8SRC          LL_HRTIM_EE_GetSrc\n
9217   *         EECR2     EE9SRC          LL_HRTIM_EE_GetSrc\n
9218   *         EECR2     EE10SRC         LL_HRTIM_EE_GetSrc
9219   * @param  HRTIMx High Resolution Timer instance
9220   * @param  Event This parameter can be one of the following values:
9221   *         @arg @ref LL_HRTIM_EVENT_1
9222   *         @arg @ref LL_HRTIM_EVENT_2
9223   *         @arg @ref LL_HRTIM_EVENT_3
9224   *         @arg @ref LL_HRTIM_EVENT_4
9225   *         @arg @ref LL_HRTIM_EVENT_5
9226   *         @arg @ref LL_HRTIM_EVENT_6
9227   *         @arg @ref LL_HRTIM_EVENT_7
9228   *         @arg @ref LL_HRTIM_EVENT_8
9229   *         @arg @ref LL_HRTIM_EVENT_9
9230   *         @arg @ref LL_HRTIM_EVENT_10
9231   * @retval EventSrc This parameter can be one of the following values:
9232   *         @arg External event source 1
9233   *         @arg External event source 2
9234   *         @arg External event source 3
9235   *         @arg External event source 4
9236   */
LL_HRTIM_EE_GetSrc(const HRTIM_TypeDef * HRTIMx,uint32_t Event)9237 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
9238 {
9239   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9240   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9241                                                            REG_OFFSET_TAB_EECR[iEvent]));
9242   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1SRC) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
9243 }
9244 
9245 /**
9246   * @brief  Set the polarity of an external event.
9247   * @rmtoll EECR1     EE1POL          LL_HRTIM_EE_SetPolarity\n
9248   *         EECR1     EE2POL          LL_HRTIM_EE_SetPolarity\n
9249   *         EECR1     EE3POL          LL_HRTIM_EE_SetPolarity\n
9250   *         EECR1     EE4POL          LL_HRTIM_EE_SetPolarity\n
9251   *         EECR1     EE5POL          LL_HRTIM_EE_SetPolarity\n
9252   *         EECR2     EE6POL          LL_HRTIM_EE_SetPolarity\n
9253   *         EECR2     EE7POL          LL_HRTIM_EE_SetPolarity\n
9254   *         EECR2     EE8POL          LL_HRTIM_EE_SetPolarity\n
9255   *         EECR2     EE9POL          LL_HRTIM_EE_SetPolarity\n
9256   *         EECR2     EE10POL         LL_HRTIM_EE_SetPolarity
9257   * @note This function must not be called when the timer counter is enabled.
9258   * @note Event polarity is only significant when event detection is level-sensitive.
9259   * @param  HRTIMx High Resolution Timer instance
9260   * @param  Event This parameter can be one of the following values:
9261   *         @arg @ref LL_HRTIM_EVENT_1
9262   *         @arg @ref LL_HRTIM_EVENT_2
9263   *         @arg @ref LL_HRTIM_EVENT_3
9264   *         @arg @ref LL_HRTIM_EVENT_4
9265   *         @arg @ref LL_HRTIM_EVENT_5
9266   *         @arg @ref LL_HRTIM_EVENT_6
9267   *         @arg @ref LL_HRTIM_EVENT_7
9268   *         @arg @ref LL_HRTIM_EVENT_8
9269   *         @arg @ref LL_HRTIM_EVENT_9
9270   *         @arg @ref LL_HRTIM_EVENT_10
9271   * @param  Polarity This parameter can be one of the following values:
9272   *         @arg @ref LL_HRTIM_EE_POLARITY_HIGH
9273   *         @arg @ref LL_HRTIM_EE_POLARITY_LOW
9274   * @retval None
9275   */
LL_HRTIM_EE_SetPolarity(HRTIM_TypeDef * HRTIMx,uint32_t Event,uint32_t Polarity)9276 __STATIC_INLINE void LL_HRTIM_EE_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Polarity)
9277 {
9278   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9279   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9280                                                      REG_OFFSET_TAB_EECR[iEvent]));
9281   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1POL << REG_SHIFT_TAB_EExSRC[iEvent]), (Polarity << REG_SHIFT_TAB_EExSRC[iEvent]));
9282 }
9283 
9284 /**
9285   * @brief  Get actual polarity setting of an external event.
9286   * @rmtoll EECR1     EE1POL          LL_HRTIM_EE_GetPolarity\n
9287   *         EECR1     EE2POL          LL_HRTIM_EE_GetPolarity\n
9288   *         EECR1     EE3POL          LL_HRTIM_EE_GetPolarity\n
9289   *         EECR1     EE4POL          LL_HRTIM_EE_GetPolarity\n
9290   *         EECR1     EE5POL          LL_HRTIM_EE_GetPolarity\n
9291   *         EECR2     EE6POL          LL_HRTIM_EE_GetPolarity\n
9292   *         EECR2     EE7POL          LL_HRTIM_EE_GetPolarity\n
9293   *         EECR2     EE8POL          LL_HRTIM_EE_GetPolarity\n
9294   *         EECR2     EE9POL          LL_HRTIM_EE_GetPolarity\n
9295   *         EECR2     EE10POL         LL_HRTIM_EE_GetPolarity
9296   * @param  HRTIMx High Resolution Timer instance
9297   * @param  Event This parameter can be one of the following values:
9298   *         @arg @ref LL_HRTIM_EVENT_1
9299   *         @arg @ref LL_HRTIM_EVENT_2
9300   *         @arg @ref LL_HRTIM_EVENT_3
9301   *         @arg @ref LL_HRTIM_EVENT_4
9302   *         @arg @ref LL_HRTIM_EVENT_5
9303   *         @arg @ref LL_HRTIM_EVENT_6
9304   *         @arg @ref LL_HRTIM_EVENT_7
9305   *         @arg @ref LL_HRTIM_EVENT_8
9306   *         @arg @ref LL_HRTIM_EVENT_9
9307   *         @arg @ref LL_HRTIM_EVENT_10
9308   * @retval Polarity This parameter can be one of the following values:
9309   *         @arg @ref LL_HRTIM_EE_POLARITY_HIGH
9310   *         @arg @ref LL_HRTIM_EE_POLARITY_LOW
9311   */
LL_HRTIM_EE_GetPolarity(const HRTIM_TypeDef * HRTIMx,uint32_t Event)9312 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetPolarity(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
9313 {
9314   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9315   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9316                                                            REG_OFFSET_TAB_EECR[iEvent]));
9317   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1POL) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
9318 }
9319 
9320 /**
9321   * @brief  Set the sensitivity of an external event.
9322   * @rmtoll EECR1     EE1SNS          LL_HRTIM_EE_SetSensitivity\n
9323   *         EECR1     EE2SNS          LL_HRTIM_EE_SetSensitivity\n
9324   *         EECR1     EE3SNS          LL_HRTIM_EE_SetSensitivity\n
9325   *         EECR1     EE4SNS          LL_HRTIM_EE_SetSensitivity\n
9326   *         EECR1     EE5SNS          LL_HRTIM_EE_SetSensitivity\n
9327   *         EECR2     EE6SNS          LL_HRTIM_EE_SetSensitivity\n
9328   *         EECR2     EE7SNS          LL_HRTIM_EE_SetSensitivity\n
9329   *         EECR2     EE8SNS          LL_HRTIM_EE_SetSensitivity\n
9330   *         EECR2     EE9SNS          LL_HRTIM_EE_SetSensitivity\n
9331   *         EECR2     EE10SNS         LL_HRTIM_EE_SetSensitivity
9332   * @param  HRTIMx High Resolution Timer instance
9333   * @param  Event This parameter can be one of the following values:
9334   *         @arg @ref LL_HRTIM_EVENT_1
9335   *         @arg @ref LL_HRTIM_EVENT_2
9336   *         @arg @ref LL_HRTIM_EVENT_3
9337   *         @arg @ref LL_HRTIM_EVENT_4
9338   *         @arg @ref LL_HRTIM_EVENT_5
9339   *         @arg @ref LL_HRTIM_EVENT_6
9340   *         @arg @ref LL_HRTIM_EVENT_7
9341   *         @arg @ref LL_HRTIM_EVENT_8
9342   *         @arg @ref LL_HRTIM_EVENT_9
9343   *         @arg @ref LL_HRTIM_EVENT_10
9344   * @param  Sensitivity This parameter can be one of the following values:
9345   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL
9346   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE
9347   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE
9348   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES
9349   * @retval None
9350   */
9351 
LL_HRTIM_EE_SetSensitivity(HRTIM_TypeDef * HRTIMx,uint32_t Event,uint32_t Sensitivity)9352 __STATIC_INLINE void LL_HRTIM_EE_SetSensitivity(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Sensitivity)
9353 {
9354   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9355   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9356                                                      REG_OFFSET_TAB_EECR[iEvent]));
9357   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1SNS << REG_SHIFT_TAB_EExSRC[iEvent]), (Sensitivity << REG_SHIFT_TAB_EExSRC[iEvent]));
9358 }
9359 
9360 /**
9361   * @brief  Get actual sensitivity setting of an external event.
9362   * @rmtoll EECR1     EE1SNS          LL_HRTIM_EE_GetSensitivity\n
9363   *         EECR1     EE2SNS          LL_HRTIM_EE_GetSensitivity\n
9364   *         EECR1     EE3SNS          LL_HRTIM_EE_GetSensitivity\n
9365   *         EECR1     EE4SNS          LL_HRTIM_EE_GetSensitivity\n
9366   *         EECR1     EE5SNS          LL_HRTIM_EE_GetSensitivity\n
9367   *         EECR2     EE6SNS          LL_HRTIM_EE_GetSensitivity\n
9368   *         EECR2     EE7SNS          LL_HRTIM_EE_GetSensitivity\n
9369   *         EECR2     EE8SNS          LL_HRTIM_EE_GetSensitivity\n
9370   *         EECR2     EE9SNS          LL_HRTIM_EE_GetSensitivity\n
9371   *         EECR2     EE10SNS         LL_HRTIM_EE_GetSensitivity
9372   * @param  HRTIMx High Resolution Timer instance
9373   * @param  Event This parameter can be one of the following values:
9374   *         @arg @ref LL_HRTIM_EVENT_1
9375   *         @arg @ref LL_HRTIM_EVENT_2
9376   *         @arg @ref LL_HRTIM_EVENT_3
9377   *         @arg @ref LL_HRTIM_EVENT_4
9378   *         @arg @ref LL_HRTIM_EVENT_5
9379   *         @arg @ref LL_HRTIM_EVENT_6
9380   *         @arg @ref LL_HRTIM_EVENT_7
9381   *         @arg @ref LL_HRTIM_EVENT_8
9382   *         @arg @ref LL_HRTIM_EVENT_9
9383   *         @arg @ref LL_HRTIM_EVENT_10
9384   * @retval Polarity This parameter can be one of the following values:
9385   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL
9386   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE
9387   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE
9388   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES
9389   */
LL_HRTIM_EE_GetSensitivity(const HRTIM_TypeDef * HRTIMx,uint32_t Event)9390 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetSensitivity(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
9391 {
9392   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9393   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9394                                                            REG_OFFSET_TAB_EECR[iEvent]));
9395   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1SNS) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
9396 }
9397 
9398 /**
9399   * @brief  Set the fast mode of an external event.
9400   * @rmtoll EECR1     EE1FAST         LL_HRTIM_EE_SetFastMode\n
9401   *         EECR1     EE2FAST         LL_HRTIM_EE_SetFastMode\n
9402   *         EECR1     EE3FAST         LL_HRTIM_EE_SetFastMode\n
9403   *         EECR1     EE4FAST         LL_HRTIM_EE_SetFastMode\n
9404   *         EECR1     EE5FAST         LL_HRTIM_EE_SetFastMode\n
9405   *         EECR2     EE6FAST         LL_HRTIM_EE_SetFastMode\n
9406   *         EECR2     EE7FAST         LL_HRTIM_EE_SetFastMode\n
9407   *         EECR2     EE8FAST         LL_HRTIM_EE_SetFastMode\n
9408   *         EECR2     EE9FAST         LL_HRTIM_EE_SetFastMode\n
9409   *         EECR2     EE10FAST        LL_HRTIM_EE_SetFastMode
9410   * @note This function must not be called when the timer counter is enabled.
9411   * @param  HRTIMx High Resolution Timer instance
9412   * @param  Event This parameter can be one of the following values:
9413   *         @arg @ref LL_HRTIM_EVENT_1
9414   *         @arg @ref LL_HRTIM_EVENT_2
9415   *         @arg @ref LL_HRTIM_EVENT_3
9416   *         @arg @ref LL_HRTIM_EVENT_4
9417   *         @arg @ref LL_HRTIM_EVENT_5
9418   * @param  FastMode This parameter can be one of the following values:
9419   *         @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE
9420   *         @arg @ref LL_HRTIM_EE_FASTMODE_ENABLE
9421   * @retval None
9422   */
LL_HRTIM_EE_SetFastMode(HRTIM_TypeDef * HRTIMx,uint32_t Event,uint32_t FastMode)9423 __STATIC_INLINE void LL_HRTIM_EE_SetFastMode(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t FastMode)
9424 {
9425   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9426   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9427                                                      REG_OFFSET_TAB_EECR[iEvent]));
9428   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1FAST << REG_SHIFT_TAB_EExSRC[iEvent]), (FastMode << REG_SHIFT_TAB_EExSRC[iEvent]));
9429 }
9430 
9431 /**
9432   * @brief  Get actual fast mode setting of an external event.
9433   * @rmtoll EECR1     EE1FAST         LL_HRTIM_EE_GetFastMode\n
9434   *         EECR1     EE2FAST         LL_HRTIM_EE_GetFastMode\n
9435   *         EECR1     EE3FAST         LL_HRTIM_EE_GetFastMode\n
9436   *         EECR1     EE4FAST         LL_HRTIM_EE_GetFastMode\n
9437   *         EECR1     EE5FAST         LL_HRTIM_EE_GetFastMode\n
9438   *         EECR2     EE6FAST         LL_HRTIM_EE_GetFastMode\n
9439   *         EECR2     EE7FAST         LL_HRTIM_EE_GetFastMode\n
9440   *         EECR2     EE8FAST         LL_HRTIM_EE_GetFastMode\n
9441   *         EECR2     EE9FAST         LL_HRTIM_EE_GetFastMode\n
9442   *         EECR2     EE10FAST        LL_HRTIM_EE_GetFastMode
9443   * @param  HRTIMx High Resolution Timer instance
9444   * @param  Event This parameter can be one of the following values:
9445   *         @arg @ref LL_HRTIM_EVENT_1
9446   *         @arg @ref LL_HRTIM_EVENT_2
9447   *         @arg @ref LL_HRTIM_EVENT_3
9448   *         @arg @ref LL_HRTIM_EVENT_4
9449   *         @arg @ref LL_HRTIM_EVENT_5
9450   * @retval FastMode This parameter can be one of the following values:
9451   *         @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE
9452   *         @arg @ref LL_HRTIM_EE_FASTMODE_ENABLE
9453   */
LL_HRTIM_EE_GetFastMode(const HRTIM_TypeDef * HRTIMx,uint32_t Event)9454 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetFastMode(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
9455 {
9456   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9457   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
9458                                                            REG_OFFSET_TAB_EECR[iEvent]));
9459   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1FAST) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
9460 }
9461 
9462 /**
9463   * @brief  Set the digital noise filter of a external event.
9464   * @rmtoll EECR3     EE6F         LL_HRTIM_EE_SetFilter\n
9465   *         EECR3     EE7F         LL_HRTIM_EE_SetFilter\n
9466   *         EECR3     EE8F         LL_HRTIM_EE_SetFilter\n
9467   *         EECR3     EE9F         LL_HRTIM_EE_SetFilter\n
9468   *         EECR3     EE10F        LL_HRTIM_EE_SetFilter
9469   * @param  HRTIMx High Resolution Timer instance
9470   * @param  Event This parameter can be one of the following values:
9471   *         @arg @ref LL_HRTIM_EVENT_6
9472   *         @arg @ref LL_HRTIM_EVENT_7
9473   *         @arg @ref LL_HRTIM_EVENT_8
9474   *         @arg @ref LL_HRTIM_EVENT_9
9475   *         @arg @ref LL_HRTIM_EVENT_10
9476   * @param  Filter This parameter can be one of the following values:
9477   *         @arg @ref LL_HRTIM_EE_FILTER_NONE
9478   *         @arg @ref LL_HRTIM_EE_FILTER_1
9479   *         @arg @ref LL_HRTIM_EE_FILTER_2
9480   *         @arg @ref LL_HRTIM_EE_FILTER_3
9481   *         @arg @ref LL_HRTIM_EE_FILTER_4
9482   *         @arg @ref LL_HRTIM_EE_FILTER_5
9483   *         @arg @ref LL_HRTIM_EE_FILTER_6
9484   *         @arg @ref LL_HRTIM_EE_FILTER_7
9485   *         @arg @ref LL_HRTIM_EE_FILTER_8
9486   *         @arg @ref LL_HRTIM_EE_FILTER_9
9487   *         @arg @ref LL_HRTIM_EE_FILTER_10
9488   *         @arg @ref LL_HRTIM_EE_FILTER_11
9489   *         @arg @ref LL_HRTIM_EE_FILTER_12
9490   *         @arg @ref LL_HRTIM_EE_FILTER_13
9491   *         @arg @ref LL_HRTIM_EE_FILTER_14
9492   *         @arg @ref LL_HRTIM_EE_FILTER_15
9493   * @retval None
9494   */
LL_HRTIM_EE_SetFilter(HRTIM_TypeDef * HRTIMx,uint32_t Event,uint32_t Filter)9495 __STATIC_INLINE void LL_HRTIM_EE_SetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Filter)
9496 {
9497   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
9498   MODIFY_REG(HRTIMx->sCommonRegs.EECR3, (HRTIM_EECR3_EE6F << REG_SHIFT_TAB_EExSRC[iEvent]),
9499              (Filter << REG_SHIFT_TAB_EExSRC[iEvent]));
9500 }
9501 
9502 /**
9503   * @brief  Get actual digital noise filter setting of a external event.
9504   * @rmtoll EECR3     EE6F         LL_HRTIM_EE_GetFilter\n
9505   *         EECR3     EE7F         LL_HRTIM_EE_GetFilter\n
9506   *         EECR3     EE8F         LL_HRTIM_EE_GetFilter\n
9507   *         EECR3     EE9F         LL_HRTIM_EE_GetFilter\n
9508   *         EECR3     EE10F        LL_HRTIM_EE_GetFilter
9509   * @param  HRTIMx High Resolution Timer instance
9510   * @param  Event This parameter can be one of the following values:
9511   *         @arg @ref LL_HRTIM_EVENT_6
9512   *         @arg @ref LL_HRTIM_EVENT_7
9513   *         @arg @ref LL_HRTIM_EVENT_8
9514   *         @arg @ref LL_HRTIM_EVENT_9
9515   *         @arg @ref LL_HRTIM_EVENT_10
9516   * @retval Filter This parameter can be one of the following values:
9517   *         @arg @ref LL_HRTIM_EE_FILTER_NONE
9518   *         @arg @ref LL_HRTIM_EE_FILTER_1
9519   *         @arg @ref LL_HRTIM_EE_FILTER_2
9520   *         @arg @ref LL_HRTIM_EE_FILTER_3
9521   *         @arg @ref LL_HRTIM_EE_FILTER_4
9522   *         @arg @ref LL_HRTIM_EE_FILTER_5
9523   *         @arg @ref LL_HRTIM_EE_FILTER_6
9524   *         @arg @ref LL_HRTIM_EE_FILTER_7
9525   *         @arg @ref LL_HRTIM_EE_FILTER_8
9526   *         @arg @ref LL_HRTIM_EE_FILTER_9
9527   *         @arg @ref LL_HRTIM_EE_FILTER_10
9528   *         @arg @ref LL_HRTIM_EE_FILTER_11
9529   *         @arg @ref LL_HRTIM_EE_FILTER_12
9530   *         @arg @ref LL_HRTIM_EE_FILTER_13
9531   *         @arg @ref LL_HRTIM_EE_FILTER_14
9532   *         @arg @ref LL_HRTIM_EE_FILTER_15
9533   */
LL_HRTIM_EE_GetFilter(const HRTIM_TypeDef * HRTIMx,uint32_t Event)9534 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetFilter(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
9535 {
9536   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_6));
9537   return (READ_BIT(HRTIMx->sCommonRegs.EECR3,
9538                    (uint32_t)(HRTIM_EECR3_EE6F) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
9539 }
9540 
9541 /**
9542   * @brief  Set the external event prescaler.
9543   * @rmtoll EECR3     EEVSD        LL_HRTIM_EE_SetPrescaler
9544   * @param  HRTIMx High Resolution Timer instance
9545   * @param  Prescaler This parameter can be one of the following values:
9546   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV1
9547   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV2
9548   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV4
9549   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV8
9550   * @retval None
9551   */
9552 
LL_HRTIM_EE_SetPrescaler(HRTIM_TypeDef * HRTIMx,uint32_t Prescaler)9553 __STATIC_INLINE void LL_HRTIM_EE_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler)
9554 {
9555   MODIFY_REG(HRTIMx->sCommonRegs.EECR3, HRTIM_EECR3_EEVSD, Prescaler);
9556 }
9557 
9558 /**
9559   * @brief  Get actual external event prescaler setting.
9560   * @rmtoll EECR3     EEVSD        LL_HRTIM_EE_GetPrescaler
9561   * @param  HRTIMx High Resolution Timer instance
9562   * @retval Prescaler This parameter can be one of the following values:
9563   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV1
9564   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV2
9565   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV4
9566   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV8
9567   */
9568 
LL_HRTIM_EE_GetPrescaler(const HRTIM_TypeDef * HRTIMx)9569 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetPrescaler(const HRTIM_TypeDef *HRTIMx)
9570 {
9571   return (READ_BIT(HRTIMx->sCommonRegs.EECR3, HRTIM_EECR3_EEVSD));
9572 }
9573 
9574 /**
9575   * @}
9576   */
9577 
9578 /** @defgroup HRTIM_LL_EF_Fault_management Fault_management
9579   * @{
9580   */
9581 /**
9582   * @brief  Configure fault signal conditioning Polarity and Source.
9583   * @rmtoll FLTINR1     FLT1P        LL_HRTIM_FLT_Config\n
9584   *         FLTINR1     FLT1SRC      LL_HRTIM_FLT_Config\n
9585   *         FLTINR1     FLT2P        LL_HRTIM_FLT_Config\n
9586   *         FLTINR1     FLT2SRC      LL_HRTIM_FLT_Config\n
9587   *         FLTINR1     FLT3P        LL_HRTIM_FLT_Config\n
9588   *         FLTINR1     FLT3SRC      LL_HRTIM_FLT_Config\n
9589   *         FLTINR1     FLT4P        LL_HRTIM_FLT_Config\n
9590   *         FLTINR1     FLT4SRC      LL_HRTIM_FLT_Config\n
9591   *         FLTINR2     FLT5P        LL_HRTIM_FLT_Config\n
9592   *         FLTINR2     FLT5SRC      LL_HRTIM_FLT_Config\n
9593   *         FLTINR2     FLT6P        LL_HRTIM_FLT_Config\n
9594   *         FLTINR2     FLT6SRC      LL_HRTIM_FLT_Config
9595   * @note This function must not be called when the fault channel is enabled.
9596   * @param  HRTIMx High Resolution Timer instance
9597   * @param  Fault This parameter can be one of the following values:
9598   *         @arg @ref LL_HRTIM_FAULT_1
9599   *         @arg @ref LL_HRTIM_FAULT_2
9600   *         @arg @ref LL_HRTIM_FAULT_3
9601   *         @arg @ref LL_HRTIM_FAULT_4
9602   *         @arg @ref LL_HRTIM_FAULT_5
9603   *         @arg @ref LL_HRTIM_FAULT_6
9604   * @param  Configuration This parameter must be a combination of all the following values:
9605   *         @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT..LL_HRTIM_FLT_SRC_EEVINPUT
9606   *         @arg @ref LL_HRTIM_FLT_POLARITY_LOW..LL_HRTIM_FLT_POLARITY_HIGH
9607   * @retval None
9608   */
LL_HRTIM_FLT_Config(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Configuration)9609 __STATIC_INLINE void LL_HRTIM_FLT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Configuration)
9610 {
9611   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9612   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9613   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9614 
9615   uint64_t cfg;
9616   uint64_t mask;
9617 
9618   cfg = ((uint64_t)((uint64_t)Configuration & (uint64_t)HRTIM_FLT_CONFIG_MASK) << REG_SHIFT_TAB_FLTxF[iFault]) |           /* this for SouRCe 0 and polarity bits */
9619         (((uint64_t)((uint64_t)Configuration & (uint64_t)HRTIM_FLT_SRC_1_MASK) << REG_SHIFT_TAB_FLTx[iFault]) << 32U);      /* this for SouRCe 1 bit  */
9620 
9621   mask = ((uint64_t)(HRTIM_FLTINR1_FLT1P | HRTIM_FLTINR1_FLT1SRC_0) << REG_SHIFT_TAB_FLTxF[iFault]) |       /* this for SouRCe 0 and polarity bits */
9622          ((uint64_t)(HRTIM_FLT_SRC_1_MASK) << 32U);                                                         /* this for SouRCe bit 1 */
9623 
9624   MODIFY_REG(*pReg1, (uint32_t)(mask), (uint32_t)(cfg));
9625   MODIFY_REG(*pReg2, (uint32_t)(mask >> 32U), (uint32_t)(cfg  >> 32U));
9626 
9627 }
9628 
9629 /**
9630   * @brief  Set the source of a fault signal.
9631   * @rmtoll FLTINR1     FLT1SRC      LL_HRTIM_FLT_SetSrc\n
9632   *         FLTINR1     FLT2SRC      LL_HRTIM_FLT_SetSrc\n
9633   *         FLTINR1     FLT3SRC      LL_HRTIM_FLT_SetSrc\n
9634   *         FLTINR1     FLT4SRC      LL_HRTIM_FLT_SetSrc\n
9635   *         FLTINR2     FLT5SRC      LL_HRTIM_FLT_SetSrc\n
9636   *         FLTINR2     FLT6SRC      LL_HRTIM_FLT_SetSrc
9637   * @note This function must not be called when the fault channel is enabled.
9638   * @param  HRTIMx High Resolution Timer instance
9639   * @param  Fault This parameter can be one of the following values:
9640   *         @arg @ref LL_HRTIM_FAULT_1
9641   *         @arg @ref LL_HRTIM_FAULT_2
9642   *         @arg @ref LL_HRTIM_FAULT_3
9643   *         @arg @ref LL_HRTIM_FAULT_4
9644   *         @arg @ref LL_HRTIM_FAULT_5
9645   *         @arg @ref LL_HRTIM_FAULT_6
9646   * @param  Src This parameter can be one of the following values:
9647   *         @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT
9648   *         @arg @ref LL_HRTIM_FLT_SRC_INTERNAL
9649   *         @arg @ref LL_HRTIM_FLT_SRC_EEVINPUT
9650   * @retval None
9651   */
LL_HRTIM_FLT_SetSrc(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Src)9652 __STATIC_INLINE void LL_HRTIM_FLT_SetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Src)
9653 {
9654   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9655   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9656   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9657 
9658   uint64_t  cfg = ((uint64_t)((uint64_t)Src & (uint64_t)HRTIM_FLTINR1_FLT1SRC_0) << REG_SHIFT_TAB_FLTxF[iFault]) |        /* this for SouRCe 0 bit */
9659                   (((uint64_t)((uint64_t)Src & (uint64_t)HRTIM_FLT_SRC_1_MASK)    << REG_SHIFT_TAB_FLTx[iFault]) << 32U); /* this for SouRCe 1 bit */
9660   uint64_t mask = ((uint64_t)(HRTIM_FLTINR1_FLT1SRC_0) << REG_SHIFT_TAB_FLTxF[iFault]) |        /* this for SouRCe bit 0 */
9661                   (((uint64_t)(HRTIM_FLTINR2_FLT1SRC_1) << REG_SHIFT_TAB_FLTx[iFault]) << 32U); /* this for SouRCe bit 1 */
9662 
9663   MODIFY_REG(*pReg1, (uint32_t)(mask), (uint32_t)(cfg));
9664   MODIFY_REG(*pReg2, (uint32_t)(mask >> 32U), (uint32_t)(cfg  >> 32U));
9665 }
9666 
9667 /**
9668   * @brief  Get actual source of a fault signal.
9669   * @rmtoll FLTINR1     FLT1SRC      LL_HRTIM_FLT_GetSrc\n
9670   *         FLTINR1     FLT2SRC      LL_HRTIM_FLT_GetSrc\n
9671   *         FLTINR1     FLT3SRC      LL_HRTIM_FLT_GetSrc\n
9672   *         FLTINR1     FLT4SRC      LL_HRTIM_FLT_GetSrc\n
9673   *         FLTINR2     FLT5SRC      LL_HRTIM_FLT_GetSrc\n
9674   *         FLTINR2     FLT6SRC      LL_HRTIM_FLT_GetSrc
9675   * @param  HRTIMx High Resolution Timer instance
9676   * @param  Fault This parameter can be one of the following values:
9677   *         @arg @ref LL_HRTIM_FAULT_1
9678   *         @arg @ref LL_HRTIM_FAULT_2
9679   *         @arg @ref LL_HRTIM_FAULT_3
9680   *         @arg @ref LL_HRTIM_FAULT_4
9681   *         @arg @ref LL_HRTIM_FAULT_5
9682   *         @arg @ref LL_HRTIM_FAULT_6
9683   * @retval Source This parameter can be one of the following values:
9684   *         @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT
9685   *         @arg @ref LL_HRTIM_FLT_SRC_INTERNAL
9686   *         @arg @ref LL_HRTIM_FLT_SRC_EEVINPUT
9687   */
LL_HRTIM_FLT_GetSrc(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)9688 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
9689 {
9690   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9691   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9692   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9693 
9694   uint64_t Src0;
9695   uint32_t Src1;
9696   uint32_t temp1, temp2; /* temp variables used for MISRA-C  */
9697 
9698   /* this for SouRCe bit 1 */
9699   Src1 = READ_BIT(*pReg2, HRTIM_FLT_SRC_1_MASK) >> REG_SHIFT_TAB_FLTx[iFault] ;
9700   temp1 = READ_BIT(*pReg2, (uint32_t)(HRTIM_FLTINR2_FLT5SRC_0 | HRTIM_FLTINR2_FLT6SRC_0));
9701   temp2 = READ_BIT(*pReg1, (uint32_t)(HRTIM_FLTINR1_FLT1SRC_0 | HRTIM_FLTINR1_FLT2SRC_0 | HRTIM_FLTINR1_FLT3SRC_0 | HRTIM_FLTINR1_FLT4SRC_0));
9702 
9703   /* this for SouRCe bit 0 */
9704   Src0 = (uint64_t)temp1 << 32U;
9705   Src0 |= (uint64_t)temp2;
9706   Src0 = (Src0 >> REG_SHIFT_TAB_FLTxF[iFault]) ;
9707 
9708   return ((uint32_t)(Src0 | Src1));
9709 }
9710 
9711 /**
9712   * @brief  Set the polarity of a fault signal.
9713   * @rmtoll FLTINR1     FLT1P        LL_HRTIM_FLT_SetPolarity\n
9714   *         FLTINR1     FLT2P        LL_HRTIM_FLT_SetPolarity\n
9715   *         FLTINR1     FLT3P        LL_HRTIM_FLT_SetPolarity\n
9716   *         FLTINR1     FLT4P        LL_HRTIM_FLT_SetPolarity\n
9717   *         FLTINR2     FLT5P        LL_HRTIM_FLT_SetPolarity\n
9718   *         FLTINR2     FLT6P        LL_HRTIM_FLT_SetPolarity
9719   * @note This function must not be called when the fault channel is enabled.
9720   * @param  HRTIMx High Resolution Timer instance
9721   * @param  Fault This parameter can be one of the following values:
9722   *         @arg @ref LL_HRTIM_FAULT_1
9723   *         @arg @ref LL_HRTIM_FAULT_2
9724   *         @arg @ref LL_HRTIM_FAULT_3
9725   *         @arg @ref LL_HRTIM_FAULT_4
9726   *         @arg @ref LL_HRTIM_FAULT_5
9727   *         @arg @ref LL_HRTIM_FAULT_6
9728   * @param  Polarity This parameter can be one of the following values:
9729   *         @arg @ref LL_HRTIM_FLT_POLARITY_LOW
9730   *         @arg @ref LL_HRTIM_FLT_POLARITY_HIGH
9731   * @retval None
9732   */
LL_HRTIM_FLT_SetPolarity(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Polarity)9733 __STATIC_INLINE void LL_HRTIM_FLT_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Polarity)
9734 {
9735   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9736   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9737   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9738 
9739   uint64_t cfg = (uint64_t)((uint64_t)Polarity & (uint64_t)(HRTIM_FLTINR1_FLT1P)) << REG_SHIFT_TAB_FLTxF[iFault] ;  /* this for Polarity bit */
9740   uint64_t mask = (uint64_t)(HRTIM_FLTINR1_FLT1P) << REG_SHIFT_TAB_FLTxF[iFault] ;  /* this for Polarity bit */
9741 
9742   /* for Polarity bit */
9743   MODIFY_REG(*pReg1, (uint32_t)(mask), (uint32_t)(cfg));
9744   MODIFY_REG(*pReg2, (uint32_t)(mask >> 32U), (uint32_t)(cfg  >> 32U));
9745 }
9746 
9747 /**
9748   * @brief  Get actual polarity of a fault signal.
9749   * @rmtoll FLTINR1     FLT1P        LL_HRTIM_FLT_GetPolarity\n
9750   *         FLTINR1     FLT2P        LL_HRTIM_FLT_GetPolarity\n
9751   *         FLTINR1     FLT3P        LL_HRTIM_FLT_GetPolarity\n
9752   *         FLTINR1     FLT4P        LL_HRTIM_FLT_GetPolarity\n
9753   *         FLTINR2     FLT5P        LL_HRTIM_FLT_GetPolarity\n
9754   *         FLTINR2     FLT6P        LL_HRTIM_FLT_GetPolarity
9755   * @param  HRTIMx High Resolution Timer instance
9756   * @param  Fault This parameter can be one of the following values:
9757   *         @arg @ref LL_HRTIM_FAULT_1
9758   *         @arg @ref LL_HRTIM_FAULT_2
9759   *         @arg @ref LL_HRTIM_FAULT_3
9760   *         @arg @ref LL_HRTIM_FAULT_4
9761   *         @arg @ref LL_HRTIM_FAULT_5
9762   *         @arg @ref LL_HRTIM_FAULT_6
9763   * @retval Polarity This parameter can be one of the following values:
9764   *         @arg @ref LL_HRTIM_FLT_POLARITY_LOW
9765   *         @arg @ref LL_HRTIM_FLT_POLARITY_HIGH
9766   */
LL_HRTIM_FLT_GetPolarity(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)9767 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetPolarity(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
9768 {
9769   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9770   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9771   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9772   uint32_t temp1, temp2; /* temp variables used for MISRA-C  */
9773   uint64_t cfg;
9774 
9775   temp1 = READ_BIT(*pReg2, (uint32_t)(HRTIM_FLTINR2_FLT5P | HRTIM_FLTINR2_FLT6P));
9776   temp2 = READ_BIT(*pReg1, (uint32_t)(HRTIM_FLTINR1_FLT1P | HRTIM_FLTINR1_FLT2P | HRTIM_FLTINR1_FLT3P | HRTIM_FLTINR1_FLT4P));
9777 
9778   cfg = (uint64_t)temp1 << 32 ;
9779   cfg |= (uint64_t)temp2;
9780   cfg = (cfg >> REG_SHIFT_TAB_FLTxF[iFault]) ;
9781 
9782   return (uint32_t)(cfg);
9783 
9784 }
9785 
9786 /**
9787   * @brief  Set the digital noise filter of a fault signal.
9788   * @rmtoll FLTINR1     FLT1F      LL_HRTIM_FLT_SetFilter\n
9789   *         FLTINR1     FLT2F      LL_HRTIM_FLT_SetFilter\n
9790   *         FLTINR1     FLT3F      LL_HRTIM_FLT_SetFilter\n
9791   *         FLTINR1     FLT4F      LL_HRTIM_FLT_SetFilter\n
9792   *         FLTINR2     FLT5F      LL_HRTIM_FLT_SetFilter\n
9793   *         FLTINR2     FLT6F      LL_HRTIM_FLT_SetFilter
9794   * @note This function must not be called when the fault channel is enabled.
9795   * @param  HRTIMx High Resolution Timer instance
9796   * @param  Fault This parameter can be one of the following values:
9797   *         @arg @ref LL_HRTIM_FAULT_1
9798   *         @arg @ref LL_HRTIM_FAULT_2
9799   *         @arg @ref LL_HRTIM_FAULT_3
9800   *         @arg @ref LL_HRTIM_FAULT_4
9801   *         @arg @ref LL_HRTIM_FAULT_5
9802   *         @arg @ref LL_HRTIM_FAULT_6
9803   * @param  Filter This parameter can be one of the following values:
9804   *         @arg @ref LL_HRTIM_FLT_FILTER_NONE
9805   *         @arg @ref LL_HRTIM_FLT_FILTER_1
9806   *         @arg @ref LL_HRTIM_FLT_FILTER_2
9807   *         @arg @ref LL_HRTIM_FLT_FILTER_3
9808   *         @arg @ref LL_HRTIM_FLT_FILTER_4
9809   *         @arg @ref LL_HRTIM_FLT_FILTER_5
9810   *         @arg @ref LL_HRTIM_FLT_FILTER_6
9811   *         @arg @ref LL_HRTIM_FLT_FILTER_7
9812   *         @arg @ref LL_HRTIM_FLT_FILTER_8
9813   *         @arg @ref LL_HRTIM_FLT_FILTER_9
9814   *         @arg @ref LL_HRTIM_FLT_FILTER_10
9815   *         @arg @ref LL_HRTIM_FLT_FILTER_11
9816   *         @arg @ref LL_HRTIM_FLT_FILTER_12
9817   *         @arg @ref LL_HRTIM_FLT_FILTER_13
9818   *         @arg @ref LL_HRTIM_FLT_FILTER_14
9819   *         @arg @ref LL_HRTIM_FLT_FILTER_15
9820   * @retval None
9821   */
LL_HRTIM_FLT_SetFilter(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Filter)9822 __STATIC_INLINE void LL_HRTIM_FLT_SetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Filter)
9823 {
9824   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9825   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9826   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9827 
9828   uint64_t flt = (uint64_t)((uint64_t)Filter & (uint64_t)HRTIM_FLTINR1_FLT1F) << REG_SHIFT_TAB_FLTxF[iFault] ;  /* this for filter bits */
9829   uint64_t mask = (uint64_t)(HRTIM_FLTINR1_FLT1F) << REG_SHIFT_TAB_FLTxF[iFault] ;  /* this for Polarity bit */
9830 
9831   MODIFY_REG(*pReg1, (uint32_t)(mask), (uint32_t)(flt));
9832   MODIFY_REG(*pReg2, (uint32_t)(mask >> 32U), (uint32_t)(flt  >> 32U));
9833 }
9834 
9835 /**
9836   * @brief  Get actual digital noise filter setting of a fault signal.
9837   * @rmtoll FLTINR1     FLT1F      LL_HRTIM_FLT_GetFilter\n
9838   *         FLTINR1     FLT2F      LL_HRTIM_FLT_GetFilter\n
9839   *         FLTINR1     FLT3F      LL_HRTIM_FLT_GetFilter\n
9840   *         FLTINR1     FLT4F      LL_HRTIM_FLT_GetFilter\n
9841   *         FLTINR2     FLT5F      LL_HRTIM_FLT_GetFilter\n
9842   *         FLTINR2     FLT6F      LL_HRTIM_FLT_GetFilter
9843   * @param  HRTIMx High Resolution Timer instance
9844   * @param  Fault This parameter can be one of the following values:
9845   *         @arg @ref LL_HRTIM_FAULT_1
9846   *         @arg @ref LL_HRTIM_FAULT_2
9847   *         @arg @ref LL_HRTIM_FAULT_3
9848   *         @arg @ref LL_HRTIM_FAULT_4
9849   *         @arg @ref LL_HRTIM_FAULT_5
9850   *         @arg @ref LL_HRTIM_FAULT_6
9851   * @retval Filter This parameter can be one of the following values:
9852   *         @arg @ref LL_HRTIM_FLT_FILTER_NONE
9853   *         @arg @ref LL_HRTIM_FLT_FILTER_1
9854   *         @arg @ref LL_HRTIM_FLT_FILTER_2
9855   *         @arg @ref LL_HRTIM_FLT_FILTER_3
9856   *         @arg @ref LL_HRTIM_FLT_FILTER_4
9857   *         @arg @ref LL_HRTIM_FLT_FILTER_5
9858   *         @arg @ref LL_HRTIM_FLT_FILTER_6
9859   *         @arg @ref LL_HRTIM_FLT_FILTER_7
9860   *         @arg @ref LL_HRTIM_FLT_FILTER_8
9861   *         @arg @ref LL_HRTIM_FLT_FILTER_9
9862   *         @arg @ref LL_HRTIM_FLT_FILTER_10
9863   *         @arg @ref LL_HRTIM_FLT_FILTER_11
9864   *         @arg @ref LL_HRTIM_FLT_FILTER_12
9865   *         @arg @ref LL_HRTIM_FLT_FILTER_13
9866   *         @arg @ref LL_HRTIM_FLT_FILTER_14
9867   *         @arg @ref LL_HRTIM_FLT_FILTER_15
9868   */
LL_HRTIM_FLT_GetFilter(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)9869 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetFilter(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
9870 {
9871   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9872   __IO uint32_t *pReg1 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1)));
9873   __IO uint32_t *pReg2 = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR2)));
9874   uint32_t temp1, temp2; /* temp variables used for MISRA-C  */
9875   uint64_t flt;
9876   temp1 = READ_BIT(*pReg2, (uint32_t)(HRTIM_FLTINR2_FLT5F | HRTIM_FLTINR2_FLT6F));
9877   temp2 = READ_BIT(*pReg1, (uint32_t)(HRTIM_FLTINR1_FLT1F | HRTIM_FLTINR1_FLT2F | HRTIM_FLTINR1_FLT3F | HRTIM_FLTINR1_FLT4F));
9878 
9879   flt = (uint64_t)temp1 << 32U;
9880   flt |= (uint64_t)temp2;
9881   flt = (flt >> REG_SHIFT_TAB_FLTxF[iFault]) ;
9882 
9883   return (uint32_t)(flt);
9884 
9885 }
9886 
9887 /**
9888   * @brief  Set the fault circuitry prescaler.
9889   * @rmtoll FLTINR2     FLTSD      LL_HRTIM_FLT_SetPrescaler
9890   * @param  HRTIMx High Resolution Timer instance
9891   * @param  Prescaler This parameter can be one of the following values:
9892   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV1
9893   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV2
9894   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV4
9895   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV8
9896   * @retval None
9897   */
LL_HRTIM_FLT_SetPrescaler(HRTIM_TypeDef * HRTIMx,uint32_t Prescaler)9898 __STATIC_INLINE void LL_HRTIM_FLT_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler)
9899 {
9900   MODIFY_REG(HRTIMx->sCommonRegs.FLTINR2, HRTIM_FLTINR2_FLTSD, Prescaler);
9901 }
9902 
9903 /**
9904   * @brief  Get actual fault circuitry prescaler setting.
9905   * @rmtoll FLTINR2     FLTSD      LL_HRTIM_FLT_GetPrescaler
9906   * @param  HRTIMx High Resolution Timer instance
9907   * @retval Prescaler This parameter can be one of the following values:
9908   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV1
9909   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV2
9910   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV4
9911   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV8
9912   */
LL_HRTIM_FLT_GetPrescaler(const HRTIM_TypeDef * HRTIMx)9913 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetPrescaler(const HRTIM_TypeDef *HRTIMx)
9914 {
9915   return (READ_BIT(HRTIMx->sCommonRegs.FLTINR2, HRTIM_FLTINR2_FLTSD));
9916 }
9917 
9918 /**
9919   * @brief  Lock the fault signal conditioning settings.
9920   * @rmtoll FLTINR1     FLT1LCK      LL_HRTIM_FLT_Lock\n
9921   *         FLTINR1     FLT2LCK      LL_HRTIM_FLT_Lock\n
9922   *         FLTINR1     FLT3LCK      LL_HRTIM_FLT_Lock\n
9923   *         FLTINR1     FLT4LCK      LL_HRTIM_FLT_Lock\n
9924   *         FLTINR2     FLT5LCK      LL_HRTIM_FLT_Lock\n
9925   *         FLTINR2     FLT6LCK      LL_HRTIM_FLT_Lock
9926   * @param  HRTIMx High Resolution Timer instance
9927   * @param  Fault This parameter can be one of the following values:
9928   *         @arg @ref LL_HRTIM_FAULT_1
9929   *         @arg @ref LL_HRTIM_FAULT_2
9930   *         @arg @ref LL_HRTIM_FAULT_3
9931   *         @arg @ref LL_HRTIM_FAULT_4
9932   *         @arg @ref LL_HRTIM_FAULT_5
9933   *         @arg @ref LL_HRTIM_FAULT_6
9934   * @retval None
9935   */
LL_HRTIM_FLT_Lock(HRTIM_TypeDef * HRTIMx,uint32_t Fault)9936 __STATIC_INLINE void LL_HRTIM_FLT_Lock(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
9937 {
9938   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9939   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
9940                                                      REG_OFFSET_TAB_FLTINR[iFault]));
9941   SET_BIT(*pReg, (HRTIM_FLTINR1_FLT1LCK << REG_SHIFT_TAB_FLTxE[iFault]));
9942 }
9943 
9944 /**
9945   * @brief  Enable the fault circuitry for the designated fault input.
9946   * @rmtoll FLTINR1     FLT1E      LL_HRTIM_FLT_Enable\n
9947   *         FLTINR1     FLT2E      LL_HRTIM_FLT_Enable\n
9948   *         FLTINR1     FLT3E      LL_HRTIM_FLT_Enable\n
9949   *         FLTINR1     FLT4E      LL_HRTIM_FLT_Enable\n
9950   *         FLTINR2     FLT5E      LL_HRTIM_FLT_Enable\n
9951   *         FLTINR2     FLT6E      LL_HRTIM_FLT_Enable
9952   * @param  HRTIMx High Resolution Timer instance
9953   * @param  Fault This parameter can be one of the following values:
9954   *         @arg @ref LL_HRTIM_FAULT_1
9955   *         @arg @ref LL_HRTIM_FAULT_2
9956   *         @arg @ref LL_HRTIM_FAULT_3
9957   *         @arg @ref LL_HRTIM_FAULT_4
9958   *         @arg @ref LL_HRTIM_FAULT_5
9959   *         @arg @ref LL_HRTIM_FAULT_6
9960   * @retval None
9961   */
LL_HRTIM_FLT_Enable(HRTIM_TypeDef * HRTIMx,uint32_t Fault)9962 __STATIC_INLINE void LL_HRTIM_FLT_Enable(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
9963 {
9964   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9965   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
9966                                                      REG_OFFSET_TAB_FLTINR[iFault]));
9967   SET_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault]));
9968 }
9969 
9970 /**
9971   * @brief  Disable the fault circuitry for for the designated fault input.
9972   * @rmtoll FLTINR1     FLT1E      LL_HRTIM_FLT_Disable\n
9973   *         FLTINR1     FLT2E      LL_HRTIM_FLT_Disable\n
9974   *         FLTINR1     FLT3E      LL_HRTIM_FLT_Disable\n
9975   *         FLTINR1     FLT4E      LL_HRTIM_FLT_Disable\n
9976   *         FLTINR2     FLT5E      LL_HRTIM_FLT_Disable\n
9977   *         FLTINR2     FLT6E      LL_HRTIM_FLT_Disable
9978   * @param  HRTIMx High Resolution Timer instance
9979   * @param  Fault This parameter can be one of the following values:
9980   *         @arg @ref LL_HRTIM_FAULT_1
9981   *         @arg @ref LL_HRTIM_FAULT_2
9982   *         @arg @ref LL_HRTIM_FAULT_3
9983   *         @arg @ref LL_HRTIM_FAULT_4
9984   *         @arg @ref LL_HRTIM_FAULT_5
9985   *         @arg @ref LL_HRTIM_FAULT_6
9986   * @retval None
9987   */
LL_HRTIM_FLT_Disable(HRTIM_TypeDef * HRTIMx,uint32_t Fault)9988 __STATIC_INLINE void LL_HRTIM_FLT_Disable(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
9989 {
9990   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
9991   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
9992                                                      REG_OFFSET_TAB_FLTINR[iFault]));
9993   CLEAR_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault]));
9994 
9995 }
9996 
9997 /**
9998   * @brief  Indicate whether the fault circuitry is enabled for a given fault input.
9999   * @rmtoll FLTINR1     FLT1E      LL_HRTIM_FLT_IsEnabled\n
10000   *         FLTINR1     FLT2E      LL_HRTIM_FLT_IsEnabled\n
10001   *         FLTINR1     FLT3E      LL_HRTIM_FLT_IsEnabled\n
10002   *         FLTINR1     FLT4E      LL_HRTIM_FLT_IsEnabled\n
10003   *         FLTINR2     FLT5E      LL_HRTIM_FLT_IsEnabled\n
10004   *         FLTINR2     FLT6E      LL_HRTIM_FLT_IsEnabled
10005   * @param  HRTIMx High Resolution Timer instance
10006   * @param  Fault This parameter can be one of the following values:
10007   *         @arg @ref LL_HRTIM_FAULT_1
10008   *         @arg @ref LL_HRTIM_FAULT_2
10009   *         @arg @ref LL_HRTIM_FAULT_3
10010   *         @arg @ref LL_HRTIM_FAULT_4
10011   *         @arg @ref LL_HRTIM_FAULT_5
10012   *         @arg @ref LL_HRTIM_FAULT_6
10013   * @retval State of FLTxEN bit in HRTIM_FLTINRx register (1 or 0).
10014   */
LL_HRTIM_FLT_IsEnabled(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)10015 __STATIC_INLINE uint32_t LL_HRTIM_FLT_IsEnabled(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10016 {
10017   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10018   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
10019                                                            REG_OFFSET_TAB_FLTINR[iFault]));
10020   return (((READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault])) >> REG_SHIFT_TAB_FLTxE[iFault]) ==
10021            (HRTIM_FLTINR1_FLT1E)) ? 1UL : 0UL);
10022 }
10023 
10024 /**
10025   * @brief  Enable the Blanking of the fault circuitry for the designated fault input.
10026   * @rmtoll FLTINR1     FLT1BLKE      LL_HRTIM_FLT_EnableBlanking\n
10027   *         FLTINR1     FLT2BLKE      LL_HRTIM_FLT_EnableBlanking\n
10028   *         FLTINR1     FLT3BLKE      LL_HRTIM_FLT_EnableBlanking\n
10029   *         FLTINR1     FLT4BLKE      LL_HRTIM_FLT_EnableBlanking\n
10030   *         FLTINR2     FLT5BLKE      LL_HRTIM_FLT_EnableBlanking\n
10031   *         FLTINR2     FLT6BLKE      LL_HRTIM_FLT_EnableBlanking
10032   * @param  HRTIMx High Resolution Timer instance
10033   * @param  Fault This parameter can be one of the following values:
10034   *         @arg @ref LL_HRTIM_FAULT_1
10035   *         @arg @ref LL_HRTIM_FAULT_2
10036   *         @arg @ref LL_HRTIM_FAULT_3
10037   *         @arg @ref LL_HRTIM_FAULT_4
10038   *         @arg @ref LL_HRTIM_FAULT_5
10039   *         @arg @ref LL_HRTIM_FAULT_6
10040   * @retval None
10041   */
LL_HRTIM_FLT_EnableBlanking(HRTIM_TypeDef * HRTIMx,uint32_t Fault)10042 __STATIC_INLINE void LL_HRTIM_FLT_EnableBlanking(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10043 {
10044   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10045   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10046                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10047   SET_BIT(*pReg, (uint32_t)(HRTIM_FLTINR3_FLT1BLKE) << REG_SHIFT_TAB_FLTxE[iFault]);
10048 }
10049 
10050 /**
10051   * @brief  Disable the Blanking of the fault circuitry for the designated fault input.
10052   * @rmtoll FLTINR1     FLT1BLKE      LL_HRTIM_FLT_DisableBlanking\n
10053   *         FLTINR1     FLT2BLKE      LL_HRTIM_FLT_DisableBlanking\n
10054   *         FLTINR1     FLT3BLKE      LL_HRTIM_FLT_DisableBlanking\n
10055   *         FLTINR1     FLT4BLKE      LL_HRTIM_FLT_DisableBlanking\n
10056   *         FLTINR2     FLT5BLKE      LL_HRTIM_FLT_DisableBlanking\n
10057   *         FLTINR2     FLT6BLKE      LL_HRTIM_FLT_DisableBlanking
10058   * @param  HRTIMx High Resolution Timer instance
10059   * @param  Fault This parameter can be one of the following values:
10060   *         @arg @ref LL_HRTIM_FAULT_1
10061   *         @arg @ref LL_HRTIM_FAULT_2
10062   *         @arg @ref LL_HRTIM_FAULT_3
10063   *         @arg @ref LL_HRTIM_FAULT_4
10064   *         @arg @ref LL_HRTIM_FAULT_5
10065   *         @arg @ref LL_HRTIM_FAULT_6
10066   * @retval None
10067   */
LL_HRTIM_FLT_DisableBlanking(HRTIM_TypeDef * HRTIMx,uint32_t Fault)10068 __STATIC_INLINE void LL_HRTIM_FLT_DisableBlanking(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10069 {
10070   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10071   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10072                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10073   CLEAR_BIT(*pReg, (HRTIM_FLTINR3_FLT1BLKE << REG_SHIFT_TAB_FLTxE[iFault]));
10074 }
10075 
10076 /**
10077   * @brief  Indicate whether the Blanking of the fault circuitry is enabled for a given fault input.
10078   * @rmtoll FLTINR1     FLT1BLKE      LL_HRTIM_FLT_IsEnabledBlanking\n
10079   *         FLTINR1     FLT2BLKE      LL_HRTIM_FLT_IsEnabledBlanking\n
10080   *         FLTINR1     FLT3BLKE      LL_HRTIM_FLT_IsEnabledBlanking\n
10081   *         FLTINR1     FLT4BLKE      LL_HRTIM_FLT_IsEnabledBlanking\n
10082   *         FLTINR2     FLT5BLKE      LL_HRTIM_FLT_IsEnabledBlanking\n
10083   *         FLTINR2     FLT6BLKE      LL_HRTIM_FLT_IsEnabledBlanking
10084   * @param  HRTIMx High Resolution Timer instance
10085   * @param  Fault This parameter can be one of the following values:
10086   *         @arg @ref LL_HRTIM_FAULT_1
10087   *         @arg @ref LL_HRTIM_FAULT_2
10088   *         @arg @ref LL_HRTIM_FAULT_3
10089   *         @arg @ref LL_HRTIM_FAULT_4
10090   *         @arg @ref LL_HRTIM_FAULT_5
10091   *         @arg @ref LL_HRTIM_FAULT_6
10092   * @retval State of FLTxBLKE bit in HRTIM_FLTINRx register (1 or 0).
10093   */
LL_HRTIM_FLT_IsEnabledBlanking(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)10094 __STATIC_INLINE uint32_t LL_HRTIM_FLT_IsEnabledBlanking(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10095 {
10096   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10097   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10098                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10099   uint32_t temp; /* MISRAC-2012 compliance */
10100   temp = READ_BIT(*pReg, (uint32_t)(HRTIM_FLTINR3_FLT1BLKE) << REG_SHIFT_TAB_FLTxE[iFault]) >> REG_SHIFT_TAB_FLTxE[iFault];
10101 
10102   return ((temp == (HRTIM_FLTINR3_FLT1BLKE)) ? 1UL : 0UL);
10103 }
10104 
10105 /**
10106   * @brief  Set the Blanking Source of the fault circuitry  for a given fault input.
10107   * @note Fault inputs can be temporary disabled to blank spurious fault events.
10108   * @note This function allows for selection amongst 2 possible blanking sources.
10109   * @note Events triggering blanking window start and blanking window end depend
10110   *       on both the selected blanking source and the fault input.
10111   * @rmtoll FLTINR3     FLT1BLKS      LL_HRTIM_FLT_SetBlankingSrc\n
10112   *         FLTINR3     FLT2BLKS      LL_HRTIM_FLT_SetBlankingSrc\n
10113   *         FLTINR3     FLT3BLKS      LL_HRTIM_FLT_SetBlankingSrc\n
10114   *         FLTINR3     FLT4BLKS      LL_HRTIM_FLT_SetBlankingSrc\n
10115   *         FLTINR4     FLT5BLKS      LL_HRTIM_FLT_SetBlankingSrc\n
10116   *         FLTINR4     FLT6BLKS      LL_HRTIM_FLT_SetBlankingSrc
10117   * @param  HRTIMx High Resolution Timer instance
10118   * @param  Fault This parameter can be one of the following values:
10119   *         @arg @ref LL_HRTIM_FAULT_1
10120   *         @arg @ref LL_HRTIM_FAULT_2
10121   *         @arg @ref LL_HRTIM_FAULT_3
10122   *         @arg @ref LL_HRTIM_FAULT_4
10123   *         @arg @ref LL_HRTIM_FAULT_5
10124   *         @arg @ref LL_HRTIM_FAULT_6
10125   * @param  Source parameter can be one of the following values:
10126   *         @arg @ref LL_HRTIM_FLT_BLANKING_RSTALIGNED
10127   *         @arg @ref LL_HRTIM_FLT_BLANKING_MOVING
10128   * @retval None
10129   */
LL_HRTIM_FLT_SetBlankingSrc(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Source)10130 __STATIC_INLINE void LL_HRTIM_FLT_SetBlankingSrc(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Source)
10131 {
10132   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10133   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10134                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10135   MODIFY_REG(*pReg, (HRTIM_FLTINR3_FLT1BLKS << REG_SHIFT_TAB_FLTxE[iFault]), (Source << REG_SHIFT_TAB_FLTxE[iFault]));
10136 
10137 }
10138 
10139 /**
10140   * @brief  Get the Blanking Source of the fault circuitry is enabled for a given fault input.
10141   * @rmtoll FLTINR3     FLT1BLKS      LL_HRTIM_FLT_GetBlankingSrc\n
10142   *         FLTINR3     FLT2BLKS      LL_HRTIM_FLT_GetBlankingSrc\n
10143   *         FLTINR3     FLT3BLKS      LL_HRTIM_FLT_GetBlankingSrc\n
10144   *         FLTINR3     FLT4BLKS      LL_HRTIM_FLT_GetBlankingSrc\n
10145   *         FLTINR4     FLT5BLKS      LL_HRTIM_FLT_GetBlankingSrc\n
10146   *         FLTINR4     FLT6BLKS      LL_HRTIM_FLT_GetBlankingSrc
10147   * @param  HRTIMx High Resolution Timer instance
10148   * @param  Fault This parameter can be one of the following values:
10149   *         @arg @ref LL_HRTIM_FAULT_1
10150   *         @arg @ref LL_HRTIM_FAULT_2
10151   *         @arg @ref LL_HRTIM_FAULT_3
10152   *         @arg @ref LL_HRTIM_FAULT_4
10153   *         @arg @ref LL_HRTIM_FAULT_5
10154   *         @arg @ref LL_HRTIM_FAULT_6
10155   */
LL_HRTIM_FLT_GetBlankingSrc(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)10156 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetBlankingSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10157 {
10158   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10159   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10160                                                            REG_OFFSET_TAB_FLTINR[iFault]));
10161   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_FLTINR3_FLT1BLKS) << REG_SHIFT_TAB_FLTxE[iFault]) >> REG_SHIFT_TAB_FLTxE[iFault]));
10162 }
10163 
10164 /**
10165   * @brief  Set the Counter threshold value of a fault counter.
10166   * @rmtoll FLTINR3     FLT1CNT      LL_HRTIM_FLT_SetCounterThreshold\n
10167   *         FLTINR3     FLT2CNT      LL_HRTIM_FLT_SetCounterThreshold\n
10168   *         FLTINR3     FLT3CNT      LL_HRTIM_FLT_SetCounterThreshold\n
10169   *         FLTINR3     FLT4CNT      LL_HRTIM_FLT_SetCounterThreshold\n
10170   *         FLTINR4     FLT5CNT      LL_HRTIM_FLT_SetCounterThreshold\n
10171   *         FLTINR4     FLT6CNT      LL_HRTIM_FLT_SetCounterThreshold
10172   * @note This function must not be called when the fault channel is enabled.
10173   * @param  HRTIMx High Resolution Timer instance
10174   * @param  Fault This parameter can be one of the following values:
10175   *         @arg @ref LL_HRTIM_FAULT_1
10176   *         @arg @ref LL_HRTIM_FAULT_2
10177   *         @arg @ref LL_HRTIM_FAULT_3
10178   *         @arg @ref LL_HRTIM_FAULT_4
10179   *         @arg @ref LL_HRTIM_FAULT_5
10180   *         @arg @ref LL_HRTIM_FAULT_6
10181   * @param  Threshold This parameter can be a number between Min_Data=0 and Max_Data=15
10182   * @retval None
10183   */
LL_HRTIM_FLT_SetCounterThreshold(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Threshold)10184 __STATIC_INLINE void LL_HRTIM_FLT_SetCounterThreshold(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Threshold)
10185 {
10186   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10187   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10188                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10189   MODIFY_REG(*pReg, (HRTIM_FLTINR3_FLT1CNT << REG_SHIFT_TAB_FLTxE[iFault]), (Threshold << REG_SHIFT_TAB_FLTxCNT[iFault]));
10190 }
10191 
10192 /**
10193   * @brief  Get actual the Counter threshold value of a fault counter.
10194   * @rmtoll FLTINR3     FLT1CNT      LL_HRTIM_FLT_GetCounterThreshold\n
10195   *         FLTINR3     FLT2CNT      LL_HRTIM_FLT_GetCounterThreshold\n
10196   *         FLTINR3     FLT3CNT      LL_HRTIM_FLT_GetCounterThreshold\n
10197   *         FLTINR3     FLT4CNT      LL_HRTIM_FLT_GetCounterThreshold\n
10198   *         FLTINR4     FLT5CNT      LL_HRTIM_FLT_GetCounterThreshold\n
10199   *         FLTINR4     FLT6CNT      LL_HRTIM_FLT_GetCounterThreshold
10200   * @param  HRTIMx High Resolution Timer instance
10201   * @param  Fault This parameter can be one of the following values:
10202   *         @arg @ref LL_HRTIM_FAULT_1
10203   *         @arg @ref LL_HRTIM_FAULT_2
10204   *         @arg @ref LL_HRTIM_FAULT_3
10205   *         @arg @ref LL_HRTIM_FAULT_4
10206   *         @arg @ref LL_HRTIM_FAULT_5
10207   *         @arg @ref LL_HRTIM_FAULT_6
10208   * @retval Threshold This parameter can be a number between Min_Data=0 and Max_Data=15
10209   */
LL_HRTIM_FLT_GetCounterThreshold(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)10210 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetCounterThreshold(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10211 {
10212   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10213   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10214                                                            REG_OFFSET_TAB_FLTINR[iFault]));
10215   return (READ_BIT(*pReg, (uint32_t)(HRTIM_FLTINR3_FLT1CNT) << REG_SHIFT_TAB_FLTxE[iFault]) >> REG_SHIFT_TAB_FLTxCNT[iFault]);
10216 }
10217 
10218 /**
10219   * @brief  Set the mode of reset of a fault counter to 'always reset'.
10220   * @rmtoll FLTINR3     FLT1RSTM      LL_HRTIM_FLT_SetResetMode\n
10221   *         FLTINR3     FLT2RSTM      LL_HRTIM_FLT_SetResetMode\n
10222   *         FLTINR3     FLT3RSTM      LL_HRTIM_FLT_SetResetMode\n
10223   *         FLTINR3     FLT4RSTM      LL_HRTIM_FLT_SetResetMode\n
10224   *         FLTINR4     FLT5RSTM      LL_HRTIM_FLT_SetResetMode\n
10225   *         FLTINR4     FLT6RSTM      LL_HRTIM_FLT_SetResetMode
10226   * @param  HRTIMx High Resolution Timer instance
10227   * @param  Fault This parameter can be one of the following values:
10228   *         @arg @ref LL_HRTIM_FAULT_1
10229   *         @arg @ref LL_HRTIM_FAULT_2
10230   *         @arg @ref LL_HRTIM_FAULT_3
10231   *         @arg @ref LL_HRTIM_FAULT_4
10232   *         @arg @ref LL_HRTIM_FAULT_5
10233   *         @arg @ref LL_HRTIM_FAULT_6
10234   * @param  Mode This parameter can be one of the following values:
10235   *         @arg @ref LL_HRTIM_FLT_COUNTERRST_UNCONDITIONAL
10236   *         @arg @ref LL_HRTIM_FLT_COUNTERRST_CONDITIONAL
10237   * @retval None
10238   */
LL_HRTIM_FLT_SetResetMode(HRTIM_TypeDef * HRTIMx,uint32_t Fault,uint32_t Mode)10239 __STATIC_INLINE void LL_HRTIM_FLT_SetResetMode(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Mode)
10240 {
10241   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10242   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10243                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10244   MODIFY_REG(*pReg, (HRTIM_FLTINR3_FLT1RSTM << REG_SHIFT_TAB_FLTxE[iFault]), Mode << REG_SHIFT_TAB_FLTxE[iFault]);
10245 
10246 }
10247 
10248 /**
10249   * @brief  Get the mode of reset of a fault counter to 'reset on event'.
10250   * @rmtoll FLTINR3     FLT1RSTM      LL_HRTIM_FLT_GetResetMode\n
10251   *         FLTINR3     FLT2RSTM      LL_HRTIM_FLT_GetResetMode\n
10252   *         FLTINR3     FLT3RSTM      LL_HRTIM_FLT_GetResetMode\n
10253   *         FLTINR3     FLT4RSTM      LL_HRTIM_FLT_GetResetMode\n
10254   *         FLTINR4     FLT5RSTM      LL_HRTIM_FLT_GetResetMode\n
10255   *         FLTINR4     FLT6RSTM      LL_HRTIM_FLT_GetResetMode
10256   * @param  HRTIMx High Resolution Timer instance
10257   * @param  Fault This parameter can be one of the following values:
10258   *         @arg @ref LL_HRTIM_FAULT_1
10259   *         @arg @ref LL_HRTIM_FAULT_2
10260   *         @arg @ref LL_HRTIM_FAULT_3
10261   *         @arg @ref LL_HRTIM_FAULT_4
10262   *         @arg @ref LL_HRTIM_FAULT_5
10263   *         @arg @ref LL_HRTIM_FAULT_6
10264   * @retval  Mode This parameter can be one of the following values:
10265   *         @arg @ref LL_HRTIM_FLT_COUNTERRST_UNCONDITIONAL
10266   *         @arg @ref LL_HRTIM_FLT_COUNTERRST_CONDITIONAL
10267   */
LL_HRTIM_FLT_GetResetMode(const HRTIM_TypeDef * HRTIMx,uint32_t Fault)10268 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetResetMode(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10269 {
10270   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10271   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10272                                                            REG_OFFSET_TAB_FLTINR[iFault]));
10273   return (READ_BIT(*pReg, (uint32_t)(HRTIM_FLTINR3_FLT1RSTM) << REG_SHIFT_TAB_FLTxE[iFault]) >> REG_SHIFT_TAB_FLTxE[iFault]);
10274 }
10275 
10276 /**
10277   * @brief  Reset the fault counter for a fault circuitry
10278   * @rmtoll FLTINR3     FLT1CRES      LL_HRTIM_FLT_ResetCounter\n
10279   *         FLTINR3     FLT2CRES      LL_HRTIM_FLT_ResetCounter\n
10280   *         FLTINR3     FLT3CRES      LL_HRTIM_FLT_ResetCounter\n
10281   *         FLTINR3     FLT4CRES      LL_HRTIM_FLT_ResetCounter\n
10282   *         FLTINR4     FLT5CRES      LL_HRTIM_FLT_ResetCounter\n
10283   *         FLTINR4     FLT6CRES      LL_HRTIM_FLT_ResetCounter
10284   * @param  HRTIMx High Resolution Timer instance
10285   * @param  Fault This parameter can be one of the following values:
10286   *         @arg @ref LL_HRTIM_FAULT_1
10287   *         @arg @ref LL_HRTIM_FAULT_2
10288   *         @arg @ref LL_HRTIM_FAULT_3
10289   *         @arg @ref LL_HRTIM_FAULT_4
10290   *         @arg @ref LL_HRTIM_FAULT_5
10291   *         @arg @ref LL_HRTIM_FAULT_6
10292   * @retval None
10293   */
LL_HRTIM_FLT_ResetCounter(HRTIM_TypeDef * HRTIMx,uint32_t Fault)10294 __STATIC_INLINE void LL_HRTIM_FLT_ResetCounter(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
10295 {
10296   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
10297   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR3) +
10298                                                      REG_OFFSET_TAB_FLTINR[iFault]));
10299   SET_BIT(*pReg, (uint32_t)(HRTIM_FLTINR3_FLT1CRES) << REG_SHIFT_TAB_FLTxE[iFault]);
10300 
10301 }
10302 
10303 /**
10304   * @}
10305   */
10306 
10307 /** @defgroup HRTIM_LL_EF_Burst_Mode_management Burst_Mode_management
10308   * @{
10309   */
10310 
10311 /**
10312   * @brief  Configure the burst mode controller.
10313   * @rmtoll BMCR     BMOM        LL_HRTIM_BM_Config\n
10314   *         BMCR     BMCLK       LL_HRTIM_BM_Config\n
10315   *         BMCR     BMPRSC      LL_HRTIM_BM_Config
10316   * @param  HRTIMx High Resolution Timer instance
10317   * @param  Configuration This parameter must be a combination of all the following values:
10318   *         @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT or @ref LL_HRTIM_BM_MODE_CONTINOUS
10319   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER or ... or @ref LL_HRTIM_BM_CLKSRC_FHRTIM
10320   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1 or ... @ref LL_HRTIM_BM_PRESCALER_DIV32768
10321   * @retval None
10322   */
LL_HRTIM_BM_Config(HRTIM_TypeDef * HRTIMx,uint32_t Configuration)10323 __STATIC_INLINE void LL_HRTIM_BM_Config(HRTIM_TypeDef *HRTIMx, uint32_t Configuration)
10324 {
10325   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BM_CONFIG_MASK, Configuration);
10326 }
10327 
10328 /**
10329   * @brief  Set the burst mode controller operating mode.
10330   * @rmtoll BMCR     BMOM        LL_HRTIM_BM_SetMode
10331   * @param  HRTIMx High Resolution Timer instance
10332   * @param  Mode This parameter can be one of the following values:
10333   *         @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT
10334   *         @arg @ref LL_HRTIM_BM_MODE_CONTINOUS
10335   * @retval None
10336   */
LL_HRTIM_BM_SetMode(HRTIM_TypeDef * HRTIMx,uint32_t Mode)10337 __STATIC_INLINE void LL_HRTIM_BM_SetMode(HRTIM_TypeDef *HRTIMx, uint32_t Mode)
10338 {
10339   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMOM, Mode);
10340 }
10341 
10342 /**
10343   * @brief  Get actual burst mode controller operating mode.
10344   * @rmtoll BMCR     BMOM        LL_HRTIM_BM_GetMode
10345   * @param  HRTIMx High Resolution Timer instance
10346   * @retval Mode This parameter can be one of the following values:
10347   *         @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT
10348   *         @arg @ref LL_HRTIM_BM_MODE_CONTINOUS
10349   */
LL_HRTIM_BM_GetMode(const HRTIM_TypeDef * HRTIMx)10350 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetMode(const HRTIM_TypeDef *HRTIMx)
10351 {
10352   return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMOM);
10353 }
10354 
10355 /**
10356   * @brief  Set the burst mode controller clock source.
10357   * @rmtoll BMCR     BMCLK       LL_HRTIM_BM_SetClockSrc
10358   * @param  HRTIMx High Resolution Timer instance
10359   * @param  ClockSrc This parameter can be one of the following values:
10360   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER
10361   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A
10362   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B
10363   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C
10364   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D
10365   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E
10366   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC
10367   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC
10368   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO
10369   *         @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM
10370   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_F
10371   * @retval None
10372   */
LL_HRTIM_BM_SetClockSrc(HRTIM_TypeDef * HRTIMx,uint32_t ClockSrc)10373 __STATIC_INLINE void LL_HRTIM_BM_SetClockSrc(HRTIM_TypeDef *HRTIMx, uint32_t ClockSrc)
10374 {
10375   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMCLK, ClockSrc);
10376 }
10377 
10378 /**
10379   * @brief  Get actual burst mode controller clock source.
10380   * @rmtoll BMCR     BMCLK       LL_HRTIM_BM_GetClockSrc
10381   * @param  HRTIMx High Resolution Timer instance
10382   * @retval ClockSrc This parameter can be one of the following values:
10383   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER
10384   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A
10385   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B
10386   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C
10387   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D
10388   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E
10389   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC
10390   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC
10391   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO
10392   *         @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM
10393   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_F
10394   * @retval ClockSrc This parameter can be one of the following values:
10395   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER
10396   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A
10397   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B
10398   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C
10399   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D
10400   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E
10401   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC
10402   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC
10403   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO
10404   *         @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM
10405   */
LL_HRTIM_BM_GetClockSrc(const HRTIM_TypeDef * HRTIMx)10406 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetClockSrc(const HRTIM_TypeDef *HRTIMx)
10407 {
10408   return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMCLK);
10409 }
10410 
10411 /**
10412   * @brief  Set the burst mode controller prescaler.
10413   * @rmtoll BMCR     BMPRSC      LL_HRTIM_BM_SetPrescaler
10414   * @param  HRTIMx High Resolution Timer instance
10415   * @param  Prescaler This parameter can be one of the following values:
10416   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1
10417   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2
10418   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4
10419   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8
10420   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16
10421   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32
10422   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV64
10423   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV128
10424   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV256
10425   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV512
10426   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1024
10427   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2048
10428   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4096
10429   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8192
10430   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16384
10431   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32768
10432   * @retval None
10433   */
LL_HRTIM_BM_SetPrescaler(HRTIM_TypeDef * HRTIMx,uint32_t Prescaler)10434 __STATIC_INLINE void LL_HRTIM_BM_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler)
10435 {
10436   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPRSC, Prescaler);
10437 }
10438 
10439 /**
10440   * @brief  Get actual burst mode controller prescaler setting.
10441   * @rmtoll BMCR     BMPRSC      LL_HRTIM_BM_GetPrescaler
10442   * @param  HRTIMx High Resolution Timer instance
10443   * @retval Prescaler This parameter can be one of the following values:
10444   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1
10445   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2
10446   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4
10447   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8
10448   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16
10449   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32
10450   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV64
10451   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV128
10452   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV256
10453   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV512
10454   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1024
10455   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2048
10456   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4096
10457   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8192
10458   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16384
10459   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32768
10460   */
LL_HRTIM_BM_GetPrescaler(const HRTIM_TypeDef * HRTIMx)10461 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetPrescaler(const HRTIM_TypeDef *HRTIMx)
10462 {
10463   return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPRSC);
10464 }
10465 
10466 /**
10467   * @brief  Enable burst mode compare and period registers preload.
10468   * @rmtoll BMCR     BMPREN      LL_HRTIM_BM_EnablePreload
10469   * @param  HRTIMx High Resolution Timer instance
10470   * @retval None
10471   */
LL_HRTIM_BM_EnablePreload(HRTIM_TypeDef * HRTIMx)10472 __STATIC_INLINE void LL_HRTIM_BM_EnablePreload(HRTIM_TypeDef *HRTIMx)
10473 {
10474   SET_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN);
10475 }
10476 
10477 /**
10478   * @brief  Disable burst mode compare and period registers preload.
10479   * @rmtoll BMCR     BMPREN      LL_HRTIM_BM_DisablePreload
10480   * @param  HRTIMx High Resolution Timer instance
10481   * @retval None
10482   */
LL_HRTIM_BM_DisablePreload(HRTIM_TypeDef * HRTIMx)10483 __STATIC_INLINE void LL_HRTIM_BM_DisablePreload(HRTIM_TypeDef *HRTIMx)
10484 {
10485   CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN);
10486 }
10487 
10488 /**
10489   * @brief  Indicate whether burst mode compare and period registers are preloaded.
10490   * @rmtoll BMCR     BMPREN      LL_HRTIM_BM_IsEnabledPreload
10491   * @param  HRTIMx High Resolution Timer instance
10492   * @retval State of BMPREN bit in HRTIM_BMCR register (1 or 0).
10493   */
LL_HRTIM_BM_IsEnabledPreload(const HRTIM_TypeDef * HRTIMx)10494 __STATIC_INLINE uint32_t LL_HRTIM_BM_IsEnabledPreload(const HRTIM_TypeDef *HRTIMx)
10495 {
10496   uint32_t temp; /* MISRAC-2012 compliance */
10497   temp = READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN);
10498 
10499   return ((temp == (HRTIM_BMCR_BMPREN)) ? 1UL : 0UL);
10500 }
10501 
10502 /**
10503   * @brief  Set the burst mode controller trigger
10504   * @rmtoll BMTRGR     SW           LL_HRTIM_BM_SetTrig\n
10505   *         BMTRGR     MSTRST       LL_HRTIM_BM_SetTrig\n
10506   *         BMTRGR     MSTREP       LL_HRTIM_BM_SetTrig\n
10507   *         BMTRGR     MSTCMP1      LL_HRTIM_BM_SetTrig\n
10508   *         BMTRGR     MSTCMP2      LL_HRTIM_BM_SetTrig\n
10509   *         BMTRGR     MSTCMP3      LL_HRTIM_BM_SetTrig\n
10510   *         BMTRGR     MSTCMP4      LL_HRTIM_BM_SetTrig\n
10511   *         BMTRGR     TARST        LL_HRTIM_BM_SetTrig\n
10512   *         BMTRGR     TAREP        LL_HRTIM_BM_SetTrig\n
10513   *         BMTRGR     TACMP1       LL_HRTIM_BM_SetTrig\n
10514   *         BMTRGR     TACMP2       LL_HRTIM_BM_SetTrig\n
10515   *         BMTRGR     TBRST        LL_HRTIM_BM_SetTrig\n
10516   *         BMTRGR     TBREP        LL_HRTIM_BM_SetTrig\n
10517   *         BMTRGR     TBCMP1       LL_HRTIM_BM_SetTrig\n
10518   *         BMTRGR     TBCMP2       LL_HRTIM_BM_SetTrig\n
10519   *         BMTRGR     TCRST        LL_HRTIM_BM_SetTrig\n
10520   *         BMTRGR     TCREP        LL_HRTIM_BM_SetTrig\n
10521   *         BMTRGR     TCCMP1       LL_HRTIM_BM_SetTrig\n
10522   *         BMTRGR     TDRST        LL_HRTIM_BM_SetTrig\n
10523   *         BMTRGR     TDREP        LL_HRTIM_BM_SetTrig\n
10524   *         BMTRGR     TDCMP2       LL_HRTIM_BM_SetTrig\n
10525   *         BMTRGR     TEREP        LL_HRTIM_BM_SetTrig\n
10526   *         BMTRGR     TECMP1       LL_HRTIM_BM_SetTrig\n
10527   *         BMTRGR     TECMP2       LL_HRTIM_BM_SetTrig\n
10528   *         BMTRGR     TFREP        LL_HRTIM_BM_SetTrig\n
10529   *         BMTRGR     TFRST        LL_HRTIM_BM_SetTrig\n
10530   *         BMTRGR     TFCMP1       LL_HRTIM_BM_SetTrig\n
10531   *         BMTRGR     TAEEV7       LL_HRTIM_BM_SetTrig\n
10532   *         BMTRGR     TAEEV8       LL_HRTIM_BM_SetTrig\n
10533   *         BMTRGR     EEV7         LL_HRTIM_BM_SetTrig\n
10534   *         BMTRGR     EEV8         LL_HRTIM_BM_SetTrig\n
10535   *         BMTRGR     OCHIPEV      LL_HRTIM_BM_SetTrig
10536   * @param  HRTIMx High Resolution Timer instance
10537   * @param  Trig This parameter can be a combination of the following values:
10538   *         @arg @ref LL_HRTIM_BM_TRIG_NONE
10539   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_RESET
10540   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_REPETITION
10541   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP1
10542   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP2
10543   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP3
10544   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP4
10545   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_RESET
10546   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_REPETITION
10547   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP1
10548   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP2
10549   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_RESET
10550   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_REPETITION
10551   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP1
10552   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP2
10553   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_RESET
10554   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_REPETITION
10555   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP1
10556   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_RESET
10557   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_REPETITION
10558   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP2
10559   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_REPETITION
10560   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP1
10561   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP2
10562   *         @arg @ref LL_HRTIM_BM_TRIG_TIMF_RESET
10563   *         @arg @ref LL_HRTIM_BM_TRIG_TIMF_REPETITION
10564   *         @arg @ref LL_HRTIM_BM_TRIG_TIMF_CMP1
10565   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_EVENT7
10566   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_EVENT8
10567   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_7
10568   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_8
10569   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_ONCHIP
10570     * @retval None
10571   */
LL_HRTIM_BM_SetTrig(HRTIM_TypeDef * HRTIMx,uint32_t Trig)10572 __STATIC_INLINE void LL_HRTIM_BM_SetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Trig)
10573 {
10574   WRITE_REG(HRTIMx->sCommonRegs.BMTRGR, Trig);
10575 }
10576 
10577 /**
10578   * @brief  Get actual burst mode controller trigger.
10579   * @rmtoll BMTRGR     SW           LL_HRTIM_BM_GetTrig\n
10580   *         BMTRGR     MSTRST       LL_HRTIM_BM_GetTrig\n
10581   *         BMTRGR     MSTREP       LL_HRTIM_BM_GetTrig\n
10582   *         BMTRGR     MSTCMP1      LL_HRTIM_BM_GetTrig\n
10583   *         BMTRGR     MSTCMP2      LL_HRTIM_BM_GetTrig\n
10584   *         BMTRGR     MSTCMP3      LL_HRTIM_BM_GetTrig\n
10585   *         BMTRGR     MSTCMP4      LL_HRTIM_BM_GetTrig\n
10586   *         BMTRGR     TARST        LL_HRTIM_BM_GetTrig\n
10587   *         BMTRGR     TAREP        LL_HRTIM_BM_GetTrig\n
10588   *         BMTRGR     TACMP1       LL_HRTIM_BM_GetTrig\n
10589   *         BMTRGR     TACMP2       LL_HRTIM_BM_GetTrig\n
10590   *         BMTRGR     TBRST        LL_HRTIM_BM_GetTrig\n
10591   *         BMTRGR     TBREP        LL_HRTIM_BM_GetTrig\n
10592   *         BMTRGR     TBCMP1       LL_HRTIM_BM_GetTrig\n
10593   *         BMTRGR     TBCMP2       LL_HRTIM_BM_GetTrig\n
10594   *         BMTRGR     TCRST        LL_HRTIM_BM_GetTrig\n
10595   *         BMTRGR     TCREP        LL_HRTIM_BM_GetTrig\n
10596   *         BMTRGR     TCCMP1       LL_HRTIM_BM_GetTrig\n
10597   *         BMTRGR     TDRST        LL_HRTIM_BM_GetTrig\n
10598   *         BMTRGR     TDREP        LL_HRTIM_BM_GetTrig\n
10599   *         BMTRGR     TDCMP2       LL_HRTIM_BM_GetTrig\n
10600   *         BMTRGR     TEREP        LL_HRTIM_BM_GetTrig\n
10601   *         BMTRGR     TECMP1       LL_HRTIM_BM_GetTrig\n
10602   *         BMTRGR     TECMP2       LL_HRTIM_BM_GetTrig\n
10603   *         BMTRGR     TFREP        LL_HRTIM_BM_GetTrig\n
10604   *         BMTRGR     TFRST        LL_HRTIM_BM_GetTrig\n
10605   *         BMTRGR     TFCMP1       LL_HRTIM_BM_GetTrig\n
10606   *         BMTRGR     TAEEV7       LL_HRTIM_BM_GetTrig\n
10607   *         BMTRGR     TAEEV8       LL_HRTIM_BM_GetTrig\n
10608   *         BMTRGR     EEV7         LL_HRTIM_BM_GetTrig\n
10609   *         BMTRGR     EEV8         LL_HRTIM_BM_GetTrig\n
10610   *         BMTRGR     OCHIPEV      LL_HRTIM_BM_GetTrig
10611   * @param  HRTIMx High Resolution Timer instance
10612   * @retval Trig This parameter can be a combination of the following values:
10613   *         @arg @ref LL_HRTIM_BM_TRIG_NONE
10614   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_RESET
10615   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_REPETITION
10616   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP1
10617   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP2
10618   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP3
10619   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP4
10620   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_RESET
10621   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_REPETITION
10622   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP1
10623   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP2
10624   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_RESET
10625   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_REPETITION
10626   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP1
10627   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP2
10628   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_RESET
10629   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_REPETITION
10630   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP1
10631   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_RESET
10632   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_REPETITION
10633   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP2
10634   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_REPETITION
10635   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP1
10636   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP2
10637   *         @arg @ref LL_HRTIM_BM_TRIG_TIMF_RESET
10638   *         @arg @ref LL_HRTIM_BM_TRIG_TIMF_REPETITION
10639   *         @arg @ref LL_HRTIM_BM_TRIG_TIMF_CMP1
10640   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_EVENT7
10641   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_EVENT8
10642   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_7
10643   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_8
10644   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_ONCHIP
10645   */
LL_HRTIM_BM_GetTrig(const HRTIM_TypeDef * HRTIMx)10646 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetTrig(const HRTIM_TypeDef *HRTIMx)
10647 {
10648   return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMTRGR);
10649 }
10650 
10651 /**
10652   * @brief  Set the burst mode controller compare value.
10653   * @rmtoll BMCMPR     BMCMP      LL_HRTIM_BM_SetCompare
10654   * @param  HRTIMx High Resolution Timer instance
10655   * @param  CompareValue Compare value must be above or equal to 3
10656   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
10657   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
10658   * @retval None
10659   */
LL_HRTIM_BM_SetCompare(HRTIM_TypeDef * HRTIMx,uint32_t CompareValue)10660 __STATIC_INLINE void LL_HRTIM_BM_SetCompare(HRTIM_TypeDef *HRTIMx, uint32_t CompareValue)
10661 {
10662   WRITE_REG(HRTIMx->sCommonRegs.BMCMPR, CompareValue);
10663 }
10664 
10665 /**
10666   * @brief  Get actual burst mode controller compare value.
10667   * @rmtoll BMCMPR     BMCMP      LL_HRTIM_BM_GetCompare
10668   * @param  HRTIMx High Resolution Timer instance
10669   * @retval CompareValue Compare value must be above or equal to 3
10670   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
10671   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
10672   */
LL_HRTIM_BM_GetCompare(const HRTIM_TypeDef * HRTIMx)10673 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetCompare(const HRTIM_TypeDef *HRTIMx)
10674 {
10675   return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMCMPR);
10676 }
10677 
10678 /**
10679   * @brief  Set the burst mode controller period.
10680   * @rmtoll BMPER     BMPER      LL_HRTIM_BM_SetPeriod
10681   * @param  HRTIMx High Resolution Timer instance
10682   * @param  Period The period value must be above or equal to 3 periods of the fHRTIM clock,
10683   *         that is 0x60 if CKPSC[2:0] = 0, 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
10684   *         The maximum value is 0x0000 FFDF.
10685   * @retval None
10686   */
LL_HRTIM_BM_SetPeriod(HRTIM_TypeDef * HRTIMx,uint32_t Period)10687 __STATIC_INLINE void LL_HRTIM_BM_SetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Period)
10688 {
10689   WRITE_REG(HRTIMx->sCommonRegs.BMPER, Period);
10690 }
10691 
10692 /**
10693   * @brief  Get actual burst mode controller period.
10694   * @rmtoll BMPER     BMPER      LL_HRTIM_BM_GetPeriod
10695   * @param  HRTIMx High Resolution Timer instance
10696   * @retval The period value must be above or equal to 3 periods of the fHRTIM clock,
10697   *         that is 0x60 if CKPSC[2:0] = 0, 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
10698   *         The maximum value is 0x0000 FFDF.
10699   */
LL_HRTIM_BM_GetPeriod(const HRTIM_TypeDef * HRTIMx)10700 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetPeriod(const HRTIM_TypeDef *HRTIMx)
10701 {
10702   return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMPER);
10703 }
10704 
10705 /**
10706   * @brief  Enable the burst mode controller
10707   * @rmtoll BMCR     BME      LL_HRTIM_BM_Enable
10708   * @param  HRTIMx High Resolution Timer instance
10709   * @retval None
10710   */
LL_HRTIM_BM_Enable(HRTIM_TypeDef * HRTIMx)10711 __STATIC_INLINE void LL_HRTIM_BM_Enable(HRTIM_TypeDef *HRTIMx)
10712 {
10713   SET_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME);
10714 }
10715 
10716 /**
10717   * @brief  Disable the burst mode controller
10718   * @rmtoll BMCR     BME      LL_HRTIM_BM_Disable
10719   * @param  HRTIMx High Resolution Timer instance
10720   * @retval None
10721   */
LL_HRTIM_BM_Disable(HRTIM_TypeDef * HRTIMx)10722 __STATIC_INLINE void LL_HRTIM_BM_Disable(HRTIM_TypeDef *HRTIMx)
10723 {
10724   CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME);
10725 }
10726 
10727 /**
10728   * @brief  Indicate whether the burst mode controller is enabled.
10729   * @rmtoll BMCR     BME      LL_HRTIM_BM_IsEnabled
10730   * @param  HRTIMx High Resolution Timer instance
10731   * @retval State of BME bit in HRTIM_BMCR register (1 or 0).
10732   */
LL_HRTIM_BM_IsEnabled(const HRTIM_TypeDef * HRTIMx)10733 __STATIC_INLINE uint32_t LL_HRTIM_BM_IsEnabled(const HRTIM_TypeDef *HRTIMx)
10734 {
10735   return ((READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME) == (HRTIM_BMCR_BME)) ? 1UL : 0UL);
10736 }
10737 
10738 /**
10739   * @brief  Trigger the burst operation (software trigger)
10740   * @rmtoll BMTRGR     SW           LL_HRTIM_BM_Start
10741   * @param  HRTIMx High Resolution Timer instance
10742   * @retval None
10743   */
LL_HRTIM_BM_Start(HRTIM_TypeDef * HRTIMx)10744 __STATIC_INLINE void LL_HRTIM_BM_Start(HRTIM_TypeDef *HRTIMx)
10745 {
10746   SET_BIT(HRTIMx->sCommonRegs.BMTRGR, HRTIM_BMTRGR_SW);
10747 }
10748 
10749 /**
10750   * @brief  Stop the burst mode operation.
10751   * @rmtoll BMCR     BMSTAT           LL_HRTIM_BM_Stop
10752   * @note Causes a burst mode early termination.
10753   * @param  HRTIMx High Resolution Timer instance
10754   * @retval None
10755   */
LL_HRTIM_BM_Stop(HRTIM_TypeDef * HRTIMx)10756 __STATIC_INLINE void LL_HRTIM_BM_Stop(HRTIM_TypeDef *HRTIMx)
10757 {
10758   CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMSTAT);
10759 }
10760 
10761 /**
10762   * @brief  Get actual burst mode status
10763   * @rmtoll BMCR     BMSTAT           LL_HRTIM_BM_GetStatus
10764   * @param  HRTIMx High Resolution Timer instance
10765   * @retval Status This parameter can be one of the following values:
10766   *         @arg @ref LL_HRTIM_BM_STATUS_NORMAL
10767   *         @arg @ref LL_HRTIM_BM_STATUS_BURST_ONGOING
10768   */
LL_HRTIM_BM_GetStatus(const HRTIM_TypeDef * HRTIMx)10769 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetStatus(const HRTIM_TypeDef *HRTIMx)
10770 {
10771   return (READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMSTAT));
10772 }
10773 
10774 /**
10775   * @}
10776   */
10777 
10778 /** @defgroup HRTIM_LL_EF_FLAG_Management FLAG_Management
10779   * @{
10780   */
10781 
10782 /**
10783   * @brief  Clear the Fault 1 interrupt flag.
10784   * @rmtoll ICR     FLT1C           LL_HRTIM_ClearFlag_FLT1
10785   * @param  HRTIMx High Resolution Timer instance
10786   * @retval None
10787   */
LL_HRTIM_ClearFlag_FLT1(HRTIM_TypeDef * HRTIMx)10788 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT1(HRTIM_TypeDef *HRTIMx)
10789 {
10790   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT1C);
10791 }
10792 
10793 /**
10794   * @brief  Indicate whether Fault 1 interrupt occurred.
10795   * @rmtoll ICR     FLT1           LL_HRTIM_IsActiveFlag_FLT1
10796   * @param  HRTIMx High Resolution Timer instance
10797   * @retval State of FLT1 bit in HRTIM_ISR register (1 or 0).
10798   */
LL_HRTIM_IsActiveFlag_FLT1(const HRTIM_TypeDef * HRTIMx)10799 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT1(const HRTIM_TypeDef *HRTIMx)
10800 {
10801   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT1) == (HRTIM_ISR_FLT1)) ? 1UL : 0UL);
10802 }
10803 
10804 /**
10805   * @brief  Clear the Fault 2 interrupt flag.
10806   * @rmtoll ICR     FLT2C           LL_HRTIM_ClearFlag_FLT2
10807   * @param  HRTIMx High Resolution Timer instance
10808   * @retval None
10809   */
LL_HRTIM_ClearFlag_FLT2(HRTIM_TypeDef * HRTIMx)10810 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT2(HRTIM_TypeDef *HRTIMx)
10811 {
10812   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT2C);
10813 }
10814 
10815 /**
10816   * @brief  Indicate whether Fault 2 interrupt occurred.
10817   * @rmtoll ICR     FLT2           LL_HRTIM_IsActiveFlag_FLT2
10818   * @param  HRTIMx High Resolution Timer instance
10819   * @retval State of FLT2 bit in HRTIM_ISR register (1 or 0).
10820   */
LL_HRTIM_IsActiveFlag_FLT2(const HRTIM_TypeDef * HRTIMx)10821 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT2(const HRTIM_TypeDef *HRTIMx)
10822 {
10823   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT2) == (HRTIM_ISR_FLT2)) ? 1UL : 0UL);
10824 }
10825 
10826 /**
10827   * @brief  Clear the Fault 3 interrupt flag.
10828   * @rmtoll ICR     FLT3C           LL_HRTIM_ClearFlag_FLT3
10829   * @param  HRTIMx High Resolution Timer instance
10830   * @retval None
10831   */
LL_HRTIM_ClearFlag_FLT3(HRTIM_TypeDef * HRTIMx)10832 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT3(HRTIM_TypeDef *HRTIMx)
10833 {
10834   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT3C);
10835 }
10836 
10837 /**
10838   * @brief  Indicate whether Fault 3 interrupt occurred.
10839   * @rmtoll ICR     FLT3           LL_HRTIM_IsActiveFlag_FLT3
10840   * @param  HRTIMx High Resolution Timer instance
10841   * @retval State of FLT3 bit in HRTIM_ISR register (1 or 0).
10842   */
LL_HRTIM_IsActiveFlag_FLT3(const HRTIM_TypeDef * HRTIMx)10843 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT3(const HRTIM_TypeDef *HRTIMx)
10844 {
10845   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT3) == (HRTIM_ISR_FLT3)) ? 1UL : 0UL);
10846 }
10847 
10848 /**
10849   * @brief  Clear the Fault 4 interrupt flag.
10850   * @rmtoll ICR     FLT4C           LL_HRTIM_ClearFlag_FLT4
10851   * @param  HRTIMx High Resolution Timer instance
10852   * @retval None
10853   */
LL_HRTIM_ClearFlag_FLT4(HRTIM_TypeDef * HRTIMx)10854 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT4(HRTIM_TypeDef *HRTIMx)
10855 {
10856   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT4C);
10857 }
10858 
10859 /**
10860   * @brief  Indicate whether Fault 4 interrupt occurred.
10861   * @rmtoll ICR     FLT4           LL_HRTIM_IsActiveFlag_FLT4
10862   * @param  HRTIMx High Resolution Timer instance
10863   * @retval State of FLT4 bit in HRTIM_ISR register (1 or 0).
10864   */
LL_HRTIM_IsActiveFlag_FLT4(const HRTIM_TypeDef * HRTIMx)10865 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT4(const HRTIM_TypeDef *HRTIMx)
10866 {
10867   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT4) == (HRTIM_ISR_FLT4)) ? 1UL : 0UL);
10868 }
10869 
10870 /**
10871   * @brief  Clear the Fault 5 interrupt flag.
10872   * @rmtoll ICR     FLT5C           LL_HRTIM_ClearFlag_FLT5
10873   * @param  HRTIMx High Resolution Timer instance
10874   * @retval None
10875   */
LL_HRTIM_ClearFlag_FLT5(HRTIM_TypeDef * HRTIMx)10876 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT5(HRTIM_TypeDef *HRTIMx)
10877 {
10878   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT5C);
10879 }
10880 
10881 /**
10882   * @brief  Indicate whether Fault 5 interrupt occurred.
10883   * @rmtoll ICR     FLT5           LL_HRTIM_IsActiveFlag_FLT5
10884   * @param  HRTIMx High Resolution Timer instance
10885   * @retval State of FLT5 bit in HRTIM_ISR register (1 or 0).
10886   */
LL_HRTIM_IsActiveFlag_FLT5(const HRTIM_TypeDef * HRTIMx)10887 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT5(const HRTIM_TypeDef *HRTIMx)
10888 {
10889   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT5) == (HRTIM_ISR_FLT5)) ? 1UL : 0UL);
10890 }
10891 
10892 /**
10893   * @brief  Clear the Fault 6 interrupt flag.
10894   * @rmtoll ICR     FLT6C           LL_HRTIM_ClearFlag_FLT6
10895   * @param  HRTIMx High Resolution Timer instance
10896   * @retval None
10897   */
LL_HRTIM_ClearFlag_FLT6(HRTIM_TypeDef * HRTIMx)10898 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT6(HRTIM_TypeDef *HRTIMx)
10899 {
10900   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT6C);
10901 }
10902 
10903 /**
10904   * @brief  Indicate whether Fault 6 interrupt occurred.
10905   * @rmtoll ICR     FLT6           LL_HRTIM_IsActiveFlag_FLT6
10906   * @param  HRTIMx High Resolution Timer instance
10907   * @retval State of FLT6 bit in HRTIM_ISR register (1 or 0).
10908   */
LL_HRTIM_IsActiveFlag_FLT6(const HRTIM_TypeDef * HRTIMx)10909 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT6(const HRTIM_TypeDef *HRTIMx)
10910 {
10911   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT6) == (HRTIM_ISR_FLT6)) ? 1UL : 0UL);
10912 }
10913 
10914 /**
10915   * @brief  Clear the System Fault interrupt flag.
10916   * @rmtoll ICR     SYSFLTC           LL_HRTIM_ClearFlag_SYSFLT
10917   * @param  HRTIMx High Resolution Timer instance
10918   * @retval None
10919   */
LL_HRTIM_ClearFlag_SYSFLT(HRTIM_TypeDef * HRTIMx)10920 __STATIC_INLINE void LL_HRTIM_ClearFlag_SYSFLT(HRTIM_TypeDef *HRTIMx)
10921 {
10922   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_SYSFLTC);
10923 }
10924 
10925 /**
10926   * @brief  Indicate whether System Fault interrupt occurred.
10927   * @rmtoll ISR     SYSFLT           LL_HRTIM_IsActiveFlag_SYSFLT
10928   * @param  HRTIMx High Resolution Timer instance
10929   * @retval State of SYSFLT bit in HRTIM_ISR register (1 or 0).
10930   */
LL_HRTIM_IsActiveFlag_SYSFLT(const HRTIM_TypeDef * HRTIMx)10931 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SYSFLT(const HRTIM_TypeDef *HRTIMx)
10932 {
10933   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_SYSFLT) == (HRTIM_ISR_SYSFLT)) ? 1UL : 0UL);
10934 }
10935 
10936 /**
10937   * @brief  Clear the DLL ready interrupt flag.
10938   * @rmtoll ICR     DLLRDYC           LL_HRTIM_ClearFlag_DLLRDY
10939   * @param  HRTIMx High Resolution Timer instance
10940   * @retval None
10941   */
LL_HRTIM_ClearFlag_DLLRDY(HRTIM_TypeDef * HRTIMx)10942 __STATIC_INLINE void LL_HRTIM_ClearFlag_DLLRDY(HRTIM_TypeDef *HRTIMx)
10943 {
10944   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_DLLRDYC);
10945 }
10946 
10947 /**
10948   * @brief  Indicate whether DLL ready  interrupt occurred.
10949   * @rmtoll ISR     DLLRDY           LL_HRTIM_IsActiveFlag_DLLRDY
10950   * @param  HRTIMx High Resolution Timer instance
10951   * @retval State of DLLRDY bit in HRTIM_ISR register (1 or 0).
10952   */
LL_HRTIM_IsActiveFlag_DLLRDY(const HRTIM_TypeDef * HRTIMx)10953 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_DLLRDY(const HRTIM_TypeDef *HRTIMx)
10954 {
10955   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_DLLRDY) == (HRTIM_ISR_DLLRDY)) ? 1UL : 0UL);
10956 }
10957 
10958 /**
10959   * @brief  Clear the Burst Mode period interrupt flag.
10960   * @rmtoll ICR     BMPERC           LL_HRTIM_ClearFlag_BMPER
10961   * @param  HRTIMx High Resolution Timer instance
10962   * @retval None
10963   */
LL_HRTIM_ClearFlag_BMPER(HRTIM_TypeDef * HRTIMx)10964 __STATIC_INLINE void LL_HRTIM_ClearFlag_BMPER(HRTIM_TypeDef *HRTIMx)
10965 {
10966   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_BMPERC);
10967 }
10968 
10969 /**
10970   * @brief  Indicate whether Burst Mode period interrupt occurred.
10971   * @rmtoll ISR     BMPER           LL_HRTIM_IsActiveFlag_BMPER
10972   * @param  HRTIMx High Resolution Timer instance
10973   * @retval State of BMPER bit in HRTIM_ISR register (1 or 0).
10974   */
LL_HRTIM_IsActiveFlag_BMPER(const HRTIM_TypeDef * HRTIMx)10975 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_BMPER(const HRTIM_TypeDef *HRTIMx)
10976 {
10977   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_BMPER) == (HRTIM_ISR_BMPER)) ? 1UL : 0UL);
10978 }
10979 
10980 /**
10981   * @brief  Clear the Synchronization Input interrupt flag.
10982   * @rmtoll MICR     SYNCC           LL_HRTIM_ClearFlag_SYNC
10983   * @param  HRTIMx High Resolution Timer instance
10984   * @retval None
10985   */
LL_HRTIM_ClearFlag_SYNC(HRTIM_TypeDef * HRTIMx)10986 __STATIC_INLINE void LL_HRTIM_ClearFlag_SYNC(HRTIM_TypeDef *HRTIMx)
10987 {
10988   SET_BIT(HRTIMx->sMasterRegs.MICR, HRTIM_MICR_SYNC);
10989 }
10990 
10991 /**
10992   * @brief  Indicate whether the Synchronization Input interrupt occurred.
10993   * @rmtoll MISR     SYNC           LL_HRTIM_IsActiveFlag_SYNC
10994   * @param  HRTIMx High Resolution Timer instance
10995   * @retval State of SYNC bit in HRTIM_MISR register  (1 or 0).
10996   */
LL_HRTIM_IsActiveFlag_SYNC(const HRTIM_TypeDef * HRTIMx)10997 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SYNC(const HRTIM_TypeDef *HRTIMx)
10998 {
10999   return ((READ_BIT(HRTIMx->sMasterRegs.MISR, HRTIM_MISR_SYNC) == (HRTIM_MISR_SYNC)) ? 1UL : 0UL);
11000 }
11001 
11002 /**
11003   * @brief  Clear the update interrupt flag for a given timer (including the master timer) .
11004   * @rmtoll MICR        MUPDC          LL_HRTIM_ClearFlag_UPDATE\n
11005   *         TIMxICR     UPDC           LL_HRTIM_ClearFlag_UPDATE
11006   * @param  HRTIMx High Resolution Timer instance
11007   * @param  Timer This parameter can be one of the following values:
11008   *         @arg @ref LL_HRTIM_TIMER_MASTER
11009   *         @arg @ref LL_HRTIM_TIMER_A
11010   *         @arg @ref LL_HRTIM_TIMER_B
11011   *         @arg @ref LL_HRTIM_TIMER_C
11012   *         @arg @ref LL_HRTIM_TIMER_D
11013   *         @arg @ref LL_HRTIM_TIMER_E
11014   *         @arg @ref LL_HRTIM_TIMER_F
11015   * @retval None
11016   */
LL_HRTIM_ClearFlag_UPDATE(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11017 __STATIC_INLINE void LL_HRTIM_ClearFlag_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11018 {
11019   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11020   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11021                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11022   SET_BIT(*pReg, HRTIM_MICR_MUPD);
11023 }
11024 
11025 /**
11026   * @brief  Indicate whether the update interrupt has occurred for a given timer (including the master timer) .
11027   * @rmtoll MISR        MUPD          LL_HRTIM_IsActiveFlag_UPDATE\n
11028   *         TIMxISR     UPD           LL_HRTIM_IsActiveFlag_UPDATE
11029   * @param  HRTIMx High Resolution Timer instance
11030   * @param  Timer This parameter can be one of the following values:
11031   *         @arg @ref LL_HRTIM_TIMER_MASTER
11032   *         @arg @ref LL_HRTIM_TIMER_A
11033   *         @arg @ref LL_HRTIM_TIMER_B
11034   *         @arg @ref LL_HRTIM_TIMER_C
11035   *         @arg @ref LL_HRTIM_TIMER_D
11036   *         @arg @ref LL_HRTIM_TIMER_E
11037   *         @arg @ref LL_HRTIM_TIMER_F
11038   * @retval State of MUPD/UPD bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
11039   */
LL_HRTIM_IsActiveFlag_UPDATE(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11040 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_UPDATE(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11041 {
11042   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11043   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11044                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11045 
11046   return ((READ_BIT(*pReg, HRTIM_MISR_MUPD) == (HRTIM_MISR_MUPD)) ? 1UL : 0UL);
11047 }
11048 
11049 /**
11050   * @brief  Clear the repetition interrupt flag for a given timer (including the master timer) .
11051   * @rmtoll MICR        MREPC          LL_HRTIM_ClearFlag_REP\n
11052   *         TIMxICR     REPC           LL_HRTIM_ClearFlag_REP
11053   * @param  HRTIMx High Resolution Timer instance
11054   * @param  Timer This parameter can be one of the following values:
11055   *         @arg @ref LL_HRTIM_TIMER_MASTER
11056   *         @arg @ref LL_HRTIM_TIMER_A
11057   *         @arg @ref LL_HRTIM_TIMER_B
11058   *         @arg @ref LL_HRTIM_TIMER_C
11059   *         @arg @ref LL_HRTIM_TIMER_D
11060   *         @arg @ref LL_HRTIM_TIMER_E
11061   *         @arg @ref LL_HRTIM_TIMER_F
11062   * @retval None
11063   */
LL_HRTIM_ClearFlag_REP(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11064 __STATIC_INLINE void LL_HRTIM_ClearFlag_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11065 {
11066   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11067   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11068                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11069   SET_BIT(*pReg, HRTIM_MICR_MREP);
11070 
11071 }
11072 
11073 /**
11074   * @brief  Indicate whether the repetition  interrupt has occurred for a given timer (including the master timer) .
11075   * @rmtoll MISR        MREP          LL_HRTIM_IsActiveFlag_REP\n
11076   *         TIMxISR     REP           LL_HRTIM_IsActiveFlag_REP
11077   * @param  HRTIMx High Resolution Timer instance
11078   * @param  Timer This parameter can be one of the following values:
11079   *         @arg @ref LL_HRTIM_TIMER_MASTER
11080   *         @arg @ref LL_HRTIM_TIMER_A
11081   *         @arg @ref LL_HRTIM_TIMER_B
11082   *         @arg @ref LL_HRTIM_TIMER_C
11083   *         @arg @ref LL_HRTIM_TIMER_D
11084   *         @arg @ref LL_HRTIM_TIMER_E
11085   *         @arg @ref LL_HRTIM_TIMER_F
11086   * @retval State of MREP/REP bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
11087   */
LL_HRTIM_IsActiveFlag_REP(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11088 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_REP(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11089 {
11090   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11091   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11092                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11093 
11094   return ((READ_BIT(*pReg, HRTIM_MISR_MREP) == (HRTIM_MISR_MREP)) ? 1UL : 0UL);
11095 }
11096 
11097 /**
11098   * @brief  Clear the compare 1 match interrupt for a given timer (including the master timer).
11099   * @rmtoll MICR        MCMP1C          LL_HRTIM_ClearFlag_CMP1\n
11100   *         TIMxICR     CMP1C           LL_HRTIM_ClearFlag_CMP1
11101   * @param  HRTIMx High Resolution Timer instance
11102   * @param  Timer This parameter can be one of the following values:
11103   *         @arg @ref LL_HRTIM_TIMER_MASTER
11104   *         @arg @ref LL_HRTIM_TIMER_A
11105   *         @arg @ref LL_HRTIM_TIMER_B
11106   *         @arg @ref LL_HRTIM_TIMER_C
11107   *         @arg @ref LL_HRTIM_TIMER_D
11108   *         @arg @ref LL_HRTIM_TIMER_E
11109   *         @arg @ref LL_HRTIM_TIMER_F
11110   * @retval None
11111   */
LL_HRTIM_ClearFlag_CMP1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11112 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11113 {
11114   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11115   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11116                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11117   SET_BIT(*pReg, HRTIM_MICR_MCMP1);
11118 }
11119 
11120 /**
11121   * @brief  Indicate whether the compare match 1  interrupt has occurred for a given timer (including the master timer) .
11122   * @rmtoll MISR        MCMP1          LL_HRTIM_IsActiveFlag_CMP1\n
11123   *         TIMxISR     CMP1           LL_HRTIM_IsActiveFlag_CMP1
11124   * @param  HRTIMx High Resolution Timer instance
11125   * @param  Timer This parameter can be one of the following values:
11126   *         @arg @ref LL_HRTIM_TIMER_MASTER
11127   *         @arg @ref LL_HRTIM_TIMER_A
11128   *         @arg @ref LL_HRTIM_TIMER_B
11129   *         @arg @ref LL_HRTIM_TIMER_C
11130   *         @arg @ref LL_HRTIM_TIMER_D
11131   *         @arg @ref LL_HRTIM_TIMER_E
11132   *         @arg @ref LL_HRTIM_TIMER_F
11133   * @retval State of MCMP1/CMP1 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
11134   */
LL_HRTIM_IsActiveFlag_CMP1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11135 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11136 {
11137   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11138   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11139                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11140 
11141   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP1) == (HRTIM_MISR_MCMP1)) ? 1UL : 0UL);
11142 }
11143 
11144 /**
11145   * @brief  Clear the compare 2 match interrupt for a given timer (including the master timer).
11146   * @rmtoll MICR        MCMP2C          LL_HRTIM_ClearFlag_CMP2\n
11147   *         TIMxICR     CMP2C           LL_HRTIM_ClearFlag_CMP2
11148   * @param  HRTIMx High Resolution Timer instance
11149   * @param  Timer This parameter can be one of the following values:
11150   *         @arg @ref LL_HRTIM_TIMER_MASTER
11151   *         @arg @ref LL_HRTIM_TIMER_A
11152   *         @arg @ref LL_HRTIM_TIMER_B
11153   *         @arg @ref LL_HRTIM_TIMER_C
11154   *         @arg @ref LL_HRTIM_TIMER_D
11155   *         @arg @ref LL_HRTIM_TIMER_E
11156   *         @arg @ref LL_HRTIM_TIMER_F
11157   * @retval None
11158   */
LL_HRTIM_ClearFlag_CMP2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11159 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11160 {
11161   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11162   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11163                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11164   SET_BIT(*pReg, HRTIM_MICR_MCMP2);
11165 }
11166 
11167 /**
11168   * @brief  Indicate whether the compare match 2  interrupt has occurred for a given timer (including the master timer) .
11169   * @rmtoll MISR        MCMP2          LL_HRTIM_IsActiveFlag_CMP2\n
11170   *         TIMxISR     CMP2           LL_HRTIM_IsActiveFlag_CMP2
11171   * @param  HRTIMx High Resolution Timer instance
11172   * @param  Timer This parameter can be one of the following values:
11173   *         @arg @ref LL_HRTIM_TIMER_MASTER
11174   *         @arg @ref LL_HRTIM_TIMER_A
11175   *         @arg @ref LL_HRTIM_TIMER_B
11176   *         @arg @ref LL_HRTIM_TIMER_C
11177   *         @arg @ref LL_HRTIM_TIMER_D
11178   *         @arg @ref LL_HRTIM_TIMER_E
11179   *         @arg @ref LL_HRTIM_TIMER_F
11180   * @retval State of MCMP2/CMP2 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
11181   */
LL_HRTIM_IsActiveFlag_CMP2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11182 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11183 {
11184   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11185   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11186                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11187 
11188   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP2) == (HRTIM_MISR_MCMP2)) ? 1UL : 0UL);
11189 }
11190 
11191 /**
11192   * @brief  Clear the compare 3 match interrupt for a given timer (including the master timer).
11193   * @rmtoll MICR        MCMP3C          LL_HRTIM_ClearFlag_CMP3\n
11194   *         TIMxICR     CMP3C           LL_HRTIM_ClearFlag_CMP3
11195   * @param  HRTIMx High Resolution Timer instance
11196   * @param  Timer This parameter can be one of the following values:
11197   *         @arg @ref LL_HRTIM_TIMER_MASTER
11198   *         @arg @ref LL_HRTIM_TIMER_A
11199   *         @arg @ref LL_HRTIM_TIMER_B
11200   *         @arg @ref LL_HRTIM_TIMER_C
11201   *         @arg @ref LL_HRTIM_TIMER_D
11202   *         @arg @ref LL_HRTIM_TIMER_E
11203   *         @arg @ref LL_HRTIM_TIMER_F
11204   * @retval None
11205   */
LL_HRTIM_ClearFlag_CMP3(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11206 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11207 {
11208   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11209   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11210                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11211   SET_BIT(*pReg, HRTIM_MICR_MCMP3);
11212 }
11213 
11214 /**
11215   * @brief  Indicate whether the compare match 3  interrupt has occurred for a given timer (including the master timer) .
11216   * @rmtoll MISR        MCMP3          LL_HRTIM_IsActiveFlag_CMP3\n
11217   *         TIMxISR     CMP3           LL_HRTIM_IsActiveFlag_CMP3
11218   * @param  HRTIMx High Resolution Timer instance
11219   * @param  Timer This parameter can be one of the following values:
11220   *         @arg @ref LL_HRTIM_TIMER_MASTER
11221   *         @arg @ref LL_HRTIM_TIMER_A
11222   *         @arg @ref LL_HRTIM_TIMER_B
11223   *         @arg @ref LL_HRTIM_TIMER_C
11224   *         @arg @ref LL_HRTIM_TIMER_D
11225   *         @arg @ref LL_HRTIM_TIMER_E
11226   *         @arg @ref LL_HRTIM_TIMER_F
11227   * @retval State of MCMP3/CMP3 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
11228   */
LL_HRTIM_IsActiveFlag_CMP3(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11229 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11230 {
11231   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11232   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11233                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11234 
11235   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP3) == (HRTIM_MISR_MCMP3)) ? 1UL : 0UL);
11236 }
11237 
11238 /**
11239   * @brief  Clear the compare 4 match interrupt for a given timer (including the master timer).
11240   * @rmtoll MICR        MCMP4C          LL_HRTIM_ClearFlag_CMP4\n
11241   *         TIMxICR     CMP4C           LL_HRTIM_ClearFlag_CMP4
11242   * @param  HRTIMx High Resolution Timer instance
11243   * @param  Timer This parameter can be one of the following values:
11244   *         @arg @ref LL_HRTIM_TIMER_MASTER
11245   *         @arg @ref LL_HRTIM_TIMER_A
11246   *         @arg @ref LL_HRTIM_TIMER_B
11247   *         @arg @ref LL_HRTIM_TIMER_C
11248   *         @arg @ref LL_HRTIM_TIMER_D
11249   *         @arg @ref LL_HRTIM_TIMER_E
11250   *         @arg @ref LL_HRTIM_TIMER_F
11251   * @retval None
11252   */
LL_HRTIM_ClearFlag_CMP4(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11253 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11254 {
11255   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11256   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11257                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11258   SET_BIT(*pReg, HRTIM_MICR_MCMP4);
11259 }
11260 
11261 /**
11262   * @brief  Indicate whether the compare match 4  interrupt has occurred for a given timer (including the master timer) .
11263   * @rmtoll MISR        MCMP4          LL_HRTIM_IsActiveFlag_CMP4\n
11264   *         TIMxISR     CMP4           LL_HRTIM_IsActiveFlag_CMP4
11265   * @param  HRTIMx High Resolution Timer instance
11266   * @param  Timer This parameter can be one of the following values:
11267   *         @arg @ref LL_HRTIM_TIMER_MASTER
11268   *         @arg @ref LL_HRTIM_TIMER_A
11269   *         @arg @ref LL_HRTIM_TIMER_B
11270   *         @arg @ref LL_HRTIM_TIMER_C
11271   *         @arg @ref LL_HRTIM_TIMER_D
11272   *         @arg @ref LL_HRTIM_TIMER_E
11273   *         @arg @ref LL_HRTIM_TIMER_F
11274   * @retval State of MCMP4/CMP4 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
11275   */
LL_HRTIM_IsActiveFlag_CMP4(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11276 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11277 {
11278   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11279   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11280                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11281 
11282   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP4) == (HRTIM_MISR_MCMP4)) ? 1UL : 0UL);
11283 }
11284 
11285 /**
11286   * @brief  Clear the capture 1 interrupt flag for a given timer.
11287   * @rmtoll TIMxICR     CPT1C           LL_HRTIM_ClearFlag_CPT1
11288   * @param  HRTIMx High Resolution Timer instance
11289   * @param  Timer This parameter can be one of the following values:
11290   *         @arg @ref LL_HRTIM_TIMER_A
11291   *         @arg @ref LL_HRTIM_TIMER_B
11292   *         @arg @ref LL_HRTIM_TIMER_C
11293   *         @arg @ref LL_HRTIM_TIMER_D
11294   *         @arg @ref LL_HRTIM_TIMER_E
11295   *         @arg @ref LL_HRTIM_TIMER_F
11296   * @retval None
11297   */
LL_HRTIM_ClearFlag_CPT1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11298 __STATIC_INLINE void LL_HRTIM_ClearFlag_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11299 {
11300   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11301   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11302                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11303   SET_BIT(*pReg, HRTIM_TIMICR_CPT1C);
11304 }
11305 
11306 /**
11307   * @brief  Indicate whether the capture 1 interrupt occurred for a given timer.
11308   * @rmtoll TIMxISR     CPT1           LL_HRTIM_IsActiveFlag_CPT1
11309   * @param  HRTIMx High Resolution Timer instance
11310   * @param  Timer This parameter can be one of the following values:
11311   *         @arg @ref LL_HRTIM_TIMER_A
11312   *         @arg @ref LL_HRTIM_TIMER_B
11313   *         @arg @ref LL_HRTIM_TIMER_C
11314   *         @arg @ref LL_HRTIM_TIMER_D
11315   *         @arg @ref LL_HRTIM_TIMER_E
11316   *         @arg @ref LL_HRTIM_TIMER_F
11317   * @retval State of CPT1 bit in HRTIM_TIMxISR register (1 or 0).
11318   */
LL_HRTIM_IsActiveFlag_CPT1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11319 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CPT1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11320 {
11321   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11322   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11323                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11324 
11325   return ((READ_BIT(*pReg, HRTIM_TIMISR_CPT1) == (HRTIM_TIMISR_CPT1)) ? 1UL : 0UL);
11326 }
11327 
11328 /**
11329   * @brief  Clear the capture 2 interrupt flag for a given timer.
11330   * @rmtoll TIMxICR     CPT2C           LL_HRTIM_ClearFlag_CPT2
11331   * @param  HRTIMx High Resolution Timer instance
11332   * @param  Timer This parameter can be one of the following values:
11333   *         @arg @ref LL_HRTIM_TIMER_A
11334   *         @arg @ref LL_HRTIM_TIMER_B
11335   *         @arg @ref LL_HRTIM_TIMER_C
11336   *         @arg @ref LL_HRTIM_TIMER_D
11337   *         @arg @ref LL_HRTIM_TIMER_E
11338   *         @arg @ref LL_HRTIM_TIMER_F
11339   * @retval None
11340   */
LL_HRTIM_ClearFlag_CPT2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11341 __STATIC_INLINE void LL_HRTIM_ClearFlag_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11342 {
11343   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11344   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11345                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11346   SET_BIT(*pReg, HRTIM_TIMICR_CPT2C);
11347 }
11348 
11349 /**
11350   * @brief  Indicate whether the capture 2 interrupt occurred for a given timer.
11351   * @rmtoll TIMxISR     CPT2           LL_HRTIM_IsActiveFlag_CPT2
11352   * @param  HRTIMx High Resolution Timer instance
11353   * @param  Timer This parameter can be one of the following values:
11354   *         @arg @ref LL_HRTIM_TIMER_A
11355   *         @arg @ref LL_HRTIM_TIMER_B
11356   *         @arg @ref LL_HRTIM_TIMER_C
11357   *         @arg @ref LL_HRTIM_TIMER_D
11358   *         @arg @ref LL_HRTIM_TIMER_E
11359   *         @arg @ref LL_HRTIM_TIMER_F
11360   * @retval State of CPT2 bit in HRTIM_TIMxISR register (1 or 0).
11361   */
LL_HRTIM_IsActiveFlag_CPT2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11362 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CPT2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11363 {
11364   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11365   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11366                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11367 
11368   return ((READ_BIT(*pReg, HRTIM_TIMISR_CPT2) == (HRTIM_TIMISR_CPT2)) ? 1UL : 0UL);
11369 }
11370 
11371 /**
11372   * @brief  Clear the output 1 set interrupt flag for a given timer.
11373   * @rmtoll TIMxICR     SET1C           LL_HRTIM_ClearFlag_SET1
11374   * @param  HRTIMx High Resolution Timer instance
11375   * @param  Timer This parameter can be one of the following values:
11376   *         @arg @ref LL_HRTIM_TIMER_A
11377   *         @arg @ref LL_HRTIM_TIMER_B
11378   *         @arg @ref LL_HRTIM_TIMER_C
11379   *         @arg @ref LL_HRTIM_TIMER_D
11380   *         @arg @ref LL_HRTIM_TIMER_E
11381   *         @arg @ref LL_HRTIM_TIMER_F
11382   * @retval None
11383   */
LL_HRTIM_ClearFlag_SET1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11384 __STATIC_INLINE void LL_HRTIM_ClearFlag_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11385 {
11386   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11387   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11388                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11389   SET_BIT(*pReg, HRTIM_TIMICR_SET1C);
11390 }
11391 
11392 /**
11393   * @brief  Indicate whether the output 1 set interrupt occurred for a given timer.
11394   * @rmtoll TIMxISR     SET1           LL_HRTIM_IsActiveFlag_SET1
11395   * @param  HRTIMx High Resolution Timer instance
11396   * @param  Timer This parameter can be one of the following values:
11397   *         @arg @ref LL_HRTIM_TIMER_A
11398   *         @arg @ref LL_HRTIM_TIMER_B
11399   *         @arg @ref LL_HRTIM_TIMER_C
11400   *         @arg @ref LL_HRTIM_TIMER_D
11401   *         @arg @ref LL_HRTIM_TIMER_E
11402   *         @arg @ref LL_HRTIM_TIMER_F
11403   * @retval State of SETx1 bit in HRTIM_TIMxISR register (1 or 0).
11404   */
LL_HRTIM_IsActiveFlag_SET1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11405 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SET1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11406 {
11407   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11408   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11409                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11410 
11411   return ((READ_BIT(*pReg, HRTIM_TIMISR_SET1) == (HRTIM_TIMISR_SET1)) ? 1UL : 0UL);
11412 }
11413 
11414 /**
11415   * @brief  Clear the output 1 reset interrupt flag for a given timer.
11416   * @rmtoll TIMxICR     RST1C           LL_HRTIM_ClearFlag_RST1
11417   * @param  HRTIMx High Resolution Timer instance
11418   * @param  Timer This parameter can be one of the following values:
11419   *         @arg @ref LL_HRTIM_TIMER_A
11420   *         @arg @ref LL_HRTIM_TIMER_B
11421   *         @arg @ref LL_HRTIM_TIMER_C
11422   *         @arg @ref LL_HRTIM_TIMER_D
11423   *         @arg @ref LL_HRTIM_TIMER_E
11424   *         @arg @ref LL_HRTIM_TIMER_F
11425   * @retval None
11426   */
LL_HRTIM_ClearFlag_RST1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11427 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11428 {
11429   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11430   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11431                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11432   SET_BIT(*pReg, HRTIM_TIMICR_RST1C);
11433 }
11434 
11435 /**
11436   * @brief  Indicate whether the output 1 reset interrupt occurred for a given timer.
11437   * @rmtoll TIMxISR     RST1           LL_HRTIM_IsActiveFlag_RST1
11438   * @param  HRTIMx High Resolution Timer instance
11439   * @param  Timer This parameter can be one of the following values:
11440   *         @arg @ref LL_HRTIM_TIMER_A
11441   *         @arg @ref LL_HRTIM_TIMER_B
11442   *         @arg @ref LL_HRTIM_TIMER_C
11443   *         @arg @ref LL_HRTIM_TIMER_D
11444   *         @arg @ref LL_HRTIM_TIMER_E
11445   *         @arg @ref LL_HRTIM_TIMER_F
11446   * @retval State of RSTx1 bit in HRTIM_TIMxISR register (1 or 0).
11447   */
LL_HRTIM_IsActiveFlag_RST1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11448 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11449 {
11450   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11451   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11452                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11453 
11454   return ((READ_BIT(*pReg, HRTIM_TIMISR_RST1) == (HRTIM_TIMISR_RST1)) ? 1UL : 0UL);
11455 }
11456 
11457 /**
11458   * @brief  Clear the output 2 set interrupt flag for a given timer.
11459   * @rmtoll TIMxICR     SET2C           LL_HRTIM_ClearFlag_SET2
11460   * @param  HRTIMx High Resolution Timer instance
11461   * @param  Timer This parameter can be one of the following values:
11462   *         @arg @ref LL_HRTIM_TIMER_A
11463   *         @arg @ref LL_HRTIM_TIMER_B
11464   *         @arg @ref LL_HRTIM_TIMER_C
11465   *         @arg @ref LL_HRTIM_TIMER_D
11466   *         @arg @ref LL_HRTIM_TIMER_E
11467   *         @arg @ref LL_HRTIM_TIMER_F
11468   * @retval None
11469   */
LL_HRTIM_ClearFlag_SET2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11470 __STATIC_INLINE void LL_HRTIM_ClearFlag_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11471 {
11472   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11473   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11474                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11475   SET_BIT(*pReg, HRTIM_TIMICR_SET2C);
11476 }
11477 
11478 /**
11479   * @brief  Indicate whether the output 2 set interrupt occurred for a given timer.
11480   * @rmtoll TIMxISR     SET2           LL_HRTIM_IsActiveFlag_SET2
11481   * @param  HRTIMx High Resolution Timer instance
11482   * @param  Timer This parameter can be one of the following values:
11483   *         @arg @ref LL_HRTIM_TIMER_A
11484   *         @arg @ref LL_HRTIM_TIMER_B
11485   *         @arg @ref LL_HRTIM_TIMER_C
11486   *         @arg @ref LL_HRTIM_TIMER_D
11487   *         @arg @ref LL_HRTIM_TIMER_E
11488   *         @arg @ref LL_HRTIM_TIMER_F
11489   * @retval State of SETx2 bit in HRTIM_TIMxISR register (1 or 0).
11490   */
LL_HRTIM_IsActiveFlag_SET2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11491 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SET2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11492 {
11493   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11494   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11495                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11496 
11497   return ((READ_BIT(*pReg, HRTIM_TIMISR_SET2) == (HRTIM_TIMISR_SET2)) ? 1UL : 0UL);
11498 }
11499 
11500 /**
11501   * @brief  Clear the output 2reset interrupt flag for a given timer.
11502   * @rmtoll TIMxICR     RST2C           LL_HRTIM_ClearFlag_RST2
11503   * @param  HRTIMx High Resolution Timer instance
11504   * @param  Timer This parameter can be one of the following values:
11505   *         @arg @ref LL_HRTIM_TIMER_A
11506   *         @arg @ref LL_HRTIM_TIMER_B
11507   *         @arg @ref LL_HRTIM_TIMER_C
11508   *         @arg @ref LL_HRTIM_TIMER_D
11509   *         @arg @ref LL_HRTIM_TIMER_E
11510   *         @arg @ref LL_HRTIM_TIMER_F
11511   * @retval None
11512   */
LL_HRTIM_ClearFlag_RST2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11513 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11514 {
11515   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11516   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11517                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11518   SET_BIT(*pReg, HRTIM_TIMICR_RST2C);
11519 }
11520 
11521 /**
11522   * @brief  Indicate whether the output 2 reset interrupt occurred for a given timer.
11523   * @rmtoll TIMxISR     RST2           LL_HRTIM_IsActiveFlag_RST2
11524   * @param  HRTIMx High Resolution Timer instance
11525   * @param  Timer This parameter can be one of the following values:
11526   *         @arg @ref LL_HRTIM_TIMER_A
11527   *         @arg @ref LL_HRTIM_TIMER_B
11528   *         @arg @ref LL_HRTIM_TIMER_C
11529   *         @arg @ref LL_HRTIM_TIMER_D
11530   *         @arg @ref LL_HRTIM_TIMER_E
11531   *         @arg @ref LL_HRTIM_TIMER_F
11532   * @retval State of RSTx2 bit in HRTIM_TIMxISR register (1 or 0).
11533   */
LL_HRTIM_IsActiveFlag_RST2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11534 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11535 {
11536   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11537   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11538                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11539 
11540   return ((READ_BIT(*pReg, HRTIM_TIMISR_RST2) == (HRTIM_TIMISR_RST2)) ? 1UL : 0UL);
11541 }
11542 
11543 /**
11544   * @brief  Clear the reset and/or roll-over interrupt flag for a given timer.
11545   * @rmtoll TIMxICR     RSTC           LL_HRTIM_ClearFlag_RST
11546   * @param  HRTIMx High Resolution Timer instance
11547   * @param  Timer This parameter can be one of the following values:
11548   *         @arg @ref LL_HRTIM_TIMER_A
11549   *         @arg @ref LL_HRTIM_TIMER_B
11550   *         @arg @ref LL_HRTIM_TIMER_C
11551   *         @arg @ref LL_HRTIM_TIMER_D
11552   *         @arg @ref LL_HRTIM_TIMER_E
11553   *         @arg @ref LL_HRTIM_TIMER_F
11554   * @retval None
11555   */
LL_HRTIM_ClearFlag_RST(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11556 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11557 {
11558   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11559   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11560                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11561   SET_BIT(*pReg, HRTIM_TIMICR_RSTC);
11562 }
11563 
11564 /**
11565   * @brief  Indicate whether the  reset and/or roll-over interrupt occurred for a given timer.
11566   * @rmtoll TIMxISR     RST           LL_HRTIM_IsActiveFlag_RST
11567   * @param  HRTIMx High Resolution Timer instance
11568   * @param  Timer This parameter can be one of the following values:
11569   *         @arg @ref LL_HRTIM_TIMER_A
11570   *         @arg @ref LL_HRTIM_TIMER_B
11571   *         @arg @ref LL_HRTIM_TIMER_C
11572   *         @arg @ref LL_HRTIM_TIMER_D
11573   *         @arg @ref LL_HRTIM_TIMER_E
11574   *         @arg @ref LL_HRTIM_TIMER_F
11575   * @retval State of RST bit in HRTIM_TIMxISR register (1 or 0).
11576   */
LL_HRTIM_IsActiveFlag_RST(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11577 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11578 {
11579   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11580   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11581                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11582 
11583   return ((READ_BIT(*pReg, HRTIM_TIMISR_RST) == (HRTIM_TIMISR_RST)) ? 1UL : 0UL);
11584 }
11585 
11586 /**
11587   * @brief  Clear the delayed protection interrupt flag for a given timer.
11588   * @rmtoll TIMxICR     DLYPRTC           LL_HRTIM_ClearFlag_DLYPRT
11589   * @param  HRTIMx High Resolution Timer instance
11590   * @param  Timer This parameter can be one of the following values:
11591   *         @arg @ref LL_HRTIM_TIMER_A
11592   *         @arg @ref LL_HRTIM_TIMER_B
11593   *         @arg @ref LL_HRTIM_TIMER_C
11594   *         @arg @ref LL_HRTIM_TIMER_D
11595   *         @arg @ref LL_HRTIM_TIMER_E
11596   *         @arg @ref LL_HRTIM_TIMER_F
11597   * @retval None
11598   */
LL_HRTIM_ClearFlag_DLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11599 __STATIC_INLINE void LL_HRTIM_ClearFlag_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11600 {
11601   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11602   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
11603                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11604   SET_BIT(*pReg, HRTIM_TIMICR_DLYPRTC);
11605 }
11606 
11607 /**
11608   * @brief  Indicate whether the  delayed protection interrupt occurred for a given timer.
11609   * @rmtoll TIMxISR     DLYPRT           LL_HRTIM_IsActiveFlag_DLYPRT
11610   * @param  HRTIMx High Resolution Timer instance
11611   * @param  Timer This parameter can be one of the following values:
11612   *         @arg @ref LL_HRTIM_TIMER_A
11613   *         @arg @ref LL_HRTIM_TIMER_B
11614   *         @arg @ref LL_HRTIM_TIMER_C
11615   *         @arg @ref LL_HRTIM_TIMER_D
11616   *         @arg @ref LL_HRTIM_TIMER_E
11617   *         @arg @ref LL_HRTIM_TIMER_F
11618   * @retval State of DLYPRT bit in HRTIM_TIMxISR register (1 or 0).
11619   */
LL_HRTIM_IsActiveFlag_DLYPRT(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)11620 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_DLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11621 {
11622   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11623   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
11624                                                            REG_OFFSET_TAB_TIMER[iTimer]));
11625 
11626   return ((READ_BIT(*pReg, HRTIM_TIMISR_DLYPRT) == (HRTIM_TIMISR_DLYPRT)) ? 1UL : 0UL);
11627 }
11628 
11629 /**
11630   * @}
11631   */
11632 
11633 /** @defgroup HRTIM_LL_EF_IT_Management IT_Management
11634   * @{
11635   */
11636 
11637 /**
11638   * @brief  Enable the fault 1 interrupt.
11639   * @rmtoll IER     FLT1IE           LL_HRTIM_EnableIT_FLT1
11640   * @param  HRTIMx High Resolution Timer instance
11641   * @retval None
11642   */
LL_HRTIM_EnableIT_FLT1(HRTIM_TypeDef * HRTIMx)11643 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT1(HRTIM_TypeDef *HRTIMx)
11644 {
11645   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1);
11646 }
11647 
11648 /**
11649   * @brief  Disable the fault 1 interrupt.
11650   * @rmtoll IER     FLT1IE           LL_HRTIM_DisableIT_FLT1
11651   * @param  HRTIMx High Resolution Timer instance
11652   * @retval None
11653   */
LL_HRTIM_DisableIT_FLT1(HRTIM_TypeDef * HRTIMx)11654 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT1(HRTIM_TypeDef *HRTIMx)
11655 {
11656   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1);
11657 }
11658 
11659 /**
11660   * @brief  Indicate whether the fault 1 interrupt is enabled.
11661   * @rmtoll IER     FLT1IE           LL_HRTIM_IsEnabledIT_FLT1
11662   * @param  HRTIMx High Resolution Timer instance
11663   * @retval State of FLT1IE bit in HRTIM_IER register (1 or 0).
11664   */
LL_HRTIM_IsEnabledIT_FLT1(const HRTIM_TypeDef * HRTIMx)11665 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT1(const HRTIM_TypeDef *HRTIMx)
11666 {
11667   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1) == (HRTIM_IER_FLT1)) ? 1UL : 0UL);
11668 }
11669 
11670 /**
11671   * @brief  Enable the fault 2 interrupt.
11672   * @rmtoll IER     FLT2IE           LL_HRTIM_EnableIT_FLT2
11673   * @param  HRTIMx High Resolution Timer instance
11674   * @retval None
11675   */
LL_HRTIM_EnableIT_FLT2(HRTIM_TypeDef * HRTIMx)11676 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT2(HRTIM_TypeDef *HRTIMx)
11677 {
11678   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2);
11679 }
11680 
11681 /**
11682   * @brief  Disable the fault 2 interrupt.
11683   * @rmtoll IER     FLT2IE           LL_HRTIM_DisableIT_FLT2
11684   * @param  HRTIMx High Resolution Timer instance
11685   * @retval None
11686   */
LL_HRTIM_DisableIT_FLT2(HRTIM_TypeDef * HRTIMx)11687 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT2(HRTIM_TypeDef *HRTIMx)
11688 {
11689   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2);
11690 }
11691 
11692 /**
11693   * @brief  Indicate whether the fault 2 interrupt is enabled.
11694   * @rmtoll IER     FLT2IE           LL_HRTIM_IsEnabledIT_FLT2
11695   * @param  HRTIMx High Resolution Timer instance
11696   * @retval State of FLT2IE bit in HRTIM_IER register (1 or 0).
11697   */
LL_HRTIM_IsEnabledIT_FLT2(const HRTIM_TypeDef * HRTIMx)11698 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT2(const HRTIM_TypeDef *HRTIMx)
11699 {
11700   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2) == (HRTIM_IER_FLT2)) ? 1UL : 0UL);
11701 }
11702 
11703 /**
11704   * @brief  Enable the fault 3 interrupt.
11705   * @rmtoll IER     FLT3IE           LL_HRTIM_EnableIT_FLT3
11706   * @param  HRTIMx High Resolution Timer instance
11707   * @retval None
11708   */
LL_HRTIM_EnableIT_FLT3(HRTIM_TypeDef * HRTIMx)11709 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT3(HRTIM_TypeDef *HRTIMx)
11710 {
11711   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3);
11712 }
11713 
11714 /**
11715   * @brief  Disable the fault 3 interrupt.
11716   * @rmtoll IER     FLT3IE           LL_HRTIM_DisableIT_FLT3
11717   * @param  HRTIMx High Resolution Timer instance
11718   * @retval None
11719   */
LL_HRTIM_DisableIT_FLT3(HRTIM_TypeDef * HRTIMx)11720 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT3(HRTIM_TypeDef *HRTIMx)
11721 {
11722   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3);
11723 }
11724 
11725 /**
11726   * @brief  Indicate whether the fault 3 interrupt is enabled.
11727   * @rmtoll IER     FLT3IE           LL_HRTIM_IsEnabledIT_FLT3
11728   * @param  HRTIMx High Resolution Timer instance
11729   * @retval State of FLT3IE bit in HRTIM_IER register (1 or 0).
11730   */
LL_HRTIM_IsEnabledIT_FLT3(const HRTIM_TypeDef * HRTIMx)11731 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT3(const HRTIM_TypeDef *HRTIMx)
11732 {
11733   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3) == (HRTIM_IER_FLT3)) ? 1UL : 0UL);
11734 }
11735 
11736 /**
11737   * @brief  Enable the fault 4 interrupt.
11738   * @rmtoll IER     FLT4IE           LL_HRTIM_EnableIT_FLT4
11739   * @param  HRTIMx High Resolution Timer instance
11740   * @retval None
11741   */
LL_HRTIM_EnableIT_FLT4(HRTIM_TypeDef * HRTIMx)11742 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT4(HRTIM_TypeDef *HRTIMx)
11743 {
11744   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4);
11745 }
11746 
11747 /**
11748   * @brief  Disable the fault 4 interrupt.
11749   * @rmtoll IER     FLT4IE           LL_HRTIM_DisableIT_FLT4
11750   * @param  HRTIMx High Resolution Timer instance
11751   * @retval None
11752   */
LL_HRTIM_DisableIT_FLT4(HRTIM_TypeDef * HRTIMx)11753 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT4(HRTIM_TypeDef *HRTIMx)
11754 {
11755   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4);
11756 }
11757 
11758 /**
11759   * @brief  Indicate whether the fault 4 interrupt is enabled.
11760   * @rmtoll IER     FLT4IE           LL_HRTIM_IsEnabledIT_FLT4
11761   * @param  HRTIMx High Resolution Timer instance
11762   * @retval State of FLT4IE bit in HRTIM_IER register (1 or 0).
11763   */
LL_HRTIM_IsEnabledIT_FLT4(const HRTIM_TypeDef * HRTIMx)11764 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT4(const HRTIM_TypeDef *HRTIMx)
11765 {
11766   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4) == (HRTIM_IER_FLT4)) ? 1UL : 0UL);
11767 }
11768 
11769 /**
11770   * @brief  Enable the fault 5 interrupt.
11771   * @rmtoll IER     FLT5IE           LL_HRTIM_EnableIT_FLT5
11772   * @param  HRTIMx High Resolution Timer instance
11773   * @retval None
11774   */
LL_HRTIM_EnableIT_FLT5(HRTIM_TypeDef * HRTIMx)11775 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT5(HRTIM_TypeDef *HRTIMx)
11776 {
11777   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5);
11778 }
11779 
11780 /**
11781   * @brief  Disable the fault 5 interrupt.
11782   * @rmtoll IER     FLT5IE           LL_HRTIM_DisableIT_FLT5
11783   * @param  HRTIMx High Resolution Timer instance
11784   * @retval None
11785   */
LL_HRTIM_DisableIT_FLT5(HRTIM_TypeDef * HRTIMx)11786 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT5(HRTIM_TypeDef *HRTIMx)
11787 {
11788   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5);
11789 }
11790 
11791 /**
11792   * @brief  Indicate whether the fault 5 interrupt is enabled.
11793   * @rmtoll IER     FLT5IE           LL_HRTIM_IsEnabledIT_FLT5
11794   * @param  HRTIMx High Resolution Timer instance
11795   * @retval State of FLT5IE bit in HRTIM_IER register (1 or 0).
11796   */
LL_HRTIM_IsEnabledIT_FLT5(const HRTIM_TypeDef * HRTIMx)11797 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT5(const HRTIM_TypeDef *HRTIMx)
11798 {
11799   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5) == (HRTIM_IER_FLT5)) ? 1UL : 0UL);
11800 }
11801 
11802 /**
11803   * @brief  Enable the fault 6 interrupt.
11804   * @rmtoll IER     FLT6IE           LL_HRTIM_EnableIT_FLT6
11805   * @param  HRTIMx High Resolution Timer instance
11806   * @retval None
11807   */
LL_HRTIM_EnableIT_FLT6(HRTIM_TypeDef * HRTIMx)11808 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT6(HRTIM_TypeDef *HRTIMx)
11809 {
11810   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT6);
11811 }
11812 
11813 /**
11814   * @brief  Disable the fault 6 interrupt.
11815   * @rmtoll IER     FLT6IE           LL_HRTIM_DisableIT_FLT6
11816   * @param  HRTIMx High Resolution Timer instance
11817   * @retval None
11818   */
LL_HRTIM_DisableIT_FLT6(HRTIM_TypeDef * HRTIMx)11819 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT6(HRTIM_TypeDef *HRTIMx)
11820 {
11821   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT6);
11822 }
11823 
11824 /**
11825   * @brief  Indicate whether the fault 6 interrupt is enabled.
11826   * @rmtoll IER     FLT6IE           LL_HRTIM_IsEnabledIT_FLT6
11827   * @param  HRTIMx High Resolution Timer instance
11828   * @retval State of FLT6IE bit in HRTIM_IER register (1 or 0).
11829   */
LL_HRTIM_IsEnabledIT_FLT6(const HRTIM_TypeDef * HRTIMx)11830 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT6(const HRTIM_TypeDef *HRTIMx)
11831 {
11832   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT6) == (HRTIM_IER_FLT6)) ? 1UL : 0UL);
11833 }
11834 
11835 /**
11836   * @brief  Enable the system fault interrupt.
11837   * @rmtoll IER     SYSFLTIE           LL_HRTIM_EnableIT_SYSFLT
11838   * @param  HRTIMx High Resolution Timer instance
11839   * @retval None
11840   */
LL_HRTIM_EnableIT_SYSFLT(HRTIM_TypeDef * HRTIMx)11841 __STATIC_INLINE void LL_HRTIM_EnableIT_SYSFLT(HRTIM_TypeDef *HRTIMx)
11842 {
11843   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT);
11844 }
11845 
11846 /**
11847   * @brief  Disable the system fault interrupt.
11848   * @rmtoll IER     SYSFLTIE           LL_HRTIM_DisableIT_SYSFLT
11849   * @param  HRTIMx High Resolution Timer instance
11850   * @retval None
11851   */
LL_HRTIM_DisableIT_SYSFLT(HRTIM_TypeDef * HRTIMx)11852 __STATIC_INLINE void LL_HRTIM_DisableIT_SYSFLT(HRTIM_TypeDef *HRTIMx)
11853 {
11854   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT);
11855 }
11856 
11857 /**
11858   * @brief  Indicate whether the system fault interrupt is enabled.
11859   * @rmtoll IER     SYSFLTIE           LL_HRTIM_IsEnabledIT_SYSFLT
11860   * @param  HRTIMx High Resolution Timer instance
11861   * @retval State of SYSFLTIE bit in HRTIM_IER register (1 or 0).
11862   */
LL_HRTIM_IsEnabledIT_SYSFLT(const HRTIM_TypeDef * HRTIMx)11863 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SYSFLT(const HRTIM_TypeDef *HRTIMx)
11864 {
11865   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT) == (HRTIM_IER_SYSFLT)) ? 1UL : 0UL);
11866 }
11867 
11868 /**
11869   * @brief  Enable the DLL ready interrupt.
11870   * @rmtoll IER     DLLRDYIE           LL_HRTIM_EnableIT_DLLRDY
11871   * @param  HRTIMx High Resolution Timer instance
11872   * @retval None
11873   */
LL_HRTIM_EnableIT_DLLRDY(HRTIM_TypeDef * HRTIMx)11874 __STATIC_INLINE void LL_HRTIM_EnableIT_DLLRDY(HRTIM_TypeDef *HRTIMx)
11875 {
11876   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_DLLRDY);
11877 }
11878 
11879 /**
11880   * @brief  Disable the DLL ready interrupt.
11881   * @rmtoll IER     DLLRDYIE           LL_HRTIM_DisableIT_DLLRDY
11882   * @param  HRTIMx High Resolution Timer instance
11883   * @retval None
11884   */
LL_HRTIM_DisableIT_DLLRDY(HRTIM_TypeDef * HRTIMx)11885 __STATIC_INLINE void LL_HRTIM_DisableIT_DLLRDY(HRTIM_TypeDef *HRTIMx)
11886 {
11887   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_DLLRDY);
11888 }
11889 
11890 /**
11891   * @brief  Indicate whether the DLL ready interrupt is enabled.
11892   * @rmtoll IER     DLLRDYIE           LL_HRTIM_IsEnabledIT_DLLRDY
11893   * @param  HRTIMx High Resolution Timer instance
11894   * @retval State of DLLRDYIE bit in HRTIM_IER register (1 or 0).
11895   */
LL_HRTIM_IsEnabledIT_DLLRDY(const HRTIM_TypeDef * HRTIMx)11896 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_DLLRDY(const HRTIM_TypeDef *HRTIMx)
11897 {
11898   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_DLLRDY) == (HRTIM_IER_DLLRDY)) ? 1UL : 0UL);
11899 }
11900 
11901 /**
11902   * @brief  Enable the burst mode period interrupt.
11903   * @rmtoll IER     BMPERIE           LL_HRTIM_EnableIT_BMPER
11904   * @param  HRTIMx High Resolution Timer instance
11905   * @retval None
11906   */
LL_HRTIM_EnableIT_BMPER(HRTIM_TypeDef * HRTIMx)11907 __STATIC_INLINE void LL_HRTIM_EnableIT_BMPER(HRTIM_TypeDef *HRTIMx)
11908 {
11909   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER);
11910 }
11911 
11912 /**
11913   * @brief  Disable the burst mode period interrupt.
11914   * @rmtoll IER     BMPERIE           LL_HRTIM_DisableIT_BMPER
11915   * @param  HRTIMx High Resolution Timer instance
11916   * @retval None
11917   */
LL_HRTIM_DisableIT_BMPER(HRTIM_TypeDef * HRTIMx)11918 __STATIC_INLINE void LL_HRTIM_DisableIT_BMPER(HRTIM_TypeDef *HRTIMx)
11919 {
11920   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER);
11921 }
11922 
11923 /**
11924   * @brief  Indicate whether the burst mode period interrupt is enabled.
11925   * @rmtoll IER     BMPERIE           LL_HRTIM_IsEnabledIT_BMPER
11926   * @param  HRTIMx High Resolution Timer instance
11927   * @retval State of BMPERIE bit in HRTIM_IER register (1 or 0).
11928   */
LL_HRTIM_IsEnabledIT_BMPER(const HRTIM_TypeDef * HRTIMx)11929 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_BMPER(const HRTIM_TypeDef *HRTIMx)
11930 {
11931   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER) == (HRTIM_IER_BMPER)) ? 1UL : 0UL);
11932 }
11933 
11934 /**
11935   * @brief  Enable the synchronization input interrupt.
11936   * @rmtoll MDIER     SYNCIE           LL_HRTIM_EnableIT_SYNC
11937   * @param  HRTIMx High Resolution Timer instance
11938   * @retval None
11939   */
LL_HRTIM_EnableIT_SYNC(HRTIM_TypeDef * HRTIMx)11940 __STATIC_INLINE void LL_HRTIM_EnableIT_SYNC(HRTIM_TypeDef *HRTIMx)
11941 {
11942   SET_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE);
11943 }
11944 
11945 /**
11946   * @brief  Disable the synchronization input interrupt.
11947   * @rmtoll MDIER     SYNCIE           LL_HRTIM_DisableIT_SYNC
11948   * @param  HRTIMx High Resolution Timer instance
11949   * @retval None
11950   */
LL_HRTIM_DisableIT_SYNC(HRTIM_TypeDef * HRTIMx)11951 __STATIC_INLINE void LL_HRTIM_DisableIT_SYNC(HRTIM_TypeDef *HRTIMx)
11952 {
11953   CLEAR_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE);
11954 }
11955 
11956 /**
11957   * @brief  Indicate whether the synchronization input interrupt is enabled.
11958   * @rmtoll MDIER     SYNCIE           LL_HRTIM_IsEnabledIT_SYNC
11959   * @param  HRTIMx High Resolution Timer instance
11960   * @retval State of SYNCIE bit in HRTIM_MDIER register (1 or 0).
11961   */
LL_HRTIM_IsEnabledIT_SYNC(const HRTIM_TypeDef * HRTIMx)11962 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SYNC(const HRTIM_TypeDef *HRTIMx)
11963 {
11964   return ((READ_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE) == (HRTIM_MDIER_SYNCIE)) ? 1UL : 0UL);
11965 }
11966 
11967 /**
11968   * @brief  Enable the update interrupt for a given timer.
11969   * @rmtoll MDIER        MUPDIE           LL_HRTIM_EnableIT_UPDATE\n
11970   *         TIMxDIER     UPDIE            LL_HRTIM_EnableIT_UPDATE
11971   * @param  HRTIMx High Resolution Timer instance
11972   * @param  Timer This parameter can be one of the following values:
11973   *         @arg @ref LL_HRTIM_TIMER_MASTER
11974   *         @arg @ref LL_HRTIM_TIMER_A
11975   *         @arg @ref LL_HRTIM_TIMER_B
11976   *         @arg @ref LL_HRTIM_TIMER_C
11977   *         @arg @ref LL_HRTIM_TIMER_D
11978   *         @arg @ref LL_HRTIM_TIMER_E
11979   *         @arg @ref LL_HRTIM_TIMER_F
11980   * @retval None
11981   */
LL_HRTIM_EnableIT_UPDATE(HRTIM_TypeDef * HRTIMx,uint32_t Timer)11982 __STATIC_INLINE void LL_HRTIM_EnableIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
11983 {
11984   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
11985   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
11986                                                      REG_OFFSET_TAB_TIMER[iTimer]));
11987   SET_BIT(*pReg, HRTIM_MDIER_MUPDIE);
11988 }
11989 
11990 /**
11991   * @brief  Disable the update interrupt for a given timer.
11992   * @rmtoll MDIER        MUPDIE           LL_HRTIM_DisableIT_UPDATE\n
11993   *         TIMxDIER     UPDIE            LL_HRTIM_DisableIT_UPDATE
11994   * @param  HRTIMx High Resolution Timer instance
11995   * @param  Timer This parameter can be one of the following values:
11996   *         @arg @ref LL_HRTIM_TIMER_MASTER
11997   *         @arg @ref LL_HRTIM_TIMER_A
11998   *         @arg @ref LL_HRTIM_TIMER_B
11999   *         @arg @ref LL_HRTIM_TIMER_C
12000   *         @arg @ref LL_HRTIM_TIMER_D
12001   *         @arg @ref LL_HRTIM_TIMER_E
12002   *         @arg @ref LL_HRTIM_TIMER_F
12003   * @retval None
12004   */
LL_HRTIM_DisableIT_UPDATE(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12005 __STATIC_INLINE void LL_HRTIM_DisableIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12006 {
12007   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12008   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12009                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12010   CLEAR_BIT(*pReg, HRTIM_MDIER_MUPDIE);
12011 }
12012 
12013 /**
12014   * @brief  Indicate whether the update interrupt is enabled for a given timer.
12015   * @rmtoll MDIER        MUPDIE           LL_HRTIM_IsEnabledIT_UPDATE\n
12016   *         TIMxDIER     UPDIE            LL_HRTIM_IsEnabledIT_UPDATE
12017   * @param  HRTIMx High Resolution Timer instance
12018   * @param  Timer This parameter can be one of the following values:
12019   *         @arg @ref LL_HRTIM_TIMER_MASTER
12020   *         @arg @ref LL_HRTIM_TIMER_A
12021   *         @arg @ref LL_HRTIM_TIMER_B
12022   *         @arg @ref LL_HRTIM_TIMER_C
12023   *         @arg @ref LL_HRTIM_TIMER_D
12024   *         @arg @ref LL_HRTIM_TIMER_E
12025   *         @arg @ref LL_HRTIM_TIMER_F
12026   * @retval State of MUPDIE/UPDIE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
12027   */
LL_HRTIM_IsEnabledIT_UPDATE(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12028 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_UPDATE(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12029 {
12030   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12031   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12032                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12033 
12034   return ((READ_BIT(*pReg, HRTIM_MDIER_MUPDIE) == (HRTIM_MDIER_MUPDIE)) ? 1UL : 0UL);
12035 }
12036 
12037 /**
12038   * @brief  Enable the repetition interrupt for a given timer.
12039   * @rmtoll MDIER        MREPIE           LL_HRTIM_EnableIT_REP\n
12040   *         TIMxDIER     REPIE            LL_HRTIM_EnableIT_REP
12041   * @param  HRTIMx High Resolution Timer instance
12042   * @param  Timer This parameter can be one of the following values:
12043   *         @arg @ref LL_HRTIM_TIMER_MASTER
12044   *         @arg @ref LL_HRTIM_TIMER_A
12045   *         @arg @ref LL_HRTIM_TIMER_B
12046   *         @arg @ref LL_HRTIM_TIMER_C
12047   *         @arg @ref LL_HRTIM_TIMER_D
12048   *         @arg @ref LL_HRTIM_TIMER_E
12049   *         @arg @ref LL_HRTIM_TIMER_F
12050   * @retval None
12051   */
LL_HRTIM_EnableIT_REP(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12052 __STATIC_INLINE void LL_HRTIM_EnableIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12053 {
12054   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12055   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12056                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12057   SET_BIT(*pReg, HRTIM_MDIER_MREPIE);
12058 }
12059 
12060 /**
12061   * @brief  Disable the repetition interrupt for a given timer.
12062   * @rmtoll MDIER        MREPIE           LL_HRTIM_DisableIT_REP\n
12063   *         TIMxDIER     REPIE            LL_HRTIM_DisableIT_REP
12064   * @param  HRTIMx High Resolution Timer instance
12065   * @param  Timer This parameter can be one of the following values:
12066   *         @arg @ref LL_HRTIM_TIMER_MASTER
12067   *         @arg @ref LL_HRTIM_TIMER_A
12068   *         @arg @ref LL_HRTIM_TIMER_B
12069   *         @arg @ref LL_HRTIM_TIMER_C
12070   *         @arg @ref LL_HRTIM_TIMER_D
12071   *         @arg @ref LL_HRTIM_TIMER_E
12072   *         @arg @ref LL_HRTIM_TIMER_F
12073   * @retval None
12074   */
LL_HRTIM_DisableIT_REP(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12075 __STATIC_INLINE void LL_HRTIM_DisableIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12076 {
12077   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12078   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12079                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12080   CLEAR_BIT(*pReg, HRTIM_MDIER_MREPIE);
12081 }
12082 
12083 /**
12084   * @brief  Indicate whether the repetition interrupt is enabled for a given timer.
12085   * @rmtoll MDIER        MREPIE           LL_HRTIM_IsEnabledIT_REP\n
12086   *         TIMxDIER     REPIE            LL_HRTIM_IsEnabledIT_REP
12087   * @param  HRTIMx High Resolution Timer instance
12088   * @param  Timer This parameter can be one of the following values:
12089   *         @arg @ref LL_HRTIM_TIMER_MASTER
12090   *         @arg @ref LL_HRTIM_TIMER_A
12091   *         @arg @ref LL_HRTIM_TIMER_B
12092   *         @arg @ref LL_HRTIM_TIMER_C
12093   *         @arg @ref LL_HRTIM_TIMER_D
12094   *         @arg @ref LL_HRTIM_TIMER_E
12095   *         @arg @ref LL_HRTIM_TIMER_F
12096   * @retval State of MREPIE/REPIE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
12097   */
LL_HRTIM_IsEnabledIT_REP(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12098 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_REP(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12099 {
12100   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12101   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12102                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12103 
12104   return ((READ_BIT(*pReg, HRTIM_MDIER_MREPIE) == (HRTIM_MDIER_MREPIE)) ? 1UL : 0UL);
12105 }
12106 
12107 /**
12108   * @brief  Enable the compare 1 interrupt for a given timer.
12109   * @rmtoll MDIER        MCMP1IE           LL_HRTIM_EnableIT_CMP1\n
12110   *         TIMxDIER     CMP1IE            LL_HRTIM_EnableIT_CMP1
12111   * @param  HRTIMx High Resolution Timer instance
12112   * @param  Timer This parameter can be one of the following values:
12113   *         @arg @ref LL_HRTIM_TIMER_MASTER
12114   *         @arg @ref LL_HRTIM_TIMER_A
12115   *         @arg @ref LL_HRTIM_TIMER_B
12116   *         @arg @ref LL_HRTIM_TIMER_C
12117   *         @arg @ref LL_HRTIM_TIMER_D
12118   *         @arg @ref LL_HRTIM_TIMER_E
12119   *         @arg @ref LL_HRTIM_TIMER_F
12120   * @retval None
12121   */
LL_HRTIM_EnableIT_CMP1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12122 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12123 {
12124   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12125   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12126                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12127   SET_BIT(*pReg, HRTIM_MDIER_MCMP1IE);
12128 }
12129 
12130 /**
12131   * @brief  Disable the compare 1 interrupt for a given timer.
12132   * @rmtoll MDIER        MCMP1IE           LL_HRTIM_DisableIT_CMP1\n
12133   *         TIMxDIER     CMP1IE            LL_HRTIM_DisableIT_CMP1
12134   * @param  HRTIMx High Resolution Timer instance
12135   * @param  Timer This parameter can be one of the following values:
12136   *         @arg @ref LL_HRTIM_TIMER_MASTER
12137   *         @arg @ref LL_HRTIM_TIMER_A
12138   *         @arg @ref LL_HRTIM_TIMER_B
12139   *         @arg @ref LL_HRTIM_TIMER_C
12140   *         @arg @ref LL_HRTIM_TIMER_D
12141   *         @arg @ref LL_HRTIM_TIMER_E
12142   *         @arg @ref LL_HRTIM_TIMER_F
12143   * @retval None
12144   */
LL_HRTIM_DisableIT_CMP1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12145 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12146 {
12147   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12148   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12149                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12150   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP1IE);
12151 }
12152 
12153 /**
12154   * @brief  Indicate whether the compare 1 interrupt is enabled for a given timer.
12155   * @rmtoll MDIER        MCMP1IE           LL_HRTIM_IsEnabledIT_CMP1\n
12156   *         TIMxDIER     CMP1IE            LL_HRTIM_IsEnabledIT_CMP1
12157   * @param  HRTIMx High Resolution Timer instance
12158   * @param  Timer This parameter can be one of the following values:
12159   *         @arg @ref LL_HRTIM_TIMER_MASTER
12160   *         @arg @ref LL_HRTIM_TIMER_A
12161   *         @arg @ref LL_HRTIM_TIMER_B
12162   *         @arg @ref LL_HRTIM_TIMER_C
12163   *         @arg @ref LL_HRTIM_TIMER_D
12164   *         @arg @ref LL_HRTIM_TIMER_E
12165   *         @arg @ref LL_HRTIM_TIMER_F
12166   * @retval State of MCMP1IE/CMP1IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
12167   */
LL_HRTIM_IsEnabledIT_CMP1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12168 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12169 {
12170   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12171   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12172                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12173 
12174   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP1IE) == (HRTIM_MDIER_MCMP1IE)) ? 1UL : 0UL);
12175 }
12176 
12177 /**
12178   * @brief  Enable the compare 2 interrupt for a given timer.
12179   * @rmtoll MDIER        MCMP2IE           LL_HRTIM_EnableIT_CMP2\n
12180   *         TIMxDIER     CMP2IE            LL_HRTIM_EnableIT_CMP2
12181   * @param  HRTIMx High Resolution Timer instance
12182   * @param  Timer This parameter can be one of the following values:
12183   *         @arg @ref LL_HRTIM_TIMER_MASTER
12184   *         @arg @ref LL_HRTIM_TIMER_A
12185   *         @arg @ref LL_HRTIM_TIMER_B
12186   *         @arg @ref LL_HRTIM_TIMER_C
12187   *         @arg @ref LL_HRTIM_TIMER_D
12188   *         @arg @ref LL_HRTIM_TIMER_E
12189   *         @arg @ref LL_HRTIM_TIMER_F
12190   * @retval None
12191   */
LL_HRTIM_EnableIT_CMP2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12192 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12193 {
12194   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12195   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12196                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12197   SET_BIT(*pReg, HRTIM_MDIER_MCMP2IE);
12198 }
12199 
12200 /**
12201   * @brief  Disable the compare 2 interrupt for a given timer.
12202   * @rmtoll MDIER        MCMP2IE           LL_HRTIM_DisableIT_CMP2\n
12203   *         TIMxDIER     CMP2IE            LL_HRTIM_DisableIT_CMP2
12204   * @param  HRTIMx High Resolution Timer instance
12205   * @param  Timer This parameter can be one of the following values:
12206   *         @arg @ref LL_HRTIM_TIMER_MASTER
12207   *         @arg @ref LL_HRTIM_TIMER_A
12208   *         @arg @ref LL_HRTIM_TIMER_B
12209   *         @arg @ref LL_HRTIM_TIMER_C
12210   *         @arg @ref LL_HRTIM_TIMER_D
12211   *         @arg @ref LL_HRTIM_TIMER_E
12212   *         @arg @ref LL_HRTIM_TIMER_F
12213   * @retval None
12214   */
LL_HRTIM_DisableIT_CMP2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12215 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12216 {
12217   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12218   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12219                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12220   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP2IE);
12221 }
12222 
12223 /**
12224   * @brief  Indicate whether the compare 2 interrupt is enabled for a given timer.
12225   * @rmtoll MDIER        MCMP2IE           LL_HRTIM_IsEnabledIT_CMP2\n
12226   *         TIMxDIER     CMP2IE            LL_HRTIM_IsEnabledIT_CMP2
12227   * @param  HRTIMx High Resolution Timer instance
12228   * @param  Timer This parameter can be one of the following values:
12229   *         @arg @ref LL_HRTIM_TIMER_MASTER
12230   *         @arg @ref LL_HRTIM_TIMER_A
12231   *         @arg @ref LL_HRTIM_TIMER_B
12232   *         @arg @ref LL_HRTIM_TIMER_C
12233   *         @arg @ref LL_HRTIM_TIMER_D
12234   *         @arg @ref LL_HRTIM_TIMER_E
12235   *         @arg @ref LL_HRTIM_TIMER_F
12236   * @retval State of MCMP2IE/CMP2IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
12237   */
LL_HRTIM_IsEnabledIT_CMP2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12238 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12239 {
12240   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12241   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12242                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12243 
12244   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP2IE) == (HRTIM_MDIER_MCMP2IE)) ? 1UL : 0UL);
12245 }
12246 
12247 /**
12248   * @brief  Enable the compare 3 interrupt for a given timer.
12249   * @rmtoll MDIER        MCMP3IE           LL_HRTIM_EnableIT_CMP3\n
12250   *         TIMxDIER     CMP3IE            LL_HRTIM_EnableIT_CMP3
12251   * @param  HRTIMx High Resolution Timer instance
12252   * @param  Timer This parameter can be one of the following values:
12253   *         @arg @ref LL_HRTIM_TIMER_MASTER
12254   *         @arg @ref LL_HRTIM_TIMER_A
12255   *         @arg @ref LL_HRTIM_TIMER_B
12256   *         @arg @ref LL_HRTIM_TIMER_C
12257   *         @arg @ref LL_HRTIM_TIMER_D
12258   *         @arg @ref LL_HRTIM_TIMER_E
12259   *         @arg @ref LL_HRTIM_TIMER_F
12260   * @retval None
12261   */
LL_HRTIM_EnableIT_CMP3(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12262 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12263 {
12264   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12265   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12266                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12267   SET_BIT(*pReg, HRTIM_MDIER_MCMP3IE);
12268 }
12269 
12270 /**
12271   * @brief  Disable the compare 3 interrupt for a given timer.
12272   * @rmtoll MDIER        MCMP3IE           LL_HRTIM_DisableIT_CMP3\n
12273   *         TIMxDIER     CMP3IE            LL_HRTIM_DisableIT_CMP3
12274   * @param  HRTIMx High Resolution Timer instance
12275   * @param  Timer This parameter can be one of the following values:
12276   *         @arg @ref LL_HRTIM_TIMER_MASTER
12277   *         @arg @ref LL_HRTIM_TIMER_A
12278   *         @arg @ref LL_HRTIM_TIMER_B
12279   *         @arg @ref LL_HRTIM_TIMER_C
12280   *         @arg @ref LL_HRTIM_TIMER_D
12281   *         @arg @ref LL_HRTIM_TIMER_E
12282   *         @arg @ref LL_HRTIM_TIMER_F
12283   * @retval None
12284   */
LL_HRTIM_DisableIT_CMP3(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12285 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12286 {
12287   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12288   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12289                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12290   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP3IE);
12291 }
12292 
12293 /**
12294   * @brief  Indicate whether the compare 3 interrupt is enabled for a given timer.
12295   * @rmtoll MDIER        MCMP3IE           LL_HRTIM_IsEnabledIT_CMP3\n
12296   *         TIMxDIER     CMP3IE            LL_HRTIM_IsEnabledIT_CMP3
12297   * @param  HRTIMx High Resolution Timer instance
12298   * @param  Timer This parameter can be one of the following values:
12299   *         @arg @ref LL_HRTIM_TIMER_MASTER
12300   *         @arg @ref LL_HRTIM_TIMER_A
12301   *         @arg @ref LL_HRTIM_TIMER_B
12302   *         @arg @ref LL_HRTIM_TIMER_C
12303   *         @arg @ref LL_HRTIM_TIMER_D
12304   *         @arg @ref LL_HRTIM_TIMER_E
12305   *         @arg @ref LL_HRTIM_TIMER_F
12306   * @retval State of MCMP3IE/CMP3IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
12307   */
LL_HRTIM_IsEnabledIT_CMP3(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12308 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12309 {
12310   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12311   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12312                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12313 
12314   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP3IE) == (HRTIM_MDIER_MCMP3IE)) ? 1UL : 0UL);
12315 }
12316 
12317 /**
12318   * @brief  Enable the compare 4 interrupt for a given timer.
12319   * @rmtoll MDIER        MCMP4IE           LL_HRTIM_EnableIT_CMP4\n
12320   *         TIMxDIER     CMP4IE            LL_HRTIM_EnableIT_CMP4
12321   * @param  HRTIMx High Resolution Timer instance
12322   * @param  Timer This parameter can be one of the following values:
12323   *         @arg @ref LL_HRTIM_TIMER_MASTER
12324   *         @arg @ref LL_HRTIM_TIMER_A
12325   *         @arg @ref LL_HRTIM_TIMER_B
12326   *         @arg @ref LL_HRTIM_TIMER_C
12327   *         @arg @ref LL_HRTIM_TIMER_D
12328   *         @arg @ref LL_HRTIM_TIMER_E
12329   *         @arg @ref LL_HRTIM_TIMER_F
12330   * @retval None
12331   */
LL_HRTIM_EnableIT_CMP4(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12332 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12333 {
12334   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12335   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12336                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12337   SET_BIT(*pReg, HRTIM_MDIER_MCMP4IE);
12338 }
12339 
12340 /**
12341   * @brief  Disable the compare 4 interrupt for a given timer.
12342   * @rmtoll MDIER        MCMP4IE           LL_HRTIM_DisableIT_CMP4\n
12343   *         TIMxDIER     CMP4IE            LL_HRTIM_DisableIT_CMP4
12344   * @param  HRTIMx High Resolution Timer instance
12345   * @param  Timer This parameter can be one of the following values:
12346   *         @arg @ref LL_HRTIM_TIMER_MASTER
12347   *         @arg @ref LL_HRTIM_TIMER_A
12348   *         @arg @ref LL_HRTIM_TIMER_B
12349   *         @arg @ref LL_HRTIM_TIMER_C
12350   *         @arg @ref LL_HRTIM_TIMER_D
12351   *         @arg @ref LL_HRTIM_TIMER_E
12352   *         @arg @ref LL_HRTIM_TIMER_F
12353   * @retval None
12354   */
LL_HRTIM_DisableIT_CMP4(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12355 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12356 {
12357   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12358   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12359                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12360   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP4IE);
12361 }
12362 
12363 /**
12364   * @brief  Indicate whether the compare 4 interrupt is enabled for a given timer.
12365   * @rmtoll MDIER        MCMP4IE           LL_HRTIM_IsEnabledIT_CMP4\n
12366   *         TIMxDIER     CMP4IE            LL_HRTIM_IsEnabledIT_CMP4
12367   * @param  HRTIMx High Resolution Timer instance
12368   * @param  Timer This parameter can be one of the following values:
12369   *         @arg @ref LL_HRTIM_TIMER_MASTER
12370   *         @arg @ref LL_HRTIM_TIMER_A
12371   *         @arg @ref LL_HRTIM_TIMER_B
12372   *         @arg @ref LL_HRTIM_TIMER_C
12373   *         @arg @ref LL_HRTIM_TIMER_D
12374   *         @arg @ref LL_HRTIM_TIMER_E
12375   *         @arg @ref LL_HRTIM_TIMER_F
12376   * @retval State of MCMP4IE/CMP4IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
12377   */
LL_HRTIM_IsEnabledIT_CMP4(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12378 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12379 {
12380   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12381   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12382                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12383 
12384   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP4IE) == (HRTIM_MDIER_MCMP4IE)) ? 1UL : 0UL);
12385 }
12386 
12387 /**
12388   * @brief  Enable the capture 1 interrupt for a given timer.
12389   * @rmtoll TIMxDIER     CPT1IE            LL_HRTIM_EnableIT_CPT1
12390   * @param  HRTIMx High Resolution Timer instance
12391   * @param  Timer This parameter can be one of the following values:
12392   *         @arg @ref LL_HRTIM_TIMER_A
12393   *         @arg @ref LL_HRTIM_TIMER_B
12394   *         @arg @ref LL_HRTIM_TIMER_C
12395   *         @arg @ref LL_HRTIM_TIMER_D
12396   *         @arg @ref LL_HRTIM_TIMER_E
12397   *         @arg @ref LL_HRTIM_TIMER_F
12398   * @retval None
12399   */
LL_HRTIM_EnableIT_CPT1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12400 __STATIC_INLINE void LL_HRTIM_EnableIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12401 {
12402   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12403   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12404                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12405   SET_BIT(*pReg, HRTIM_TIMDIER_CPT1IE);
12406 }
12407 
12408 /**
12409   * @brief  Enable the capture 1 interrupt for a given timer.
12410   * @rmtoll TIMxDIER     CPT1IE            LL_HRTIM_DisableIT_CPT1
12411   * @param  HRTIMx High Resolution Timer instance
12412   * @param  Timer This parameter can be one of the following values:
12413   *         @arg @ref LL_HRTIM_TIMER_A
12414   *         @arg @ref LL_HRTIM_TIMER_B
12415   *         @arg @ref LL_HRTIM_TIMER_C
12416   *         @arg @ref LL_HRTIM_TIMER_D
12417   *         @arg @ref LL_HRTIM_TIMER_E
12418   *         @arg @ref LL_HRTIM_TIMER_F
12419   * @retval None
12420   */
LL_HRTIM_DisableIT_CPT1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12421 __STATIC_INLINE void LL_HRTIM_DisableIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12422 {
12423   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12424   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12425                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12426   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT1IE);
12427 }
12428 
12429 /**
12430   * @brief  Indicate whether the capture 1 interrupt is enabled for a given timer.
12431   * @rmtoll TIMxDIER     CPT1IE            LL_HRTIM_IsEnabledIT_CPT1
12432   * @param  HRTIMx High Resolution Timer instance
12433   * @param  Timer This parameter can be one of the following values:
12434   *         @arg @ref LL_HRTIM_TIMER_A
12435   *         @arg @ref LL_HRTIM_TIMER_B
12436   *         @arg @ref LL_HRTIM_TIMER_C
12437   *         @arg @ref LL_HRTIM_TIMER_D
12438   *         @arg @ref LL_HRTIM_TIMER_E
12439   *         @arg @ref LL_HRTIM_TIMER_F
12440   * @retval State of CPT1IE bit in HRTIM_TIMxDIER register (1 or 0).
12441   */
LL_HRTIM_IsEnabledIT_CPT1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12442 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CPT1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12443 {
12444   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12445   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12446                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12447 
12448   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT1IE) == (HRTIM_TIMDIER_CPT1IE)) ? 1UL : 0UL);
12449 }
12450 
12451 /**
12452   * @brief  Enable the capture 2 interrupt for a given timer.
12453   * @rmtoll TIMxDIER     CPT2IE            LL_HRTIM_EnableIT_CPT2
12454   * @param  HRTIMx High Resolution Timer instance
12455   * @param  Timer This parameter can be one of the following values:
12456   *         @arg @ref LL_HRTIM_TIMER_A
12457   *         @arg @ref LL_HRTIM_TIMER_B
12458   *         @arg @ref LL_HRTIM_TIMER_C
12459   *         @arg @ref LL_HRTIM_TIMER_D
12460   *         @arg @ref LL_HRTIM_TIMER_E
12461   *         @arg @ref LL_HRTIM_TIMER_F
12462   * @retval None
12463   */
LL_HRTIM_EnableIT_CPT2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12464 __STATIC_INLINE void LL_HRTIM_EnableIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12465 {
12466   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12467   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12468                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12469   SET_BIT(*pReg, HRTIM_TIMDIER_CPT2IE);
12470 }
12471 
12472 /**
12473   * @brief  Enable the capture 2 interrupt for a given timer.
12474   * @rmtoll TIMxDIER     CPT2IE            LL_HRTIM_DisableIT_CPT2
12475   * @param  HRTIMx High Resolution Timer instance
12476   * @param  Timer This parameter can be one of the following values:
12477   *         @arg @ref LL_HRTIM_TIMER_A
12478   *         @arg @ref LL_HRTIM_TIMER_B
12479   *         @arg @ref LL_HRTIM_TIMER_C
12480   *         @arg @ref LL_HRTIM_TIMER_D
12481   *         @arg @ref LL_HRTIM_TIMER_E
12482   *         @arg @ref LL_HRTIM_TIMER_F
12483   * @retval None
12484   */
LL_HRTIM_DisableIT_CPT2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12485 __STATIC_INLINE void LL_HRTIM_DisableIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12486 {
12487   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12488   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12489                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12490   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT2IE);
12491 }
12492 
12493 /**
12494   * @brief  Indicate whether the capture 2 interrupt is enabled for a given timer.
12495   * @rmtoll TIMxDIER     CPT2IE            LL_HRTIM_IsEnabledIT_CPT2
12496   * @param  HRTIMx High Resolution Timer instance
12497   * @param  Timer This parameter can be one of the following values:
12498   *         @arg @ref LL_HRTIM_TIMER_A
12499   *         @arg @ref LL_HRTIM_TIMER_B
12500   *         @arg @ref LL_HRTIM_TIMER_C
12501   *         @arg @ref LL_HRTIM_TIMER_D
12502   *         @arg @ref LL_HRTIM_TIMER_E
12503   *         @arg @ref LL_HRTIM_TIMER_F
12504   * @retval State of CPT2IE bit in HRTIM_TIMxDIER register (1 or 0).
12505   */
LL_HRTIM_IsEnabledIT_CPT2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12506 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CPT2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12507 {
12508   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12509   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12510                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12511 
12512   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT2IE) == (HRTIM_TIMDIER_CPT2IE)) ? 1UL : 0UL);
12513 }
12514 
12515 /**
12516   * @brief  Enable the output 1 set interrupt for a given timer.
12517   * @rmtoll TIMxDIER     SET1IE            LL_HRTIM_EnableIT_SET1
12518   * @param  HRTIMx High Resolution Timer instance
12519   * @param  Timer This parameter can be one of the following values:
12520   *         @arg @ref LL_HRTIM_TIMER_A
12521   *         @arg @ref LL_HRTIM_TIMER_B
12522   *         @arg @ref LL_HRTIM_TIMER_C
12523   *         @arg @ref LL_HRTIM_TIMER_D
12524   *         @arg @ref LL_HRTIM_TIMER_E
12525   *         @arg @ref LL_HRTIM_TIMER_F
12526   * @retval None
12527   */
LL_HRTIM_EnableIT_SET1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12528 __STATIC_INLINE void LL_HRTIM_EnableIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12529 {
12530   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12531   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12532                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12533   SET_BIT(*pReg, HRTIM_TIMDIER_SET1IE);
12534 }
12535 
12536 /**
12537   * @brief  Disable the output 1 set interrupt for a given timer.
12538   * @rmtoll TIMxDIER     SET1IE            LL_HRTIM_DisableIT_SET1
12539   * @param  HRTIMx High Resolution Timer instance
12540   * @param  Timer This parameter can be one of the following values:
12541   *         @arg @ref LL_HRTIM_TIMER_A
12542   *         @arg @ref LL_HRTIM_TIMER_B
12543   *         @arg @ref LL_HRTIM_TIMER_C
12544   *         @arg @ref LL_HRTIM_TIMER_D
12545   *         @arg @ref LL_HRTIM_TIMER_E
12546   *         @arg @ref LL_HRTIM_TIMER_F
12547   * @retval None
12548   */
LL_HRTIM_DisableIT_SET1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12549 __STATIC_INLINE void LL_HRTIM_DisableIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12550 {
12551   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12552   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12553                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12554   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET1IE);
12555 }
12556 
12557 /**
12558   * @brief  Indicate whether the output 1 set interrupt is enabled for a given timer.
12559   * @rmtoll TIMxDIER     SET1IE            LL_HRTIM_IsEnabledIT_SET1
12560   * @param  HRTIMx High Resolution Timer instance
12561   * @param  Timer This parameter can be one of the following values:
12562   *         @arg @ref LL_HRTIM_TIMER_A
12563   *         @arg @ref LL_HRTIM_TIMER_B
12564   *         @arg @ref LL_HRTIM_TIMER_C
12565   *         @arg @ref LL_HRTIM_TIMER_D
12566   *         @arg @ref LL_HRTIM_TIMER_E
12567   *         @arg @ref LL_HRTIM_TIMER_F
12568   * @retval State of SET1xIE bit in HRTIM_TIMxDIER register (1 or 0).
12569   */
LL_HRTIM_IsEnabledIT_SET1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12570 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SET1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12571 {
12572   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12573   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12574                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12575 
12576   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET1IE) == (HRTIM_TIMDIER_SET1IE)) ? 1UL : 0UL);
12577 }
12578 
12579 /**
12580   * @brief  Enable the output 1 reset interrupt for a given timer.
12581   * @rmtoll TIMxDIER     RST1IE            LL_HRTIM_EnableIT_RST1
12582   * @param  HRTIMx High Resolution Timer instance
12583   * @param  Timer This parameter can be one of the following values:
12584   *         @arg @ref LL_HRTIM_TIMER_A
12585   *         @arg @ref LL_HRTIM_TIMER_B
12586   *         @arg @ref LL_HRTIM_TIMER_C
12587   *         @arg @ref LL_HRTIM_TIMER_D
12588   *         @arg @ref LL_HRTIM_TIMER_E
12589   *         @arg @ref LL_HRTIM_TIMER_F
12590   * @retval None
12591   */
LL_HRTIM_EnableIT_RST1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12592 __STATIC_INLINE void LL_HRTIM_EnableIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12593 {
12594   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12595   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12596                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12597   SET_BIT(*pReg, HRTIM_TIMDIER_RST1IE);
12598 }
12599 
12600 /**
12601   * @brief  Disable the output 1 reset interrupt for a given timer.
12602   * @rmtoll TIMxDIER     RST1IE            LL_HRTIM_DisableIT_RST1
12603   * @param  HRTIMx High Resolution Timer instance
12604   * @param  Timer This parameter can be one of the following values:
12605   *         @arg @ref LL_HRTIM_TIMER_A
12606   *         @arg @ref LL_HRTIM_TIMER_B
12607   *         @arg @ref LL_HRTIM_TIMER_C
12608   *         @arg @ref LL_HRTIM_TIMER_D
12609   *         @arg @ref LL_HRTIM_TIMER_E
12610   *         @arg @ref LL_HRTIM_TIMER_F
12611   * @retval None
12612   */
LL_HRTIM_DisableIT_RST1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12613 __STATIC_INLINE void LL_HRTIM_DisableIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12614 {
12615   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12616   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12617                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12618   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST1IE);
12619 }
12620 
12621 /**
12622   * @brief  Indicate whether the output 1 reset interrupt is enabled for a given timer.
12623   * @rmtoll TIMxDIER     RST1IE            LL_HRTIM_IsEnabledIT_RST1
12624   * @param  HRTIMx High Resolution Timer instance
12625   * @param  Timer This parameter can be one of the following values:
12626   *         @arg @ref LL_HRTIM_TIMER_A
12627   *         @arg @ref LL_HRTIM_TIMER_B
12628   *         @arg @ref LL_HRTIM_TIMER_C
12629   *         @arg @ref LL_HRTIM_TIMER_D
12630   *         @arg @ref LL_HRTIM_TIMER_E
12631   *         @arg @ref LL_HRTIM_TIMER_F
12632   * @retval State of RST1xIE bit in HRTIM_TIMxDIER register (1 or 0).
12633   */
LL_HRTIM_IsEnabledIT_RST1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12634 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12635 {
12636   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12637   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12638                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12639 
12640   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST1IE) == (HRTIM_TIMDIER_RST1IE)) ? 1UL : 0UL);
12641 }
12642 
12643 /**
12644   * @brief  Enable the output 2 set interrupt for a given timer.
12645   * @rmtoll TIMxDIER     SET2IE            LL_HRTIM_EnableIT_SET2
12646   * @param  HRTIMx High Resolution Timer instance
12647   * @param  Timer This parameter can be one of the following values:
12648   *         @arg @ref LL_HRTIM_TIMER_A
12649   *         @arg @ref LL_HRTIM_TIMER_B
12650   *         @arg @ref LL_HRTIM_TIMER_C
12651   *         @arg @ref LL_HRTIM_TIMER_D
12652   *         @arg @ref LL_HRTIM_TIMER_E
12653   *         @arg @ref LL_HRTIM_TIMER_F
12654   * @retval None
12655   */
LL_HRTIM_EnableIT_SET2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12656 __STATIC_INLINE void LL_HRTIM_EnableIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12657 {
12658   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12659   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12660                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12661   SET_BIT(*pReg, HRTIM_TIMDIER_SET2IE);
12662 }
12663 
12664 /**
12665   * @brief  Disable the output 2 set interrupt for a given timer.
12666   * @rmtoll TIMxDIER     SET2IE            LL_HRTIM_DisableIT_SET2
12667   * @param  HRTIMx High Resolution Timer instance
12668   * @param  Timer This parameter can be one of the following values:
12669   *         @arg @ref LL_HRTIM_TIMER_A
12670   *         @arg @ref LL_HRTIM_TIMER_B
12671   *         @arg @ref LL_HRTIM_TIMER_C
12672   *         @arg @ref LL_HRTIM_TIMER_D
12673   *         @arg @ref LL_HRTIM_TIMER_E
12674   *         @arg @ref LL_HRTIM_TIMER_F
12675   * @retval None
12676   */
LL_HRTIM_DisableIT_SET2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12677 __STATIC_INLINE void LL_HRTIM_DisableIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12678 {
12679   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12680   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12681                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12682   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET2IE);
12683 }
12684 
12685 /**
12686   * @brief  Indicate whether the output 2 set interrupt is enabled for a given timer.
12687   * @rmtoll TIMxDIER     SET2IE            LL_HRTIM_IsEnabledIT_SET2
12688   * @param  HRTIMx High Resolution Timer instance
12689   * @param  Timer This parameter can be one of the following values:
12690   *         @arg @ref LL_HRTIM_TIMER_A
12691   *         @arg @ref LL_HRTIM_TIMER_B
12692   *         @arg @ref LL_HRTIM_TIMER_C
12693   *         @arg @ref LL_HRTIM_TIMER_D
12694   *         @arg @ref LL_HRTIM_TIMER_E
12695   *         @arg @ref LL_HRTIM_TIMER_F
12696   * @retval State of SET2xIE bit in HRTIM_TIMxDIER register (1 or 0).
12697   */
LL_HRTIM_IsEnabledIT_SET2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12698 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SET2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12699 {
12700   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12701   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12702                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12703 
12704   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET2IE) == (HRTIM_TIMDIER_SET2IE)) ? 1UL : 0UL);
12705 }
12706 
12707 /**
12708   * @brief  Enable the output 2 reset interrupt for a given timer.
12709   * @rmtoll TIMxDIER     RST2IE            LL_HRTIM_EnableIT_RST2
12710   * @param  HRTIMx High Resolution Timer instance
12711   * @param  Timer This parameter can be one of the following values:
12712   *         @arg @ref LL_HRTIM_TIMER_A
12713   *         @arg @ref LL_HRTIM_TIMER_B
12714   *         @arg @ref LL_HRTIM_TIMER_C
12715   *         @arg @ref LL_HRTIM_TIMER_D
12716   *         @arg @ref LL_HRTIM_TIMER_E
12717   *         @arg @ref LL_HRTIM_TIMER_F
12718   * @retval None
12719   */
LL_HRTIM_EnableIT_RST2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12720 __STATIC_INLINE void LL_HRTIM_EnableIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12721 {
12722   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12723   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12724                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12725   SET_BIT(*pReg, HRTIM_TIMDIER_RST2IE);
12726 }
12727 
12728 /**
12729   * @brief  Disable the output 2 reset interrupt for a given timer.
12730   * @rmtoll TIMxDIER     RST2IE            LL_HRTIM_DisableIT_RST2
12731   * @param  HRTIMx High Resolution Timer instance
12732   * @param  Timer This parameter can be one of the following values:
12733   *         @arg @ref LL_HRTIM_TIMER_A
12734   *         @arg @ref LL_HRTIM_TIMER_B
12735   *         @arg @ref LL_HRTIM_TIMER_C
12736   *         @arg @ref LL_HRTIM_TIMER_D
12737   *         @arg @ref LL_HRTIM_TIMER_E
12738   *         @arg @ref LL_HRTIM_TIMER_F
12739   * @retval None
12740   */
LL_HRTIM_DisableIT_RST2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12741 __STATIC_INLINE void LL_HRTIM_DisableIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12742 {
12743   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12744   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12745                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12746   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST2IE);
12747 }
12748 
12749 /**
12750   * @brief  Indicate whether the output 2 reset LL_HRTIM_IsEnabledIT_RST2 is enabled for a given timer.
12751   * @rmtoll TIMxDIER     RST2IE            LL_HRTIM_DisableIT_RST2
12752   * @param  HRTIMx High Resolution Timer instance
12753   * @param  Timer This parameter can be one of the following values:
12754   *         @arg @ref LL_HRTIM_TIMER_A
12755   *         @arg @ref LL_HRTIM_TIMER_B
12756   *         @arg @ref LL_HRTIM_TIMER_C
12757   *         @arg @ref LL_HRTIM_TIMER_D
12758   *         @arg @ref LL_HRTIM_TIMER_E
12759   *         @arg @ref LL_HRTIM_TIMER_F
12760   * @retval State of RST2xIE bit in HRTIM_TIMxDIER register (1 or 0).
12761   */
LL_HRTIM_IsEnabledIT_RST2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12762 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12763 {
12764   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12765   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12766                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12767 
12768   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST2IE) == (HRTIM_TIMDIER_RST2IE)) ? 1UL : 0UL);
12769 }
12770 
12771 /**
12772   * @brief  Enable the reset/roll-over interrupt for a given timer.
12773   * @rmtoll TIMxDIER     RSTIE            LL_HRTIM_EnableIT_RST
12774   * @param  HRTIMx High Resolution Timer instance
12775   * @param  Timer This parameter can be one of the following values:
12776   *         @arg @ref LL_HRTIM_TIMER_A
12777   *         @arg @ref LL_HRTIM_TIMER_B
12778   *         @arg @ref LL_HRTIM_TIMER_C
12779   *         @arg @ref LL_HRTIM_TIMER_D
12780   *         @arg @ref LL_HRTIM_TIMER_E
12781   *         @arg @ref LL_HRTIM_TIMER_F
12782   * @retval None
12783   */
LL_HRTIM_EnableIT_RST(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12784 __STATIC_INLINE void LL_HRTIM_EnableIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12785 {
12786   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12787   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12788                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12789   SET_BIT(*pReg, HRTIM_TIMDIER_RSTIE);
12790 }
12791 
12792 /**
12793   * @brief  Disable the reset/roll-over interrupt for a given timer.
12794   * @rmtoll TIMxDIER     RSTIE            LL_HRTIM_DisableIT_RST
12795   * @param  HRTIMx High Resolution Timer instance
12796   * @param  Timer This parameter can be one of the following values:
12797   *         @arg @ref LL_HRTIM_TIMER_A
12798   *         @arg @ref LL_HRTIM_TIMER_B
12799   *         @arg @ref LL_HRTIM_TIMER_C
12800   *         @arg @ref LL_HRTIM_TIMER_D
12801   *         @arg @ref LL_HRTIM_TIMER_E
12802   *         @arg @ref LL_HRTIM_TIMER_F
12803   * @retval None
12804   */
LL_HRTIM_DisableIT_RST(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12805 __STATIC_INLINE void LL_HRTIM_DisableIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12806 {
12807   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12808   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12809                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12810   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RSTIE);
12811 }
12812 
12813 /**
12814   * @brief  Indicate whether the reset/roll-over interrupt is enabled for a given timer.
12815   * @rmtoll TIMxDIER     RSTIE            LL_HRTIM_IsEnabledIT_RST
12816   * @param  HRTIMx High Resolution Timer instance
12817   * @param  Timer This parameter can be one of the following values:
12818   *         @arg @ref LL_HRTIM_TIMER_A
12819   *         @arg @ref LL_HRTIM_TIMER_B
12820   *         @arg @ref LL_HRTIM_TIMER_C
12821   *         @arg @ref LL_HRTIM_TIMER_D
12822   *         @arg @ref LL_HRTIM_TIMER_E
12823   *         @arg @ref LL_HRTIM_TIMER_F
12824   * @retval State of RSTIE bit in HRTIM_TIMxDIER register (1 or 0).
12825   */
LL_HRTIM_IsEnabledIT_RST(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12826 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12827 {
12828   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12829   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12830                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12831 
12832   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RSTIE) == (HRTIM_TIMDIER_RSTIE)) ? 1UL : 0UL);
12833 }
12834 
12835 /**
12836   * @brief  Enable the delayed protection interrupt for a given timer.
12837   * @rmtoll TIMxDIER     DLYPRTIE            LL_HRTIM_EnableIT_DLYPRT
12838   * @param  HRTIMx High Resolution Timer instance
12839   * @param  Timer This parameter can be one of the following values:
12840   *         @arg @ref LL_HRTIM_TIMER_A
12841   *         @arg @ref LL_HRTIM_TIMER_B
12842   *         @arg @ref LL_HRTIM_TIMER_C
12843   *         @arg @ref LL_HRTIM_TIMER_D
12844   *         @arg @ref LL_HRTIM_TIMER_E
12845   *         @arg @ref LL_HRTIM_TIMER_F
12846   * @retval None
12847   */
LL_HRTIM_EnableIT_DLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12848 __STATIC_INLINE void LL_HRTIM_EnableIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12849 {
12850   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12851   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12852                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12853   SET_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE);
12854 }
12855 
12856 /**
12857   * @brief  Disable the delayed protection interrupt for a given timer.
12858   * @rmtoll TIMxDIER     DLYPRTIE            LL_HRTIM_DisableIT_DLYPRT
12859   * @param  HRTIMx High Resolution Timer instance
12860   * @param  Timer This parameter can be one of the following values:
12861   *         @arg @ref LL_HRTIM_TIMER_A
12862   *         @arg @ref LL_HRTIM_TIMER_B
12863   *         @arg @ref LL_HRTIM_TIMER_C
12864   *         @arg @ref LL_HRTIM_TIMER_D
12865   *         @arg @ref LL_HRTIM_TIMER_E
12866   *         @arg @ref LL_HRTIM_TIMER_F
12867   * @retval None
12868   */
LL_HRTIM_DisableIT_DLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12869 __STATIC_INLINE void LL_HRTIM_DisableIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12870 {
12871   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12872   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12873                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12874   CLEAR_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE);
12875 }
12876 
12877 /**
12878   * @brief  Indicate whether the delayed protection interrupt is enabled for a given timer.
12879   * @rmtoll TIMxDIER     DLYPRTIE            LL_HRTIM_IsEnabledIT_DLYPRT
12880   * @param  HRTIMx High Resolution Timer instance
12881   * @param  Timer This parameter can be one of the following values:
12882   *         @arg @ref LL_HRTIM_TIMER_A
12883   *         @arg @ref LL_HRTIM_TIMER_B
12884   *         @arg @ref LL_HRTIM_TIMER_C
12885   *         @arg @ref LL_HRTIM_TIMER_D
12886   *         @arg @ref LL_HRTIM_TIMER_E
12887   *         @arg @ref LL_HRTIM_TIMER_F
12888   * @retval State of DLYPRTIE bit in HRTIM_TIMxDIER register (1 or 0).
12889   */
LL_HRTIM_IsEnabledIT_DLYPRT(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)12890 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_DLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12891 {
12892   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12893   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12894                                                            REG_OFFSET_TAB_TIMER[iTimer]));
12895 
12896   return ((READ_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE) == (HRTIM_TIMDIER_DLYPRTIE)) ? 1UL : 0UL);
12897 }
12898 
12899 /**
12900   * @}
12901   */
12902 
12903 /** @defgroup HRTIM_LL_EF_DMA_Management DMA_Management
12904   * @{
12905   */
12906 
12907 /**
12908   * @brief  Enable the synchronization input DMA request.
12909   * @rmtoll MDIER     SYNCDE            LL_HRTIM_EnableDMAReq_SYNC
12910   * @param  HRTIMx High Resolution Timer instance
12911   * @retval None
12912   */
LL_HRTIM_EnableDMAReq_SYNC(HRTIM_TypeDef * HRTIMx)12913 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SYNC(HRTIM_TypeDef *HRTIMx)
12914 {
12915   SET_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE);
12916 }
12917 
12918 /**
12919   * @brief  Disable the synchronization input DMA request
12920   * @rmtoll MDIER     SYNCDE            LL_HRTIM_DisableDMAReq_SYNC
12921   * @param  HRTIMx High Resolution Timer instance
12922   * @retval None
12923   */
LL_HRTIM_DisableDMAReq_SYNC(HRTIM_TypeDef * HRTIMx)12924 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SYNC(HRTIM_TypeDef *HRTIMx)
12925 {
12926   CLEAR_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE);
12927 }
12928 
12929 /**
12930   * @brief  Indicate whether the synchronization input DMA request is enabled.
12931   * @rmtoll MDIER     SYNCDE            LL_HRTIM_IsEnabledDMAReq_SYNC
12932   * @param  HRTIMx High Resolution Timer instance
12933   * @retval State of SYNCDE bit in HRTIM_MDIER register (1 or 0).
12934   */
LL_HRTIM_IsEnabledDMAReq_SYNC(const HRTIM_TypeDef * HRTIMx)12935 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SYNC(const HRTIM_TypeDef *HRTIMx)
12936 {
12937   return ((READ_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE) == (HRTIM_MDIER_SYNCDE)) ? 1UL : 0UL);
12938 }
12939 
12940 /**
12941   * @brief  Enable the update DMA request for a given timer.
12942   * @rmtoll MDIER        MUPDDE            LL_HRTIM_EnableDMAReq_UPDATE\n
12943   *         TIMxDIER     UPDDE             LL_HRTIM_EnableDMAReq_UPDATE
12944   * @param  HRTIMx High Resolution Timer instance
12945   * @param  Timer This parameter can be one of the following values:
12946   *         @arg @ref LL_HRTIM_TIMER_MASTER
12947   *         @arg @ref LL_HRTIM_TIMER_A
12948   *         @arg @ref LL_HRTIM_TIMER_B
12949   *         @arg @ref LL_HRTIM_TIMER_C
12950   *         @arg @ref LL_HRTIM_TIMER_D
12951   *         @arg @ref LL_HRTIM_TIMER_E
12952   *         @arg @ref LL_HRTIM_TIMER_F
12953   * @retval None
12954   */
LL_HRTIM_EnableDMAReq_UPDATE(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12955 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12956 {
12957   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12958   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12959                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12960   SET_BIT(*pReg, HRTIM_MDIER_MUPDDE);
12961 }
12962 
12963 /**
12964   * @brief  Disable the update DMA request for a given timer.
12965   * @rmtoll MDIER        MUPDDE            LL_HRTIM_DisableDMAReq_UPDATE\n
12966   *         TIMxDIER     UPDDE             LL_HRTIM_DisableDMAReq_UPDATE
12967   * @param  HRTIMx High Resolution Timer instance
12968   * @param  Timer This parameter can be one of the following values:
12969   *         @arg @ref LL_HRTIM_TIMER_MASTER
12970   *         @arg @ref LL_HRTIM_TIMER_A
12971   *         @arg @ref LL_HRTIM_TIMER_B
12972   *         @arg @ref LL_HRTIM_TIMER_C
12973   *         @arg @ref LL_HRTIM_TIMER_D
12974   *         @arg @ref LL_HRTIM_TIMER_E
12975   *         @arg @ref LL_HRTIM_TIMER_F
12976   * @retval None
12977   */
LL_HRTIM_DisableDMAReq_UPDATE(HRTIM_TypeDef * HRTIMx,uint32_t Timer)12978 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
12979 {
12980   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
12981   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
12982                                                      REG_OFFSET_TAB_TIMER[iTimer]));
12983   CLEAR_BIT(*pReg, HRTIM_MDIER_MUPDDE);
12984 }
12985 
12986 /**
12987   * @brief  Indicate whether the update DMA request is enabled for a given timer.
12988   * @rmtoll MDIER        MUPDDE            LL_HRTIM_IsEnabledDMAReq_UPDATE\n
12989   *         TIMxDIER     UPDDE             LL_HRTIM_IsEnabledDMAReq_UPDATE
12990   * @param  HRTIMx High Resolution Timer instance
12991   * @param  Timer This parameter can be one of the following values:
12992   *         @arg @ref LL_HRTIM_TIMER_MASTER
12993   *         @arg @ref LL_HRTIM_TIMER_A
12994   *         @arg @ref LL_HRTIM_TIMER_B
12995   *         @arg @ref LL_HRTIM_TIMER_C
12996   *         @arg @ref LL_HRTIM_TIMER_D
12997   *         @arg @ref LL_HRTIM_TIMER_E
12998   *         @arg @ref LL_HRTIM_TIMER_F
12999   * @retval State of MUPDDE/UPDDE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
13000   */
LL_HRTIM_IsEnabledDMAReq_UPDATE(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13001 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_UPDATE(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13002 {
13003   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13004   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13005                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13006 
13007   return ((READ_BIT(*pReg, HRTIM_MDIER_MUPDDE) == (HRTIM_MDIER_MUPDDE)) ? 1UL : 0UL);
13008 }
13009 
13010 /**
13011   * @brief  Enable the repetition DMA request for a given timer.
13012   * @rmtoll MDIER        MREPDE            LL_HRTIM_EnableDMAReq_REP\n
13013   *         TIMxDIER     REPDE             LL_HRTIM_EnableDMAReq_REP
13014   * @param  HRTIMx High Resolution Timer instance
13015   * @param  Timer This parameter can be one of the following values:
13016   *         @arg @ref LL_HRTIM_TIMER_MASTER
13017   *         @arg @ref LL_HRTIM_TIMER_A
13018   *         @arg @ref LL_HRTIM_TIMER_B
13019   *         @arg @ref LL_HRTIM_TIMER_C
13020   *         @arg @ref LL_HRTIM_TIMER_D
13021   *         @arg @ref LL_HRTIM_TIMER_E
13022   *         @arg @ref LL_HRTIM_TIMER_F
13023   * @retval None
13024   */
LL_HRTIM_EnableDMAReq_REP(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13025 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13026 {
13027   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13028   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13029                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13030   SET_BIT(*pReg, HRTIM_MDIER_MREPDE);
13031 }
13032 
13033 /**
13034   * @brief  Disable the repetition DMA request for a given timer.
13035   * @rmtoll MDIER        MREPDE            LL_HRTIM_DisableDMAReq_REP\n
13036   *         TIMxDIER     REPDE             LL_HRTIM_DisableDMAReq_REP
13037   * @param  HRTIMx High Resolution Timer instance
13038   * @param  Timer This parameter can be one of the following values:
13039   *         @arg @ref LL_HRTIM_TIMER_MASTER
13040   *         @arg @ref LL_HRTIM_TIMER_A
13041   *         @arg @ref LL_HRTIM_TIMER_B
13042   *         @arg @ref LL_HRTIM_TIMER_C
13043   *         @arg @ref LL_HRTIM_TIMER_D
13044   *         @arg @ref LL_HRTIM_TIMER_E
13045   *         @arg @ref LL_HRTIM_TIMER_F
13046   * @retval None
13047   */
LL_HRTIM_DisableDMAReq_REP(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13048 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13049 {
13050   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13051   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13052                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13053   CLEAR_BIT(*pReg, HRTIM_MDIER_MREPDE);
13054 }
13055 
13056 /**
13057   * @brief  Indicate whether the repetition DMA request is enabled for a given timer.
13058   * @rmtoll MDIER        MREPDE            LL_HRTIM_IsEnabledDMAReq_REP\n
13059   *         TIMxDIER     REPDE             LL_HRTIM_IsEnabledDMAReq_REP
13060   * @param  HRTIMx High Resolution Timer instance
13061   * @param  Timer This parameter can be one of the following values:
13062   *         @arg @ref LL_HRTIM_TIMER_MASTER
13063   *         @arg @ref LL_HRTIM_TIMER_A
13064   *         @arg @ref LL_HRTIM_TIMER_B
13065   *         @arg @ref LL_HRTIM_TIMER_C
13066   *         @arg @ref LL_HRTIM_TIMER_D
13067   *         @arg @ref LL_HRTIM_TIMER_E
13068   *         @arg @ref LL_HRTIM_TIMER_F
13069   * @retval State of MREPDE/REPDE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
13070   */
LL_HRTIM_IsEnabledDMAReq_REP(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13071 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_REP(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13072 {
13073   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13074   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13075                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13076 
13077   return ((READ_BIT(*pReg, HRTIM_MDIER_MREPDE) == (HRTIM_MDIER_MREPDE)) ? 1UL : 0UL);
13078 }
13079 
13080 /**
13081   * @brief  Enable the compare 1 DMA request for a given timer.
13082   * @rmtoll MDIER        MCMP1DE            LL_HRTIM_EnableDMAReq_CMP1\n
13083   *         TIMxDIER     CMP1DE             LL_HRTIM_EnableDMAReq_CMP1
13084   * @param  HRTIMx High Resolution Timer instance
13085   * @param  Timer This parameter can be one of the following values:
13086   *         @arg @ref LL_HRTIM_TIMER_MASTER
13087   *         @arg @ref LL_HRTIM_TIMER_A
13088   *         @arg @ref LL_HRTIM_TIMER_B
13089   *         @arg @ref LL_HRTIM_TIMER_C
13090   *         @arg @ref LL_HRTIM_TIMER_D
13091   *         @arg @ref LL_HRTIM_TIMER_E
13092   *         @arg @ref LL_HRTIM_TIMER_F
13093   * @retval None
13094   */
LL_HRTIM_EnableDMAReq_CMP1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13095 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13096 {
13097   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13098   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13099                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13100   SET_BIT(*pReg, HRTIM_MDIER_MCMP1DE);
13101 }
13102 
13103 /**
13104   * @brief  Disable the compare 1 DMA request for a given timer.
13105   * @rmtoll MDIER        MCMP1DE            LL_HRTIM_DisableDMAReq_CMP1\n
13106   *         TIMxDIER     CMP1DE             LL_HRTIM_DisableDMAReq_CMP1
13107   * @param  HRTIMx High Resolution Timer instance
13108   * @param  Timer This parameter can be one of the following values:
13109   *         @arg @ref LL_HRTIM_TIMER_MASTER
13110   *         @arg @ref LL_HRTIM_TIMER_A
13111   *         @arg @ref LL_HRTIM_TIMER_B
13112   *         @arg @ref LL_HRTIM_TIMER_C
13113   *         @arg @ref LL_HRTIM_TIMER_D
13114   *         @arg @ref LL_HRTIM_TIMER_E
13115   *         @arg @ref LL_HRTIM_TIMER_F
13116   * @retval None
13117   */
LL_HRTIM_DisableDMAReq_CMP1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13118 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13119 {
13120   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13121   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13122                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13123   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP1DE);
13124 }
13125 
13126 /**
13127   * @brief  Indicate whether the compare 1 DMA request is enabled for a given timer.
13128   * @rmtoll MDIER        MCMP1DE            LL_HRTIM_IsEnabledDMAReq_CMP1\n
13129   *         TIMxDIER     CMP1DE             LL_HRTIM_IsEnabledDMAReq_CMP1
13130   * @param  HRTIMx High Resolution Timer instance
13131   * @param  Timer This parameter can be one of the following values:
13132   *         @arg @ref LL_HRTIM_TIMER_MASTER
13133   *         @arg @ref LL_HRTIM_TIMER_A
13134   *         @arg @ref LL_HRTIM_TIMER_B
13135   *         @arg @ref LL_HRTIM_TIMER_C
13136   *         @arg @ref LL_HRTIM_TIMER_D
13137   *         @arg @ref LL_HRTIM_TIMER_E
13138   *         @arg @ref LL_HRTIM_TIMER_F
13139   * @retval State of MCMP1DE/CMP1DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
13140   */
LL_HRTIM_IsEnabledDMAReq_CMP1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13141 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13142 {
13143   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13144   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13145                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13146 
13147   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP1DE) == (HRTIM_MDIER_MCMP1DE)) ? 1UL : 0UL);
13148 }
13149 
13150 /**
13151   * @brief  Enable the compare 2 DMA request for a given timer.
13152   * @rmtoll MDIER        MCMP2DE            LL_HRTIM_EnableDMAReq_CMP2\n
13153   *         TIMxDIER     CMP2DE             LL_HRTIM_EnableDMAReq_CMP2
13154   * @param  HRTIMx High Resolution Timer instance
13155   * @param  Timer This parameter can be one of the following values:
13156   *         @arg @ref LL_HRTIM_TIMER_MASTER
13157   *         @arg @ref LL_HRTIM_TIMER_A
13158   *         @arg @ref LL_HRTIM_TIMER_B
13159   *         @arg @ref LL_HRTIM_TIMER_C
13160   *         @arg @ref LL_HRTIM_TIMER_D
13161   *         @arg @ref LL_HRTIM_TIMER_E
13162   *         @arg @ref LL_HRTIM_TIMER_F
13163   * @retval None
13164   */
LL_HRTIM_EnableDMAReq_CMP2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13165 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13166 {
13167   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13168   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13169                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13170   SET_BIT(*pReg, HRTIM_MDIER_MCMP2DE);
13171 }
13172 
13173 /**
13174   * @brief  Disable the compare 2 DMA request for a given timer.
13175   * @rmtoll MDIER        MCMP2DE            LL_HRTIM_DisableDMAReq_CMP2\n
13176   *         TIMxDIER     CMP2DE             LL_HRTIM_DisableDMAReq_CMP2
13177   * @param  HRTIMx High Resolution Timer instance
13178   * @param  Timer This parameter can be one of the following values:
13179   *         @arg @ref LL_HRTIM_TIMER_MASTER
13180   *         @arg @ref LL_HRTIM_TIMER_A
13181   *         @arg @ref LL_HRTIM_TIMER_B
13182   *         @arg @ref LL_HRTIM_TIMER_C
13183   *         @arg @ref LL_HRTIM_TIMER_D
13184   *         @arg @ref LL_HRTIM_TIMER_E
13185   *         @arg @ref LL_HRTIM_TIMER_F
13186   * @retval None
13187   */
LL_HRTIM_DisableDMAReq_CMP2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13188 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13189 {
13190   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13191   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13192                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13193   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP2DE);
13194 }
13195 
13196 /**
13197   * @brief  Indicate whether the compare 2 DMA request is enabled for a given timer.
13198   * @rmtoll MDIER        MCMP2DE            LL_HRTIM_IsEnabledDMAReq_CMP2\n
13199   *         TIMxDIER     CMP2DE             LL_HRTIM_IsEnabledDMAReq_CMP2
13200   * @param  HRTIMx High Resolution Timer instance
13201   * @param  Timer This parameter can be one of the following values:
13202   *         @arg @ref LL_HRTIM_TIMER_MASTER
13203   *         @arg @ref LL_HRTIM_TIMER_A
13204   *         @arg @ref LL_HRTIM_TIMER_B
13205   *         @arg @ref LL_HRTIM_TIMER_C
13206   *         @arg @ref LL_HRTIM_TIMER_D
13207   *         @arg @ref LL_HRTIM_TIMER_E
13208   *         @arg @ref LL_HRTIM_TIMER_F
13209   * @retval State of MCMP2DE/CMP2DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
13210   */
LL_HRTIM_IsEnabledDMAReq_CMP2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13211 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13212 {
13213   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13214   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13215                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13216 
13217   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP2DE) == (HRTIM_MDIER_MCMP2DE)) ? 1UL : 0UL);
13218 }
13219 
13220 /**
13221   * @brief  Enable the compare 3 DMA request for a given timer.
13222   * @rmtoll MDIER        MCMP3DE            LL_HRTIM_EnableDMAReq_CMP3\n
13223   *         TIMxDIER     CMP3DE             LL_HRTIM_EnableDMAReq_CMP3
13224   * @param  HRTIMx High Resolution Timer instance
13225   * @param  Timer This parameter can be one of the following values:
13226   *         @arg @ref LL_HRTIM_TIMER_MASTER
13227   *         @arg @ref LL_HRTIM_TIMER_A
13228   *         @arg @ref LL_HRTIM_TIMER_B
13229   *         @arg @ref LL_HRTIM_TIMER_C
13230   *         @arg @ref LL_HRTIM_TIMER_D
13231   *         @arg @ref LL_HRTIM_TIMER_E
13232   *         @arg @ref LL_HRTIM_TIMER_F
13233   * @retval None
13234   */
LL_HRTIM_EnableDMAReq_CMP3(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13235 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13236 {
13237   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13238   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13239                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13240   SET_BIT(*pReg, HRTIM_MDIER_MCMP3DE);
13241 }
13242 
13243 /**
13244   * @brief  Disable the compare 3 DMA request for a given timer.
13245   * @rmtoll MDIER        MCMP3DE            LL_HRTIM_DisableDMAReq_CMP3\n
13246   *         TIMxDIER     CMP3DE             LL_HRTIM_DisableDMAReq_CMP3
13247   * @param  HRTIMx High Resolution Timer instance
13248   * @param  Timer This parameter can be one of the following values:
13249   *         @arg @ref LL_HRTIM_TIMER_MASTER
13250   *         @arg @ref LL_HRTIM_TIMER_A
13251   *         @arg @ref LL_HRTIM_TIMER_B
13252   *         @arg @ref LL_HRTIM_TIMER_C
13253   *         @arg @ref LL_HRTIM_TIMER_D
13254   *         @arg @ref LL_HRTIM_TIMER_E
13255   *         @arg @ref LL_HRTIM_TIMER_F
13256   * @retval None
13257   */
LL_HRTIM_DisableDMAReq_CMP3(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13258 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13259 {
13260   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13261   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13262                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13263   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP3DE);
13264 }
13265 
13266 /**
13267   * @brief  Indicate whether the compare 3 DMA request is enabled for a given timer.
13268   * @rmtoll MDIER        MCMP3DE            LL_HRTIM_IsEnabledDMAReq_CMP3\n
13269   *         TIMxDIER     CMP3DE             LL_HRTIM_IsEnabledDMAReq_CMP3
13270   * @param  HRTIMx High Resolution Timer instance
13271   * @param  Timer This parameter can be one of the following values:
13272   *         @arg @ref LL_HRTIM_TIMER_MASTER
13273   *         @arg @ref LL_HRTIM_TIMER_A
13274   *         @arg @ref LL_HRTIM_TIMER_B
13275   *         @arg @ref LL_HRTIM_TIMER_C
13276   *         @arg @ref LL_HRTIM_TIMER_D
13277   *         @arg @ref LL_HRTIM_TIMER_E
13278   *         @arg @ref LL_HRTIM_TIMER_F
13279   * @retval State of MCMP3DE/CMP3DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
13280   */
LL_HRTIM_IsEnabledDMAReq_CMP3(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13281 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13282 {
13283   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13284   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13285                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13286 
13287   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP3DE) == (HRTIM_MDIER_MCMP3DE)) ? 1UL : 0UL);
13288 }
13289 
13290 /**
13291   * @brief  Enable the compare 4 DMA request for a given timer.
13292   * @rmtoll MDIER        MCMP4DE            LL_HRTIM_EnableDMAReq_CMP4\n
13293   *         TIMxDIER     CMP4DE             LL_HRTIM_EnableDMAReq_CMP4
13294   * @param  HRTIMx High Resolution Timer instance
13295   * @param  Timer This parameter can be one of the following values:
13296   *         @arg @ref LL_HRTIM_TIMER_MASTER
13297   *         @arg @ref LL_HRTIM_TIMER_A
13298   *         @arg @ref LL_HRTIM_TIMER_B
13299   *         @arg @ref LL_HRTIM_TIMER_C
13300   *         @arg @ref LL_HRTIM_TIMER_D
13301   *         @arg @ref LL_HRTIM_TIMER_E
13302   *         @arg @ref LL_HRTIM_TIMER_F
13303   * @retval None
13304   */
LL_HRTIM_EnableDMAReq_CMP4(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13305 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13306 {
13307   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13308   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13309                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13310   SET_BIT(*pReg, HRTIM_MDIER_MCMP4DE);
13311 }
13312 
13313 /**
13314   * @brief  Disable the compare 4 DMA request for a given timer.
13315   * @rmtoll MDIER        MCMP4DE            LL_HRTIM_DisableDMAReq_CMP4\n
13316   *         TIMxDIER     CMP4DE             LL_HRTIM_DisableDMAReq_CMP4
13317   * @param  HRTIMx High Resolution Timer instance
13318   * @param  Timer This parameter can be one of the following values:
13319   *         @arg @ref LL_HRTIM_TIMER_MASTER
13320   *         @arg @ref LL_HRTIM_TIMER_A
13321   *         @arg @ref LL_HRTIM_TIMER_B
13322   *         @arg @ref LL_HRTIM_TIMER_C
13323   *         @arg @ref LL_HRTIM_TIMER_D
13324   *         @arg @ref LL_HRTIM_TIMER_E
13325   *         @arg @ref LL_HRTIM_TIMER_F
13326   * @retval None
13327   */
LL_HRTIM_DisableDMAReq_CMP4(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13328 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13329 {
13330   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13331   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13332                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13333   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP4DE);
13334 }
13335 
13336 /**
13337   * @brief  Indicate whether the compare 4 DMA request is enabled for a given timer.
13338   * @rmtoll MDIER        MCMP4DE            LL_HRTIM_IsEnabledDMAReq_CMP4\n
13339   *         TIMxDIER     CMP4DE             LL_HRTIM_IsEnabledDMAReq_CMP4
13340   * @param  HRTIMx High Resolution Timer instance
13341   * @param  Timer This parameter can be one of the following values:
13342   *         @arg @ref LL_HRTIM_TIMER_MASTER
13343   *         @arg @ref LL_HRTIM_TIMER_A
13344   *         @arg @ref LL_HRTIM_TIMER_B
13345   *         @arg @ref LL_HRTIM_TIMER_C
13346   *         @arg @ref LL_HRTIM_TIMER_D
13347   *         @arg @ref LL_HRTIM_TIMER_E
13348   *         @arg @ref LL_HRTIM_TIMER_F
13349   * @retval State of MCMP4DE/CMP4DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
13350   */
LL_HRTIM_IsEnabledDMAReq_CMP4(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13351 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13352 {
13353   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13354   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13355                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13356 
13357   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP4DE) == (HRTIM_MDIER_MCMP4DE)) ? 1UL : 0UL);
13358 }
13359 
13360 /**
13361   * @brief  Enable the capture 1 DMA request for a given timer.
13362   * @rmtoll TIMxDIER     CPT1DE             LL_HRTIM_EnableDMAReq_CPT1
13363   * @param  HRTIMx High Resolution Timer instance
13364   * @param  Timer This parameter can be one of the following values:
13365   *         @arg @ref LL_HRTIM_TIMER_A
13366   *         @arg @ref LL_HRTIM_TIMER_B
13367   *         @arg @ref LL_HRTIM_TIMER_C
13368   *         @arg @ref LL_HRTIM_TIMER_D
13369   *         @arg @ref LL_HRTIM_TIMER_E
13370   *         @arg @ref LL_HRTIM_TIMER_F
13371   * @retval None
13372   */
LL_HRTIM_EnableDMAReq_CPT1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13373 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13374 {
13375   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13376   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13377                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13378   SET_BIT(*pReg, HRTIM_TIMDIER_CPT1DE);
13379 }
13380 
13381 /**
13382   * @brief  Disable the capture 1 DMA request for a given timer.
13383   * @rmtoll TIMxDIER     CPT1DE             LL_HRTIM_DisableDMAReq_CPT1
13384   * @param  HRTIMx High Resolution Timer instance
13385   * @param  Timer This parameter can be one of the following values:
13386   *         @arg @ref LL_HRTIM_TIMER_A
13387   *         @arg @ref LL_HRTIM_TIMER_B
13388   *         @arg @ref LL_HRTIM_TIMER_C
13389   *         @arg @ref LL_HRTIM_TIMER_D
13390   *         @arg @ref LL_HRTIM_TIMER_E
13391   *         @arg @ref LL_HRTIM_TIMER_F
13392   * @retval None
13393   */
LL_HRTIM_DisableDMAReq_CPT1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13394 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13395 {
13396   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13397   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13398                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13399   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT1DE);
13400 }
13401 
13402 /**
13403   * @brief  Indicate whether the capture 1 DMA request is enabled for a given timer.
13404   * @rmtoll TIMxDIER     CPT1DE             LL_HRTIM_IsEnabledDMAReq_CPT1
13405   * @param  HRTIMx High Resolution Timer instance
13406   * @param  Timer This parameter can be one of the following values:
13407   *         @arg @ref LL_HRTIM_TIMER_A
13408   *         @arg @ref LL_HRTIM_TIMER_B
13409   *         @arg @ref LL_HRTIM_TIMER_C
13410   *         @arg @ref LL_HRTIM_TIMER_D
13411   *         @arg @ref LL_HRTIM_TIMER_E
13412   *         @arg @ref LL_HRTIM_TIMER_F
13413   * @retval State of CPT1DE bit in HRTIM_TIMxDIER register (1 or 0).
13414   */
LL_HRTIM_IsEnabledDMAReq_CPT1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13415 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CPT1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13416 {
13417   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13418   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13419                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13420 
13421   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT1DE) == (HRTIM_TIMDIER_CPT1DE)) ? 1UL : 0UL);
13422 }
13423 
13424 /**
13425   * @brief  Enable the capture 2 DMA request for a given timer.
13426   * @rmtoll TIMxDIER     CPT2DE             LL_HRTIM_EnableDMAReq_CPT2
13427   * @param  HRTIMx High Resolution Timer instance
13428   * @param  Timer This parameter can be one of the following values:
13429   *         @arg @ref LL_HRTIM_TIMER_A
13430   *         @arg @ref LL_HRTIM_TIMER_B
13431   *         @arg @ref LL_HRTIM_TIMER_C
13432   *         @arg @ref LL_HRTIM_TIMER_D
13433   *         @arg @ref LL_HRTIM_TIMER_E
13434   *         @arg @ref LL_HRTIM_TIMER_F
13435   * @retval None
13436   */
LL_HRTIM_EnableDMAReq_CPT2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13437 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13438 {
13439   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13440   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13441                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13442   SET_BIT(*pReg, HRTIM_TIMDIER_CPT2DE);
13443 }
13444 
13445 /**
13446   * @brief  Disable the capture 2 DMA request for a given timer.
13447   * @rmtoll TIMxDIER     CPT2DE             LL_HRTIM_DisableDMAReq_CPT2
13448   * @param  HRTIMx High Resolution Timer instance
13449   * @param  Timer This parameter can be one of the following values:
13450   *         @arg @ref LL_HRTIM_TIMER_A
13451   *         @arg @ref LL_HRTIM_TIMER_B
13452   *         @arg @ref LL_HRTIM_TIMER_C
13453   *         @arg @ref LL_HRTIM_TIMER_D
13454   *         @arg @ref LL_HRTIM_TIMER_E
13455   *         @arg @ref LL_HRTIM_TIMER_F
13456   * @retval None
13457   */
LL_HRTIM_DisableDMAReq_CPT2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13458 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13459 {
13460   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13461   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13462                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13463   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT2DE);
13464 }
13465 
13466 /**
13467   * @brief  Indicate whether the capture 2 DMA request is enabled for a given timer.
13468   * @rmtoll TIMxDIER     CPT2DE             LL_HRTIM_IsEnabledDMAReq_CPT2
13469   * @param  HRTIMx High Resolution Timer instance
13470   * @param  Timer This parameter can be one of the following values:
13471   *         @arg @ref LL_HRTIM_TIMER_A
13472   *         @arg @ref LL_HRTIM_TIMER_B
13473   *         @arg @ref LL_HRTIM_TIMER_C
13474   *         @arg @ref LL_HRTIM_TIMER_D
13475   *         @arg @ref LL_HRTIM_TIMER_E
13476   *         @arg @ref LL_HRTIM_TIMER_F
13477   * @retval State of CPT2DE bit in HRTIM_TIMxDIER register (1 or 0).
13478   */
LL_HRTIM_IsEnabledDMAReq_CPT2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13479 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CPT2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13480 {
13481   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13482   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13483                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13484 
13485   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT2DE) == (HRTIM_TIMDIER_CPT2DE)) ? 1UL : 0UL);
13486 }
13487 
13488 /**
13489   * @brief  Enable the output 1 set  DMA request for a given timer.
13490   * @rmtoll TIMxDIER     SET1DE             LL_HRTIM_EnableDMAReq_SET1
13491   * @param  HRTIMx High Resolution Timer instance
13492   * @param  Timer This parameter can be one of the following values:
13493   *         @arg @ref LL_HRTIM_TIMER_A
13494   *         @arg @ref LL_HRTIM_TIMER_B
13495   *         @arg @ref LL_HRTIM_TIMER_C
13496   *         @arg @ref LL_HRTIM_TIMER_D
13497   *         @arg @ref LL_HRTIM_TIMER_E
13498   *         @arg @ref LL_HRTIM_TIMER_F
13499   * @retval None
13500   */
LL_HRTIM_EnableDMAReq_SET1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13501 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13502 {
13503   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13504   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13505                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13506   SET_BIT(*pReg, HRTIM_TIMDIER_SET1DE);
13507 }
13508 
13509 /**
13510   * @brief  Disable the output 1 set  DMA request for a given timer.
13511   * @rmtoll TIMxDIER     SET1DE             LL_HRTIM_DisableDMAReq_SET1
13512   * @param  HRTIMx High Resolution Timer instance
13513   * @param  Timer This parameter can be one of the following values:
13514   *         @arg @ref LL_HRTIM_TIMER_A
13515   *         @arg @ref LL_HRTIM_TIMER_B
13516   *         @arg @ref LL_HRTIM_TIMER_C
13517   *         @arg @ref LL_HRTIM_TIMER_D
13518   *         @arg @ref LL_HRTIM_TIMER_E
13519   *         @arg @ref LL_HRTIM_TIMER_F
13520   * @retval None
13521   */
LL_HRTIM_DisableDMAReq_SET1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13522 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13523 {
13524   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13525   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13526                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13527   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET1DE);
13528 }
13529 
13530 /**
13531   * @brief  Indicate whether the output 1 set  DMA request is enabled for a given timer.
13532   * @rmtoll TIMxDIER     SET1DE             LL_HRTIM_IsEnabledDMAReq_SET1
13533   * @param  HRTIMx High Resolution Timer instance
13534   * @param  Timer This parameter can be one of the following values:
13535   *         @arg @ref LL_HRTIM_TIMER_A
13536   *         @arg @ref LL_HRTIM_TIMER_B
13537   *         @arg @ref LL_HRTIM_TIMER_C
13538   *         @arg @ref LL_HRTIM_TIMER_D
13539   *         @arg @ref LL_HRTIM_TIMER_E
13540   *         @arg @ref LL_HRTIM_TIMER_F
13541   * @retval State of SET1xDE bit in HRTIM_TIMxDIER register (1 or 0).
13542   */
LL_HRTIM_IsEnabledDMAReq_SET1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13543 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SET1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13544 {
13545   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13546   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13547                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13548 
13549   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET1DE) == (HRTIM_TIMDIER_SET1DE)) ? 1UL : 0UL);
13550 }
13551 
13552 /**
13553   * @brief  Enable the output 1 reset  DMA request for a given timer.
13554   * @rmtoll TIMxDIER     RST1DE             LL_HRTIM_EnableDMAReq_RST1
13555   * @param  HRTIMx High Resolution Timer instance
13556   * @param  Timer This parameter can be one of the following values:
13557   *         @arg @ref LL_HRTIM_TIMER_A
13558   *         @arg @ref LL_HRTIM_TIMER_B
13559   *         @arg @ref LL_HRTIM_TIMER_C
13560   *         @arg @ref LL_HRTIM_TIMER_D
13561   *         @arg @ref LL_HRTIM_TIMER_E
13562   *         @arg @ref LL_HRTIM_TIMER_F
13563   * @retval None
13564   */
LL_HRTIM_EnableDMAReq_RST1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13565 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13566 {
13567   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13568   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13569                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13570   SET_BIT(*pReg, HRTIM_TIMDIER_RST1DE);
13571 }
13572 
13573 /**
13574   * @brief  Disable the output 1 reset  DMA request for a given timer.
13575   * @rmtoll TIMxDIER     RST1DE             LL_HRTIM_DisableDMAReq_RST1
13576   * @param  HRTIMx High Resolution Timer instance
13577   * @param  Timer This parameter can be one of the following values:
13578   *         @arg @ref LL_HRTIM_TIMER_A
13579   *         @arg @ref LL_HRTIM_TIMER_B
13580   *         @arg @ref LL_HRTIM_TIMER_C
13581   *         @arg @ref LL_HRTIM_TIMER_D
13582   *         @arg @ref LL_HRTIM_TIMER_E
13583   *         @arg @ref LL_HRTIM_TIMER_F
13584   * @retval None
13585   */
LL_HRTIM_DisableDMAReq_RST1(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13586 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13587 {
13588   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13589   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13590                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13591   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST1DE);
13592 }
13593 
13594 /**
13595   * @brief  Indicate whether the output 1 reset interrupt is enabled for a given timer.
13596   * @rmtoll TIMxDIER     RST1DE             LL_HRTIM_IsEnabledDMAReq_RST1
13597   * @param  HRTIMx High Resolution Timer instance
13598   * @param  Timer This parameter can be one of the following values:
13599   *         @arg @ref LL_HRTIM_TIMER_A
13600   *         @arg @ref LL_HRTIM_TIMER_B
13601   *         @arg @ref LL_HRTIM_TIMER_C
13602   *         @arg @ref LL_HRTIM_TIMER_D
13603   *         @arg @ref LL_HRTIM_TIMER_E
13604   *         @arg @ref LL_HRTIM_TIMER_F
13605   * @retval State of RST1xDE bit in HRTIM_TIMxDIER register (1 or 0).
13606   */
LL_HRTIM_IsEnabledDMAReq_RST1(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13607 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13608 {
13609   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13610   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13611                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13612 
13613   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST1DE) == (HRTIM_TIMDIER_RST1DE)) ? 1UL : 0UL);
13614 }
13615 
13616 /**
13617   * @brief  Enable the output 2 set  DMA request for a given timer.
13618   * @rmtoll TIMxDIER     SET2DE             LL_HRTIM_EnableDMAReq_SET2
13619   * @param  HRTIMx High Resolution Timer instance
13620   * @param  Timer This parameter can be one of the following values:
13621   *         @arg @ref LL_HRTIM_TIMER_A
13622   *         @arg @ref LL_HRTIM_TIMER_B
13623   *         @arg @ref LL_HRTIM_TIMER_C
13624   *         @arg @ref LL_HRTIM_TIMER_D
13625   *         @arg @ref LL_HRTIM_TIMER_E
13626   *         @arg @ref LL_HRTIM_TIMER_F
13627   * @retval None
13628   */
LL_HRTIM_EnableDMAReq_SET2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13629 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13630 {
13631   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13632   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13633                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13634   SET_BIT(*pReg, HRTIM_TIMDIER_SET2DE);
13635 }
13636 
13637 /**
13638   * @brief  Disable the output 2 set  DMA request for a given timer.
13639   * @rmtoll TIMxDIER     SET2DE             LL_HRTIM_DisableDMAReq_SET2
13640   * @param  HRTIMx High Resolution Timer instance
13641   * @param  Timer This parameter can be one of the following values:
13642   *         @arg @ref LL_HRTIM_TIMER_A
13643   *         @arg @ref LL_HRTIM_TIMER_B
13644   *         @arg @ref LL_HRTIM_TIMER_C
13645   *         @arg @ref LL_HRTIM_TIMER_D
13646   *         @arg @ref LL_HRTIM_TIMER_E
13647   *         @arg @ref LL_HRTIM_TIMER_F
13648   * @retval None
13649   */
LL_HRTIM_DisableDMAReq_SET2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13650 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13651 {
13652   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13653   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13654                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13655   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET2DE);
13656 }
13657 
13658 /**
13659   * @brief  Indicate whether the output 2 set  DMA request is enabled for a given timer.
13660   * @rmtoll TIMxDIER     SET2DE             LL_HRTIM_IsEnabledDMAReq_SET2
13661   * @param  HRTIMx High Resolution Timer instance
13662   * @param  Timer This parameter can be one of the following values:
13663   *         @arg @ref LL_HRTIM_TIMER_A
13664   *         @arg @ref LL_HRTIM_TIMER_B
13665   *         @arg @ref LL_HRTIM_TIMER_C
13666   *         @arg @ref LL_HRTIM_TIMER_D
13667   *         @arg @ref LL_HRTIM_TIMER_E
13668   *         @arg @ref LL_HRTIM_TIMER_F
13669   * @retval State of SET2xDE bit in HRTIM_TIMxDIER register (1 or 0).
13670   */
LL_HRTIM_IsEnabledDMAReq_SET2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13671 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SET2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13672 {
13673   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13674   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13675                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13676 
13677   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET2DE) == (HRTIM_TIMDIER_SET2DE)) ? 1UL : 0UL);
13678 }
13679 
13680 /**
13681   * @brief  Enable the output 2 reset  DMA request for a given timer.
13682   * @rmtoll TIMxDIER     RST2DE             LL_HRTIM_EnableDMAReq_RST2
13683   * @param  HRTIMx High Resolution Timer instance
13684   * @param  Timer This parameter can be one of the following values:
13685   *         @arg @ref LL_HRTIM_TIMER_A
13686   *         @arg @ref LL_HRTIM_TIMER_B
13687   *         @arg @ref LL_HRTIM_TIMER_C
13688   *         @arg @ref LL_HRTIM_TIMER_D
13689   *         @arg @ref LL_HRTIM_TIMER_E
13690   *         @arg @ref LL_HRTIM_TIMER_F
13691   * @retval None
13692   */
LL_HRTIM_EnableDMAReq_RST2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13693 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13694 {
13695   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13696   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13697                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13698   SET_BIT(*pReg, HRTIM_TIMDIER_RST2DE);
13699 }
13700 
13701 /**
13702   * @brief  Disable the output 2 reset  DMA request for a given timer.
13703   * @rmtoll TIMxDIER     RST2DE             LL_HRTIM_DisableDMAReq_RST2
13704   * @param  HRTIMx High Resolution Timer instance
13705   * @param  Timer This parameter can be one of the following values:
13706   *         @arg @ref LL_HRTIM_TIMER_A
13707   *         @arg @ref LL_HRTIM_TIMER_B
13708   *         @arg @ref LL_HRTIM_TIMER_C
13709   *         @arg @ref LL_HRTIM_TIMER_D
13710   *         @arg @ref LL_HRTIM_TIMER_E
13711   *         @arg @ref LL_HRTIM_TIMER_F
13712   * @retval None
13713   */
LL_HRTIM_DisableDMAReq_RST2(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13714 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13715 {
13716   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13717   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13718                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13719   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST2DE);
13720 }
13721 
13722 /**
13723   * @brief  Indicate whether the output 2 reset  DMA request is enabled for a given timer.
13724   * @rmtoll TIMxDIER     RST2DE             LL_HRTIM_IsEnabledDMAReq_RST2
13725   * @param  HRTIMx High Resolution Timer instance
13726   * @param  Timer This parameter can be one of the following values:
13727   *         @arg @ref LL_HRTIM_TIMER_A
13728   *         @arg @ref LL_HRTIM_TIMER_B
13729   *         @arg @ref LL_HRTIM_TIMER_C
13730   *         @arg @ref LL_HRTIM_TIMER_D
13731   *         @arg @ref LL_HRTIM_TIMER_E
13732   *         @arg @ref LL_HRTIM_TIMER_F
13733   * @retval State of RST2xDE bit in HRTIM_TIMxDIER register (1 or 0).
13734   */
LL_HRTIM_IsEnabledDMAReq_RST2(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13735 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13736 {
13737   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13738   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13739                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13740 
13741   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST2DE) == (HRTIM_TIMDIER_RST2DE)) ? 1UL : 0UL);
13742 }
13743 
13744 /**
13745   * @brief  Enable the reset/roll-over DMA request for a given timer.
13746   * @rmtoll TIMxDIER     RSTDE             LL_HRTIM_EnableDMAReq_RST
13747   * @param  HRTIMx High Resolution Timer instance
13748   * @param  Timer This parameter can be one of the following values:
13749   *         @arg @ref LL_HRTIM_TIMER_A
13750   *         @arg @ref LL_HRTIM_TIMER_B
13751   *         @arg @ref LL_HRTIM_TIMER_C
13752   *         @arg @ref LL_HRTIM_TIMER_D
13753   *         @arg @ref LL_HRTIM_TIMER_E
13754   *         @arg @ref LL_HRTIM_TIMER_F
13755   * @retval None
13756   */
LL_HRTIM_EnableDMAReq_RST(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13757 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13758 {
13759   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13760   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13761                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13762   SET_BIT(*pReg, HRTIM_TIMDIER_RSTDE);
13763 }
13764 
13765 /**
13766   * @brief  Disable the reset/roll-over DMA request for a given timer.
13767   * @rmtoll TIMxDIER     RSTDE             LL_HRTIM_DisableDMAReq_RST
13768   * @param  HRTIMx High Resolution Timer instance
13769   * @param  Timer This parameter can be one of the following values:
13770   *         @arg @ref LL_HRTIM_TIMER_A
13771   *         @arg @ref LL_HRTIM_TIMER_B
13772   *         @arg @ref LL_HRTIM_TIMER_C
13773   *         @arg @ref LL_HRTIM_TIMER_D
13774   *         @arg @ref LL_HRTIM_TIMER_E
13775   *         @arg @ref LL_HRTIM_TIMER_F
13776   * @retval None
13777   */
LL_HRTIM_DisableDMAReq_RST(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13778 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13779 {
13780   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13781   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13782                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13783   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RSTDE);
13784 }
13785 
13786 /**
13787   * @brief  Indicate whether the reset/roll-over DMA request is enabled for a given timer.
13788   * @rmtoll TIMxDIER     RSTDE             LL_HRTIM_IsEnabledDMAReq_RST
13789   * @param  HRTIMx High Resolution Timer instance
13790   * @param  Timer This parameter can be one of the following values:
13791   *         @arg @ref LL_HRTIM_TIMER_A
13792   *         @arg @ref LL_HRTIM_TIMER_B
13793   *         @arg @ref LL_HRTIM_TIMER_C
13794   *         @arg @ref LL_HRTIM_TIMER_D
13795   *         @arg @ref LL_HRTIM_TIMER_E
13796   *         @arg @ref LL_HRTIM_TIMER_F
13797   * @retval State of RSTDE bit in HRTIM_TIMxDIER register (1 or 0).
13798   */
LL_HRTIM_IsEnabledDMAReq_RST(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13799 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13800 {
13801   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13802   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13803                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13804 
13805   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RSTDE) == (HRTIM_TIMDIER_RSTDE)) ? 1UL : 0UL);
13806 }
13807 
13808 /**
13809   * @brief  Enable the delayed protection DMA request for a given timer.
13810   * @rmtoll TIMxDIER     DLYPRTDE             LL_HRTIM_EnableDMAReq_DLYPRT
13811   * @param  HRTIMx High Resolution Timer instance
13812   * @param  Timer This parameter can be one of the following values:
13813   *         @arg @ref LL_HRTIM_TIMER_A
13814   *         @arg @ref LL_HRTIM_TIMER_B
13815   *         @arg @ref LL_HRTIM_TIMER_C
13816   *         @arg @ref LL_HRTIM_TIMER_D
13817   *         @arg @ref LL_HRTIM_TIMER_E
13818   *         @arg @ref LL_HRTIM_TIMER_F
13819   * @retval None
13820   */
LL_HRTIM_EnableDMAReq_DLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13821 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13822 {
13823   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13824   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13825                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13826   SET_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE);
13827 }
13828 
13829 /**
13830   * @brief  Disable the delayed protection DMA request for a given timer.
13831   * @rmtoll TIMxDIER     DLYPRTDE             LL_HRTIM_DisableDMAReq_DLYPRT
13832   * @param  HRTIMx High Resolution Timer instance
13833   * @param  Timer This parameter can be one of the following values:
13834   *         @arg @ref LL_HRTIM_TIMER_A
13835   *         @arg @ref LL_HRTIM_TIMER_B
13836   *         @arg @ref LL_HRTIM_TIMER_C
13837   *         @arg @ref LL_HRTIM_TIMER_D
13838   *         @arg @ref LL_HRTIM_TIMER_E
13839   *         @arg @ref LL_HRTIM_TIMER_F
13840   * @retval None
13841   */
LL_HRTIM_DisableDMAReq_DLYPRT(HRTIM_TypeDef * HRTIMx,uint32_t Timer)13842 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13843 {
13844   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13845   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13846                                                      REG_OFFSET_TAB_TIMER[iTimer]));
13847   CLEAR_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE);
13848 }
13849 
13850 /**
13851   * @brief  Indicate whether the delayed protection DMA request is enabled for a given timer.
13852   * @rmtoll TIMxDIER     DLYPRTDE             LL_HRTIM_IsEnabledDMAReq_DLYPRT
13853   * @param  HRTIMx High Resolution Timer instance
13854   * @param  Timer This parameter can be one of the following values:
13855   *         @arg @ref LL_HRTIM_TIMER_A
13856   *         @arg @ref LL_HRTIM_TIMER_B
13857   *         @arg @ref LL_HRTIM_TIMER_C
13858   *         @arg @ref LL_HRTIM_TIMER_D
13859   *         @arg @ref LL_HRTIM_TIMER_E
13860   *         @arg @ref LL_HRTIM_TIMER_F
13861   * @retval State of DLYPRTDE bit in HRTIM_TIMxDIER register (1 or 0).
13862   */
LL_HRTIM_IsEnabledDMAReq_DLYPRT(const HRTIM_TypeDef * HRTIMx,uint32_t Timer)13863 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_DLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
13864 {
13865   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
13866   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
13867                                                            REG_OFFSET_TAB_TIMER[iTimer]));
13868 
13869   return ((READ_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE) == (HRTIM_TIMDIER_DLYPRTDE)) ? 1UL : 0UL);
13870 }
13871 
13872 /**
13873   * @}
13874   */
13875 
13876 #if defined(USE_FULL_LL_DRIVER)
13877 /** @defgroup HRTIM_LL_LL_EF_Init In-initialization and de-initialization functions
13878   * @{
13879   */
13880 ErrorStatus LL_HRTIM_DeInit(HRTIM_TypeDef *HRTIMx);
13881 /**
13882   * @}
13883   */
13884 #endif /* USE_FULL_LL_DRIVER */
13885 
13886 /**
13887   * @}
13888   */
13889 
13890 /**
13891   * @}
13892   */
13893 
13894 #endif /* HRTIM1 */
13895 
13896 /**
13897   * @}
13898   */
13899 
13900 #ifdef __cplusplus
13901 }
13902 #endif
13903 
13904 #endif /* STM32G4xx_LL_HRTIM_H */
13905 
13906