STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_ll_hrtim.h 00004 * @author MCD Application Team 00005 * @brief Header file of HRTIM LL module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2017 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32H7xx_LL_HRTIM_H 00021 #define STM32H7xx_LL_HRTIM_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32h7xx.h" 00029 00030 /** @addtogroup STM32H7xx_LL_Driver 00031 * @{ 00032 */ 00033 00034 #if defined (HRTIM1) 00035 00036 /** @defgroup HRTIM_LL HRTIM 00037 * @{ 00038 */ 00039 00040 /* Private types -------------------------------------------------------------*/ 00041 /* Private variables ---------------------------------------------------------*/ 00042 /** @defgroup HRTIM_LL_Private_Variables HRTIM Private Variables 00043 * @{ 00044 */ 00045 static const uint16_t REG_OFFSET_TAB_TIMER[] = 00046 { 00047 0x00U, /* 0: MASTER */ 00048 0x80U, /* 1: TIMER A */ 00049 0x100U, /* 2: TIMER B */ 00050 0x180U, /* 3: TIMER C */ 00051 0x200U, /* 4: TIMER D */ 00052 0x280U /* 5: TIMER E */ 00053 }; 00054 00055 static const uint8_t REG_OFFSET_TAB_ADCxR[] = 00056 { 00057 0x00U, /* 0: HRTIM_ADC1R */ 00058 0x04U, /* 1: HRTIM_ADC2R */ 00059 0x08U, /* 2: HRTIM_ADC3R */ 00060 0x0CU, /* 3: HRTIM_ADC4R */ 00061 }; 00062 00063 static const uint16_t REG_OFFSET_TAB_SETxR[] = 00064 { 00065 0x00U, /* 0: TA1 */ 00066 0x08U, /* 1: TA2 */ 00067 0x80U, /* 2: TB1 */ 00068 0x88U, /* 3: TB2 */ 00069 0x100U, /* 4: TC1 */ 00070 0x108U, /* 5: TC2 */ 00071 0x180U, /* 6: TD1 */ 00072 0x188U, /* 7: TD2 */ 00073 0x200U, /* 8: TE1 */ 00074 0x208U /* 9: TE2 */ 00075 }; 00076 00077 static const uint16_t REG_OFFSET_TAB_OUTxR[] = 00078 { 00079 0x00U, /* 0: TA1 */ 00080 0x00U, /* 1: TA2 */ 00081 0x80U, /* 2: TB1 */ 00082 0x80U, /* 3: TB2 */ 00083 0x100U, /* 4: TC1 */ 00084 0x100U, /* 5: TC2 */ 00085 0x180U, /* 6: TD1 */ 00086 0x180U, /* 7: TD2 */ 00087 0x200U, /* 8: TE1 */ 00088 0x200U /* 9: TE2 */ 00089 }; 00090 00091 static const uint8_t REG_OFFSET_TAB_EECR[] = 00092 { 00093 0x00U, /* LL_HRTIM_EVENT_1 */ 00094 0x00U, /* LL_HRTIM_EVENT_2 */ 00095 0x00U, /* LL_HRTIM_EVENT_3 */ 00096 0x00U, /* LL_HRTIM_EVENT_4 */ 00097 0x00U, /* LL_HRTIM_EVENT_5 */ 00098 0x04U, /* LL_HRTIM_EVENT_6 */ 00099 0x04U, /* LL_HRTIM_EVENT_7 */ 00100 0x04U, /* LL_HRTIM_EVENT_8 */ 00101 0x04U, /* LL_HRTIM_EVENT_9 */ 00102 0x04U /* LL_HRTIM_EVENT_10 */ 00103 }; 00104 00105 static const uint8_t REG_OFFSET_TAB_FLTINR[] = 00106 { 00107 0x00U, /* LL_HRTIM_FAULT_1 */ 00108 0x00U, /* LL_HRTIM_FAULT_2 */ 00109 0x00U, /* LL_HRTIM_FAULT_3 */ 00110 0x00U, /* LL_HRTIM_FAULT_4 */ 00111 0x04U /* LL_HRTIM_FAULT_5 */ 00112 }; 00113 00114 static const uint32_t REG_MASK_TAB_UPDATETRIG[] = 00115 { 00116 0x20000000U, /* 0: MASTER */ 00117 0x01FE0000U, /* 1: TIMER A */ 00118 0x01FE0000U, /* 2: TIMER B */ 00119 0x01FE0000U, /* 3: TIMER C */ 00120 0x01FE0000U, /* 4: TIMER D */ 00121 0x01FE0000U /* 5: TIMER E */ 00122 }; 00123 00124 static const uint8_t REG_SHIFT_TAB_UPDATETRIG[] = 00125 { 00126 12U, /* 0: MASTER */ 00127 0U, /* 1: TIMER A */ 00128 0U, /* 2: TIMER B */ 00129 0U, /* 3: TIMER C */ 00130 0U, /* 4: TIMER D */ 00131 0U /* 5: TIMER E */ 00132 }; 00133 00134 static const uint8_t REG_SHIFT_TAB_EExSRC[] = 00135 { 00136 0U, /* LL_HRTIM_EVENT_1 */ 00137 6U, /* LL_HRTIM_EVENT_2 */ 00138 12U, /* LL_HRTIM_EVENT_3 */ 00139 18U, /* LL_HRTIM_EVENT_4 */ 00140 24U, /* LL_HRTIM_EVENT_5 */ 00141 0U, /* LL_HRTIM_EVENT_6 */ 00142 6U, /* LL_HRTIM_EVENT_7 */ 00143 12U, /* LL_HRTIM_EVENT_8 */ 00144 18U, /* LL_HRTIM_EVENT_9 */ 00145 24U /* LL_HRTIM_EVENT_10 */ 00146 }; 00147 00148 static const uint32_t REG_MASK_TAB_UPDATEGATING[] = 00149 { 00150 HRTIM_MCR_BRSTDMA, /* 0: MASTER */ 00151 HRTIM_TIMCR_UPDGAT, /* 1: TIMER A */ 00152 HRTIM_TIMCR_UPDGAT, /* 2: TIMER B */ 00153 HRTIM_TIMCR_UPDGAT, /* 3: TIMER C */ 00154 HRTIM_TIMCR_UPDGAT, /* 4: TIMER D */ 00155 HRTIM_TIMCR_UPDGAT /* 5: TIMER E */ 00156 }; 00157 00158 static const uint8_t REG_SHIFT_TAB_UPDATEGATING[] = 00159 { 00160 2U, /* 0: MASTER */ 00161 0U, /* 1: TIMER A */ 00162 0U, /* 2: TIMER B */ 00163 0U, /* 3: TIMER C */ 00164 0U, /* 4: TIMER D */ 00165 0U /* 5: TIMER E */ 00166 }; 00167 00168 static const uint8_t REG_SHIFT_TAB_OUTxR[] = 00169 { 00170 0U, /* 0: TA1 */ 00171 16U, /* 1: TA2 */ 00172 0U, /* 2: TB1 */ 00173 16U, /* 3: TB2 */ 00174 0U, /* 4: TC1 */ 00175 16U, /* 5: TC2 */ 00176 0U, /* 6: TD1 */ 00177 16U, /* 7: TD2 */ 00178 0U, /* 8: TE1 */ 00179 16U /* 9: TE2 */ 00180 }; 00181 00182 static const uint8_t REG_SHIFT_TAB_OxSTAT[] = 00183 { 00184 0U, /* 0: TA1 */ 00185 1U, /* 1: TA2 */ 00186 0U, /* 2: TB1 */ 00187 1U, /* 3: TB2 */ 00188 0U, /* 4: TC1 */ 00189 1U, /* 5: TC2 */ 00190 0U, /* 6: TD1 */ 00191 1U, /* 7: TD2 */ 00192 0U, /* 8: TE1 */ 00193 1U /* 9: TE2 */ 00194 }; 00195 00196 static const uint8_t REG_SHIFT_TAB_FLTxE[] = 00197 { 00198 0U, /* LL_HRTIM_FAULT_1 */ 00199 8U, /* LL_HRTIM_FAULT_2 */ 00200 16U, /* LL_HRTIM_FAULT_3 */ 00201 24U, /* LL_HRTIM_FAULT_4 */ 00202 0U /* LL_HRTIM_FAULT_5 */ 00203 }; 00204 00205 /** 00206 * @} 00207 */ 00208 00209 00210 /* Private constants ---------------------------------------------------------*/ 00211 /** @defgroup HRTIM_LL_Private_Constants HRTIM Private Constants 00212 * @{ 00213 */ 00214 #define HRTIM_CR1_UDIS_MASK ((uint32_t)(HRTIM_CR1_MUDIS |\ 00215 HRTIM_CR1_TAUDIS |\ 00216 HRTIM_CR1_TBUDIS |\ 00217 HRTIM_CR1_TCUDIS |\ 00218 HRTIM_CR1_TDUDIS |\ 00219 HRTIM_CR1_TEUDIS)) 00220 00221 #define HRTIM_CR2_SWUPD_MASK ((uint32_t)(HRTIM_CR2_MSWU |\ 00222 HRTIM_CR2_TASWU |\ 00223 HRTIM_CR2_TBSWU |\ 00224 HRTIM_CR2_TCSWU |\ 00225 HRTIM_CR2_TDSWU |\ 00226 HRTIM_CR2_TESWU)) 00227 00228 #define HRTIM_CR2_SWRST_MASK ((uint32_t)(HRTIM_CR2_MRST |\ 00229 HRTIM_CR2_TARST |\ 00230 HRTIM_CR2_TBRST |\ 00231 HRTIM_CR2_TCRST |\ 00232 HRTIM_CR2_TDRST |\ 00233 HRTIM_CR2_TERST)) 00234 00235 #define HRTIM_OENR_OEN_MASK ((uint32_t)(HRTIM_OENR_TA1OEN |\ 00236 HRTIM_OENR_TA2OEN |\ 00237 HRTIM_OENR_TB1OEN |\ 00238 HRTIM_OENR_TB2OEN |\ 00239 HRTIM_OENR_TC1OEN |\ 00240 HRTIM_OENR_TC2OEN |\ 00241 HRTIM_OENR_TD1OEN |\ 00242 HRTIM_OENR_TD2OEN |\ 00243 HRTIM_OENR_TE1OEN |\ 00244 HRTIM_OENR_TE2OEN)) 00245 00246 #define HRTIM_OENR_ODIS_MASK ((uint32_t)(HRTIM_ODISR_TA1ODIS |\ 00247 HRTIM_ODISR_TA2ODIS |\ 00248 HRTIM_ODISR_TB1ODIS |\ 00249 HRTIM_ODISR_TB2ODIS |\ 00250 HRTIM_ODISR_TC1ODIS |\ 00251 HRTIM_ODISR_TC2ODIS |\ 00252 HRTIM_ODISR_TD1ODIS |\ 00253 HRTIM_ODISR_TD2ODIS |\ 00254 HRTIM_ODISR_TE1ODIS |\ 00255 HRTIM_ODISR_TE2ODIS)) 00256 00257 #define HRTIM_OUT_CONFIG_MASK ((uint32_t)(HRTIM_OUTR_POL1 |\ 00258 HRTIM_OUTR_IDLM1 |\ 00259 HRTIM_OUTR_IDLES1 |\ 00260 HRTIM_OUTR_FAULT1 |\ 00261 HRTIM_OUTR_CHP1 |\ 00262 HRTIM_OUTR_DIDL1)) 00263 00264 #define HRTIM_EE_CONFIG_MASK ((uint32_t)(HRTIM_EECR1_EE1SRC |\ 00265 HRTIM_EECR1_EE1POL |\ 00266 HRTIM_EECR1_EE1SNS |\ 00267 HRTIM_EECR1_EE1FAST)) 00268 00269 #define HRTIM_FLT_CONFIG_MASK ((uint32_t)(HRTIM_FLTINR1_FLT1P |\ 00270 HRTIM_FLTINR1_FLT1SRC)) 00271 00272 #define HRTIM_BM_CONFIG_MASK ((uint32_t)( HRTIM_BMCR_BMPRSC |\ 00273 HRTIM_BMCR_BMCLK |\ 00274 HRTIM_BMCR_BMOM)) 00275 00276 /** 00277 * @} 00278 */ 00279 00280 00281 /* Private macros ------------------------------------------------------------*/ 00282 /* Exported types ------------------------------------------------------------*/ 00283 /* Exported constants --------------------------------------------------------*/ 00284 /** @defgroup HRTIM_LL_Exported_Constants HRTIM Exported Constants 00285 * @{ 00286 */ 00287 00288 /** @defgroup HRTIM_LL_EC_GET_FLAG Get Flags Defines 00289 * @brief Flags defines which can be used with LL_HRTIM_ReadReg function 00290 * @{ 00291 */ 00292 #define LL_HRTIM_ISR_FLT1 HRTIM_ISR_FLT1 00293 #define LL_HRTIM_ISR_FLT2 HRTIM_ISR_FLT2 00294 #define LL_HRTIM_ISR_FLT3 HRTIM_ISR_FLT3 00295 #define LL_HRTIM_ISR_FLT4 HRTIM_ISR_FLT4 00296 #define LL_HRTIM_ISR_FLT5 HRTIM_ISR_FLT5 00297 #define LL_HRTIM_ISR_SYSFLT HRTIM_ISR_SYSFLT 00298 #define LL_HRTIM_ISR_BMPER HRTIM_ISR_BMPER 00299 00300 #define LL_HRTIM_MISR_MCMP1 HRTIM_MISR_MCMP1 00301 #define LL_HRTIM_MISR_MCMP2 HRTIM_MISR_MCMP2 00302 #define LL_HRTIM_MISR_MCMP3 HRTIM_MISR_MCMP3 00303 #define LL_HRTIM_MISR_MCMP4 HRTIM_MISR_MCMP4 00304 #define LL_HRTIM_MISR_MREP HRTIM_MISR_MREP 00305 #define LL_HRTIM_MISR_SYNC HRTIM_MISR_SYNC 00306 #define LL_HRTIM_MISR_MUPD HRTIM_MISR_MUPD 00307 00308 #define LL_HRTIM_TIMISR_CMP1 HRTIM_TIMISR_CMP1 00309 #define LL_HRTIM_TIMISR_CMP2 HRTIM_TIMISR_CMP2 00310 #define LL_HRTIM_TIMISR_CMP3 HRTIM_TIMISR_CMP3 00311 #define LL_HRTIM_TIMISR_CMP4 HRTIM_TIMISR_CMP4 00312 #define LL_HRTIM_TIMISR_REP HRTIM_TIMISR_REP 00313 #define LL_HRTIM_TIMISR_UPD HRTIM_TIMISR_UPD 00314 #define LL_HRTIM_TIMISR_CPT1 HRTIM_TIMISR_CPT1 00315 #define LL_HRTIM_TIMISR_CPT2 HRTIM_TIMISR_CPT2 00316 #define LL_HRTIM_TIMISR_SET1 HRTIM_TIMISR_SET1 00317 #define LL_HRTIM_TIMISR_RST1 HRTIM_TIMISR_RST1 00318 #define LL_HRTIM_TIMISR_SET2 HRTIM_TIMISR_SET2 00319 #define LL_HRTIM_TIMISR_RST2 HRTIM_TIMISR_RST2 00320 #define LL_HRTIM_TIMISR_RST HRTIM_TIMISR_RST 00321 #define LL_HRTIM_TIMISR_DLYPRT HRTIM_TIMISR_DLYPRT 00322 /** 00323 * @} 00324 */ 00325 00326 /** @defgroup HRTIM_LL_EC_IT IT Defines 00327 * @brief IT defines which can be used with LL_HRTIM_ReadReg and LL_HRTIM_WriteReg functions 00328 * @{ 00329 */ 00330 #define LL_HRTIM_IER_FLT1IE HRTIM_IER_FLT1IE 00331 #define LL_HRTIM_IER_FLT2IE HRTIM_IER_FLT2IE 00332 #define LL_HRTIM_IER_FLT3IE HRTIM_IER_FLT3IE 00333 #define LL_HRTIM_IER_FLT4IE HRTIM_IER_FLT4IE 00334 #define LL_HRTIM_IER_FLT5IE HRTIM_IER_FLT5IE 00335 #define LL_HRTIM_IER_SYSFLTIE HRTIM_IER_SYSFLTIE 00336 #define LL_HRTIM_IER_BMPERIE HRTIM_IER_BMPERIE 00337 00338 #define LL_HRTIM_MDIER_MCMP1IE HRTIM_MDIER_MCMP1IE 00339 #define LL_HRTIM_MDIER_MCMP2IE HRTIM_MDIER_MCMP2IE 00340 #define LL_HRTIM_MDIER_MCMP3IE HRTIM_MDIER_MCMP3IE 00341 #define LL_HRTIM_MDIER_MCMP4IE HRTIM_MDIER_MCMP4IE 00342 #define LL_HRTIM_MDIER_MREPIE HRTIM_MDIER_MREPIE 00343 #define LL_HRTIM_MDIER_SYNCIE HRTIM_MDIER_SYNCIE 00344 #define LL_HRTIM_MDIER_MUPDIE HRTIM_MDIER_MUPDIE 00345 00346 #define LL_HRTIM_TIMDIER_CMP1IE HRTIM_TIMDIER_CMP1IE 00347 #define LL_HRTIM_TIMDIER_CMP2IE HRTIM_TIMDIER_CMP2IE 00348 #define LL_HRTIM_TIMDIER_CMP3IE HRTIM_TIMDIER_CMP3IE 00349 #define LL_HRTIM_TIMDIER_CMP4IE HRTIM_TIMDIER_CMP4IE 00350 #define LL_HRTIM_TIMDIER_REPIE HRTIM_TIMDIER_REPIE 00351 #define LL_HRTIM_TIMDIER_UPDIE HRTIM_TIMDIER_UPDIE 00352 #define LL_HRTIM_TIMDIER_CPT1IE HRTIM_TIMDIER_CPT1IE 00353 #define LL_HRTIM_TIMDIER_CPT2IE HRTIM_TIMDIER_CPT2IE 00354 #define LL_HRTIM_TIMDIER_SET1IE HRTIM_TIMDIER_SET1IE 00355 #define LL_HRTIM_TIMDIER_RST1IE HRTIM_TIMDIER_RST1IE 00356 #define LL_HRTIM_TIMDIER_SET2IE HRTIM_TIMDIER_SET2IE 00357 #define LL_HRTIM_TIMDIER_RST2IE HRTIM_TIMDIER_RST2IE 00358 #define LL_HRTIM_TIMDIER_RSTIE HRTIM_TIMDIER_RSTIE 00359 #define LL_HRTIM_TIMDIER_DLYPRTIE HRTIM_TIMDIER_DLYPRTIE 00360 /** 00361 * @} 00362 */ 00363 00364 /** @defgroup HRTIM_LL_EC_SYNCIN_SRC SYNCHRONIZATION INPUT SOURCE 00365 * @{ 00366 * @brief Constants defining defining the synchronization input source. 00367 */ 00368 #define LL_HRTIM_SYNCIN_SRC_NONE 0x00000000U /*!< HRTIM is not synchronized and runs in standalone mode */ 00369 #define LL_HRTIM_SYNCIN_SRC_TIM_EVENT (HRTIM_MCR_SYNC_IN_1) /*!< The HRTIM is synchronized with the on-chip timer */ 00370 #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 */ 00371 /** 00372 * @} 00373 */ 00374 00375 /** @defgroup HRTIM_LL_EC_SYNCOUT_SRC SYNCHRONIZATION OUTPUT SOURCE 00376 * @{ 00377 * @brief Constants defining the source and event to be sent on the synchronization output. 00378 */ 00379 #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 */ 00380 #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 */ 00381 #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 */ 00382 #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 */ 00383 /** 00384 * @} 00385 */ 00386 00387 /** @defgroup HRTIM_LL_EC_SYNCOUT_POLARITY SYNCHRONIZATION OUTPUT POLARITY 00388 * @{ 00389 * @brief Constants defining the routing and conditioning of the synchronization output event. 00390 */ 00391 #define LL_HRTIM_SYNCOUT_DISABLED 0x00000000U /*!< Synchronization output event is disabled */ 00392 #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 */ 00393 #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 */ 00394 /** 00395 * @} 00396 */ 00397 00398 /** @defgroup HRTIM_LL_EC_TIMER TIMER ID 00399 * @{ 00400 * @brief Constants identifying a timing unit. 00401 */ 00402 #define LL_HRTIM_TIMER_NONE 0U /*!< Master timer identifier */ 00403 #define LL_HRTIM_TIMER_MASTER HRTIM_MCR_MCEN /*!< Master timer identifier */ 00404 #define LL_HRTIM_TIMER_A HRTIM_MCR_TACEN /*!< Timer A identifier */ 00405 #define LL_HRTIM_TIMER_B HRTIM_MCR_TBCEN /*!< Timer B identifier */ 00406 #define LL_HRTIM_TIMER_C HRTIM_MCR_TCCEN /*!< Timer C identifier */ 00407 #define LL_HRTIM_TIMER_D HRTIM_MCR_TDCEN /*!< Timer D identifier */ 00408 #define LL_HRTIM_TIMER_E HRTIM_MCR_TECEN /*!< Timer E identifier */ 00409 #define LL_HRTIM_TIMER_X (HRTIM_MCR_TACEN |\ 00410 HRTIM_MCR_TBCEN | HRTIM_MCR_TCCEN |\ 00411 HRTIM_MCR_TDCEN | HRTIM_MCR_TECEN ) 00412 #define LL_HRTIM_TIMER_ALL (LL_HRTIM_TIMER_MASTER | LL_HRTIM_TIMER_X) 00413 00414 /** 00415 * @} 00416 */ 00417 00418 /** @defgroup HRTIM_LL_EC_OUTPUT OUTPUT ID 00419 * @{ 00420 * @brief Constants identifying an HRTIM output. 00421 */ 00422 #define LL_HRTIM_OUTPUT_TA1 HRTIM_OENR_TA1OEN /*!< Timer A - Output 1 identifier */ 00423 #define LL_HRTIM_OUTPUT_TA2 HRTIM_OENR_TA2OEN /*!< Timer A - Output 2 identifier */ 00424 #define LL_HRTIM_OUTPUT_TB1 HRTIM_OENR_TB1OEN /*!< Timer B - Output 1 identifier */ 00425 #define LL_HRTIM_OUTPUT_TB2 HRTIM_OENR_TB2OEN /*!< Timer B - Output 2 identifier */ 00426 #define LL_HRTIM_OUTPUT_TC1 HRTIM_OENR_TC1OEN /*!< Timer C - Output 1 identifier */ 00427 #define LL_HRTIM_OUTPUT_TC2 HRTIM_OENR_TC2OEN /*!< Timer C - Output 2 identifier */ 00428 #define LL_HRTIM_OUTPUT_TD1 HRTIM_OENR_TD1OEN /*!< Timer D - Output 1 identifier */ 00429 #define LL_HRTIM_OUTPUT_TD2 HRTIM_OENR_TD2OEN /*!< Timer D - Output 2 identifier */ 00430 #define LL_HRTIM_OUTPUT_TE1 HRTIM_OENR_TE1OEN /*!< Timer E - Output 1 identifier */ 00431 #define LL_HRTIM_OUTPUT_TE2 HRTIM_OENR_TE2OEN /*!< Timer E - Output 2 identifier */ 00432 /** 00433 * @} 00434 */ 00435 00436 /** @defgroup HRTIM_LL_EC_COMPAREUNIT COMPARE UNIT ID 00437 * @{ 00438 * @brief Constants identifying a compare unit. 00439 */ 00440 #define LL_HRTIM_COMPAREUNIT_2 HRTIM_TIMCR_DELCMP2 /*!< Compare unit 2 identifier */ 00441 #define LL_HRTIM_COMPAREUNIT_4 HRTIM_TIMCR_DELCMP4 /*!< Compare unit 4 identifier */ 00442 /** 00443 * @} 00444 */ 00445 00446 /** @defgroup HRTIM_LL_EC_CAPTUREUNIT CAPTURE UNIT ID 00447 * @{ 00448 * @brief Constants identifying a capture unit. 00449 */ 00450 #define LL_HRTIM_CAPTUREUNIT_1 0 /*!< Capture unit 1 identifier */ 00451 #define LL_HRTIM_CAPTUREUNIT_2 1 /*!< Capture unit 2 identifier */ 00452 /** 00453 * @} 00454 */ 00455 00456 /** @defgroup HRTIM_LL_EC_FAULT FAULT ID 00457 * @{ 00458 * @brief Constants identifying a fault channel. 00459 */ 00460 #define LL_HRTIM_FAULT_1 HRTIM_FLTR_FLT1EN /*!< Fault channel 1 identifier */ 00461 #define LL_HRTIM_FAULT_2 HRTIM_FLTR_FLT2EN /*!< Fault channel 2 identifier */ 00462 #define LL_HRTIM_FAULT_3 HRTIM_FLTR_FLT3EN /*!< Fault channel 3 identifier */ 00463 #define LL_HRTIM_FAULT_4 HRTIM_FLTR_FLT4EN /*!< Fault channel 4 identifier */ 00464 #define LL_HRTIM_FAULT_5 HRTIM_FLTR_FLT5EN /*!< Fault channel 5 identifier */ 00465 /** 00466 * @} 00467 */ 00468 00469 /** @defgroup HRTIM_LL_EC_EVENT EXTERNAL EVENT ID 00470 * @{ 00471 * @brief Constants identifying an external event channel. 00472 */ 00473 #define LL_HRTIM_EVENT_1 ((uint32_t)0x00000001U) /*!< External event channel 1 identifier */ 00474 #define LL_HRTIM_EVENT_2 ((uint32_t)0x00000002U) /*!< External event channel 2 identifier */ 00475 #define LL_HRTIM_EVENT_3 ((uint32_t)0x00000004U) /*!< External event channel 3 identifier */ 00476 #define LL_HRTIM_EVENT_4 ((uint32_t)0x00000008U) /*!< External event channel 4 identifier */ 00477 #define LL_HRTIM_EVENT_5 ((uint32_t)0x00000010U) /*!< External event channel 5 identifier */ 00478 #define LL_HRTIM_EVENT_6 ((uint32_t)0x00000020U) /*!< External event channel 6 identifier */ 00479 #define LL_HRTIM_EVENT_7 ((uint32_t)0x00000040U) /*!< External event channel 7 identifier */ 00480 #define LL_HRTIM_EVENT_8 ((uint32_t)0x00000080U) /*!< External event channel 8 identifier */ 00481 #define LL_HRTIM_EVENT_9 ((uint32_t)0x00000100U) /*!< External event channel 9 identifier */ 00482 #define LL_HRTIM_EVENT_10 ((uint32_t)0x00000200U) /*!< External event channel 10 identifier */ 00483 /** 00484 * @} 00485 */ 00486 00487 /** @defgroup HRTIM_LL_EC_OUTPUTSTATE OUTPUT STATE 00488 * @{ 00489 * @brief Constants defining the state of an HRTIM output. 00490 */ 00491 #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 */ 00492 #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) */ 00493 #define LL_HRTIM_OUTPUTSTATE_FAULT ((uint32_t)0x00000003U) /*!< Safety state, entered in case of a shut-down request on FAULTx inputs */ 00494 /** 00495 * @} 00496 */ 00497 00498 /** @defgroup HRTIM_LL_EC_ADCTRIG ADC TRIGGER 00499 * @{ 00500 * @brief Constants identifying an ADC trigger. 00501 */ 00502 #define LL_HRTIM_ADCTRIG_1 ((uint32_t)0x00000000U) /*!< ADC trigger 1 identifier */ 00503 #define LL_HRTIM_ADCTRIG_2 ((uint32_t)0x00000001U) /*!< ADC trigger 2 identifier */ 00504 #define LL_HRTIM_ADCTRIG_3 ((uint32_t)0x00000002U) /*!< ADC trigger 3 identifier */ 00505 #define LL_HRTIM_ADCTRIG_4 ((uint32_t)0x00000003U) /*!< ADC trigger 4 identifier */ 00506 /** 00507 * @} 00508 */ 00509 00510 /** @defgroup HRTIM_LL_EC_ADCTRIG_UPDATE ADC TRIGGER UPDATE 00511 * @{ 00512 * @brief constants defining the source triggering the update of the HRTIM_ADCxR register (transfer from preload to active register). 00513 */ 00514 #define LL_HRTIM_ADCTRIG_UPDATE_MASTER 0x00000000U /*!< HRTIM_ADCxR register update is triggered by the Master timer */ 00515 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_A (HRTIM_CR1_ADC1USRC_0) /*!< HRTIM_ADCxR register update is triggered by the Timer A */ 00516 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_B (HRTIM_CR1_ADC1USRC_1) /*!< HRTIM_ADCxR register update is triggered by the Timer B */ 00517 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_C (HRTIM_CR1_ADC1USRC_1 | HRTIM_CR1_ADC1USRC_0) /*!< HRTIM_ADCxR register update is triggered by the Timer C */ 00518 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_D (HRTIM_CR1_ADC1USRC_2) /*!< HRTIM_ADCxR register update is triggered by the Timer D */ 00519 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_E (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_0) /*!< HRTIM_ADCxR register update is triggered by the Timer E */ 00520 /** 00521 * @} 00522 */ 00523 00524 /** @defgroup HRTIM_LL_EC_ADCTRIG_SRC13 ADC TRIGGER 1/3 SOURCE 00525 * @{ 00526 * @brief constants defining the events triggering ADC conversion for ADC Triggers 1 and 3. 00527 */ 00528 #define LL_HRTIM_ADCTRIG_SRC13_NONE 0x00000000U /*!< No ADC trigger event */ 00529 #define LL_HRTIM_ADCTRIG_SRC13_MCMP1 HRTIM_ADC1R_AD1MC1 /*!< ADC Trigger on master compare 1 */ 00530 #define LL_HRTIM_ADCTRIG_SRC13_MCMP2 HRTIM_ADC1R_AD1MC2 /*!< ADC Trigger on master compare 2 */ 00531 #define LL_HRTIM_ADCTRIG_SRC13_MCMP3 HRTIM_ADC1R_AD1MC3 /*!< ADC Trigger on master compare 3 */ 00532 #define LL_HRTIM_ADCTRIG_SRC13_MCMP4 HRTIM_ADC1R_AD1MC4 /*!< ADC Trigger on master compare 4 */ 00533 #define LL_HRTIM_ADCTRIG_SRC13_MPER HRTIM_ADC1R_AD1MPER /*!< ADC Trigger on master period */ 00534 #define LL_HRTIM_ADCTRIG_SRC13_EEV1 HRTIM_ADC1R_AD1EEV1 /*!< ADC Trigger on external event 1 */ 00535 #define LL_HRTIM_ADCTRIG_SRC13_EEV2 HRTIM_ADC1R_AD1EEV2 /*!< ADC Trigger on external event 2 */ 00536 #define LL_HRTIM_ADCTRIG_SRC13_EEV3 HRTIM_ADC1R_AD1EEV3 /*!< ADC Trigger on external event 3 */ 00537 #define LL_HRTIM_ADCTRIG_SRC13_EEV4 HRTIM_ADC1R_AD1EEV4 /*!< ADC Trigger on external event 4 */ 00538 #define LL_HRTIM_ADCTRIG_SRC13_EEV5 HRTIM_ADC1R_AD1EEV5 /*!< ADC Trigger on external event 5 */ 00539 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP2 HRTIM_ADC1R_AD1TAC2 /*!< ADC Trigger on Timer A compare 2 */ 00540 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP3 HRTIM_ADC1R_AD1TAC3 /*!< ADC Trigger on Timer A compare 3 */ 00541 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP4 HRTIM_ADC1R_AD1TAC4 /*!< ADC Trigger on Timer A compare 4 */ 00542 #define LL_HRTIM_ADCTRIG_SRC13_TIMAPER HRTIM_ADC1R_AD1TAPER /*!< ADC Trigger on Timer A period */ 00543 #define LL_HRTIM_ADCTRIG_SRC13_TIMARST HRTIM_ADC1R_AD1TARST /*!< ADC Trigger on Timer A reset */ 00544 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2 HRTIM_ADC1R_AD1TBC2 /*!< ADC Trigger on Timer B compare 2 */ 00545 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3 HRTIM_ADC1R_AD1TBC3 /*!< ADC Trigger on Timer B compare 3 */ 00546 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4 HRTIM_ADC1R_AD1TBC4 /*!< ADC Trigger on Timer B compare 4 */ 00547 #define LL_HRTIM_ADCTRIG_SRC13_TIMBPER HRTIM_ADC1R_AD1TBPER /*!< ADC Trigger on Timer B period */ 00548 #define LL_HRTIM_ADCTRIG_SRC13_TIMBRST HRTIM_ADC1R_AD1TBRST /*!< ADC Trigger on Timer B reset */ 00549 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2 HRTIM_ADC1R_AD1TCC2 /*!< ADC Trigger on Timer C compare 2 */ 00550 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3 HRTIM_ADC1R_AD1TCC3 /*!< ADC Trigger on Timer C compare 3 */ 00551 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4 HRTIM_ADC1R_AD1TCC4 /*!< ADC Trigger on Timer C compare 4 */ 00552 #define LL_HRTIM_ADCTRIG_SRC13_TIMCPER HRTIM_ADC1R_AD1TCPER /*!< ADC Trigger on Timer C period */ 00553 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2 HRTIM_ADC1R_AD1TDC2 /*!< ADC Trigger on Timer D compare 2 */ 00554 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3 HRTIM_ADC1R_AD1TDC3 /*!< ADC Trigger on Timer D compare 3 */ 00555 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4 HRTIM_ADC1R_AD1TDC4 /*!< ADC Trigger on Timer D compare 4 */ 00556 #define LL_HRTIM_ADCTRIG_SRC13_TIMDPER HRTIM_ADC1R_AD1TDPER /*!< ADC Trigger on Timer D period */ 00557 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP2 HRTIM_ADC1R_AD1TEC2 /*!< ADC Trigger on Timer E compare 2 */ 00558 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP3 HRTIM_ADC1R_AD1TEC3 /*!< ADC Trigger on Timer E compare 3 */ 00559 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP4 HRTIM_ADC1R_AD1TEC4 /*!< ADC Trigger on Timer E compare 4 */ 00560 #define LL_HRTIM_ADCTRIG_SRC13_TIMEPER HRTIM_ADC1R_AD1TEPER /*!< ADC Trigger on Timer E period */ 00561 /** 00562 * @} 00563 */ 00564 00565 /** @defgroup HRTIM_LL_EC_ADCTRIG_SRC24 ADC TRIGGER 2/4 SOURCE 00566 * @{ 00567 * @brief constants defining the events triggering ADC conversion for ADC Triggers 2 and 4. 00568 */ 00569 #define LL_HRTIM_ADCTRIG_SRC24_NONE 0x00000000U /*!< No ADC trigger event */ 00570 #define LL_HRTIM_ADCTRIG_SRC24_MCMP1 HRTIM_ADC2R_AD2MC1 /*!< ADC Trigger on master compare 1 */ 00571 #define LL_HRTIM_ADCTRIG_SRC24_MCMP2 HRTIM_ADC2R_AD2MC2 /*!< ADC Trigger on master compare 2 */ 00572 #define LL_HRTIM_ADCTRIG_SRC24_MCMP3 HRTIM_ADC2R_AD2MC3 /*!< ADC Trigger on master compare 3 */ 00573 #define LL_HRTIM_ADCTRIG_SRC24_MCMP4 HRTIM_ADC2R_AD2MC4 /*!< ADC Trigger on master compare 4 */ 00574 #define LL_HRTIM_ADCTRIG_SRC24_MPER HRTIM_ADC2R_AD2MPER /*!< ADC Trigger on master period */ 00575 #define LL_HRTIM_ADCTRIG_SRC24_EEV6 HRTIM_ADC2R_AD2EEV6 /*!< ADC Trigger on external event 6 */ 00576 #define LL_HRTIM_ADCTRIG_SRC24_EEV7 HRTIM_ADC2R_AD2EEV7 /*!< ADC Trigger on external event 7 */ 00577 #define LL_HRTIM_ADCTRIG_SRC24_EEV8 HRTIM_ADC2R_AD2EEV8 /*!< ADC Trigger on external event 8 */ 00578 #define LL_HRTIM_ADCTRIG_SRC24_EEV9 HRTIM_ADC2R_AD2EEV9 /*!< ADC Trigger on external event 9 */ 00579 #define LL_HRTIM_ADCTRIG_SRC24_EEV10 HRTIM_ADC2R_AD2EEV10 /*!< ADC Trigger on external event 10 */ 00580 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP2 HRTIM_ADC2R_AD2TAC2 /*!< ADC Trigger on Timer A compare 2 */ 00581 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP3 HRTIM_ADC2R_AD2TAC3 /*!< ADC Trigger on Timer A compare 3 */ 00582 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP4 HRTIM_ADC2R_AD2TAC4 /*!< ADC Trigger on Timer A compare 4 */ 00583 #define LL_HRTIM_ADCTRIG_SRC24_TIMAPER HRTIM_ADC2R_AD2TAPER /*!< ADC Trigger on Timer A period */ 00584 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2 HRTIM_ADC2R_AD2TBC2 /*!< ADC Trigger on Timer B compare 2 */ 00585 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3 HRTIM_ADC2R_AD2TBC3 /*!< ADC Trigger on Timer B compare 3 */ 00586 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4 HRTIM_ADC2R_AD2TBC4 /*!< ADC Trigger on Timer B compare 4 */ 00587 #define LL_HRTIM_ADCTRIG_SRC24_TIMBPER HRTIM_ADC2R_AD2TBPER /*!< ADC Trigger on Timer B period */ 00588 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2 HRTIM_ADC2R_AD2TCC2 /*!< ADC Trigger on Timer C compare 2 */ 00589 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3 HRTIM_ADC2R_AD2TCC3 /*!< ADC Trigger on Timer C compare 3 */ 00590 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4 HRTIM_ADC2R_AD2TCC4 /*!< ADC Trigger on Timer C compare 4 */ 00591 #define LL_HRTIM_ADCTRIG_SRC24_TIMCPER HRTIM_ADC2R_AD2TCPER /*!< ADC Trigger on Timer C period */ 00592 #define LL_HRTIM_ADCTRIG_SRC24_TIMCRST HRTIM_ADC2R_AD2TCRST /*!< ADC Trigger on Timer C reset */ 00593 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2 HRTIM_ADC2R_AD2TDC2 /*!< ADC Trigger on Timer D compare 2 */ 00594 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3 HRTIM_ADC2R_AD2TDC3 /*!< ADC Trigger on Timer D compare 3 */ 00595 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4 HRTIM_ADC2R_AD2TDC4 /*!< ADC Trigger on Timer D compare 4 */ 00596 #define LL_HRTIM_ADCTRIG_SRC24_TIMDPER HRTIM_ADC2R_AD2TDPER /*!< ADC Trigger on Timer D period */ 00597 #define LL_HRTIM_ADCTRIG_SRC24_TIMDRST HRTIM_ADC2R_AD2TDRST /*!< ADC Trigger on Timer D reset */ 00598 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP2 HRTIM_ADC2R_AD2TEC2 /*!< ADC Trigger on Timer E compare 2 */ 00599 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP3 HRTIM_ADC2R_AD2TEC3 /*!< ADC Trigger on Timer E compare 3 */ 00600 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP4 HRTIM_ADC2R_AD2TEC4 /*!< ADC Trigger on Timer E compare 4 */ 00601 #define LL_HRTIM_ADCTRIG_SRC24_TIMERST HRTIM_ADC2R_AD2TERST /*!< ADC Trigger on Timer E reset */ 00602 /** 00603 * @} 00604 */ 00605 00606 /** @defgroup HRTIM_LL_EC_PRESCALERRATIO PRESCALER RATIO 00607 * @{ 00608 * @brief Constants defining timer high-resolution clock prescaler ratio. 00609 */ 00610 #define LL_HRTIM_PRESCALERRATIO_DIV1 ((uint32_t)0x00000005U) /*!< fHRCK: fHRTIM = 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz) */ 00611 #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) */ 00612 #define LL_HRTIM_PRESCALERRATIO_DIV4 ((uint32_t)0x00000007U) /*!< fHRCK: fHRTIM / 4 = 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz) */ 00613 /** 00614 * @} 00615 */ 00616 00617 /** @defgroup HRTIM_LL_EC_MODE COUNTER MODE 00618 * @{ 00619 * @brief Constants defining timer counter operating mode. 00620 */ 00621 #define LL_HRTIM_MODE_CONTINUOUS ((uint32_t)0x00000008U) /*!< The timer operates in continuous (free-running) mode */ 00622 #define LL_HRTIM_MODE_SINGLESHOT 0x00000000U /*!< The timer operates in non retriggerable single-shot mode */ 00623 #define LL_HRTIM_MODE_RETRIGGERABLE ((uint32_t)0x00000010U) /*!< The timer operates in retriggerable single-shot mode */ 00624 /** 00625 * @} 00626 */ 00627 00628 /** @defgroup HRTIM_LL_EC_DACTRIG DAC TRIGGER 00629 * @{ 00630 * @brief Constants defining on which output the DAC synchronization event is sent. 00631 */ 00632 #define LL_HRTIM_DACTRIG_NONE 0x00000000U /*!< No DAC synchronization event generated */ 00633 #define LL_HRTIM_DACTRIG_DACTRIGOUT_1 (HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update */ 00634 #define LL_HRTIM_DACTRIG_DACTRIGOUT_2 (HRTIM_MCR_DACSYNC_1) /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update */ 00635 #define LL_HRTIM_DACTRIG_DACTRIGOUT_3 (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut3 output upon timer update */ 00636 /** 00637 * @} 00638 */ 00639 00640 /** @defgroup HRTIM_LL_EC_UPDATETRIG UPDATE TRIGGER 00641 * @{ 00642 * @brief Constants defining whether the registers update is done synchronously with any other timer or master update. 00643 */ 00644 #define LL_HRTIM_UPDATETRIG_NONE 0x00000000U /*!< Register update is disabled */ 00645 #define LL_HRTIM_UPDATETRIG_MASTER HRTIM_TIMCR_MSTU /*!< Register update is triggered by the master timer update */ 00646 #define LL_HRTIM_UPDATETRIG_TIMER_A HRTIM_TIMCR_TAU /*!< Register update is triggered by the timer A update */ 00647 #define LL_HRTIM_UPDATETRIG_TIMER_B HRTIM_TIMCR_TBU /*!< Register update is triggered by the timer B update */ 00648 #define LL_HRTIM_UPDATETRIG_TIMER_C HRTIM_TIMCR_TCU /*!< Register update is triggered by the timer C update*/ 00649 #define LL_HRTIM_UPDATETRIG_TIMER_D HRTIM_TIMCR_TDU /*!< Register update is triggered by the timer D update */ 00650 #define LL_HRTIM_UPDATETRIG_TIMER_E HRTIM_TIMCR_TEU /*!< Register update is triggered by the timer E update */ 00651 #define LL_HRTIM_UPDATETRIG_REPETITION HRTIM_TIMCR_TREPU /*!< Register update is triggered when the counter rolls over and HRTIM_REPx = 0*/ 00652 #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 */ 00653 /** 00654 * @} 00655 */ 00656 00657 /** @defgroup HRTIM_LL_EC_UPDATEGATING UPDATE GATING 00658 * @{ 00659 * @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. 00660 */ 00661 #define LL_HRTIM_UPDATEGATING_INDEPENDENT 0x00000000U /*!< Update done independently from the DMA burst transfer completion */ 00662 #define LL_HRTIM_UPDATEGATING_DMABURST (HRTIM_TIMCR_UPDGAT_0) /*!< Update done when the DMA burst transfer is completed */ 00663 #define LL_HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1) /*!< Update done on timer roll-over following a DMA burst transfer completion*/ 00664 #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 */ 00665 #define LL_HRTIM_UPDATEGATING_UPDEN2 (HRTIM_TIMCR_UPDGAT_2) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2 */ 00666 #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 */ 00667 #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 */ 00668 #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 */ 00669 #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 */ 00670 /** 00671 * @} 00672 */ 00673 00674 /** @defgroup HRTIM_LL_EC_COMPAREMODE COMPARE MODE 00675 * @{ 00676 * @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. 00677 */ 00678 #define LL_HRTIM_COMPAREMODE_REGULAR 0x00000000U /*!< standard compare mode */ 00679 #define LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT (HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated only if a capture has occurred */ 00680 #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) */ 00681 #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) */ 00682 /** 00683 * @} 00684 */ 00685 00686 /** @defgroup HRTIM_LL_EC_RESETTRIG RESET TRIGGER 00687 * @{ 00688 * @brief Constants defining the events that can be selected to trigger the reset of the timer counter. 00689 */ 00690 #define LL_HRTIM_RESETTRIG_NONE 0x00000000U /*!< No counter reset trigger */ 00691 #define LL_HRTIM_RESETTRIG_UPDATE HRTIM_RSTR_UPDATE /*!< The timer counter is reset upon update event */ 00692 #define LL_HRTIM_RESETTRIG_CMP2 HRTIM_RSTR_CMP2 /*!< The timer counter is reset upon Timer Compare 2 event */ 00693 #define LL_HRTIM_RESETTRIG_CMP4 HRTIM_RSTR_CMP4 /*!< The timer counter is reset upon Timer Compare 4 event */ 00694 #define LL_HRTIM_RESETTRIG_MASTER_PER HRTIM_RSTR_MSTPER /*!< The timer counter is reset upon master timer period event */ 00695 #define LL_HRTIM_RESETTRIG_MASTER_CMP1 HRTIM_RSTR_MSTCMP1 /*!< The timer counter is reset upon master timer Compare 1 event */ 00696 #define LL_HRTIM_RESETTRIG_MASTER_CMP2 HRTIM_RSTR_MSTCMP2 /*!< The timer counter is reset upon master timer Compare 2 event */ 00697 #define LL_HRTIM_RESETTRIG_MASTER_CMP3 HRTIM_RSTR_MSTCMP3 /*!< The timer counter is reset upon master timer Compare 3 event */ 00698 #define LL_HRTIM_RESETTRIG_MASTER_CMP4 HRTIM_RSTR_MSTCMP4 /*!< The timer counter is reset upon master timer Compare 4 event */ 00699 #define LL_HRTIM_RESETTRIG_EEV_1 HRTIM_RSTR_EXTEVNT1 /*!< The timer counter is reset upon external event 1 */ 00700 #define LL_HRTIM_RESETTRIG_EEV_2 HRTIM_RSTR_EXTEVNT2 /*!< The timer counter is reset upon external event 2 */ 00701 #define LL_HRTIM_RESETTRIG_EEV_3 HRTIM_RSTR_EXTEVNT3 /*!< The timer counter is reset upon external event 3 */ 00702 #define LL_HRTIM_RESETTRIG_EEV_4 HRTIM_RSTR_EXTEVNT4 /*!< The timer counter is reset upon external event 4 */ 00703 #define LL_HRTIM_RESETTRIG_EEV_5 HRTIM_RSTR_EXTEVNT5 /*!< The timer counter is reset upon external event 5 */ 00704 #define LL_HRTIM_RESETTRIG_EEV_6 HRTIM_RSTR_EXTEVNT6 /*!< The timer counter is reset upon external event 6 */ 00705 #define LL_HRTIM_RESETTRIG_EEV_7 HRTIM_RSTR_EXTEVNT7 /*!< The timer counter is reset upon external event 7 */ 00706 #define LL_HRTIM_RESETTRIG_EEV_8 HRTIM_RSTR_EXTEVNT8 /*!< The timer counter is reset upon external event 8 */ 00707 #define LL_HRTIM_RESETTRIG_EEV_9 HRTIM_RSTR_EXTEVNT9 /*!< The timer counter is reset upon external event 9 */ 00708 #define LL_HRTIM_RESETTRIG_EEV_10 HRTIM_RSTR_EXTEVNT10 /*!< The timer counter is reset upon external event 10 */ 00709 #define LL_HRTIM_RESETTRIG_OTHER1_CMP1 HRTIM_RSTR_TIMBCMP1 /*!< The timer counter is reset upon other timer Compare 1 event */ 00710 #define LL_HRTIM_RESETTRIG_OTHER1_CMP2 HRTIM_RSTR_TIMBCMP2 /*!< The timer counter is reset upon other timer Compare 2 event */ 00711 #define LL_HRTIM_RESETTRIG_OTHER1_CMP4 HRTIM_RSTR_TIMBCMP4 /*!< The timer counter is reset upon other timer Compare 4 event */ 00712 #define LL_HRTIM_RESETTRIG_OTHER2_CMP1 HRTIM_RSTR_TIMCCMP1 /*!< The timer counter is reset upon other timer Compare 1 event */ 00713 #define LL_HRTIM_RESETTRIG_OTHER2_CMP2 HRTIM_RSTR_TIMCCMP2 /*!< The timer counter is reset upon other timer Compare 2 event */ 00714 #define LL_HRTIM_RESETTRIG_OTHER2_CMP4 HRTIM_RSTR_TIMCCMP4 /*!< The timer counter is reset upon other timer Compare 4 event */ 00715 #define LL_HRTIM_RESETTRIG_OTHER3_CMP1 HRTIM_RSTR_TIMDCMP1 /*!< The timer counter is reset upon other timer Compare 1 event */ 00716 #define LL_HRTIM_RESETTRIG_OTHER3_CMP2 HRTIM_RSTR_TIMDCMP2 /*!< The timer counter is reset upon other timer Compare 2 event */ 00717 #define LL_HRTIM_RESETTRIG_OTHER3_CMP4 HRTIM_RSTR_TIMDCMP4 /*!< The timer counter is reset upon other timer Compare 4 event */ 00718 #define LL_HRTIM_RESETTRIG_OTHER4_CMP1 HRTIM_RSTR_TIMECMP1 /*!< The timer counter is reset upon other timer Compare 1 event */ 00719 #define LL_HRTIM_RESETTRIG_OTHER4_CMP2 HRTIM_RSTR_TIMECMP2 /*!< The timer counter is reset upon other timer Compare 2 event */ 00720 #define LL_HRTIM_RESETTRIG_OTHER4_CMP4 HRTIM_RSTR_TIMECMP4 /*!< The timer counter is reset upon other timer Compare 4 event */ 00721 /** 00722 * @} 00723 */ 00724 00725 /** @defgroup HRTIM_LL_EC_CAPTURETRIG CAPTURE TRIGGER 00726 * @{ 00727 * @brief Constants defining the events that can be selected to trigger the capture of the timing unit counter. 00728 */ 00729 #define LL_HRTIM_CAPTURETRIG_NONE ((uint32_t)0x00000000U)/*!< Capture trigger is disabled */ 00730 #define LL_HRTIM_CAPTURETRIG_UPDATE HRTIM_CPT1CR_UPDCPT /*!< The update event triggers the Capture */ 00731 #define LL_HRTIM_CAPTURETRIG_EEV_1 HRTIM_CPT1CR_EXEV1CPT /*!< The External event 1 triggers the Capture */ 00732 #define LL_HRTIM_CAPTURETRIG_EEV_2 HRTIM_CPT1CR_EXEV2CPT /*!< The External event 2 triggers the Capture */ 00733 #define LL_HRTIM_CAPTURETRIG_EEV_3 HRTIM_CPT1CR_EXEV3CPT /*!< The External event 3 triggers the Capture */ 00734 #define LL_HRTIM_CAPTURETRIG_EEV_4 HRTIM_CPT1CR_EXEV4CPT /*!< The External event 4 triggers the Capture */ 00735 #define LL_HRTIM_CAPTURETRIG_EEV_5 HRTIM_CPT1CR_EXEV5CPT /*!< The External event 5 triggers the Capture */ 00736 #define LL_HRTIM_CAPTURETRIG_EEV_6 HRTIM_CPT1CR_EXEV6CPT /*!< The External event 6 triggers the Capture */ 00737 #define LL_HRTIM_CAPTURETRIG_EEV_7 HRTIM_CPT1CR_EXEV7CPT /*!< The External event 7 triggers the Capture */ 00738 #define LL_HRTIM_CAPTURETRIG_EEV_8 HRTIM_CPT1CR_EXEV8CPT /*!< The External event 8 triggers the Capture */ 00739 #define LL_HRTIM_CAPTURETRIG_EEV_9 HRTIM_CPT1CR_EXEV9CPT /*!< The External event 9 triggers the Capture */ 00740 #define LL_HRTIM_CAPTURETRIG_EEV_10 HRTIM_CPT1CR_EXEV10CPT /*!< The External event 10 triggers the Capture */ 00741 #define LL_HRTIM_CAPTURETRIG_TA1_SET HRTIM_CPT1CR_TA1SET /*!< Capture is triggered by TA1 output inactive to active transition */ 00742 #define LL_HRTIM_CAPTURETRIG_TA1_RESET HRTIM_CPT1CR_TA1RST /*!< Capture is triggered by TA1 output active to inactive transition */ 00743 #define LL_HRTIM_CAPTURETRIG_TIMA_CMP1 HRTIM_CPT1CR_TIMACMP1 /*!< Timer A Compare 1 triggers Capture */ 00744 #define LL_HRTIM_CAPTURETRIG_TIMA_CMP2 HRTIM_CPT1CR_TIMACMP2 /*!< Timer A Compare 2 triggers Capture */ 00745 #define LL_HRTIM_CAPTURETRIG_TB1_SET HRTIM_CPT1CR_TB1SET /*!< Capture is triggered by TB1 output inactive to active transition */ 00746 #define LL_HRTIM_CAPTURETRIG_TB1_RESET HRTIM_CPT1CR_TB1RST /*!< Capture is triggered by TB1 output active to inactive transition */ 00747 #define LL_HRTIM_CAPTURETRIG_TIMB_CMP1 HRTIM_CPT1CR_TIMBCMP1 /*!< Timer B Compare 1 triggers Capture */ 00748 #define LL_HRTIM_CAPTURETRIG_TIMB_CMP2 HRTIM_CPT1CR_TIMBCMP2 /*!< Timer B Compare 2 triggers Capture */ 00749 #define LL_HRTIM_CAPTURETRIG_TC1_SET HRTIM_CPT1CR_TC1SET /*!< Capture is triggered by TC1 output inactive to active transition */ 00750 #define LL_HRTIM_CAPTURETRIG_TC1_RESET HRTIM_CPT1CR_TC1RST /*!< Capture is triggered by TC1 output active to inactive transition */ 00751 #define LL_HRTIM_CAPTURETRIG_TIMC_CMP1 HRTIM_CPT1CR_TIMCCMP1 /*!< Timer C Compare 1 triggers Capture */ 00752 #define LL_HRTIM_CAPTURETRIG_TIMC_CMP2 HRTIM_CPT1CR_TIMCCMP2 /*!< Timer C Compare 2 triggers Capture */ 00753 #define LL_HRTIM_CAPTURETRIG_TD1_SET HRTIM_CPT1CR_TD1SET /*!< Capture is triggered by TD1 output inactive to active transition */ 00754 #define LL_HRTIM_CAPTURETRIG_TD1_RESET HRTIM_CPT1CR_TD1RST /*!< Capture is triggered by TD1 output active to inactive transition */ 00755 #define LL_HRTIM_CAPTURETRIG_TIMD_CMP1 HRTIM_CPT1CR_TIMDCMP1 /*!< Timer D Compare 1 triggers Capture */ 00756 #define LL_HRTIM_CAPTURETRIG_TIMD_CMP2 HRTIM_CPT1CR_TIMDCMP2 /*!< Timer D Compare 2 triggers Capture */ 00757 #define LL_HRTIM_CAPTURETRIG_TE1_SET HRTIM_CPT1CR_TE1SET /*!< Capture is triggered by TE1 output inactive to active transition */ 00758 #define LL_HRTIM_CAPTURETRIG_TE1_RESET HRTIM_CPT1CR_TE1RST /*!< Capture is triggered by TE1 output active to inactive transition */ 00759 #define LL_HRTIM_CAPTURETRIG_TIME_CMP1 HRTIM_CPT1CR_TIMECMP1 /*!< Timer E Compare 1 triggers Capture */ 00760 #define LL_HRTIM_CAPTURETRIG_TIME_CMP2 HRTIM_CPT1CR_TIMECMP2 /*!< Timer E Compare 2 triggers Capture */ 00761 /** 00762 * @} 00763 */ 00764 00765 /** @defgroup HRTIM_LL_EC_DLYPRT DELAYED PROTECTION (DLYPRT) MODE 00766 * @{ 00767 * @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). 00768 */ 00769 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV6 0x00000000U /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6 */ 00770 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV6 (HRTIM_OUTR_DLYPRT_0) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 6 */ 00771 #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 */ 00772 #define LL_HRTIM_DLYPRT_BALANCED_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0) /*!< Timers A, B, C: Balanced Idle on external Event 6 */ 00773 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV7 (HRTIM_OUTR_DLYPRT_2) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 7 */ 00774 #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 */ 00775 #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 */ 00776 #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 */ 00777 00778 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV8 0x00000000U /*!< Timers D, E: Output 1 delayed Idle on external Event 8 */ 00779 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV8 (HRTIM_OUTR_DLYPRT_0) /*!< Timers D, E: Output 2 delayed Idle on external Event 8 */ 00780 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV8 (HRTIM_OUTR_DLYPRT_1) /*!< Timers D, E: Output 1 and output 2 delayed Idle on external Event 8 */ 00781 #define LL_HRTIM_DLYPRT_BALANCED_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0) /*!< Timers D, E: Balanced Idle on external Event 8 */ 00782 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV9 (HRTIM_OUTR_DLYPRT_2) /*!< Timers D, E: Output 1 delayed Idle on external Event 9 */ 00783 #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 */ 00784 #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 */ 00785 #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 */ 00786 /** 00787 * @} 00788 */ 00789 00790 /** @defgroup HRTIM_LL_EC_BURSTMODE BURST MODE 00791 * @{ 00792 * @brief Constants defining how the timer behaves during a burst mode operation. 00793 */ 00794 #define LL_HRTIM_BURSTMODE_MAINTAINCLOCK (uint32_t)0x000000 /*!< Timer counter clock is maintained and the timer operates normally */ 00795 #define LL_HRTIM_BURSTMODE_RESETCOUNTER (HRTIM_BMCR_MTBM) /*!< Timer counter clock is stopped and the counter is reset */ 00796 /** 00797 * @} 00798 */ 00799 00800 /** @defgroup HRTIM_LL_EC_BURSTDMA BURST DMA 00801 * @{ 00802 * @brief Constants defining the registers that can be written during a burst DMA operation. 00803 */ 00804 #define LL_HRTIM_BURSTDMA_NONE 0x00000000U /*!< No register is updated by Burst DMA accesses */ 00805 #define LL_HRTIM_BURSTDMA_MCR (HRTIM_BDMUPR_MCR) /*!< MCR register is updated by Burst DMA accesses */ 00806 #define LL_HRTIM_BURSTDMA_MICR (HRTIM_BDMUPR_MICR) /*!< MICR register is updated by Burst DMA accesses */ 00807 #define LL_HRTIM_BURSTDMA_MDIER (HRTIM_BDMUPR_MDIER) /*!< MDIER register is updated by Burst DMA accesses */ 00808 #define LL_HRTIM_BURSTDMA_MCNT (HRTIM_BDMUPR_MCNT) /*!< MCNTR register is updated by Burst DMA accesses */ 00809 #define LL_HRTIM_BURSTDMA_MPER (HRTIM_BDMUPR_MPER) /*!< MPER register is updated by Burst DMA accesses */ 00810 #define LL_HRTIM_BURSTDMA_MREP (HRTIM_BDMUPR_MREP) /*!< MREPR register is updated by Burst DMA accesses */ 00811 #define LL_HRTIM_BURSTDMA_MCMP1 (HRTIM_BDMUPR_MCMP1) /*!< MCMP1R register is updated by Burst DMA accesses */ 00812 #define LL_HRTIM_BURSTDMA_MCMP2 (HRTIM_BDMUPR_MCMP2) /*!< MCMP2R register is updated by Burst DMA accesses */ 00813 #define LL_HRTIM_BURSTDMA_MCMP3 (HRTIM_BDMUPR_MCMP3) /*!< MCMP3R register is updated by Burst DMA accesses */ 00814 #define LL_HRTIM_BURSTDMA_MCMP4 (HRTIM_BDMUPR_MCMP4) /*!< MCMP4R register is updated by Burst DMA accesses */ 00815 #define LL_HRTIM_BURSTDMA_TIMMCR (HRTIM_BDTUPR_TIMCR) /*!< TIMxCR register is updated by Burst DMA accesses */ 00816 #define LL_HRTIM_BURSTDMA_TIMICR (HRTIM_BDTUPR_TIMICR) /*!< TIMxICR register is updated by Burst DMA accesses */ 00817 #define LL_HRTIM_BURSTDMA_TIMDIER (HRTIM_BDTUPR_TIMDIER) /*!< TIMxDIER register is updated by Burst DMA accesses */ 00818 #define LL_HRTIM_BURSTDMA_TIMCNT (HRTIM_BDTUPR_TIMCNT) /*!< CNTxCR register is updated by Burst DMA accesses */ 00819 #define LL_HRTIM_BURSTDMA_TIMPER (HRTIM_BDTUPR_TIMPER) /*!< PERxR register is updated by Burst DMA accesses */ 00820 #define LL_HRTIM_BURSTDMA_TIMREP (HRTIM_BDTUPR_TIMREP) /*!< REPxR register is updated by Burst DMA accesses */ 00821 #define LL_HRTIM_BURSTDMA_TIMCMP1 (HRTIM_BDTUPR_TIMCMP1) /*!< CMP1xR register is updated by Burst DMA accesses */ 00822 #define LL_HRTIM_BURSTDMA_TIMCMP2 (HRTIM_BDTUPR_TIMCMP2) /*!< CMP2xR register is updated by Burst DMA accesses */ 00823 #define LL_HRTIM_BURSTDMA_TIMCMP3 (HRTIM_BDTUPR_TIMCMP3) /*!< CMP3xR register is updated by Burst DMA accesses */ 00824 #define LL_HRTIM_BURSTDMA_TIMCMP4 (HRTIM_BDTUPR_TIMCMP4) /*!< CMP4xR register is updated by Burst DMA accesses */ 00825 #define LL_HRTIM_BURSTDMA_TIMDTR (HRTIM_BDTUPR_TIMDTR) /*!< DTxR register is updated by Burst DMA accesses */ 00826 #define LL_HRTIM_BURSTDMA_TIMSET1R (HRTIM_BDTUPR_TIMSET1R) /*!< SET1R register is updated by Burst DMA accesses */ 00827 #define LL_HRTIM_BURSTDMA_TIMRST1R (HRTIM_BDTUPR_TIMRST1R) /*!< RST1R register is updated by Burst DMA accesses */ 00828 #define LL_HRTIM_BURSTDMA_TIMSET2R (HRTIM_BDTUPR_TIMSET2R) /*!< SET2R register is updated by Burst DMA accesses */ 00829 #define LL_HRTIM_BURSTDMA_TIMRST2R (HRTIM_BDTUPR_TIMRST2R) /*!< RST1R register is updated by Burst DMA accesses */ 00830 #define LL_HRTIM_BURSTDMA_TIMEEFR1 (HRTIM_BDTUPR_TIMEEFR1) /*!< EEFxR1 register is updated by Burst DMA accesses */ 00831 #define LL_HRTIM_BURSTDMA_TIMEEFR2 (HRTIM_BDTUPR_TIMEEFR2) /*!< EEFxR2 register is updated by Burst DMA accesses */ 00832 #define LL_HRTIM_BURSTDMA_TIMRSTR (HRTIM_BDTUPR_TIMRSTR) /*!< RSTxR register is updated by Burst DMA accesses */ 00833 #define LL_HRTIM_BURSTDMA_TIMCHPR (HRTIM_BDTUPR_TIMCHPR) /*!< CHPxR register is updated by Burst DMA accesses */ 00834 #define LL_HRTIM_BURSTDMA_TIMOUTR (HRTIM_BDTUPR_TIMOUTR) /*!< OUTxR register is updated by Burst DMA accesses */ 00835 #define LL_HRTIM_BURSTDMA_TIMFLTR (HRTIM_BDTUPR_TIMFLTR) /*!< FLTxR register is updated by Burst DMA accesses */ 00836 /** 00837 * @} 00838 */ 00839 00840 /** @defgroup HRTIM_LL_EC_CPPSTAT CURRENT PUSH-PULL STATUS 00841 * @{ 00842 * @brief Constants defining on which output the signal is currently applied in push-pull mode. 00843 */ 00844 #define LL_HRTIM_CPPSTAT_OUTPUT1 ((uint32_t) 0x00000000U) /*!< Signal applied on output 1 and output 2 forced inactive */ 00845 #define LL_HRTIM_CPPSTAT_OUTPUT2 (HRTIM_TIMISR_CPPSTAT) /*!< Signal applied on output 2 and output 1 forced inactive */ 00846 /** 00847 * @} 00848 */ 00849 00850 /** @defgroup HRTIM_LL_EC_IPPSTAT IDLE PUSH-PULL STATUS 00851 * @{ 00852 * @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. 00853 */ 00854 #define LL_HRTIM_IPPSTAT_OUTPUT1 ((uint32_t) 0x00000000U) /*!< Protection occurred when the output 1 was active and output 2 forced inactive */ 00855 #define LL_HRTIM_IPPSTAT_OUTPUT2 (HRTIM_TIMISR_IPPSTAT) /*!< Protection occurred when the output 2 was active and output 1 forced inactive */ 00856 /** 00857 * @} 00858 */ 00859 00860 /** @defgroup HRTIM_LL_EC_TIM_EEFLTR TIMER EXTERNAL EVENT FILTER 00861 * @{ 00862 * @brief Constants defining the event filtering applied to external events by a timer. 00863 */ 00864 #define LL_HRTIM_EEFLTR_NONE (0x00000000U) 00865 #define LL_HRTIM_EEFLTR_BLANKINGCMP1 (HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 1 */ 00866 #define LL_HRTIM_EEFLTR_BLANKINGCMP2 (HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from counter reset/roll-over to Compare 2 */ 00867 #define LL_HRTIM_EEFLTR_BLANKINGCMP3 (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 3 */ 00868 #define LL_HRTIM_EEFLTR_BLANKINGCMP4 (HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from counter reset/roll-over to Compare 4 */ 00869 #define LL_HRTIM_EEFLTR_BLANKINGFLTR1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */ 00870 #define LL_HRTIM_EEFLTR_BLANKINGFLTR2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */ 00871 #define LL_HRTIM_EEFLTR_BLANKINGFLTR3 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */ 00872 #define LL_HRTIM_EEFLTR_BLANKINGFLTR4 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */ 00873 #define LL_HRTIM_EEFLTR_BLANKINGFLTR5 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */ 00874 #define LL_HRTIM_EEFLTR_BLANKINGFLTR6 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */ 00875 #define LL_HRTIM_EEFLTR_BLANKINGFLTR7 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */ 00876 #define LL_HRTIM_EEFLTR_BLANKINGFLTR8 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */ 00877 #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 2 */ 00878 #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 3 */ 00879 #define LL_HRTIM_EEFLTR_WINDOWINGTIM (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from another timing unit: TIMWIN source */ 00880 /** 00881 * @} 00882 */ 00883 00884 /** @defgroup HRTIM_LL_EC_TIM_LATCHSTATUS TIMER EXTERNAL EVENT LATCH STATUS 00885 * @{ 00886 * @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. 00887 */ 00888 #define LL_HRTIM_EELATCH_DISABLED 0x00000000U /*!< Event is ignored if it happens during a blank, or passed through during a window */ 00889 #define LL_HRTIM_EELATCH_ENABLED HRTIM_EEFR1_EE1LTCH /*!< Event is latched and delayed till the end of the blanking or windowing period */ 00890 /** 00891 * @} 00892 */ 00893 00894 /** @defgroup HRTIM_LL_EC_DT_PRESCALER DEADTIME PRESCALER 00895 * @{ 00896 * @brief Constants defining division ratio between the timer clock frequency (fHRTIM) and the deadtime generator clock (fDTG). 00897 */ 00898 #define LL_HRTIM_DT_PRESCALER_MUL8 0x00000000U /*!< fDTG = fHRTIM * 8 */ 00899 #define LL_HRTIM_DT_PRESCALER_MUL4 (HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM * 4 */ 00900 #define LL_HRTIM_DT_PRESCALER_MUL2 (HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM * 2 */ 00901 #define LL_HRTIM_DT_PRESCALER_DIV1 (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM */ 00902 #define LL_HRTIM_DT_PRESCALER_DIV2 (HRTIM_DTR_DTPRSC_2) /*!< fDTG = fHRTIM / 2 */ 00903 #define LL_HRTIM_DT_PRESCALER_DIV4 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 4 */ 00904 #define LL_HRTIM_DT_PRESCALER_DIV8 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM / 8 */ 00905 #define LL_HRTIM_DT_PRESCALER_DIV16 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 16 */ 00906 /** 00907 * @} 00908 */ 00909 00910 /** @defgroup HRTIM_LL_EC_DT_RISING_SIGN DEADTIME RISING SIGN 00911 * @{ 00912 * @brief Constants defining whether the deadtime is positive or negative (overlapping signal) on rising edge. 00913 */ 00914 #define LL_HRTIM_DT_RISING_POSITIVE 0x00000000U /*!< Positive deadtime on rising edge */ 00915 #define LL_HRTIM_DT_RISING_NEGATIVE (HRTIM_DTR_SDTR) /*!< Negative deadtime on rising edge */ 00916 /** 00917 * @} 00918 */ 00919 00920 /** @defgroup HRTIM_LL_EC_DT_FALLING_SIGN DEADTIME FALLING SIGN 00921 * @{ 00922 * @brief Constants defining whether the deadtime is positive or negative (overlapping signal) on falling edge. 00923 */ 00924 #define LL_HRTIM_DT_FALLING_POSITIVE 0x00000000U /*!< Positive deadtime on falling edge */ 00925 #define LL_HRTIM_DT_FALLING_NEGATIVE (HRTIM_DTR_SDTF) /*!< Negative deadtime on falling edge */ 00926 /** 00927 * @} 00928 */ 00929 00930 /** @defgroup HRTIM_LL_EC_CHP_PRESCALER CHOPPER MODE PRESCALER 00931 * @{ 00932 * @brief Constants defining the frequency of the generated high frequency carrier (fCHPFRQ). 00933 */ 00934 #define LL_HRTIM_CHP_PRESCALER_DIV16 0x00000000U /*!< fCHPFRQ = fHRTIM / 16 */ 00935 #define LL_HRTIM_CHP_PRESCALER_DIV32 (HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 32 */ 00936 #define LL_HRTIM_CHP_PRESCALER_DIV48 (HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 48 */ 00937 #define LL_HRTIM_CHP_PRESCALER_DIV64 (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 64 */ 00938 #define LL_HRTIM_CHP_PRESCALER_DIV80 (HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 80 */ 00939 #define LL_HRTIM_CHP_PRESCALER_DIV96 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 96 */ 00940 #define LL_HRTIM_CHP_PRESCALER_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 112 */ 00941 #define LL_HRTIM_CHP_PRESCALER_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 128 */ 00942 #define LL_HRTIM_CHP_PRESCALER_DIV144 (HRTIM_CHPR_CARFRQ_3) /*!< fCHPFRQ = fHRTIM / 144 */ 00943 #define LL_HRTIM_CHP_PRESCALER_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 160 */ 00944 #define LL_HRTIM_CHP_PRESCALER_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 176 */ 00945 #define LL_HRTIM_CHP_PRESCALER_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 192 */ 00946 #define LL_HRTIM_CHP_PRESCALER_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 208 */ 00947 #define LL_HRTIM_CHP_PRESCALER_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 224 */ 00948 #define LL_HRTIM_CHP_PRESCALER_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 240 */ 00949 #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 */ 00950 /** 00951 * @} 00952 */ 00953 00954 /** @defgroup HRTIM_LL_EC_CHP_DUTYCYCLE CHOPPER MODE DUTY CYCLE 00955 * @{ 00956 * @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). 00957 */ 00958 #define LL_HRTIM_CHP_DUTYCYCLE_0 0x00000000U /*!< Only 1st pulse is present */ 00959 #define LL_HRTIM_CHP_DUTYCYCLE_125 (HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 12.5 % */ 00960 #define LL_HRTIM_CHP_DUTYCYCLE_250 (HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 25 % */ 00961 #define LL_HRTIM_CHP_DUTYCYCLE_375 (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 37.5 % */ 00962 #define LL_HRTIM_CHP_DUTYCYCLE_500 (HRTIM_CHPR_CARDTY_2) /*!< Duty cycle of the carrier signal is 50 % */ 00963 #define LL_HRTIM_CHP_DUTYCYCLE_625 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 62.5 % */ 00964 #define LL_HRTIM_CHP_DUTYCYCLE_750 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 75 % */ 00965 #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 % */ 00966 /** 00967 * @} 00968 */ 00969 00970 /** @defgroup HRTIM_LL_EC_CHP_PULSEWIDTH CHOPPER MODE PULSE WIDTH 00971 * @{ 00972 * @brief Constants defining the pulse width of the first pulse of the generated high frequency carrier. 00973 */ 00974 #define LL_HRTIM_CHP_PULSEWIDTH_16 0x00000000U /*!< tSTPW = tHRTIM x 16 */ 00975 #define LL_HRTIM_CHP_PULSEWIDTH_32 (HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 32 */ 00976 #define LL_HRTIM_CHP_PULSEWIDTH_48 (HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 48 */ 00977 #define LL_HRTIM_CHP_PULSEWIDTH_64 (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 64 */ 00978 #define LL_HRTIM_CHP_PULSEWIDTH_80 (HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 80 */ 00979 #define LL_HRTIM_CHP_PULSEWIDTH_96 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 96 */ 00980 #define LL_HRTIM_CHP_PULSEWIDTH_112 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 112 */ 00981 #define LL_HRTIM_CHP_PULSEWIDTH_128 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 128 */ 00982 #define LL_HRTIM_CHP_PULSEWIDTH_144 (HRTIM_CHPR_STRPW_3) /*!< tSTPW = tHRTIM x 144 */ 00983 #define LL_HRTIM_CHP_PULSEWIDTH_160 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 160 */ 00984 #define LL_HRTIM_CHP_PULSEWIDTH_176 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 176 */ 00985 #define LL_HRTIM_CHP_PULSEWIDTH_192 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 192 */ 00986 #define LL_HRTIM_CHP_PULSEWIDTH_208 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 208 */ 00987 #define LL_HRTIM_CHP_PULSEWIDTH_224 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 224 */ 00988 #define LL_HRTIM_CHP_PULSEWIDTH_240 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 240 */ 00989 #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 */ 00990 /** 00991 * @} 00992 */ 00993 00994 /** @defgroup HRTIM_LL_EC_CROSSBAR_INPUT CROSSBAR INPUT 00995 * @{ 00996 * @brief Constants defining the events that can be selected to configure the set/reset crossbar of a timer output. 00997 */ 00998 #define LL_HRTIM_CROSSBAR_NONE 0x00000000U /*!< Reset the output set crossbar */ 00999 #define LL_HRTIM_CROSSBAR_RESYNC (HRTIM_SET1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces an output level transition */ 01000 #define LL_HRTIM_CROSSBAR_TIMPER (HRTIM_SET1R_PER) /*!< Timer period event forces an output level transition */ 01001 #define LL_HRTIM_CROSSBAR_TIMCMP1 (HRTIM_SET1R_CMP1) /*!< Timer compare 1 event forces an output level transition */ 01002 #define LL_HRTIM_CROSSBAR_TIMCMP2 (HRTIM_SET1R_CMP2) /*!< Timer compare 2 event forces an output level transition */ 01003 #define LL_HRTIM_CROSSBAR_TIMCMP3 (HRTIM_SET1R_CMP3) /*!< Timer compare 3 event forces an output level transition */ 01004 #define LL_HRTIM_CROSSBAR_TIMCMP4 (HRTIM_SET1R_CMP4) /*!< Timer compare 4 event forces an output level transition */ 01005 #define LL_HRTIM_CROSSBAR_MASTERPER (HRTIM_SET1R_MSTPER) /*!< The master timer period event forces an output level transition */ 01006 #define LL_HRTIM_CROSSBAR_MASTERCMP1 (HRTIM_SET1R_MSTCMP1) /*!< Master Timer compare 1 event forces an output level transition */ 01007 #define LL_HRTIM_CROSSBAR_MASTERCMP2 (HRTIM_SET1R_MSTCMP2) /*!< Master Timer compare 2 event forces an output level transition */ 01008 #define LL_HRTIM_CROSSBAR_MASTERCMP3 (HRTIM_SET1R_MSTCMP3) /*!< Master Timer compare 3 event forces an output level transition */ 01009 #define LL_HRTIM_CROSSBAR_MASTERCMP4 (HRTIM_SET1R_MSTCMP4) /*!< Master Timer compare 4 event forces an output level transition */ 01010 #define LL_HRTIM_CROSSBAR_TIMEV_1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces an output level transition */ 01011 #define LL_HRTIM_CROSSBAR_TIMEV_2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces an output level transition */ 01012 #define LL_HRTIM_CROSSBAR_TIMEV_3 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces an output level transition */ 01013 #define LL_HRTIM_CROSSBAR_TIMEV_4 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces an output level transition */ 01014 #define LL_HRTIM_CROSSBAR_TIMEV_5 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces an output level transition */ 01015 #define LL_HRTIM_CROSSBAR_TIMEV_6 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces an output level transition */ 01016 #define LL_HRTIM_CROSSBAR_TIMEV_7 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces an output level transition */ 01017 #define LL_HRTIM_CROSSBAR_TIMEV_8 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces an output level transition */ 01018 #define LL_HRTIM_CROSSBAR_TIMEV_9 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces an output level transition */ 01019 #define LL_HRTIM_CROSSBAR_EEV_1 (HRTIM_SET1R_EXTVNT1) /*!< External event 1 forces an output level transition */ 01020 #define LL_HRTIM_CROSSBAR_EEV_2 (HRTIM_SET1R_EXTVNT2) /*!< External event 2 forces an output level transition */ 01021 #define LL_HRTIM_CROSSBAR_EEV_3 (HRTIM_SET1R_EXTVNT3) /*!< External event 3 forces an output level transition */ 01022 #define LL_HRTIM_CROSSBAR_EEV_4 (HRTIM_SET1R_EXTVNT4) /*!< External event 4 forces an output level transition */ 01023 #define LL_HRTIM_CROSSBAR_EEV_5 (HRTIM_SET1R_EXTVNT5) /*!< External event 5 forces an output level transition */ 01024 #define LL_HRTIM_CROSSBAR_EEV_6 (HRTIM_SET1R_EXTVNT6) /*!< External event 6 forces an output level transition */ 01025 #define LL_HRTIM_CROSSBAR_EEV_7 (HRTIM_SET1R_EXTVNT7) /*!< External event 7 forces an output level transition */ 01026 #define LL_HRTIM_CROSSBAR_EEV_8 (HRTIM_SET1R_EXTVNT8) /*!< External event 8 forces an output level transition */ 01027 #define LL_HRTIM_CROSSBAR_EEV_9 (HRTIM_SET1R_EXTVNT9) /*!< External event 9 forces an output level transition */ 01028 #define LL_HRTIM_CROSSBAR_EEV_10 (HRTIM_SET1R_EXTVNT10) /*!< External event 10 forces an output level transition */ 01029 #define LL_HRTIM_CROSSBAR_UPDATE (HRTIM_SET1R_UPDATE) /*!< Timer register update event forces an output level transition */ 01030 /** 01031 * @} 01032 */ 01033 01034 /** @defgroup HRTIM_LL_EC_OUT_POLARITY OUPUT_POLARITY 01035 * @{ 01036 * @brief Constants defining the polarity of a timer output. 01037 */ 01038 #define LL_HRTIM_OUT_POSITIVE_POLARITY 0x00000000U /*!< Output is active HIGH */ 01039 #define LL_HRTIM_OUT_NEGATIVE_POLARITY (HRTIM_OUTR_POL1) /*!< Output is active LOW */ 01040 /** 01041 * @} 01042 */ 01043 01044 /** @defgroup HRTIM_LL_EC_OUT_IDLEMODE OUTPUT IDLE MODE 01045 * @{ 01046 * @brief Constants defining whether or not the timer output transition to its IDLE state when burst mode is entered. 01047 */ 01048 #define LL_HRTIM_OUT_NO_IDLE 0x00000000U /*!< The output is not affected by the burst mode operation */ 01049 #define LL_HRTIM_OUT_IDLE_WHEN_BURST (HRTIM_OUTR_IDLM1) /*!< The output is in idle state when requested by the burst mode controller */ 01050 /** 01051 * @} 01052 */ 01053 01054 /** @defgroup HRTIM_LL_EC_HALF_MODE HALF MODE 01055 * @{ 01056 * @brief Constants defining the half mode of an HRTIM Timer instance. 01057 */ 01058 #define LL_HRTIM_HALF_MODE_DISABLED 0x000U /*!< HRTIM Half Mode is disabled */ 01059 #define LL_HRTIM_HALF_MODE_ENABLE HRTIM_MCR_HALF /*!< HRTIM Half Mode is Half */ 01060 /** 01061 * @} 01062 */ 01063 01064 /** @defgroup HRTIM_LL_EC_OUT_IDLELEVEL OUTPUT IDLE LEVEL 01065 * @{ 01066 * @brief Constants defining the output level when output is in IDLE state 01067 */ 01068 #define LL_HRTIM_OUT_IDLELEVEL_INACTIVE 0x00000000U /*!< Output at inactive level when in IDLE state */ 01069 #define LL_HRTIM_OUT_IDLELEVEL_ACTIVE (HRTIM_OUTR_IDLES1) /*!< Output at active level when in IDLE state */ 01070 /** 01071 * @} 01072 */ 01073 01074 /** @defgroup HRTIM_LL_EC_OUT_FAULTSTATE OUTPUT FAULT STATE 01075 * @{ 01076 * @brief Constants defining the output level when output is in FAULT state. 01077 */ 01078 #define LL_HRTIM_OUT_FAULTSTATE_NO_ACTION 0x00000000U /*!< The output is not affected by the fault input */ 01079 #define LL_HRTIM_OUT_FAULTSTATE_ACTIVE (HRTIM_OUTR_FAULT1_0) /*!< Output at active level when in FAULT state */ 01080 #define LL_HRTIM_OUT_FAULTSTATE_INACTIVE (HRTIM_OUTR_FAULT1_1) /*!< Output at inactive level when in FAULT state */ 01081 #define LL_HRTIM_OUT_FAULTSTATE_HIGHZ (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0) /*!< Output is tri-stated when in FAULT state */ 01082 /** 01083 * @} 01084 */ 01085 01086 /** @defgroup HRTIM_LL_EC_OUT_CHOPPERMODE OUTPUT CHOPPER MODE 01087 * @{ 01088 * @brief Constants defining whether or not chopper mode is enabled for a timer output. 01089 */ 01090 #define LL_HRTIM_OUT_CHOPPERMODE_DISABLED 0x00000000U /*!< Output signal is not altered */ 01091 #define LL_HRTIM_OUT_CHOPPERMODE_ENABLED (HRTIM_OUTR_CHP1) /*!< Output signal is chopped by a carrier signal */ 01092 /** 01093 * @} 01094 */ 01095 01096 /** @defgroup HRTIM_LL_EC_OUT_BM_ENTRYMODE OUTPUT BURST MODE ENTRY MODE 01097 * @{ 01098 * @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 01099 during a programmable period before the output takes its idle state. 01100 */ 01101 #define LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR 0x00000000U /*!< The programmed Idle state is applied immediately to the Output */ 01102 #define LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED (HRTIM_OUTR_DIDL1) /*!< Deadtime is inserted on output before entering the idle mode */ 01103 /** 01104 * @} 01105 */ 01106 /** @defgroup HRTIM_LL_EC_OUT_LEVEL OUTPUT LEVEL 01107 * @{ 01108 * @brief Constants defining the level of a timer output. 01109 */ 01110 #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) */ 01111 #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) */ 01112 /** 01113 * @} 01114 */ 01115 01116 /** @defgroup HRTIM_LL_EC_EE_SRC EXTERNAL EVENT SOURCE 01117 * @{ 01118 * @brief Constants defining available sources associated to external events. 01119 */ 01120 #define LL_HRTIM_EE_SRC_1 0x00000000U /*!< External event source 1 (EExSrc1)*/ 01121 #define LL_HRTIM_EE_SRC_2 (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2 (EExSrc2) */ 01122 #define LL_HRTIM_EE_SRC_3 (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3 (EExSrc3) */ 01123 #define LL_HRTIM_EE_SRC_4 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4 (EExSrc4) */ 01124 /** 01125 * @} 01126 */ 01127 /** @defgroup HRTIM_LL_EC_EE_POLARITY EXTERNAL EVENT POLARITY 01128 * @{ 01129 * @brief Constants defining the polarity of an external event. 01130 */ 01131 #define LL_HRTIM_EE_POLARITY_HIGH 0x00000000U /*!< External event is active high */ 01132 #define LL_HRTIM_EE_POLARITY_LOW (HRTIM_EECR1_EE1POL) /*!< External event is active low */ 01133 /** 01134 * @} 01135 */ 01136 01137 /** @defgroup HRTIM_LL_EC_EE_SENSITIVITY EXTERNAL EVENT SENSITIVITY 01138 * @{ 01139 * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive) of an external event. 01140 */ 01141 #define LL_HRTIM_EE_SENSITIVITY_LEVEL 0x00000000U /*!< External event is active on level */ 01142 #define LL_HRTIM_EE_SENSITIVITY_RISINGEDGE (HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising edge */ 01143 #define LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE (HRTIM_EECR1_EE1SNS_1) /*!< External event is active on Falling edge */ 01144 #define LL_HRTIM_EE_SENSITIVITY_BOTHEDGES (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising and Falling edges */ 01145 /** 01146 * @} 01147 */ 01148 01149 /** @defgroup HRTIM_LL_EC_EE_FASTMODE EXTERNAL EVENT FAST MODE 01150 * @{ 01151 * @brief Constants defining whether or not an external event is programmed in fast mode. 01152 */ 01153 #define LL_HRTIM_EE_FASTMODE_DISABLE 0x00000000U /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs */ 01154 #define LL_HRTIM_EE_FASTMODE_ENABLE (HRTIM_EECR1_EE1FAST) /*!< External Event is acting asynchronously on outputs (low latency mode) */ 01155 /** 01156 * @} 01157 */ 01158 01159 /** @defgroup HRTIM_LL_EC_EE_FILTER EXTERNAL EVENT DIGITAL FILTER 01160 * @{ 01161 * @brief Constants defining the frequency used to sample an external event input (fSAMPLING) and the length (N) of the digital filter applied. 01162 */ 01163 #define LL_HRTIM_EE_FILTER_NONE 0x00000000U /*!< Filter disabled */ 01164 #define LL_HRTIM_EE_FILTER_1 (HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fHRTIM, N=2 */ 01165 #define LL_HRTIM_EE_FILTER_2 (HRTIM_EECR3_EE6F_1) /*!< fSAMPLING = fHRTIM, N=4 */ 01166 #define LL_HRTIM_EE_FILTER_3 (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fHRTIM, N=8 */ 01167 #define LL_HRTIM_EE_FILTER_4 (HRTIM_EECR3_EE6F_2) /*!< fSAMPLING = fEEVS/2, N=6 */ 01168 #define LL_HRTIM_EE_FILTER_5 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fEEVS/2, N=8 */ 01169 #define LL_HRTIM_EE_FILTER_6 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING = fEEVS/4, N=6 */ 01170 #define LL_HRTIM_EE_FILTER_7 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fEEVS/4, N=8 */ 01171 #define LL_HRTIM_EE_FILTER_8 (HRTIM_EECR3_EE6F_3) /*!< fSAMPLING = fEEVS/8, N=6 */ 01172 #define LL_HRTIM_EE_FILTER_9 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fEEVS/8, N=8 */ 01173 #define LL_HRTIM_EE_FILTER_10 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING = fEEVS/16, N=5 */ 01174 #define LL_HRTIM_EE_FILTER_11 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fEEVS/16, N=6 */ 01175 #define LL_HRTIM_EE_FILTER_12 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2) /*!< fSAMPLING = fEEVS/16, N=8 */ 01176 #define LL_HRTIM_EE_FILTER_13 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING = fEEVS/32, N=5 */ 01177 #define LL_HRTIM_EE_FILTER_14 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING = fEEVS/32, N=6 */ 01178 #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 */ 01179 /** 01180 * @} 01181 */ 01182 01183 /** @defgroup HRTIM_LL_EC_EE_PRESCALER EXTERNAL EVENT PRESCALER 01184 * @{ 01185 * @brief Constants defining division ratio between the timer clock frequency (fHRTIM) and the external event signal sampling clock (fEEVS) used by the digital filters. 01186 */ 01187 #define LL_HRTIM_EE_PRESCALER_DIV1 0x00000000U /*!< fEEVS = fHRTIM */ 01188 #define LL_HRTIM_EE_PRESCALER_DIV2 (HRTIM_EECR3_EEVSD_0) /*!< fEEVS = fHRTIM / 2 */ 01189 #define LL_HRTIM_EE_PRESCALER_DIV4 (HRTIM_EECR3_EEVSD_1) /*!< fEEVS = fHRTIM / 4 */ 01190 #define LL_HRTIM_EE_PRESCALER_DIV8 (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0) /*!< fEEVS = fHRTIM / 8 */ 01191 /** 01192 * @} 01193 */ 01194 01195 /** @defgroup HRTIM_LL_EC_FLT_SRC FAULT SOURCE 01196 * @{ 01197 * @brief Constants defining whether a faults is be triggered by any external or internal fault source. 01198 */ 01199 #define LL_HRTIM_FLT_SRC_DIGITALINPUT 0x00000000U /*!< Fault input is FLT input pin */ 01200 #define LL_HRTIM_FLT_SRC_INTERNAL HRTIM_FLTINR1_FLT1SRC /*!< Fault input is FLT_Int signal (e.g. internal comparator) */ 01201 /** 01202 * @} 01203 */ 01204 01205 /** @defgroup HRTIM_LL_EC_FLT_POLARITY FAULT POLARITY 01206 * @{ 01207 * @brief Constants defining the polarity of a fault event. 01208 */ 01209 #define LL_HRTIM_FLT_POLARITY_LOW 0x00000000U /*!< Fault input is active low */ 01210 #define LL_HRTIM_FLT_POLARITY_HIGH (HRTIM_FLTINR1_FLT1P) /*!< Fault input is active high */ 01211 /** 01212 * @} 01213 */ 01214 01215 /** @defgroup HRTIM_LL_EC_FLT_FILTER FAULT DIGITAL FILTER 01216 * @{ 01217 * @brief Constants defining the frequency used to sample the fault input (fSAMPLING) and the length (N) of the digital filter applied. 01218 */ 01219 #define LL_HRTIM_FLT_FILTER_NONE 0x00000000U /*!< Filter disabled */ 01220 #define LL_HRTIM_FLT_FILTER_1 (HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=2 */ 01221 #define LL_HRTIM_FLT_FILTER_2 (HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fHRTIM, N=4 */ 01222 #define LL_HRTIM_FLT_FILTER_3 (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=8 */ 01223 #define LL_HRTIM_FLT_FILTER_4 (HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/2, N=6 */ 01224 #define LL_HRTIM_FLT_FILTER_5 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/2, N=8 */ 01225 #define LL_HRTIM_FLT_FILTER_6 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/4, N=6 */ 01226 #define LL_HRTIM_FLT_FILTER_7 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/4, N=8 */ 01227 #define LL_HRTIM_FLT_FILTER_8 (HRTIM_FLTINR1_FLT1F_3) /*!< fSAMPLING= fFLTS/8, N=6 */ 01228 #define LL_HRTIM_FLT_FILTER_9 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/8, N=8 */ 01229 #define LL_HRTIM_FLT_FILTER_10 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/16, N=5 */ 01230 #define LL_HRTIM_FLT_FILTER_11 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/16, N=6 */ 01231 #define LL_HRTIM_FLT_FILTER_12 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/16, N=8 */ 01232 #define LL_HRTIM_FLT_FILTER_13 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32, N=5 */ 01233 #define LL_HRTIM_FLT_FILTER_14 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/32, N=6 */ 01234 #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 */ 01235 /** 01236 * @} 01237 */ 01238 01239 /** @defgroup HRTIM_LL_EC_FLT_PRESCALER BURST FAULT PRESCALER 01240 * @{ 01241 * @brief Constants defining the division ratio between the timer clock frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used by the digital filters. 01242 */ 01243 #define LL_HRTIM_FLT_PRESCALER_DIV1 0x00000000U /*!< fFLTS = fHRTIM */ 01244 #define LL_HRTIM_FLT_PRESCALER_DIV2 (HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS = fHRTIM / 2 */ 01245 #define LL_HRTIM_FLT_PRESCALER_DIV4 (HRTIM_FLTINR2_FLTSD_1) /*!< fFLTS = fHRTIM / 4 */ 01246 #define LL_HRTIM_FLT_PRESCALER_DIV8 (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS = fHRTIM / 8 */ 01247 /** 01248 * @} 01249 */ 01250 01251 /** @defgroup HRTIM_LL_EC_BM_MODE BURST MODE OPERATING MODE 01252 * @{ 01253 * @brief Constants defining if the burst mode is entered once or if it is continuously operating. 01254 */ 01255 #define LL_HRTIM_BM_MODE_SINGLESHOT 0x00000000U /*!< Burst mode operates in single shot mode */ 01256 #define LL_HRTIM_BM_MODE_CONTINOUS (HRTIM_BMCR_BMOM) /*!< Burst mode operates in continuous mode */ 01257 /** 01258 * @} 01259 */ 01260 01261 /** @defgroup HRTIM_LL_EC_BM_CLKSRC BURST MODE CLOCK SOURCE 01262 * @{ 01263 * @brief Constants defining the clock source for the burst mode counter. 01264 */ 01265 #define LL_HRTIM_BM_CLKSRC_MASTER 0x00000000U /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter */ 01266 #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 */ 01267 #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 */ 01268 #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 */ 01269 #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 */ 01270 #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 */ 01271 #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 */ 01272 #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 */ 01273 #define LL_HRTIM_BM_CLKSRC_TIM7_TRGO (HRTIM_BMCR_BMCLK_3) /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock */ 01274 #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 */ 01275 /** 01276 * @} 01277 */ 01278 01279 /** @defgroup HRTIM_LL_EC_BM_PRESCALER BURST MODE PRESCALER 01280 * @{ 01281 * @brief Constants defining the prescaling ratio of the fHRTIM clock for the burst mode controller (fBRST). 01282 */ 01283 #define LL_HRTIM_BM_PRESCALER_DIV1 0x00000000U /*!< fBRST = fHRTIM */ 01284 #define LL_HRTIM_BM_PRESCALER_DIV2 (HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2 */ 01285 #define LL_HRTIM_BM_PRESCALER_DIV4 (HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/4 */ 01286 #define LL_HRTIM_BM_PRESCALER_DIV8 (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8 */ 01287 #define LL_HRTIM_BM_PRESCALER_DIV16 (HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/16 */ 01288 #define LL_HRTIM_BM_PRESCALER_DIV32 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32 */ 01289 #define LL_HRTIM_BM_PRESCALER_DIV64 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/64 */ 01290 #define LL_HRTIM_BM_PRESCALER_DIV128 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/128 */ 01291 #define LL_HRTIM_BM_PRESCALER_DIV256 (HRTIM_BMCR_BMPRSC_3) /*!< fBRST = fHRTIM/256 */ 01292 #define LL_HRTIM_BM_PRESCALER_DIV512 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/512 */ 01293 #define LL_HRTIM_BM_PRESCALER_DIV1024 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/1024 */ 01294 #define LL_HRTIM_BM_PRESCALER_DIV2048 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2048*/ 01295 #define LL_HRTIM_BM_PRESCALER_DIV4096 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/4096 */ 01296 #define LL_HRTIM_BM_PRESCALER_DIV8192 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8192 */ 01297 #define LL_HRTIM_BM_PRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/16384 */ 01298 #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 */ 01299 /** 01300 * @} 01301 */ 01302 01303 /** @defgroup HRTIM_LL_EC_BM_TRIG HRTIM BURST MODE TRIGGER 01304 * @{ 01305 * @brief Constants defining the events that can be used to trig the burst mode operation. 01306 */ 01307 #define LL_HRTIM_BM_TRIG_NONE 0x00000000U /*!< No trigger */ 01308 #define LL_HRTIM_BM_TRIG_MASTER_RESET (HRTIM_BMTRGR_MSTRST) /*!< Master timer reset event is starting the burst mode operation */ 01309 #define LL_HRTIM_BM_TRIG_MASTER_REPETITION (HRTIM_BMTRGR_MSTREP) /*!< Master timer repetition event is starting the burst mode operation */ 01310 #define LL_HRTIM_BM_TRIG_MASTER_CMP1 (HRTIM_BMTRGR_MSTCMP1) /*!< Master timer compare 1 event is starting the burst mode operation */ 01311 #define LL_HRTIM_BM_TRIG_MASTER_CMP2 (HRTIM_BMTRGR_MSTCMP2) /*!< Master timer compare 2 event is starting the burst mode operation */ 01312 #define LL_HRTIM_BM_TRIG_MASTER_CMP3 (HRTIM_BMTRGR_MSTCMP3) /*!< Master timer compare 3 event is starting the burst mode operation */ 01313 #define LL_HRTIM_BM_TRIG_MASTER_CMP4 (HRTIM_BMTRGR_MSTCMP4) /*!< Master timer compare 4 event is starting the burst mode operation */ 01314 #define LL_HRTIM_BM_TRIG_TIMA_RESET (HRTIM_BMTRGR_TARST) /*!< Timer A reset event is starting the burst mode operation */ 01315 #define LL_HRTIM_BM_TRIG_TIMA_REPETITION (HRTIM_BMTRGR_TAREP) /*!< Timer A repetition event is starting the burst mode operation */ 01316 #define LL_HRTIM_BM_TRIG_TIMA_CMP1 (HRTIM_BMTRGR_TACMP1) /*!< Timer A compare 1 event is starting the burst mode operation */ 01317 #define LL_HRTIM_BM_TRIG_TIMA_CMP2 (HRTIM_BMTRGR_TACMP2) /*!< Timer A compare 2 event is starting the burst mode operation */ 01318 #define LL_HRTIM_BM_TRIG_TIMB_RESET (HRTIM_BMTRGR_TBRST) /*!< Timer B reset event is starting the burst mode operation */ 01319 #define LL_HRTIM_BM_TRIG_TIMB_REPETITION (HRTIM_BMTRGR_TBREP) /*!< Timer B repetition event is starting the burst mode operation */ 01320 #define LL_HRTIM_BM_TRIG_TIMB_CMP1 (HRTIM_BMTRGR_TBCMP1) /*!< Timer B compare 1 event is starting the burst mode operation */ 01321 #define LL_HRTIM_BM_TRIG_TIMB_CMP2 (HRTIM_BMTRGR_TBCMP2) /*!< Timer B compare 2 event is starting the burst mode operation */ 01322 #define LL_HRTIM_BM_TRIG_TIMC_RESET (HRTIM_BMTRGR_TCRST) /*!< Timer C resetevent is starting the burst mode operation */ 01323 #define LL_HRTIM_BM_TRIG_TIMC_REPETITION (HRTIM_BMTRGR_TCREP) /*!< Timer C repetition event is starting the burst mode operation */ 01324 #define LL_HRTIM_BM_TRIG_TIMC_CMP1 (HRTIM_BMTRGR_TCCMP1) /*!< Timer C compare 1 event is starting the burst mode operation */ 01325 #define LL_HRTIM_BM_TRIG_TIMC_CMP2 (HRTIM_BMTRGR_TCCMP2) /*!< Timer C compare 2 event is starting the burst mode operation */ 01326 #define LL_HRTIM_BM_TRIG_TIMD_RESET (HRTIM_BMTRGR_TDRST) /*!< Timer D reset event is starting the burst mode operation */ 01327 #define LL_HRTIM_BM_TRIG_TIMD_REPETITION (HRTIM_BMTRGR_TDREP) /*!< Timer D repetition event is starting the burst mode operation */ 01328 #define LL_HRTIM_BM_TRIG_TIMD_CMP1 (HRTIM_BMTRGR_TDCMP1) /*!< Timer D compare 1 event is starting the burst mode operation */ 01329 #define LL_HRTIM_BM_TRIG_TIMD_CMP2 (HRTIM_BMTRGR_TDCMP2) /*!< Timer D compare 2 event is starting the burst mode operation */ 01330 #define LL_HRTIM_BM_TRIG_TIME_RESET (HRTIM_BMTRGR_TERST) /*!< Timer E reset event is starting the burst mode operation */ 01331 #define LL_HRTIM_BM_TRIG_TIME_REPETITION (HRTIM_BMTRGR_TEREP) /*!< Timer E repetition event is starting the burst mode operation */ 01332 #define LL_HRTIM_BM_TRIG_TIME_CMP1 (HRTIM_BMTRGR_TECMP1) /*!< Timer E compare 1 event is starting the burst mode operation */ 01333 #define LL_HRTIM_BM_TRIG_TIME_CMP2 (HRTIM_BMTRGR_TECMP2) /*!< Timer E compare 2 event is starting the burst mode operation */ 01334 #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 */ 01335 #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 */ 01336 #define LL_HRTIM_BM_TRIG_EVENT_7 (HRTIM_BMTRGR_EEV7) /*!< External event 7 conditioned by TIMA filters is starting the burst mode operation */ 01337 #define LL_HRTIM_BM_TRIG_EVENT_8 (HRTIM_BMTRGR_EEV8) /*!< External event 8 conditioned by TIMD filters is starting the burst mode operation */ 01338 #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 */ 01339 /** 01340 * @} 01341 */ 01342 01343 /** @defgroup HRTIM_LL_EC_BM_STATUS HRTIM BURST MODE STATUS 01344 * @{ 01345 * @brief Constants defining the operating state of the burst mode controller. 01346 */ 01347 #define LL_HRTIM_BM_STATUS_NORMAL 0x00000000U /*!< Normal operation */ 01348 #define LL_HRTIM_BM_STATUS_BURST_ONGOING HRTIM_BMCR_BMSTAT /*!< Burst operation on-going */ 01349 /** 01350 * @} 01351 */ 01352 01353 /** 01354 * @} 01355 */ 01356 01357 /* Exported macro ------------------------------------------------------------*/ 01358 /** @defgroup HRTIM_LL_Exported_Macros HRTIM Exported Macros 01359 * @{ 01360 */ 01361 01362 /** @defgroup HRTIM_LL_EM_WRITE_READ Common Write and read registers Macros 01363 * @{ 01364 */ 01365 01366 /** 01367 * @brief Write a value in HRTIM register 01368 * @param __INSTANCE__ HRTIM Instance 01369 * @param __REG__ Register to be written 01370 * @param __VALUE__ Value to be written in the register 01371 * @retval None 01372 */ 01373 #define LL_HRTIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) 01374 01375 /** 01376 * @brief Read a value in HRTIM register 01377 * @param __INSTANCE__ HRTIM Instance 01378 * @param __REG__ Register to be read 01379 * @retval Register value 01380 */ 01381 #define LL_HRTIM_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) 01382 /** 01383 * @} 01384 */ 01385 01386 /** @defgroup HRTIM_LL_EM_Exported_Macros Exported_Macros 01387 * @{ 01388 */ 01389 /** 01390 * @brief HELPER macro returning the output state from output enable/disable status 01391 * @param __OUTPUT_STATUS_EN__ output enable status 01392 * @param __OUTPUT_STATUS_DIS__ output Disable status 01393 * @retval Returned value can be one of the following values: 01394 * @arg @ref LL_HRTIM_OUTPUTSTATE_IDLE 01395 * @arg @ref LL_HRTIM_OUTPUTSTATE_RUN 01396 * @arg @ref LL_HRTIM_OUTPUTSTATE_FAULT 01397 */ 01398 #define __LL_HRTIM_GET_OUTPUT_STATE(__OUTPUT_STATUS_EN__, __OUTPUT_STATUS_DIS__)\ 01399 (((__OUTPUT_STATUS_EN__) == 1) ? LL_HRTIM_OUTPUTSTATE_RUN :\ 01400 ((__OUTPUT_STATUS_DIS__) == 0) ? LL_HRTIM_OUTPUTSTATE_IDLE : LL_HRTIM_OUTPUTSTATE_FAULT) 01401 /** 01402 * @} 01403 */ 01404 01405 /** 01406 * @} 01407 */ 01408 01409 /* Exported functions --------------------------------------------------------*/ 01410 /** @defgroup HRTIM_LL_Exported_Functions HRTIM Exported Functions 01411 * @{ 01412 */ 01413 /** @defgroup HRTIM_LL_EF_HRTIM_Control HRTIM_Control 01414 * @{ 01415 */ 01416 01417 /** 01418 * @brief Select the HRTIM synchronization input source. 01419 * @note This function must not be called when the concerned timer(s) is (are) enabled . 01420 * @rmtoll MCR SYNCIN LL_HRTIM_SetSyncInSrc 01421 * @param HRTIMx High Resolution Timer instance 01422 * @param SyncInSrc This parameter can be one of the following values: 01423 * @arg @ref LL_HRTIM_SYNCIN_SRC_NONE 01424 * @arg @ref LL_HRTIM_SYNCIN_SRC_TIM_EVENT 01425 * @arg @ref LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT 01426 * @retval None 01427 */ 01428 __STATIC_INLINE void LL_HRTIM_SetSyncInSrc(HRTIM_TypeDef *HRTIMx, uint32_t SyncInSrc) 01429 { 01430 MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_IN, SyncInSrc); 01431 } 01432 01433 /** 01434 * @brief Get actual HRTIM synchronization input source. 01435 * @rmtoll MCR SYNCIN LL_HRTIM_SetSyncInSrc 01436 * @param HRTIMx High Resolution Timer instance 01437 * @retval SyncInSrc Returned value can be one of the following values: 01438 * @arg @ref LL_HRTIM_SYNCIN_SRC_NONE 01439 * @arg @ref LL_HRTIM_SYNCIN_SRC_TIM_EVENT 01440 * @arg @ref LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT 01441 */ 01442 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncInSrc(HRTIM_TypeDef *HRTIMx) 01443 { 01444 return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_IN)); 01445 } 01446 01447 /** 01448 * @brief Configure the HRTIM synchronization output. 01449 * @rmtoll MCR SYNCSRC LL_HRTIM_ConfigSyncOut\n 01450 * MCR SYNCOUT LL_HRTIM_ConfigSyncOut 01451 * @param HRTIMx High Resolution Timer instance 01452 * @param Config This parameter can be one of the following values: 01453 * @arg @ref LL_HRTIM_SYNCOUT_DISABLED 01454 * @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE 01455 * @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE 01456 * @param Src This parameter can be one of the following values: 01457 * @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START 01458 * @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1 01459 * @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START 01460 * @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1 01461 * @retval None 01462 */ 01463 __STATIC_INLINE void LL_HRTIM_ConfigSyncOut(HRTIM_TypeDef *HRTIMx, uint32_t Config, uint32_t Src) 01464 { 01465 MODIFY_REG(HRTIMx->sMasterRegs.MCR, (HRTIM_MCR_SYNC_OUT | HRTIM_MCR_SYNC_SRC), (Config | Src)); 01466 } 01467 01468 /** 01469 * @brief Set the routing and conditioning of the synchronization output event. 01470 * @rmtoll MCR SYNCOUT LL_HRTIM_SetSyncOutConfig 01471 * @note This function can be called only when the master timer is enabled. 01472 * @param HRTIMx High Resolution Timer instance 01473 * @param SyncOutConfig This parameter can be one of the following values: 01474 * @arg @ref LL_HRTIM_SYNCOUT_DISABLED 01475 * @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE 01476 * @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE 01477 * @retval None 01478 */ 01479 __STATIC_INLINE void LL_HRTIM_SetSyncOutConfig(HRTIM_TypeDef *HRTIMx, uint32_t SyncOutConfig) 01480 { 01481 MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_OUT, SyncOutConfig); 01482 } 01483 01484 /** 01485 * @brief Get actual routing and conditioning of the synchronization output event. 01486 * @rmtoll MCR SYNCOUT LL_HRTIM_GetSyncOutConfig 01487 * @param HRTIMx High Resolution Timer instance 01488 * @retval SyncOutConfig Returned value can be one of the following values: 01489 * @arg @ref LL_HRTIM_SYNCOUT_DISABLED 01490 * @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE 01491 * @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE 01492 */ 01493 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncOutConfig(HRTIM_TypeDef *HRTIMx) 01494 { 01495 return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_OUT)); 01496 } 01497 01498 /** 01499 * @brief Set the source and event to be sent on the HRTIM synchronization output. 01500 * @rmtoll MCR SYNCSRC LL_HRTIM_SetSyncOutSrc 01501 * @param HRTIMx High Resolution Timer instance 01502 * @param SyncOutSrc This parameter can be one of the following values: 01503 * @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START 01504 * @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1 01505 * @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START 01506 * @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1 01507 * @retval None 01508 */ 01509 __STATIC_INLINE void LL_HRTIM_SetSyncOutSrc(HRTIM_TypeDef *HRTIMx, uint32_t SyncOutSrc) 01510 { 01511 MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_SRC, SyncOutSrc); 01512 } 01513 01514 /** 01515 * @brief Get actual source and event sent on the HRTIM synchronization output. 01516 * @rmtoll MCR SYNCSRC LL_HRTIM_GetSyncOutSrc 01517 * @param HRTIMx High Resolution Timer instance 01518 * @retval SyncOutSrc Returned value can be one of the following values: 01519 * @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START 01520 * @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1 01521 * @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START 01522 * @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1 01523 */ 01524 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncOutSrc(HRTIM_TypeDef *HRTIMx) 01525 { 01526 return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_SRC)); 01527 } 01528 01529 /** 01530 * @brief Disable (temporarily) update event generation. 01531 * @rmtoll CR1 MUDIS LL_HRTIM_SuspendUpdate\n 01532 * CR1 TAUDIS LL_HRTIM_SuspendUpdate\n 01533 * CR1 TBUDIS LL_HRTIM_SuspendUpdate\n 01534 * CR1 TCUDIS LL_HRTIM_SuspendUpdate\n 01535 * CR1 TDUDIS LL_HRTIM_SuspendUpdate\n 01536 * CR1 TEUDIS LL_HRTIM_SuspendUpdate 01537 * @note Allow to temporarily disable the transfer from preload to active 01538 * registers, whatever the selected update event. This allows to modify 01539 * several registers in multiple timers. 01540 * @param HRTIMx High Resolution Timer instance 01541 * @param Timers This parameter can be a combination of the following values: 01542 * @arg @ref LL_HRTIM_TIMER_MASTER 01543 * @arg @ref LL_HRTIM_TIMER_A 01544 * @arg @ref LL_HRTIM_TIMER_B 01545 * @arg @ref LL_HRTIM_TIMER_C 01546 * @arg @ref LL_HRTIM_TIMER_D 01547 * @arg @ref LL_HRTIM_TIMER_E 01548 * @retval None 01549 */ 01550 __STATIC_INLINE void LL_HRTIM_SuspendUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers) 01551 { 01552 SET_BIT(HRTIMx->sCommonRegs.CR1, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK)); 01553 } 01554 01555 /** 01556 * @brief Enable update event generation. 01557 * @rmtoll CR1 MUDIS LL_HRTIM_ResumeUpdate\n 01558 * CR1 TAUDIS LL_HRTIM_ResumeUpdate\n 01559 * CR1 TBUDIS LL_HRTIM_ResumeUpdate\n 01560 * CR1 TCUDIS LL_HRTIM_ResumeUpdate\n 01561 * CR1 TDUDIS LL_HRTIM_ResumeUpdate\n 01562 * CR1 TEUDIS LL_HRTIM_ResumeUpdate 01563 * @note The regular update event takes place. 01564 * @param HRTIMx High Resolution Timer instance 01565 * @param Timers This parameter can be a combination of the following values: 01566 * @arg @ref LL_HRTIM_TIMER_MASTER 01567 * @arg @ref LL_HRTIM_TIMER_A 01568 * @arg @ref LL_HRTIM_TIMER_B 01569 * @arg @ref LL_HRTIM_TIMER_C 01570 * @arg @ref LL_HRTIM_TIMER_D 01571 * @arg @ref LL_HRTIM_TIMER_E 01572 * @retval None 01573 */ 01574 __STATIC_INLINE void LL_HRTIM_ResumeUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers) 01575 { 01576 CLEAR_BIT(HRTIMx->sCommonRegs.CR1, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK)); 01577 } 01578 01579 /** 01580 * @brief Force an immediate transfer from the preload to the active register . 01581 * @rmtoll CR2 MSWU LL_HRTIM_ForceUpdate\n 01582 * CR2 TASWU LL_HRTIM_ForceUpdate\n 01583 * CR2 TBSWU LL_HRTIM_ForceUpdate\n 01584 * CR2 TCSWU LL_HRTIM_ForceUpdate\n 01585 * CR2 TDSWU LL_HRTIM_ForceUpdate\n 01586 * CR2 TESWU LL_HRTIM_ForceUpdate 01587 * @note Any pending update request is cancelled. 01588 * @param HRTIMx High Resolution Timer instance 01589 * @param Timers This parameter can be a combination of the following values: 01590 * @arg @ref LL_HRTIM_TIMER_MASTER 01591 * @arg @ref LL_HRTIM_TIMER_A 01592 * @arg @ref LL_HRTIM_TIMER_B 01593 * @arg @ref LL_HRTIM_TIMER_C 01594 * @arg @ref LL_HRTIM_TIMER_D 01595 * @arg @ref LL_HRTIM_TIMER_E 01596 * @retval None 01597 */ 01598 __STATIC_INLINE void LL_HRTIM_ForceUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers) 01599 { 01600 SET_BIT(HRTIMx->sCommonRegs.CR2, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR2_SWUPD_MASK)); 01601 } 01602 01603 /** 01604 * @brief Reset the HRTIM timer(s) counter. 01605 * @rmtoll CR2 MRST LL_HRTIM_CounterReset\n 01606 * CR2 TARST LL_HRTIM_CounterReset\n 01607 * CR2 TBRST LL_HRTIM_CounterReset\n 01608 * CR2 TCRST LL_HRTIM_CounterReset\n 01609 * CR2 TDRST LL_HRTIM_CounterReset\n 01610 * CR2 TERST LL_HRTIM_CounterReset 01611 * @param HRTIMx High Resolution Timer instance 01612 * @param Timers This parameter can be a combination of the following values: 01613 * @arg @ref LL_HRTIM_TIMER_MASTER 01614 * @arg @ref LL_HRTIM_TIMER_A 01615 * @arg @ref LL_HRTIM_TIMER_B 01616 * @arg @ref LL_HRTIM_TIMER_C 01617 * @arg @ref LL_HRTIM_TIMER_D 01618 * @arg @ref LL_HRTIM_TIMER_E 01619 * @retval None 01620 */ 01621 __STATIC_INLINE void LL_HRTIM_CounterReset(HRTIM_TypeDef *HRTIMx, uint32_t Timers) 01622 { 01623 SET_BIT(HRTIMx->sCommonRegs.CR2, (((Timers >> HRTIM_MCR_MCEN_Pos) << HRTIM_CR2_MRST_Pos) & HRTIM_CR2_SWRST_MASK)); 01624 } 01625 01626 /** 01627 * @brief Enable the HRTIM timer(s) output(s) . 01628 * @rmtoll OENR TA1OEN LL_HRTIM_EnableOutput\n 01629 * OENR TA2OEN LL_HRTIM_EnableOutput\n 01630 * OENR TB1OEN LL_HRTIM_EnableOutput\n 01631 * OENR TB2OEN LL_HRTIM_EnableOutput\n 01632 * OENR TC1OEN LL_HRTIM_EnableOutput\n 01633 * OENR TC2OEN LL_HRTIM_EnableOutput\n 01634 * OENR TD1OEN LL_HRTIM_EnableOutput\n 01635 * OENR TD2OEN LL_HRTIM_EnableOutput\n 01636 * OENR TE1OEN LL_HRTIM_EnableOutput\n 01637 * OENR TE2OEN LL_HRTIM_EnableOutput 01638 * @param HRTIMx High Resolution Timer instance 01639 * @param Outputs This parameter can be a combination of the following values: 01640 * @arg @ref LL_HRTIM_OUTPUT_TA1 01641 * @arg @ref LL_HRTIM_OUTPUT_TA2 01642 * @arg @ref LL_HRTIM_OUTPUT_TB1 01643 * @arg @ref LL_HRTIM_OUTPUT_TB2 01644 * @arg @ref LL_HRTIM_OUTPUT_TC1 01645 * @arg @ref LL_HRTIM_OUTPUT_TC2 01646 * @arg @ref LL_HRTIM_OUTPUT_TD1 01647 * @arg @ref LL_HRTIM_OUTPUT_TD2 01648 * @arg @ref LL_HRTIM_OUTPUT_TE1 01649 * @arg @ref LL_HRTIM_OUTPUT_TE2 01650 * @retval None 01651 */ 01652 __STATIC_INLINE void LL_HRTIM_EnableOutput(HRTIM_TypeDef *HRTIMx, uint32_t Outputs) 01653 { 01654 SET_BIT(HRTIMx->sCommonRegs.OENR, (Outputs & HRTIM_OENR_OEN_MASK)); 01655 } 01656 01657 /** 01658 * @brief Disable the HRTIM timer(s) output(s) . 01659 * @rmtoll OENR TA1OEN LL_HRTIM_DisableOutput\n 01660 * OENR TA2OEN LL_HRTIM_DisableOutput\n 01661 * OENR TB1OEN LL_HRTIM_DisableOutput\n 01662 * OENR TB2OEN LL_HRTIM_DisableOutput\n 01663 * OENR TC1OEN LL_HRTIM_DisableOutput\n 01664 * OENR TC2OEN LL_HRTIM_DisableOutput\n 01665 * OENR TD1OEN LL_HRTIM_DisableOutput\n 01666 * OENR TD2OEN LL_HRTIM_DisableOutput\n 01667 * OENR TE1OEN LL_HRTIM_DisableOutput\n 01668 * OENR TE2OEN LL_HRTIM_DisableOutput 01669 * @param HRTIMx High Resolution Timer instance 01670 * @param Outputs This parameter can be a combination of the following values: 01671 * @arg @ref LL_HRTIM_OUTPUT_TA1 01672 * @arg @ref LL_HRTIM_OUTPUT_TA2 01673 * @arg @ref LL_HRTIM_OUTPUT_TB1 01674 * @arg @ref LL_HRTIM_OUTPUT_TB2 01675 * @arg @ref LL_HRTIM_OUTPUT_TC1 01676 * @arg @ref LL_HRTIM_OUTPUT_TC2 01677 * @arg @ref LL_HRTIM_OUTPUT_TD1 01678 * @arg @ref LL_HRTIM_OUTPUT_TD2 01679 * @arg @ref LL_HRTIM_OUTPUT_TE1 01680 * @arg @ref LL_HRTIM_OUTPUT_TE2 01681 * @retval None 01682 */ 01683 __STATIC_INLINE void LL_HRTIM_DisableOutput(HRTIM_TypeDef *HRTIMx, uint32_t Outputs) 01684 { 01685 SET_BIT(HRTIMx->sCommonRegs.ODISR, (Outputs & HRTIM_OENR_ODIS_MASK)); 01686 } 01687 01688 /** 01689 * @brief Indicates whether the HRTIM timer output is enabled. 01690 * @rmtoll OENR TA1OEN LL_HRTIM_IsEnabledOutput\n 01691 * OENR TA2OEN LL_HRTIM_IsEnabledOutput\n 01692 * OENR TB1OEN LL_HRTIM_IsEnabledOutput\n 01693 * OENR TB2OEN LL_HRTIM_IsEnabledOutput\n 01694 * OENR TC1OEN LL_HRTIM_IsEnabledOutput\n 01695 * OENR TC2OEN LL_HRTIM_IsEnabledOutput\n 01696 * OENR TD1OEN LL_HRTIM_IsEnabledOutput\n 01697 * OENR TD2OEN LL_HRTIM_IsEnabledOutput\n 01698 * OENR TE1OEN LL_HRTIM_IsEnabledOutput\n 01699 * OENR TE2OEN LL_HRTIM_IsEnabledOutput 01700 * @param HRTIMx High Resolution Timer instance 01701 * @param Output This parameter can be one of the following values: 01702 * @arg @ref LL_HRTIM_OUTPUT_TA1 01703 * @arg @ref LL_HRTIM_OUTPUT_TA2 01704 * @arg @ref LL_HRTIM_OUTPUT_TB1 01705 * @arg @ref LL_HRTIM_OUTPUT_TB2 01706 * @arg @ref LL_HRTIM_OUTPUT_TC1 01707 * @arg @ref LL_HRTIM_OUTPUT_TC2 01708 * @arg @ref LL_HRTIM_OUTPUT_TD1 01709 * @arg @ref LL_HRTIM_OUTPUT_TD2 01710 * @arg @ref LL_HRTIM_OUTPUT_TE1 01711 * @arg @ref LL_HRTIM_OUTPUT_TE2 01712 * @retval State of TxyOEN bit in HRTIM_OENR register (1 or 0). 01713 */ 01714 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledOutput(HRTIM_TypeDef *HRTIMx, uint32_t Output) 01715 { 01716 return ((READ_BIT(HRTIMx->sCommonRegs.OENR, Output) == Output) ? 1UL : 0UL); 01717 } 01718 01719 /** 01720 * @brief Indicates whether the HRTIM timer output is disabled. 01721 * @rmtoll ODISR TA1ODIS LL_HRTIM_IsDisabledOutput\n 01722 * ODISR TA2ODIS LL_HRTIM_IsDisabledOutput\n 01723 * ODISR TB1ODIS LL_HRTIM_IsDisabledOutput\n 01724 * ODISR TB2ODIS LL_HRTIM_IsDisabledOutput\n 01725 * ODISR TC1ODIS LL_HRTIM_IsDisabledOutput\n 01726 * ODISR TC2ODIS LL_HRTIM_IsDisabledOutput\n 01727 * ODISR TD1ODIS LL_HRTIM_IsDisabledOutput\n 01728 * ODISR TD2ODIS LL_HRTIM_IsDisabledOutput\n 01729 * ODISR TE1ODIS LL_HRTIM_IsDisabledOutput\n 01730 * ODISR TE2ODIS LL_HRTIM_IsDisabledOutput 01731 * @param HRTIMx High Resolution Timer instance 01732 * @param Output This parameter can be one of the following values: 01733 * @arg @ref LL_HRTIM_OUTPUT_TA1 01734 * @arg @ref LL_HRTIM_OUTPUT_TA2 01735 * @arg @ref LL_HRTIM_OUTPUT_TB1 01736 * @arg @ref LL_HRTIM_OUTPUT_TB2 01737 * @arg @ref LL_HRTIM_OUTPUT_TC1 01738 * @arg @ref LL_HRTIM_OUTPUT_TC2 01739 * @arg @ref LL_HRTIM_OUTPUT_TD1 01740 * @arg @ref LL_HRTIM_OUTPUT_TD2 01741 * @arg @ref LL_HRTIM_OUTPUT_TE1 01742 * @arg @ref LL_HRTIM_OUTPUT_TE2 01743 * @retval State of TxyODS bit in HRTIM_OENR register (1 or 0). 01744 */ 01745 __STATIC_INLINE uint32_t LL_HRTIM_IsDisabledOutput(HRTIM_TypeDef *HRTIMx, uint32_t Output) 01746 { 01747 return ((READ_BIT(HRTIMx->sCommonRegs.OENR, Output) == 0U) ? 1UL : 0UL); 01748 } 01749 01750 /** 01751 * @brief Configure an ADC trigger. 01752 * @rmtoll CR1 ADC1USRC LL_HRTIM_ConfigADCTrig\n 01753 * CR1 ADC2USRC LL_HRTIM_ConfigADCTrig\n 01754 * CR1 ADC3USRC LL_HRTIM_ConfigADCTrig\n 01755 * CR1 ADC4USRC LL_HRTIM_ConfigADCTrig\n 01756 * ADC1R ADC1MC1 LL_HRTIM_ConfigADCTrig\n 01757 * ADC1R ADC1MC2 LL_HRTIM_ConfigADCTrig\n 01758 * ADC1R ADC1MC3 LL_HRTIM_ConfigADCTrig\n 01759 * ADC1R ADC1MC4 LL_HRTIM_ConfigADCTrig\n 01760 * ADC1R ADC1MPER LL_HRTIM_ConfigADCTrig\n 01761 * ADC1R ADC1EEV1 LL_HRTIM_ConfigADCTrig\n 01762 * ADC1R ADC1EEV2 LL_HRTIM_ConfigADCTrig\n 01763 * ADC1R ADC1EEV3 LL_HRTIM_ConfigADCTrig\n 01764 * ADC1R ADC1EEV4 LL_HRTIM_ConfigADCTrig\n 01765 * ADC1R ADC1EEV5 LL_HRTIM_ConfigADCTrig\n 01766 * ADC1R ADC1TAC2 LL_HRTIM_ConfigADCTrig\n 01767 * ADC1R ADC1TAC3 LL_HRTIM_ConfigADCTrig\n 01768 * ADC1R ADC1TAC4 LL_HRTIM_ConfigADCTrig\n 01769 * ADC1R ADC1TAPER LL_HRTIM_ConfigADCTrig\n 01770 * ADC1R ADC1TARST LL_HRTIM_ConfigADCTrig\n 01771 * ADC1R ADC1TBC2 LL_HRTIM_ConfigADCTrig\n 01772 * ADC1R ADC1TBC3 LL_HRTIM_ConfigADCTrig\n 01773 * ADC1R ADC1TBC4 LL_HRTIM_ConfigADCTrig\n 01774 * ADC1R ADC1TBPER LL_HRTIM_ConfigADCTrig\n 01775 * ADC1R ADC1TBRST LL_HRTIM_ConfigADCTrig\n 01776 * ADC1R ADC1TCC2 LL_HRTIM_ConfigADCTrig\n 01777 * ADC1R ADC1TCC3 LL_HRTIM_ConfigADCTrig\n 01778 * ADC1R ADC1TCC4 LL_HRTIM_ConfigADCTrig\n 01779 * ADC1R ADC1TCPER LL_HRTIM_ConfigADCTrig\n 01780 * ADC1R ADC1TDC2 LL_HRTIM_ConfigADCTrig\n 01781 * ADC1R ADC1TDC3 LL_HRTIM_ConfigADCTrig\n 01782 * ADC1R ADC1TDC4 LL_HRTIM_ConfigADCTrig\n 01783 * ADC1R ADC1TDPER LL_HRTIM_ConfigADCTrig\n 01784 * ADC1R ADC1TEC2 LL_HRTIM_ConfigADCTrig\n 01785 * ADC1R ADC1TEC3 LL_HRTIM_ConfigADCTrig\n 01786 * ADC1R ADC1TEC4 LL_HRTIM_ConfigADCTrig\n 01787 * ADC1R ADC1TEPER LL_HRTIM_ConfigADCTrig\n 01788 * ADC2R ADC2MC1 LL_HRTIM_ConfigADCTrig\n 01789 * ADC2R ADC2MC2 LL_HRTIM_ConfigADCTrig\n 01790 * ADC2R ADC2MC3 LL_HRTIM_ConfigADCTrig\n 01791 * ADC2R ADC2MC4 LL_HRTIM_ConfigADCTrig\n 01792 * ADC2R ADC2MPER LL_HRTIM_ConfigADCTrig\n 01793 * ADC2R ADC2EEV6 LL_HRTIM_ConfigADCTrig\n 01794 * ADC2R ADC2EEV7 LL_HRTIM_ConfigADCTrig\n 01795 * ADC2R ADC2EEV8 LL_HRTIM_ConfigADCTrig\n 01796 * ADC2R ADC2EEV9 LL_HRTIM_ConfigADCTrig\n 01797 * ADC2R ADC2EEV10 LL_HRTIM_ConfigADCTrig\n 01798 * ADC2R ADC2TAC2 LL_HRTIM_ConfigADCTrig\n 01799 * ADC2R ADC2TAC3 LL_HRTIM_ConfigADCTrig\n 01800 * ADC2R ADC2TAC4 LL_HRTIM_ConfigADCTrig\n 01801 * ADC2R ADC2TAPER LL_HRTIM_ConfigADCTrig\n 01802 * ADC2R ADC2TBC2 LL_HRTIM_ConfigADCTrig\n 01803 * ADC2R ADC2TBC3 LL_HRTIM_ConfigADCTrig\n 01804 * ADC2R ADC2TBC4 LL_HRTIM_ConfigADCTrig\n 01805 * ADC2R ADC2TBPER LL_HRTIM_ConfigADCTrig\n 01806 * ADC2R ADC2TCC2 LL_HRTIM_ConfigADCTrig\n 01807 * ADC2R ADC2TCC3 LL_HRTIM_ConfigADCTrig\n 01808 * ADC2R ADC2TCC4 LL_HRTIM_ConfigADCTrig\n 01809 * ADC2R ADC2TCPER LL_HRTIM_ConfigADCTrig\n 01810 * ADC2R ADC2TCRST LL_HRTIM_ConfigADCTrig\n 01811 * ADC2R ADC2TDC2 LL_HRTIM_ConfigADCTrig\n 01812 * ADC2R ADC2TDC3 LL_HRTIM_ConfigADCTrig\n 01813 * ADC2R ADC2TDC4 LL_HRTIM_ConfigADCTrig\n 01814 * ADC2R ADC2TDPER LL_HRTIM_ConfigADCTrig\n 01815 * ADC2R ADC2TDRST LL_HRTIM_ConfigADCTrig\n 01816 * ADC2R ADC2TEC2 LL_HRTIM_ConfigADCTrig\n 01817 * ADC2R ADC2TEC3 LL_HRTIM_ConfigADCTrig\n 01818 * ADC2R ADC2TEC4 LL_HRTIM_ConfigADCTrig\n 01819 * ADC2R ADC2TERST LL_HRTIM_ConfigADCTrig\n 01820 * ADC3R ADC3MC1 LL_HRTIM_ConfigADCTrig\n 01821 * ADC3R ADC3MC2 LL_HRTIM_ConfigADCTrig\n 01822 * ADC3R ADC3MC3 LL_HRTIM_ConfigADCTrig\n 01823 * ADC3R ADC3MC4 LL_HRTIM_ConfigADCTrig\n 01824 * ADC3R ADC3MPER LL_HRTIM_ConfigADCTrig\n 01825 * ADC3R ADC3EEV1 LL_HRTIM_ConfigADCTrig\n 01826 * ADC3R ADC3EEV2 LL_HRTIM_ConfigADCTrig\n 01827 * ADC3R ADC3EEV3 LL_HRTIM_ConfigADCTrig\n 01828 * ADC3R ADC3EEV4 LL_HRTIM_ConfigADCTrig\n 01829 * ADC3R ADC3EEV5 LL_HRTIM_ConfigADCTrig\n 01830 * ADC3R ADC3TAC2 LL_HRTIM_ConfigADCTrig\n 01831 * ADC3R ADC3TAC3 LL_HRTIM_ConfigADCTrig\n 01832 * ADC3R ADC3TAC4 LL_HRTIM_ConfigADCTrig\n 01833 * ADC3R ADC3TAPER LL_HRTIM_ConfigADCTrig\n 01834 * ADC3R ADC3TARST LL_HRTIM_ConfigADCTrig\n 01835 * ADC3R ADC3TBC2 LL_HRTIM_ConfigADCTrig\n 01836 * ADC3R ADC3TBC3 LL_HRTIM_ConfigADCTrig\n 01837 * ADC3R ADC3TBC4 LL_HRTIM_ConfigADCTrig\n 01838 * ADC3R ADC3TBPER LL_HRTIM_ConfigADCTrig\n 01839 * ADC3R ADC3TBRST LL_HRTIM_ConfigADCTrig\n 01840 * ADC3R ADC3TCC2 LL_HRTIM_ConfigADCTrig\n 01841 * ADC3R ADC3TCC3 LL_HRTIM_ConfigADCTrig\n 01842 * ADC3R ADC3TCC4 LL_HRTIM_ConfigADCTrig\n 01843 * ADC3R ADC3TCPER LL_HRTIM_ConfigADCTrig\n 01844 * ADC3R ADC3TDC2 LL_HRTIM_ConfigADCTrig\n 01845 * ADC3R ADC3TDC3 LL_HRTIM_ConfigADCTrig\n 01846 * ADC3R ADC3TDC4 LL_HRTIM_ConfigADCTrig\n 01847 * ADC3R ADC3TDPER LL_HRTIM_ConfigADCTrig\n 01848 * ADC3R ADC3TEC2 LL_HRTIM_ConfigADCTrig\n 01849 * ADC3R ADC3TEC3 LL_HRTIM_ConfigADCTrig\n 01850 * ADC3R ADC3TEC4 LL_HRTIM_ConfigADCTrig\n 01851 * ADC3R ADC3TEPER LL_HRTIM_ConfigADCTrig\n 01852 * ADC4R ADC4MC1 LL_HRTIM_ConfigADCTrig\n 01853 * ADC4R ADC4MC2 LL_HRTIM_ConfigADCTrig\n 01854 * ADC4R ADC4MC3 LL_HRTIM_ConfigADCTrig\n 01855 * ADC4R ADC4MC4 LL_HRTIM_ConfigADCTrig\n 01856 * ADC4R ADC4MPER LL_HRTIM_ConfigADCTrig\n 01857 * ADC4R ADC4EEV6 LL_HRTIM_ConfigADCTrig\n 01858 * ADC4R ADC4EEV7 LL_HRTIM_ConfigADCTrig\n 01859 * ADC4R ADC4EEV8 LL_HRTIM_ConfigADCTrig\n 01860 * ADC4R ADC4EEV9 LL_HRTIM_ConfigADCTrig\n 01861 * ADC4R ADC4EEV10 LL_HRTIM_ConfigADCTrig\n 01862 * ADC4R ADC4TAC2 LL_HRTIM_ConfigADCTrig\n 01863 * ADC4R ADC4TAC3 LL_HRTIM_ConfigADCTrig\n 01864 * ADC4R ADC4TAC4 LL_HRTIM_ConfigADCTrig\n 01865 * ADC4R ADC4TAPER LL_HRTIM_ConfigADCTrig\n 01866 * ADC4R ADC4TBC2 LL_HRTIM_ConfigADCTrig\n 01867 * ADC4R ADC4TBC3 LL_HRTIM_ConfigADCTrig\n 01868 * ADC4R ADC4TBC4 LL_HRTIM_ConfigADCTrig\n 01869 * ADC4R ADC4TBPER LL_HRTIM_ConfigADCTrig\n 01870 * ADC4R ADC4TCC2 LL_HRTIM_ConfigADCTrig\n 01871 * ADC4R ADC4TCC3 LL_HRTIM_ConfigADCTrig\n 01872 * ADC4R ADC4TCC4 LL_HRTIM_ConfigADCTrig\n 01873 * ADC4R ADC4TCPER LL_HRTIM_ConfigADCTrig\n 01874 * ADC4R ADC4TCRST LL_HRTIM_ConfigADCTrig\n 01875 * ADC4R ADC4TDC2 LL_HRTIM_ConfigADCTrig\n 01876 * ADC4R ADC4TDC3 LL_HRTIM_ConfigADCTrig\n 01877 * ADC4R ADC4TDC4 LL_HRTIM_ConfigADCTrig\n 01878 * ADC4R ADC4TDPER LL_HRTIM_ConfigADCTrig\n 01879 * ADC4R ADC4TDRST LL_HRTIM_ConfigADCTrig\n 01880 * ADC4R ADC4TEC2 LL_HRTIM_ConfigADCTrig\n 01881 * ADC4R ADC4TEC3 LL_HRTIM_ConfigADCTrig\n 01882 * ADC4R ADC4TEC4 LL_HRTIM_ConfigADCTrig\n 01883 * ADC4R ADC4TERST LL_HRTIM_ConfigADCTrig 01884 * @param HRTIMx High Resolution Timer instance 01885 * @param ADCTrig This parameter can be one of the following values: 01886 * @arg @ref LL_HRTIM_ADCTRIG_1 01887 * @arg @ref LL_HRTIM_ADCTRIG_2 01888 * @arg @ref LL_HRTIM_ADCTRIG_3 01889 * @arg @ref LL_HRTIM_ADCTRIG_4 01890 * @param Update This parameter can be one of the following values: 01891 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER 01892 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A 01893 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B 01894 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C 01895 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D 01896 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E 01897 * @param Src This parameter can be a combination of the following values: 01898 * 01899 * For ADC trigger 1 and ADC trigger 3: 01900 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE 01901 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1 01902 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2 01903 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3 01904 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4 01905 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER 01906 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1 01907 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2 01908 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3 01909 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4 01910 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5 01911 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP2 01912 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3 01913 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4 01914 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER 01915 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST 01916 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2 01917 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3 01918 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4 01919 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER 01920 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST 01921 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2 01922 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3 01923 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4 01924 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER 01925 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2 01926 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3 01927 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4 01928 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER 01929 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP2 01930 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3 01931 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4 01932 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER 01933 * 01934 * For ADC trigger 2 and ADC trigger 4: 01935 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE 01936 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1 01937 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2 01938 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3 01939 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4 01940 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER 01941 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6 01942 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7 01943 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8 01944 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9 01945 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10 01946 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2 01947 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP3 01948 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4 01949 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER 01950 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2 01951 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3 01952 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4 01953 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER 01954 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2 01955 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3 01956 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4 01957 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER 01958 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST 01959 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2 01960 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3 01961 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4 01962 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER 01963 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST 01964 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2 01965 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3 01966 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4 01967 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST 01968 * 01969 * @retval None 01970 */ 01971 __STATIC_INLINE void LL_HRTIM_ConfigADCTrig(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Update, uint32_t Src) 01972 { 01973 uint32_t shift = ((3U * ADCTrig) & 0x1FU); 01974 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) + 01975 REG_OFFSET_TAB_ADCxR[ADCTrig])); 01976 MODIFY_REG(HRTIMx->sCommonRegs.CR1, (HRTIM_CR1_ADC1USRC << shift), (Update << shift)); 01977 WRITE_REG(*pReg, Src); 01978 } 01979 01980 /** 01981 * @brief Associate the ADCx trigger to a timer triggering the update of the HRTIM_ADCxR register. 01982 * @rmtoll CR1 ADC1USRC LL_HRTIM_SetADCTrigUpdate\n 01983 * CR1 ADC2USRC LL_HRTIM_SetADCTrigUpdate\n 01984 * CR1 ADC3USRC LL_HRTIM_SetADCTrigUpdate\n 01985 * CR1 ADC4USRC LL_HRTIM_SetADCTrigUpdate\n 01986 * @note When the preload is disabled in the source timer, the HRTIM_ADCxR 01987 * registers are not preloaded either: a write access will result in an 01988 * immediate update of the trigger source. 01989 * @param HRTIMx High Resolution Timer instance 01990 * @param ADCTrig This parameter can be one of the following values: 01991 * @arg @ref LL_HRTIM_ADCTRIG_1 01992 * @arg @ref LL_HRTIM_ADCTRIG_2 01993 * @arg @ref LL_HRTIM_ADCTRIG_3 01994 * @arg @ref LL_HRTIM_ADCTRIG_4 01995 * @param Update This parameter can be one of the following values: 01996 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER 01997 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A 01998 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B 01999 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C 02000 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D 02001 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E 02002 * @retval None 02003 */ 02004 __STATIC_INLINE void LL_HRTIM_SetADCTrigUpdate(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Update) 02005 { 02006 uint32_t shift = ((3U * ADCTrig) & 0x1FU); 02007 MODIFY_REG(HRTIMx->sCommonRegs.CR1, (HRTIM_CR1_ADC1USRC << shift), (Update << shift)); 02008 } 02009 02010 /** 02011 * @brief Get the source timer triggering the update of the HRTIM_ADCxR register. 02012 * @rmtoll CR1 ADC1USRC LL_HRTIM_GetADCTrigUpdate\n 02013 * CR1 ADC2USRC LL_HRTIM_GetADCTrigUpdate\n 02014 * CR1 ADC3USRC LL_HRTIM_GetADCTrigUpdate\n 02015 * CR1 ADC4USRC LL_HRTIM_GetADCTrigUpdate\n 02016 * @param HRTIMx High Resolution Timer instance 02017 * @param ADCTrig This parameter can be one of the following values: 02018 * @arg @ref LL_HRTIM_ADCTRIG_1 02019 * @arg @ref LL_HRTIM_ADCTRIG_2 02020 * @arg @ref LL_HRTIM_ADCTRIG_3 02021 * @arg @ref LL_HRTIM_ADCTRIG_4 02022 * @retval Update Returned value can be one of the following values: 02023 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER 02024 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A 02025 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B 02026 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C 02027 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D 02028 * @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E 02029 */ 02030 __STATIC_INLINE uint32_t LL_HRTIM_GetADCTrigUpdate(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig) 02031 { 02032 const uint32_t shift = ((3U * ADCTrig) & 0x1FU); 02033 return (READ_BIT(HRTIMx->sCommonRegs.CR1, (uint32_t)(HRTIM_CR1_ADC1USRC) << shift) >> shift); 02034 } 02035 02036 /** 02037 * @brief Specify which events (timer events and/or external events) are used as triggers for ADC conversion. 02038 * @rmtoll ADC1R ADC1MC1 LL_HRTIM_SetADCTrigSrc\n 02039 * ADC1R ADC1MC2 LL_HRTIM_SetADCTrigSrc\n 02040 * ADC1R ADC1MC3 LL_HRTIM_SetADCTrigSrc\n 02041 * ADC1R ADC1MC4 LL_HRTIM_SetADCTrigSrc\n 02042 * ADC1R ADC1MPER LL_HRTIM_SetADCTrigSrc\n 02043 * ADC1R ADC1EEV1 LL_HRTIM_SetADCTrigSrc\n 02044 * ADC1R ADC1EEV2 LL_HRTIM_SetADCTrigSrc\n 02045 * ADC1R ADC1EEV3 LL_HRTIM_SetADCTrigSrc\n 02046 * ADC1R ADC1EEV4 LL_HRTIM_SetADCTrigSrc\n 02047 * ADC1R ADC1EEV5 LL_HRTIM_SetADCTrigSrc\n 02048 * ADC1R ADC1TAC2 LL_HRTIM_SetADCTrigSrc\n 02049 * ADC1R ADC1TAC3 LL_HRTIM_SetADCTrigSrc\n 02050 * ADC1R ADC1TAC4 LL_HRTIM_SetADCTrigSrc\n 02051 * ADC1R ADC1TAPER LL_HRTIM_SetADCTrigSrc\n 02052 * ADC1R ADC1TARST LL_HRTIM_SetADCTrigSrc\n 02053 * ADC1R ADC1TBC2 LL_HRTIM_SetADCTrigSrc\n 02054 * ADC1R ADC1TBC3 LL_HRTIM_SetADCTrigSrc\n 02055 * ADC1R ADC1TBC4 LL_HRTIM_SetADCTrigSrc\n 02056 * ADC1R ADC1TBPER LL_HRTIM_SetADCTrigSrc\n 02057 * ADC1R ADC1TBRST LL_HRTIM_SetADCTrigSrc\n 02058 * ADC1R ADC1TCC2 LL_HRTIM_SetADCTrigSrc\n 02059 * ADC1R ADC1TCC3 LL_HRTIM_SetADCTrigSrc\n 02060 * ADC1R ADC1TCC4 LL_HRTIM_SetADCTrigSrc\n 02061 * ADC1R ADC1TCPER LL_HRTIM_SetADCTrigSrc\n 02062 * ADC1R ADC1TDC2 LL_HRTIM_SetADCTrigSrc\n 02063 * ADC1R ADC1TDC3 LL_HRTIM_SetADCTrigSrc\n 02064 * ADC1R ADC1TDC4 LL_HRTIM_SetADCTrigSrc\n 02065 * ADC1R ADC1TDPER LL_HRTIM_SetADCTrigSrc\n 02066 * ADC1R ADC1TEC2 LL_HRTIM_SetADCTrigSrc\n 02067 * ADC1R ADC1TEC3 LL_HRTIM_SetADCTrigSrc\n 02068 * ADC1R ADC1TEC4 LL_HRTIM_SetADCTrigSrc\n 02069 * ADC1R ADC1TEPER LL_HRTIM_SetADCTrigSrc\n 02070 * ADC2R ADC2MC1 LL_HRTIM_SetADCTrigSrc\n 02071 * ADC2R ADC2MC2 LL_HRTIM_SetADCTrigSrc\n 02072 * ADC2R ADC2MC3 LL_HRTIM_SetADCTrigSrc\n 02073 * ADC2R ADC2MC4 LL_HRTIM_SetADCTrigSrc\n 02074 * ADC2R ADC2MPER LL_HRTIM_SetADCTrigSrc\n 02075 * ADC2R ADC2EEV6 LL_HRTIM_SetADCTrigSrc\n 02076 * ADC2R ADC2EEV7 LL_HRTIM_SetADCTrigSrc\n 02077 * ADC2R ADC2EEV8 LL_HRTIM_SetADCTrigSrc\n 02078 * ADC2R ADC2EEV9 LL_HRTIM_SetADCTrigSrc\n 02079 * ADC2R ADC2EEV10 LL_HRTIM_SetADCTrigSrc\n 02080 * ADC2R ADC2TAC2 LL_HRTIM_SetADCTrigSrc\n 02081 * ADC2R ADC2TAC3 LL_HRTIM_SetADCTrigSrc\n 02082 * ADC2R ADC2TAC4 LL_HRTIM_SetADCTrigSrc\n 02083 * ADC2R ADC2TAPER LL_HRTIM_SetADCTrigSrc\n 02084 * ADC2R ADC2TBC2 LL_HRTIM_SetADCTrigSrc\n 02085 * ADC2R ADC2TBC3 LL_HRTIM_SetADCTrigSrc\n 02086 * ADC2R ADC2TBC4 LL_HRTIM_SetADCTrigSrc\n 02087 * ADC2R ADC2TBPER LL_HRTIM_SetADCTrigSrc\n 02088 * ADC2R ADC2TCC2 LL_HRTIM_SetADCTrigSrc\n 02089 * ADC2R ADC2TCC3 LL_HRTIM_SetADCTrigSrc\n 02090 * ADC2R ADC2TCC4 LL_HRTIM_SetADCTrigSrc\n 02091 * ADC2R ADC2TCPER LL_HRTIM_SetADCTrigSrc\n 02092 * ADC2R ADC2TCRST LL_HRTIM_SetADCTrigSrc\n 02093 * ADC2R ADC2TDC2 LL_HRTIM_SetADCTrigSrc\n 02094 * ADC2R ADC2TDC3 LL_HRTIM_SetADCTrigSrc\n 02095 * ADC2R ADC2TDC4 LL_HRTIM_SetADCTrigSrc\n 02096 * ADC2R ADC2TDPER LL_HRTIM_SetADCTrigSrc\n 02097 * ADC2R ADC2TDRST LL_HRTIM_SetADCTrigSrc\n 02098 * ADC2R ADC2TEC2 LL_HRTIM_SetADCTrigSrc\n 02099 * ADC2R ADC2TEC3 LL_HRTIM_SetADCTrigSrc\n 02100 * ADC2R ADC2TEC4 LL_HRTIM_SetADCTrigSrc\n 02101 * ADC2R ADC2TERST LL_HRTIM_SetADCTrigSrc\n 02102 * ADC3R ADC3MC1 LL_HRTIM_SetADCTrigSrc\n 02103 * ADC3R ADC3MC2 LL_HRTIM_SetADCTrigSrc\n 02104 * ADC3R ADC3MC3 LL_HRTIM_SetADCTrigSrc\n 02105 * ADC3R ADC3MC4 LL_HRTIM_SetADCTrigSrc\n 02106 * ADC3R ADC3MPER LL_HRTIM_SetADCTrigSrc\n 02107 * ADC3R ADC3EEV1 LL_HRTIM_SetADCTrigSrc\n 02108 * ADC3R ADC3EEV2 LL_HRTIM_SetADCTrigSrc\n 02109 * ADC3R ADC3EEV3 LL_HRTIM_SetADCTrigSrc\n 02110 * ADC3R ADC3EEV4 LL_HRTIM_SetADCTrigSrc\n 02111 * ADC3R ADC3EEV5 LL_HRTIM_SetADCTrigSrc\n 02112 * ADC3R ADC3TAC2 LL_HRTIM_SetADCTrigSrc\n 02113 * ADC3R ADC3TAC3 LL_HRTIM_SetADCTrigSrc\n 02114 * ADC3R ADC3TAC4 LL_HRTIM_SetADCTrigSrc\n 02115 * ADC3R ADC3TAPER LL_HRTIM_SetADCTrigSrc\n 02116 * ADC3R ADC3TARST LL_HRTIM_SetADCTrigSrc\n 02117 * ADC3R ADC3TBC2 LL_HRTIM_SetADCTrigSrc\n 02118 * ADC3R ADC3TBC3 LL_HRTIM_SetADCTrigSrc\n 02119 * ADC3R ADC3TBC4 LL_HRTIM_SetADCTrigSrc\n 02120 * ADC3R ADC3TBPER LL_HRTIM_SetADCTrigSrc\n 02121 * ADC3R ADC3TBRST LL_HRTIM_SetADCTrigSrc\n 02122 * ADC3R ADC3TCC2 LL_HRTIM_SetADCTrigSrc\n 02123 * ADC3R ADC3TCC3 LL_HRTIM_SetADCTrigSrc\n 02124 * ADC3R ADC3TCC4 LL_HRTIM_SetADCTrigSrc\n 02125 * ADC3R ADC3TCPER LL_HRTIM_SetADCTrigSrc\n 02126 * ADC3R ADC3TDC2 LL_HRTIM_SetADCTrigSrc\n 02127 * ADC3R ADC3TDC3 LL_HRTIM_SetADCTrigSrc\n 02128 * ADC3R ADC3TDC4 LL_HRTIM_SetADCTrigSrc\n 02129 * ADC3R ADC3TDPER LL_HRTIM_SetADCTrigSrc\n 02130 * ADC3R ADC3TEC2 LL_HRTIM_SetADCTrigSrc\n 02131 * ADC3R ADC3TEC3 LL_HRTIM_SetADCTrigSrc\n 02132 * ADC3R ADC3TEC4 LL_HRTIM_SetADCTrigSrc\n 02133 * ADC3R ADC3TEPER LL_HRTIM_SetADCTrigSrc\n 02134 * ADC4R ADC4MC1 LL_HRTIM_SetADCTrigSrc\n 02135 * ADC4R ADC4MC2 LL_HRTIM_SetADCTrigSrc\n 02136 * ADC4R ADC4MC3 LL_HRTIM_SetADCTrigSrc\n 02137 * ADC4R ADC4MC4 LL_HRTIM_SetADCTrigSrc\n 02138 * ADC4R ADC4MPER LL_HRTIM_SetADCTrigSrc\n 02139 * ADC4R ADC4EEV6 LL_HRTIM_SetADCTrigSrc\n 02140 * ADC4R ADC4EEV7 LL_HRTIM_SetADCTrigSrc\n 02141 * ADC4R ADC4EEV8 LL_HRTIM_SetADCTrigSrc\n 02142 * ADC4R ADC4EEV9 LL_HRTIM_SetADCTrigSrc\n 02143 * ADC4R ADC4EEV10 LL_HRTIM_SetADCTrigSrc\n 02144 * ADC4R ADC4TAC2 LL_HRTIM_SetADCTrigSrc\n 02145 * ADC4R ADC4TAC3 LL_HRTIM_SetADCTrigSrc\n 02146 * ADC4R ADC4TAC4 LL_HRTIM_SetADCTrigSrc\n 02147 * ADC4R ADC4TAPER LL_HRTIM_SetADCTrigSrc\n 02148 * ADC4R ADC4TBC2 LL_HRTIM_SetADCTrigSrc\n 02149 * ADC4R ADC4TBC3 LL_HRTIM_SetADCTrigSrc\n 02150 * ADC4R ADC4TBC4 LL_HRTIM_SetADCTrigSrc\n 02151 * ADC4R ADC4TBPER LL_HRTIM_SetADCTrigSrc\n 02152 * ADC4R ADC4TCC2 LL_HRTIM_SetADCTrigSrc\n 02153 * ADC4R ADC4TCC3 LL_HRTIM_SetADCTrigSrc\n 02154 * ADC4R ADC4TCC4 LL_HRTIM_SetADCTrigSrc\n 02155 * ADC4R ADC4TCPER LL_HRTIM_SetADCTrigSrc\n 02156 * ADC4R ADC4TCRST LL_HRTIM_SetADCTrigSrc\n 02157 * ADC4R ADC4TDC2 LL_HRTIM_SetADCTrigSrc\n 02158 * ADC4R ADC4TDC3 LL_HRTIM_SetADCTrigSrc\n 02159 * ADC4R ADC4TDC4 LL_HRTIM_SetADCTrigSrc\n 02160 * ADC4R ADC4TDPER LL_HRTIM_SetADCTrigSrc\n 02161 * ADC4R ADC4TDRST LL_HRTIM_SetADCTrigSrc\n 02162 * ADC4R ADC4TEC2 LL_HRTIM_SetADCTrigSrc\n 02163 * ADC4R ADC4TEC3 LL_HRTIM_SetADCTrigSrc\n 02164 * ADC4R ADC4TEC4 LL_HRTIM_SetADCTrigSrc\n 02165 * ADC4R ADC4TERST LL_HRTIM_SetADCTrigSrc\n 02166 * @param HRTIMx High Resolution Timer instance 02167 * @param ADCTrig This parameter can be one of the following values: 02168 * @arg @ref LL_HRTIM_ADCTRIG_1 02169 * @arg @ref LL_HRTIM_ADCTRIG_2 02170 * @arg @ref LL_HRTIM_ADCTRIG_3 02171 * @arg @ref LL_HRTIM_ADCTRIG_4 02172 * @param Src 02173 * For ADC trigger 1 and ADC trigger 3 this parameter can be a 02174 * combination of the following values: 02175 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE 02176 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1 02177 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2 02178 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3 02179 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4 02180 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER 02181 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1 02182 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2 02183 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3 02184 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4 02185 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5 02186 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP2 02187 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3 02188 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4 02189 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER 02190 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST 02191 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2 02192 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3 02193 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4 02194 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER 02195 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST 02196 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2 02197 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3 02198 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4 02199 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER 02200 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2 02201 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3 02202 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4 02203 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER 02204 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP2 02205 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3 02206 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4 02207 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER 02208 * 02209 * For ADC trigger 2 and ADC trigger 4 this parameter can be a 02210 * combination of the following values: 02211 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE 02212 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1 02213 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2 02214 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3 02215 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4 02216 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER 02217 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6 02218 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7 02219 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8 02220 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9 02221 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10 02222 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2 02223 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP3 02224 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4 02225 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER 02226 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2 02227 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3 02228 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4 02229 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER 02230 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2 02231 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3 02232 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4 02233 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER 02234 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST 02235 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2 02236 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3 02237 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4 02238 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER 02239 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST 02240 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2 02241 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3 02242 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4 02243 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST 02244 * 02245 * @retval None 02246 */ 02247 __STATIC_INLINE void LL_HRTIM_SetADCTrigSrc(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Src) 02248 { 02249 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) + 02250 REG_OFFSET_TAB_ADCxR[ADCTrig])); 02251 WRITE_REG(*pReg, Src); 02252 } 02253 02254 /** 02255 * @brief Indicate which events (timer events and/or external events) are currently used as triggers for ADC conversion. 02256 * @rmtoll ADC1R ADC1MC1 LL_HRTIM_GetADCTrigSrc\n 02257 * ADC1R ADC1MC2 LL_HRTIM_GetADCTrigSrc\n 02258 * ADC1R ADC1MC3 LL_HRTIM_GetADCTrigSrc\n 02259 * ADC1R ADC1MC4 LL_HRTIM_GetADCTrigSrc\n 02260 * ADC1R ADC1MPER LL_HRTIM_GetADCTrigSrc\n 02261 * ADC1R ADC1EEV1 LL_HRTIM_GetADCTrigSrc\n 02262 * ADC1R ADC1EEV2 LL_HRTIM_GetADCTrigSrc\n 02263 * ADC1R ADC1EEV3 LL_HRTIM_GetADCTrigSrc\n 02264 * ADC1R ADC1EEV4 LL_HRTIM_GetADCTrigSrc\n 02265 * ADC1R ADC1EEV5 LL_HRTIM_GetADCTrigSrc\n 02266 * ADC1R ADC1TAC2 LL_HRTIM_GetADCTrigSrc\n 02267 * ADC1R ADC1TAC3 LL_HRTIM_GetADCTrigSrc\n 02268 * ADC1R ADC1TAC4 LL_HRTIM_GetADCTrigSrc\n 02269 * ADC1R ADC1TAPER LL_HRTIM_GetADCTrigSrc\n 02270 * ADC1R ADC1TARST LL_HRTIM_GetADCTrigSrc\n 02271 * ADC1R ADC1TBC2 LL_HRTIM_GetADCTrigSrc\n 02272 * ADC1R ADC1TBC3 LL_HRTIM_GetADCTrigSrc\n 02273 * ADC1R ADC1TBC4 LL_HRTIM_GetADCTrigSrc\n 02274 * ADC1R ADC1TBPER LL_HRTIM_GetADCTrigSrc\n 02275 * ADC1R ADC1TBRST LL_HRTIM_GetADCTrigSrc\n 02276 * ADC1R ADC1TCC2 LL_HRTIM_GetADCTrigSrc\n 02277 * ADC1R ADC1TCC3 LL_HRTIM_GetADCTrigSrc\n 02278 * ADC1R ADC1TCC4 LL_HRTIM_GetADCTrigSrc\n 02279 * ADC1R ADC1TCPER LL_HRTIM_GetADCTrigSrc\n 02280 * ADC1R ADC1TDC2 LL_HRTIM_GetADCTrigSrc\n 02281 * ADC1R ADC1TDC3 LL_HRTIM_GetADCTrigSrc\n 02282 * ADC1R ADC1TDC4 LL_HRTIM_GetADCTrigSrc\n 02283 * ADC1R ADC1TDPER LL_HRTIM_GetADCTrigSrc\n 02284 * ADC1R ADC1TEC2 LL_HRTIM_GetADCTrigSrc\n 02285 * ADC1R ADC1TEC3 LL_HRTIM_GetADCTrigSrc\n 02286 * ADC1R ADC1TEC4 LL_HRTIM_GetADCTrigSrc\n 02287 * ADC1R ADC1TEPER LL_HRTIM_GetADCTrigSrc\n 02288 * ADC2R ADC2MC1 LL_HRTIM_GetADCTrigSrc\n 02289 * ADC2R ADC2MC2 LL_HRTIM_GetADCTrigSrc\n 02290 * ADC2R ADC2MC3 LL_HRTIM_GetADCTrigSrc\n 02291 * ADC2R ADC2MC4 LL_HRTIM_GetADCTrigSrc\n 02292 * ADC2R ADC2MPER LL_HRTIM_GetADCTrigSrc\n 02293 * ADC2R ADC2EEV6 LL_HRTIM_GetADCTrigSrc\n 02294 * ADC2R ADC2EEV7 LL_HRTIM_GetADCTrigSrc\n 02295 * ADC2R ADC2EEV8 LL_HRTIM_GetADCTrigSrc\n 02296 * ADC2R ADC2EEV9 LL_HRTIM_GetADCTrigSrc\n 02297 * ADC2R ADC2EEV10 LL_HRTIM_GetADCTrigSrc\n 02298 * ADC2R ADC2TAC2 LL_HRTIM_GetADCTrigSrc\n 02299 * ADC2R ADC2TAC3 LL_HRTIM_GetADCTrigSrc\n 02300 * ADC2R ADC2TAC4 LL_HRTIM_GetADCTrigSrc\n 02301 * ADC2R ADC2TAPER LL_HRTIM_GetADCTrigSrc\n 02302 * ADC2R ADC2TBC2 LL_HRTIM_GetADCTrigSrc\n 02303 * ADC2R ADC2TBC3 LL_HRTIM_GetADCTrigSrc\n 02304 * ADC2R ADC2TBC4 LL_HRTIM_GetADCTrigSrc\n 02305 * ADC2R ADC2TBPER LL_HRTIM_GetADCTrigSrc\n 02306 * ADC2R ADC2TCC2 LL_HRTIM_GetADCTrigSrc\n 02307 * ADC2R ADC2TCC3 LL_HRTIM_GetADCTrigSrc\n 02308 * ADC2R ADC2TCC4 LL_HRTIM_GetADCTrigSrc\n 02309 * ADC2R ADC2TCPER LL_HRTIM_GetADCTrigSrc\n 02310 * ADC2R ADC2TCRST LL_HRTIM_GetADCTrigSrc\n 02311 * ADC2R ADC2TDC2 LL_HRTIM_GetADCTrigSrc\n 02312 * ADC2R ADC2TDC3 LL_HRTIM_GetADCTrigSrc\n 02313 * ADC2R ADC2TDC4 LL_HRTIM_GetADCTrigSrc\n 02314 * ADC2R ADC2TDPER LL_HRTIM_GetADCTrigSrc\n 02315 * ADC2R ADC2TDRST LL_HRTIM_GetADCTrigSrc\n 02316 * ADC2R ADC2TEC2 LL_HRTIM_GetADCTrigSrc\n 02317 * ADC2R ADC2TEC3 LL_HRTIM_GetADCTrigSrc\n 02318 * ADC2R ADC2TEC4 LL_HRTIM_GetADCTrigSrc\n 02319 * ADC2R ADC2TERST LL_HRTIM_GetADCTrigSrc\n 02320 * ADC3R ADC3MC1 LL_HRTIM_GetADCTrigSrc\n 02321 * ADC3R ADC3MC2 LL_HRTIM_GetADCTrigSrc\n 02322 * ADC3R ADC3MC3 LL_HRTIM_GetADCTrigSrc\n 02323 * ADC3R ADC3MC4 LL_HRTIM_GetADCTrigSrc\n 02324 * ADC3R ADC3MPER LL_HRTIM_GetADCTrigSrc\n 02325 * ADC3R ADC3EEV1 LL_HRTIM_GetADCTrigSrc\n 02326 * ADC3R ADC3EEV2 LL_HRTIM_GetADCTrigSrc\n 02327 * ADC3R ADC3EEV3 LL_HRTIM_GetADCTrigSrc\n 02328 * ADC3R ADC3EEV4 LL_HRTIM_GetADCTrigSrc\n 02329 * ADC3R ADC3EEV5 LL_HRTIM_GetADCTrigSrc\n 02330 * ADC3R ADC3TAC2 LL_HRTIM_GetADCTrigSrc\n 02331 * ADC3R ADC3TAC3 LL_HRTIM_GetADCTrigSrc\n 02332 * ADC3R ADC3TAC4 LL_HRTIM_GetADCTrigSrc\n 02333 * ADC3R ADC3TAPER LL_HRTIM_GetADCTrigSrc\n 02334 * ADC3R ADC3TARST LL_HRTIM_GetADCTrigSrc\n 02335 * ADC3R ADC3TBC2 LL_HRTIM_GetADCTrigSrc\n 02336 * ADC3R ADC3TBC3 LL_HRTIM_GetADCTrigSrc\n 02337 * ADC3R ADC3TBC4 LL_HRTIM_GetADCTrigSrc\n 02338 * ADC3R ADC3TBPER LL_HRTIM_GetADCTrigSrc\n 02339 * ADC3R ADC3TBRST LL_HRTIM_GetADCTrigSrc\n 02340 * ADC3R ADC3TCC2 LL_HRTIM_GetADCTrigSrc\n 02341 * ADC3R ADC3TCC3 LL_HRTIM_GetADCTrigSrc\n 02342 * ADC3R ADC3TCC4 LL_HRTIM_GetADCTrigSrc\n 02343 * ADC3R ADC3TCPER LL_HRTIM_GetADCTrigSrc\n 02344 * ADC3R ADC3TDC2 LL_HRTIM_GetADCTrigSrc\n 02345 * ADC3R ADC3TDC3 LL_HRTIM_GetADCTrigSrc\n 02346 * ADC3R ADC3TDC4 LL_HRTIM_GetADCTrigSrc\n 02347 * ADC3R ADC3TDPER LL_HRTIM_GetADCTrigSrc\n 02348 * ADC3R ADC3TEC2 LL_HRTIM_GetADCTrigSrc\n 02349 * ADC3R ADC3TEC3 LL_HRTIM_GetADCTrigSrc\n 02350 * ADC3R ADC3TEC4 LL_HRTIM_GetADCTrigSrc\n 02351 * ADC3R ADC3TEPER LL_HRTIM_GetADCTrigSrc\n 02352 * ADC4R ADC4MC1 LL_HRTIM_GetADCTrigSrc\n 02353 * ADC4R ADC4MC2 LL_HRTIM_GetADCTrigSrc\n 02354 * ADC4R ADC4MC3 LL_HRTIM_GetADCTrigSrc\n 02355 * ADC4R ADC4MC4 LL_HRTIM_GetADCTrigSrc\n 02356 * ADC4R ADC4MPER LL_HRTIM_GetADCTrigSrc\n 02357 * ADC4R ADC4EEV6 LL_HRTIM_GetADCTrigSrc\n 02358 * ADC4R ADC4EEV7 LL_HRTIM_GetADCTrigSrc\n 02359 * ADC4R ADC4EEV8 LL_HRTIM_GetADCTrigSrc\n 02360 * ADC4R ADC4EEV9 LL_HRTIM_GetADCTrigSrc\n 02361 * ADC4R ADC4EEV10 LL_HRTIM_GetADCTrigSrc\n 02362 * ADC4R ADC4TAC2 LL_HRTIM_GetADCTrigSrc\n 02363 * ADC4R ADC4TAC3 LL_HRTIM_GetADCTrigSrc\n 02364 * ADC4R ADC4TAC4 LL_HRTIM_GetADCTrigSrc\n 02365 * ADC4R ADC4TAPER LL_HRTIM_GetADCTrigSrc\n 02366 * ADC4R ADC4TBC2 LL_HRTIM_GetADCTrigSrc\n 02367 * ADC4R ADC4TBC3 LL_HRTIM_GetADCTrigSrc\n 02368 * ADC4R ADC4TBC4 LL_HRTIM_GetADCTrigSrc\n 02369 * ADC4R ADC4TBPER LL_HRTIM_GetADCTrigSrc\n 02370 * ADC4R ADC4TCC2 LL_HRTIM_GetADCTrigSrc\n 02371 * ADC4R ADC4TCC3 LL_HRTIM_GetADCTrigSrc\n 02372 * ADC4R ADC4TCC4 LL_HRTIM_GetADCTrigSrc\n 02373 * ADC4R ADC4TCPER LL_HRTIM_GetADCTrigSrc\n 02374 * ADC4R ADC4TCRST LL_HRTIM_GetADCTrigSrc\n 02375 * ADC4R ADC4TDC2 LL_HRTIM_GetADCTrigSrc\n 02376 * ADC4R ADC4TDC3 LL_HRTIM_GetADCTrigSrc\n 02377 * ADC4R ADC4TDC4 LL_HRTIM_GetADCTrigSrc\n 02378 * ADC4R ADC4TDPER LL_HRTIM_GetADCTrigSrc\n 02379 * ADC4R ADC4TDRST LL_HRTIM_GetADCTrigSrc\n 02380 * ADC4R ADC4TEC2 LL_HRTIM_GetADCTrigSrc\n 02381 * ADC4R ADC4TEC3 LL_HRTIM_GetADCTrigSrc\n 02382 * ADC4R ADC4TEC4 LL_HRTIM_GetADCTrigSrc\n 02383 * ADC4R ADC4TERST LL_HRTIM_GetADCTrigSrc 02384 * @param HRTIMx High Resolution Timer instance 02385 * @param ADCTrig This parameter can be one of the following values: 02386 * @arg @ref LL_HRTIM_ADCTRIG_1 02387 * @arg @ref LL_HRTIM_ADCTRIG_2 02388 * @arg @ref LL_HRTIM_ADCTRIG_3 02389 * @arg @ref LL_HRTIM_ADCTRIG_4 02390 * @retval Src This parameter can be a combination of the following values: 02391 * 02392 * For ADC trigger 1 and ADC trigger 3 this parameter can be a 02393 * combination of the following values: 02394 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE 02395 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1 02396 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2 02397 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3 02398 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4 02399 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER 02400 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1 02401 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2 02402 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3 02403 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4 02404 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5 02405 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP2 02406 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3 02407 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4 02408 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER 02409 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST 02410 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2 02411 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3 02412 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4 02413 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER 02414 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST 02415 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2 02416 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3 02417 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4 02418 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER 02419 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2 02420 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3 02421 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4 02422 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER 02423 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP2 02424 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3 02425 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4 02426 * @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER 02427 * 02428 * For ADC trigger 2 and ADC trigger 4 this parameter can be a 02429 * combination of the following values: 02430 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE 02431 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1 02432 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2 02433 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3 02434 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4 02435 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER 02436 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6 02437 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7 02438 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8 02439 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9 02440 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10 02441 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2 02442 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP3 02443 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4 02444 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER 02445 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2 02446 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3 02447 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4 02448 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER 02449 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2 02450 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3 02451 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4 02452 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER 02453 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST 02454 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2 02455 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3 02456 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4 02457 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER 02458 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST 02459 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2 02460 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3 02461 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4 02462 * @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST 02463 */ 02464 __STATIC_INLINE uint32_t LL_HRTIM_GetADCTrigSrc(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig) 02465 { 02466 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) + 02467 REG_OFFSET_TAB_ADCxR[ADCTrig])); 02468 return (*pReg); 02469 02470 } 02471 02472 02473 /** 02474 * @} 02475 */ 02476 02477 /** @defgroup HRTIM_LL_EF_HRTIM_Timer_Control HRTIM_Timer_Control 02478 * @{ 02479 */ 02480 02481 /** 02482 * @brief Enable timer(s) counter. 02483 * @rmtoll MDIER TECEN LL_HRTIM_TIM_CounterEnable\n 02484 * MDIER TDCEN LL_HRTIM_TIM_CounterEnable\n 02485 * MDIER TCCEN LL_HRTIM_TIM_CounterEnable\n 02486 * MDIER TBCEN LL_HRTIM_TIM_CounterEnable\n 02487 * MDIER TACEN LL_HRTIM_TIM_CounterEnable\n 02488 * MDIER MCEN LL_HRTIM_TIM_CounterEnable 02489 * @param HRTIMx High Resolution Timer instance 02490 * @param Timers This parameter can be a combination of the following values: 02491 * @arg @ref LL_HRTIM_TIMER_MASTER 02492 * @arg @ref LL_HRTIM_TIMER_A 02493 * @arg @ref LL_HRTIM_TIMER_B 02494 * @arg @ref LL_HRTIM_TIMER_C 02495 * @arg @ref LL_HRTIM_TIMER_D 02496 * @arg @ref LL_HRTIM_TIMER_E 02497 * @retval None 02498 */ 02499 __STATIC_INLINE void LL_HRTIM_TIM_CounterEnable(HRTIM_TypeDef *HRTIMx, uint32_t Timers) 02500 { 02501 SET_BIT(HRTIMx->sMasterRegs.MCR, Timers); 02502 } 02503 02504 /** 02505 * @brief Disable timer(s) counter. 02506 * @rmtoll MDIER TECEN LL_HRTIM_TIM_CounterDisable\n 02507 * MDIER TDCEN LL_HRTIM_TIM_CounterDisable\n 02508 * MDIER TCCEN LL_HRTIM_TIM_CounterDisable\n 02509 * MDIER TBCEN LL_HRTIM_TIM_CounterDisable\n 02510 * MDIER TACEN LL_HRTIM_TIM_CounterDisable\n 02511 * MDIER MCEN LL_HRTIM_TIM_CounterDisable 02512 * @param HRTIMx High Resolution Timer instance 02513 * @param Timers This parameter can be a combination of the following values: 02514 * @arg @ref LL_HRTIM_TIMER_MASTER 02515 * @arg @ref LL_HRTIM_TIMER_A 02516 * @arg @ref LL_HRTIM_TIMER_B 02517 * @arg @ref LL_HRTIM_TIMER_C 02518 * @arg @ref LL_HRTIM_TIMER_D 02519 * @arg @ref LL_HRTIM_TIMER_E 02520 * @retval None 02521 */ 02522 __STATIC_INLINE void LL_HRTIM_TIM_CounterDisable(HRTIM_TypeDef *HRTIMx, uint32_t Timers) 02523 { 02524 CLEAR_BIT(HRTIMx->sMasterRegs.MCR, Timers); 02525 } 02526 02527 /** 02528 * @brief Indicate whether the timer counter is enabled. 02529 * @rmtoll MDIER TECEN LL_HRTIM_TIM_IsCounterEnabled\n 02530 * MDIER TDCEN LL_HRTIM_TIM_IsCounterEnabled\n 02531 * MDIER TCCEN LL_HRTIM_TIM_IsCounterEnabled\n 02532 * MDIER TBCEN LL_HRTIM_TIM_IsCounterEnabled\n 02533 * MDIER TACEN LL_HRTIM_TIM_IsCounterEnabled\n 02534 * MDIER MCEN LL_HRTIM_TIM_IsCounterEnabled 02535 * @param HRTIMx High Resolution Timer instance 02536 * @param Timer This parameter can be one of the following values: 02537 * @arg @ref LL_HRTIM_TIMER_MASTER 02538 * @arg @ref LL_HRTIM_TIMER_A 02539 * @arg @ref LL_HRTIM_TIMER_B 02540 * @arg @ref LL_HRTIM_TIMER_C 02541 * @arg @ref LL_HRTIM_TIMER_D 02542 * @arg @ref LL_HRTIM_TIMER_E 02543 * @retval State of MCEN or TxCEN bit HRTIM_MCR register (1 or 0). 02544 */ 02545 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsCounterEnabled(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02546 { 02547 return ((READ_BIT(HRTIMx->sMasterRegs.MCR, Timer) == (Timer)) ? 1UL : 0UL); 02548 } 02549 02550 /** 02551 * @brief Set the timer clock prescaler ratio. 02552 * @rmtoll MCR CKPSC LL_HRTIM_TIM_SetPrescaler\n 02553 * TIMxCR CKPSC LL_HRTIM_TIM_SetPrescaler 02554 * @note The counter clock equivalent frequency (CK_CNT) is equal to fHRCK / 2^CKPSC[2:0]. 02555 * @note The prescaling ratio cannot be modified once the timer counter is enabled. 02556 * @param HRTIMx High Resolution Timer instance 02557 * @param Timer This parameter can be one of the following values: 02558 * @arg @ref LL_HRTIM_TIMER_MASTER 02559 * @arg @ref LL_HRTIM_TIMER_A 02560 * @arg @ref LL_HRTIM_TIMER_B 02561 * @arg @ref LL_HRTIM_TIMER_C 02562 * @arg @ref LL_HRTIM_TIMER_D 02563 * @arg @ref LL_HRTIM_TIMER_E 02564 * @param Prescaler This parameter can be one of the following values: 02565 * @arg @ref LL_HRTIM_PRESCALERRATIO_DIV1 02566 * @arg @ref LL_HRTIM_PRESCALERRATIO_DIV2 02567 * @arg @ref LL_HRTIM_PRESCALERRATIO_DIV4 02568 * @retval None 02569 */ 02570 __STATIC_INLINE void LL_HRTIM_TIM_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler) 02571 { 02572 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02573 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02574 MODIFY_REG(*pReg, HRTIM_MCR_CK_PSC, Prescaler); 02575 } 02576 02577 /** 02578 * @brief Get the timer clock prescaler ratio 02579 * @rmtoll MCR CKPSC LL_HRTIM_TIM_GetPrescaler\n 02580 * TIMxCR CKPSC LL_HRTIM_TIM_GetPrescaler 02581 * @param HRTIMx High Resolution Timer instance 02582 * @param Timer This parameter can be one of the following values: 02583 * @arg @ref LL_HRTIM_TIMER_MASTER 02584 * @arg @ref LL_HRTIM_TIMER_A 02585 * @arg @ref LL_HRTIM_TIMER_B 02586 * @arg @ref LL_HRTIM_TIMER_C 02587 * @arg @ref LL_HRTIM_TIMER_D 02588 * @arg @ref LL_HRTIM_TIMER_E 02589 * @retval Prescaler Returned value can be one of the following values: 02590 * @arg @ref LL_HRTIM_PRESCALERRATIO_DIV1 02591 * @arg @ref LL_HRTIM_PRESCALERRATIO_DIV2 02592 * @arg @ref LL_HRTIM_PRESCALERRATIO_DIV4 02593 */ 02594 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02595 { 02596 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02597 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02598 return (READ_BIT(*pReg, HRTIM_MCR_CK_PSC)); 02599 } 02600 02601 /** 02602 * @brief Set the counter operating mode mode (single-shot, continuous or re-triggerable). 02603 * @rmtoll MCR CONT LL_HRTIM_TIM_SetCounterMode\n 02604 * MCR RETRIG LL_HRTIM_TIM_SetCounterMode\n 02605 * TIMxCR CONT LL_HRTIM_TIM_SetCounterMode\n 02606 * TIMxCR RETRIG LL_HRTIM_TIM_SetCounterMode 02607 * @param HRTIMx High Resolution Timer instance 02608 * @param Timer This parameter can be one of the following values: 02609 * @arg @ref LL_HRTIM_TIMER_MASTER 02610 * @arg @ref LL_HRTIM_TIMER_A 02611 * @arg @ref LL_HRTIM_TIMER_B 02612 * @arg @ref LL_HRTIM_TIMER_C 02613 * @arg @ref LL_HRTIM_TIMER_D 02614 * @arg @ref LL_HRTIM_TIMER_E 02615 * @param Mode This parameter can be one of the following values: 02616 * @arg @ref LL_HRTIM_MODE_CONTINUOUS 02617 * @arg @ref LL_HRTIM_MODE_SINGLESHOT 02618 * @arg @ref LL_HRTIM_MODE_RETRIGGERABLE 02619 * @retval None 02620 */ 02621 __STATIC_INLINE void LL_HRTIM_TIM_SetCounterMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode) 02622 { 02623 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02624 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02625 MODIFY_REG(*pReg, (HRTIM_TIMCR_RETRIG | HRTIM_MCR_CONT), Mode); 02626 } 02627 02628 /** 02629 * @brief Get the counter operating mode mode 02630 * @rmtoll MCR CONT LL_HRTIM_TIM_GetCounterMode\n 02631 * MCR RETRIG LL_HRTIM_TIM_GetCounterMode\n 02632 * TIMxCR CONT LL_HRTIM_TIM_GetCounterMode\n 02633 * TIMxCR RETRIG LL_HRTIM_TIM_GetCounterMode 02634 * @param HRTIMx High Resolution Timer instance 02635 * @param Timer This parameter can be one of the following values: 02636 * @arg @ref LL_HRTIM_TIMER_MASTER 02637 * @arg @ref LL_HRTIM_TIMER_A 02638 * @arg @ref LL_HRTIM_TIMER_B 02639 * @arg @ref LL_HRTIM_TIMER_C 02640 * @arg @ref LL_HRTIM_TIMER_D 02641 * @arg @ref LL_HRTIM_TIMER_E 02642 * @retval Mode Returned value can be one of the following values: 02643 * @arg @ref LL_HRTIM_MODE_CONTINUOUS 02644 * @arg @ref LL_HRTIM_MODE_SINGLESHOT 02645 * @arg @ref LL_HRTIM_MODE_RETRIGGERABLE 02646 */ 02647 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCounterMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02648 { 02649 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02650 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02651 return (READ_BIT(*pReg, (HRTIM_MCR_RETRIG | HRTIM_MCR_CONT))); 02652 } 02653 02654 /** 02655 * @brief Enable the half duty-cycle mode. 02656 * @rmtoll MCR HALF LL_HRTIM_TIM_EnableHalfMode\n 02657 * TIMxCR HALF LL_HRTIM_TIM_EnableHalfMode 02658 * @note When the half mode is enabled, HRTIM_MCMP1R (or HRTIM_CMP1xR) 02659 * active register is automatically updated with HRTIM_MPER/2 02660 * (or HRTIM_PERxR/2) value when HRTIM_MPER (or HRTIM_PERxR) register is written. 02661 * @param HRTIMx High Resolution Timer instance 02662 * @param Timer This parameter can be one of the following values: 02663 * @arg @ref LL_HRTIM_TIMER_MASTER 02664 * @arg @ref LL_HRTIM_TIMER_A 02665 * @arg @ref LL_HRTIM_TIMER_B 02666 * @arg @ref LL_HRTIM_TIMER_C 02667 * @arg @ref LL_HRTIM_TIMER_D 02668 * @arg @ref LL_HRTIM_TIMER_E 02669 * @retval None 02670 */ 02671 __STATIC_INLINE void LL_HRTIM_TIM_EnableHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02672 { 02673 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02674 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02675 SET_BIT(*pReg, HRTIM_MCR_HALF); 02676 } 02677 02678 /** 02679 * @brief Disable the half duty-cycle mode. 02680 * @rmtoll MCR HALF LL_HRTIM_TIM_DisableHalfMode\n 02681 * TIMxCR HALF LL_HRTIM_TIM_DisableHalfMode 02682 * @param HRTIMx High Resolution Timer instance 02683 * @param Timer This parameter can be one of the following values: 02684 * @arg @ref LL_HRTIM_TIMER_MASTER 02685 * @arg @ref LL_HRTIM_TIMER_A 02686 * @arg @ref LL_HRTIM_TIMER_B 02687 * @arg @ref LL_HRTIM_TIMER_C 02688 * @arg @ref LL_HRTIM_TIMER_D 02689 * @arg @ref LL_HRTIM_TIMER_E 02690 * @retval None 02691 */ 02692 __STATIC_INLINE void LL_HRTIM_TIM_DisableHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02693 { 02694 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02695 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02696 CLEAR_BIT(*pReg, HRTIM_MCR_HALF); 02697 } 02698 02699 /** 02700 * @brief Indicate whether half duty-cycle mode is enabled for a given timer. 02701 * @rmtoll MCR HALF LL_HRTIM_TIM_IsEnabledHalfMode\n 02702 * TIMxCR HALF LL_HRTIM_TIM_IsEnabledHalfMode 02703 * @param HRTIMx High Resolution Timer instance 02704 * @param Timer This parameter can be one of the following values: 02705 * @arg @ref LL_HRTIM_TIMER_MASTER 02706 * @arg @ref LL_HRTIM_TIMER_A 02707 * @arg @ref LL_HRTIM_TIMER_B 02708 * @arg @ref LL_HRTIM_TIMER_C 02709 * @arg @ref LL_HRTIM_TIMER_D 02710 * @arg @ref LL_HRTIM_TIMER_E 02711 * @retval State of HALF bit to 1 in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0). 02712 */ 02713 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02714 { 02715 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02716 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02717 02718 return ((READ_BIT(*pReg, HRTIM_MCR_HALF) == (HRTIM_MCR_HALF)) ? 1UL : 0UL); 02719 } 02720 /** 02721 * @brief Enable the timer start when receiving a synchronization input event. 02722 * @rmtoll MCR SYNCSTRTM LL_HRTIM_TIM_EnableStartOnSync\n 02723 * TIMxCR SYNSTRTA LL_HRTIM_TIM_EnableStartOnSync 02724 * @param HRTIMx High Resolution Timer instance 02725 * @param Timer This parameter can be one of the following values: 02726 * @arg @ref LL_HRTIM_TIMER_MASTER 02727 * @arg @ref LL_HRTIM_TIMER_A 02728 * @arg @ref LL_HRTIM_TIMER_B 02729 * @arg @ref LL_HRTIM_TIMER_C 02730 * @arg @ref LL_HRTIM_TIMER_D 02731 * @arg @ref LL_HRTIM_TIMER_E 02732 * @retval None 02733 */ 02734 __STATIC_INLINE void LL_HRTIM_TIM_EnableStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02735 { 02736 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02737 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02738 SET_BIT(*pReg, HRTIM_MCR_SYNCSTRTM); 02739 } 02740 02741 /** 02742 * @brief Disable the timer start when receiving a synchronization input event. 02743 * @rmtoll MCR SYNCSTRTM LL_HRTIM_TIM_DisableStartOnSync\n 02744 * TIMxCR SYNSTRTA LL_HRTIM_TIM_DisableStartOnSync 02745 * @param HRTIMx High Resolution Timer instance 02746 * @param Timer This parameter can be one of the following values: 02747 * @arg @ref LL_HRTIM_TIMER_MASTER 02748 * @arg @ref LL_HRTIM_TIMER_A 02749 * @arg @ref LL_HRTIM_TIMER_B 02750 * @arg @ref LL_HRTIM_TIMER_C 02751 * @arg @ref LL_HRTIM_TIMER_D 02752 * @arg @ref LL_HRTIM_TIMER_E 02753 * @retval None 02754 */ 02755 __STATIC_INLINE void LL_HRTIM_TIM_DisableStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02756 { 02757 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02758 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02759 CLEAR_BIT(*pReg, HRTIM_MCR_SYNCSTRTM); 02760 } 02761 02762 /** 02763 * @brief Indicate whether the timer start when receiving a synchronization input event. 02764 * @rmtoll MCR SYNCSTRTM LL_HRTIM_TIM_IsEnabledStartOnSync\n 02765 * TIMxCR SYNSTRTA LL_HRTIM_TIM_IsEnabledStartOnSync 02766 * @param HRTIMx High Resolution Timer instance 02767 * @param Timer This parameter can be one of the following values: 02768 * @arg @ref LL_HRTIM_TIMER_MASTER 02769 * @arg @ref LL_HRTIM_TIMER_A 02770 * @arg @ref LL_HRTIM_TIMER_B 02771 * @arg @ref LL_HRTIM_TIMER_C 02772 * @arg @ref LL_HRTIM_TIMER_D 02773 * @arg @ref LL_HRTIM_TIMER_E 02774 * @retval State of SYNCSTRTx bit in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0). 02775 */ 02776 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02777 { 02778 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02779 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02780 02781 return ((READ_BIT(*pReg, HRTIM_MCR_SYNCSTRTM) == (HRTIM_MCR_SYNCSTRTM)) ? 1UL : 0UL); 02782 } 02783 02784 /** 02785 * @brief Enable the timer reset when receiving a synchronization input event. 02786 * @rmtoll MCR SYNCRSTM LL_HRTIM_TIM_EnableResetOnSync\n 02787 * TIMxCR SYNCRSTA LL_HRTIM_TIM_EnableResetOnSync 02788 * @param HRTIMx High Resolution Timer instance 02789 * @param Timer This parameter can be one of the following values: 02790 * @arg @ref LL_HRTIM_TIMER_MASTER 02791 * @arg @ref LL_HRTIM_TIMER_A 02792 * @arg @ref LL_HRTIM_TIMER_B 02793 * @arg @ref LL_HRTIM_TIMER_C 02794 * @arg @ref LL_HRTIM_TIMER_D 02795 * @arg @ref LL_HRTIM_TIMER_E 02796 * @retval None 02797 */ 02798 __STATIC_INLINE void LL_HRTIM_TIM_EnableResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02799 { 02800 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02801 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02802 SET_BIT(*pReg, HRTIM_MCR_SYNCRSTM); 02803 } 02804 02805 /** 02806 * @brief Disable the timer reset when receiving a synchronization input event. 02807 * @rmtoll MCR SYNCRSTM LL_HRTIM_TIM_DisableResetOnSync\n 02808 * TIMxCR SYNCRSTA LL_HRTIM_TIM_DisableResetOnSync 02809 * @param HRTIMx High Resolution Timer instance 02810 * @param Timer This parameter can be one of the following values: 02811 * @arg @ref LL_HRTIM_TIMER_MASTER 02812 * @arg @ref LL_HRTIM_TIMER_A 02813 * @arg @ref LL_HRTIM_TIMER_B 02814 * @arg @ref LL_HRTIM_TIMER_C 02815 * @arg @ref LL_HRTIM_TIMER_D 02816 * @arg @ref LL_HRTIM_TIMER_E 02817 * @retval None 02818 */ 02819 __STATIC_INLINE void LL_HRTIM_TIM_DisableResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02820 { 02821 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02822 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02823 CLEAR_BIT(*pReg, HRTIM_MCR_SYNCRSTM); 02824 } 02825 02826 /** 02827 * @brief Indicate whether the timer reset when receiving a synchronization input event. 02828 * @rmtoll MCR SYNCRSTM LL_HRTIM_TIM_IsEnabledResetOnSync\n 02829 * TIMxCR SYNCRSTA LL_HRTIM_TIM_IsEnabledResetOnSync 02830 * @param HRTIMx High Resolution Timer instance 02831 * @param Timer This parameter can be one of the following values: 02832 * @arg @ref LL_HRTIM_TIMER_MASTER 02833 * @arg @ref LL_HRTIM_TIMER_A 02834 * @arg @ref LL_HRTIM_TIMER_B 02835 * @arg @ref LL_HRTIM_TIMER_C 02836 * @arg @ref LL_HRTIM_TIMER_D 02837 * @arg @ref LL_HRTIM_TIMER_E 02838 * @retval None 02839 */ 02840 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02841 { 02842 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02843 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02844 02845 return ((READ_BIT(*pReg, HRTIM_MCR_SYNCRSTM) == (HRTIM_MCR_SYNCRSTM)) ? 1UL : 0UL); 02846 } 02847 02848 /** 02849 * @brief Set the HRTIM output the DAC synchronization event is generated on (DACtrigOutx). 02850 * @rmtoll MCR DACSYNC LL_HRTIM_TIM_SetDACTrig\n 02851 * TIMxCR DACSYNC LL_HRTIM_TIM_SetDACTrig 02852 * @param HRTIMx High Resolution Timer instance 02853 * @param Timer This parameter can be one of the following values: 02854 * @arg @ref LL_HRTIM_TIMER_MASTER 02855 * @arg @ref LL_HRTIM_TIMER_A 02856 * @arg @ref LL_HRTIM_TIMER_B 02857 * @arg @ref LL_HRTIM_TIMER_C 02858 * @arg @ref LL_HRTIM_TIMER_D 02859 * @arg @ref LL_HRTIM_TIMER_E 02860 * @param DACTrig This parameter can be one of the following values: 02861 * @arg @ref LL_HRTIM_DACTRIG_NONE 02862 * @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_1 02863 * @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_2 02864 * @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_3 02865 * @retval None 02866 */ 02867 __STATIC_INLINE void LL_HRTIM_TIM_SetDACTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DACTrig) 02868 { 02869 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02870 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02871 MODIFY_REG(*pReg, HRTIM_MCR_DACSYNC, DACTrig); 02872 } 02873 02874 /** 02875 * @brief Get the HRTIM output the DAC synchronization event is generated on (DACtrigOutx). 02876 * @rmtoll MCR DACSYNC LL_HRTIM_TIM_GetDACTrig\n 02877 * TIMxCR DACSYNC LL_HRTIM_TIM_GetDACTrig 02878 * @param HRTIMx High Resolution Timer instance 02879 * @param Timer This parameter can be one of the following values: 02880 * @arg @ref LL_HRTIM_TIMER_MASTER 02881 * @arg @ref LL_HRTIM_TIMER_A 02882 * @arg @ref LL_HRTIM_TIMER_B 02883 * @arg @ref LL_HRTIM_TIMER_C 02884 * @arg @ref LL_HRTIM_TIMER_D 02885 * @arg @ref LL_HRTIM_TIMER_E 02886 * @retval DACTrig Returned value can be one of the following values: 02887 * @arg @ref LL_HRTIM_DACTRIG_NONE 02888 * @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_1 02889 * @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_2 02890 * @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_3 02891 */ 02892 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDACTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02893 { 02894 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02895 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02896 return (READ_BIT(*pReg, HRTIM_MCR_DACSYNC)); 02897 } 02898 02899 /** 02900 * @brief Enable the timer registers preload mechanism. 02901 * @rmtoll MCR PREEN LL_HRTIM_TIM_EnablePreload\n 02902 * TIMxCR PREEN LL_HRTIM_TIM_EnablePreload 02903 * @note When the preload mode is enabled, accessed registers are shadow registers. 02904 * Their content is transferred into the active register after an update request, 02905 * either software or synchronized with an event. 02906 * @param HRTIMx High Resolution Timer instance 02907 * @param Timer This parameter can be one of the following values: 02908 * @arg @ref LL_HRTIM_TIMER_MASTER 02909 * @arg @ref LL_HRTIM_TIMER_A 02910 * @arg @ref LL_HRTIM_TIMER_B 02911 * @arg @ref LL_HRTIM_TIMER_C 02912 * @arg @ref LL_HRTIM_TIMER_D 02913 * @arg @ref LL_HRTIM_TIMER_E 02914 * @retval None 02915 */ 02916 __STATIC_INLINE void LL_HRTIM_TIM_EnablePreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02917 { 02918 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02919 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02920 SET_BIT(*pReg, HRTIM_MCR_PREEN); 02921 } 02922 02923 /** 02924 * @brief Disable the timer registers preload mechanism. 02925 * @rmtoll MCR PREEN LL_HRTIM_TIM_DisablePreload\n 02926 * TIMxCR PREEN LL_HRTIM_TIM_DisablePreload 02927 * @param HRTIMx High Resolution Timer instance 02928 * @param Timer This parameter can be one of the following values: 02929 * @arg @ref LL_HRTIM_TIMER_MASTER 02930 * @arg @ref LL_HRTIM_TIMER_A 02931 * @arg @ref LL_HRTIM_TIMER_B 02932 * @arg @ref LL_HRTIM_TIMER_C 02933 * @arg @ref LL_HRTIM_TIMER_D 02934 * @arg @ref LL_HRTIM_TIMER_E 02935 * @retval None 02936 */ 02937 __STATIC_INLINE void LL_HRTIM_TIM_DisablePreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02938 { 02939 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02940 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02941 CLEAR_BIT(*pReg, HRTIM_MCR_PREEN); 02942 } 02943 02944 /** 02945 * @brief Indicate whether the timer registers preload mechanism is enabled. 02946 * @rmtoll MCR PREEN LL_HRTIM_TIM_IsEnabledPreload\n 02947 * TIMxCR PREEN LL_HRTIM_TIM_IsEnabledPreload 02948 * @param HRTIMx High Resolution Timer instance 02949 * @param Timer This parameter can be one of the following values: 02950 * @arg @ref LL_HRTIM_TIMER_MASTER 02951 * @arg @ref LL_HRTIM_TIMER_A 02952 * @arg @ref LL_HRTIM_TIMER_B 02953 * @arg @ref LL_HRTIM_TIMER_C 02954 * @arg @ref LL_HRTIM_TIMER_D 02955 * @arg @ref LL_HRTIM_TIMER_E 02956 * @retval State of PREEN bit in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0). 02957 */ 02958 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledPreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 02959 { 02960 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 02961 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 02962 02963 return ((READ_BIT(*pReg, HRTIM_MCR_PREEN) == (HRTIM_MCR_PREEN)) ? 1UL : 0UL); 02964 } 02965 02966 /** 02967 * @brief Set the timer register update trigger. 02968 * @rmtoll MCR MREPU LL_HRTIM_TIM_SetUpdateTrig\n 02969 * TIMxCR TAU LL_HRTIM_TIM_SetUpdateTrig\n 02970 * TIMxCR TBU LL_HRTIM_TIM_SetUpdateTrig\n 02971 * TIMxCR TCU LL_HRTIM_TIM_SetUpdateTrig\n 02972 * TIMxCR TDU LL_HRTIM_TIM_SetUpdateTrig\n 02973 * TIMxCR TEU LL_HRTIM_TIM_SetUpdateTrig\n 02974 * TIMxCR MSTU LL_HRTIM_TIM_SetUpdateTrig 02975 * @param HRTIMx High Resolution Timer instance 02976 * @param Timer This parameter can be one of the following values: 02977 * @arg @ref LL_HRTIM_TIMER_MASTER 02978 * @arg @ref LL_HRTIM_TIMER_A 02979 * @arg @ref LL_HRTIM_TIMER_B 02980 * @arg @ref LL_HRTIM_TIMER_C 02981 * @arg @ref LL_HRTIM_TIMER_D 02982 * @arg @ref LL_HRTIM_TIMER_E 02983 * @param UpdateTrig This parameter can be one of the following values: 02984 * 02985 * For the master timer this parameter can be one of the following values: 02986 * @arg @ref LL_HRTIM_UPDATETRIG_NONE 02987 * @arg @ref LL_HRTIM_UPDATETRIG_REPETITION 02988 * 02989 * For timer A..E this parameter can be: 02990 * @arg @ref LL_HRTIM_UPDATETRIG_NONE 02991 * or a combination of the following values: 02992 * @arg @ref LL_HRTIM_UPDATETRIG_MASTER 02993 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_A 02994 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_B 02995 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_C 02996 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_D 02997 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_E 02998 * @arg @ref LL_HRTIM_UPDATETRIG_REPETITION 02999 * @arg @ref LL_HRTIM_UPDATETRIG_RESET 03000 * @retval None 03001 */ 03002 __STATIC_INLINE void LL_HRTIM_TIM_SetUpdateTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t UpdateTrig) 03003 { 03004 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03005 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 03006 MODIFY_REG(*pReg, REG_MASK_TAB_UPDATETRIG[iTimer], UpdateTrig << REG_SHIFT_TAB_UPDATETRIG[iTimer]); 03007 } 03008 03009 /** 03010 * @brief Get the timer register update trigger. 03011 * @rmtoll MCR MREPU LL_HRTIM_TIM_GetUpdateTrig\n 03012 * TIMxCR TBU LL_HRTIM_TIM_GetUpdateTrig\n 03013 * TIMxCR TCU LL_HRTIM_TIM_GetUpdateTrig\n 03014 * TIMxCR TDU LL_HRTIM_TIM_GetUpdateTrig\n 03015 * TIMxCR TEU LL_HRTIM_TIM_GetUpdateTrig\n 03016 * TIMxCR MSTU LL_HRTIM_TIM_GetUpdateTrig 03017 * @param HRTIMx High Resolution Timer instance 03018 * @param Timer This parameter can be one of the following values: 03019 * @arg @ref LL_HRTIM_TIMER_MASTER 03020 * @arg @ref LL_HRTIM_TIMER_A 03021 * @arg @ref LL_HRTIM_TIMER_B 03022 * @arg @ref LL_HRTIM_TIMER_C 03023 * @arg @ref LL_HRTIM_TIMER_D 03024 * @arg @ref LL_HRTIM_TIMER_E 03025 * @retval UpdateTrig Returned value can be one of the following values: 03026 * 03027 * For the master timer this parameter can be one of the following values: 03028 * @arg @ref LL_HRTIM_UPDATETRIG_NONE 03029 * @arg @ref LL_HRTIM_UPDATETRIG_REPETITION 03030 * 03031 * For timer A..E this parameter can be: 03032 * @arg @ref LL_HRTIM_UPDATETRIG_NONE 03033 * or a combination of the following values: 03034 * @arg @ref LL_HRTIM_UPDATETRIG_MASTER 03035 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_A 03036 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_B 03037 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_C 03038 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_D 03039 * @arg @ref LL_HRTIM_UPDATETRIG_TIMER_E 03040 * @arg @ref LL_HRTIM_UPDATETRIG_REPETITION 03041 * @arg @ref LL_HRTIM_UPDATETRIG_RESET 03042 */ 03043 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetUpdateTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03044 { 03045 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03046 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 03047 return (READ_BIT(*pReg, REG_MASK_TAB_UPDATETRIG[iTimer]) >> REG_SHIFT_TAB_UPDATETRIG[iTimer]); 03048 } 03049 03050 /** 03051 * @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])). 03052 * @rmtoll MCR BRSTDMA LL_HRTIM_TIM_SetUpdateGating\n 03053 * TIMxCR UPDGAT LL_HRTIM_TIM_SetUpdateGating 03054 * @param HRTIMx High Resolution Timer instance 03055 * @param Timer This parameter can be one of the following values: 03056 * @arg @ref LL_HRTIM_TIMER_MASTER 03057 * @arg @ref LL_HRTIM_TIMER_A 03058 * @arg @ref LL_HRTIM_TIMER_B 03059 * @arg @ref LL_HRTIM_TIMER_C 03060 * @arg @ref LL_HRTIM_TIMER_D 03061 * @arg @ref LL_HRTIM_TIMER_E 03062 * @param UpdateGating This parameter can be one of the following values: 03063 * 03064 * For the master timer this parameter can be one of the following values: 03065 * @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT 03066 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST 03067 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE 03068 * 03069 * For the timer A..E this parameter can be one of the following values: 03070 * @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT 03071 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST 03072 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE 03073 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1 03074 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2 03075 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3 03076 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE 03077 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE 03078 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE 03079 * @retval None 03080 */ 03081 __STATIC_INLINE void LL_HRTIM_TIM_SetUpdateGating(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t UpdateGating) 03082 { 03083 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03084 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 03085 MODIFY_REG(*pReg, REG_MASK_TAB_UPDATEGATING[iTimer], (UpdateGating << REG_SHIFT_TAB_UPDATEGATING[iTimer])); 03086 } 03087 03088 /** 03089 * @brief Get the timer registers update condition. 03090 * @rmtoll MCR BRSTDMA LL_HRTIM_TIM_GetUpdateGating\n 03091 * TIMxCR UPDGAT LL_HRTIM_TIM_GetUpdateGating 03092 * @param HRTIMx High Resolution Timer instance 03093 * @param Timer This parameter can be one of the following values: 03094 * @arg @ref LL_HRTIM_TIMER_MASTER 03095 * @arg @ref LL_HRTIM_TIMER_A 03096 * @arg @ref LL_HRTIM_TIMER_B 03097 * @arg @ref LL_HRTIM_TIMER_C 03098 * @arg @ref LL_HRTIM_TIMER_D 03099 * @arg @ref LL_HRTIM_TIMER_E 03100 * @retval UpdateGating Returned value can be one of the following values: 03101 * 03102 * For the master timer this parameter can be one of the following values: 03103 * @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT 03104 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST 03105 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE 03106 * 03107 * For the timer A..E this parameter can be one of the following values: 03108 * @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT 03109 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST 03110 * @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE 03111 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1 03112 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2 03113 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3 03114 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE 03115 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE 03116 * @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE 03117 */ 03118 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetUpdateGating(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03119 { 03120 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03121 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer])); 03122 return (READ_BIT(*pReg, REG_MASK_TAB_UPDATEGATING[iTimer]) >> REG_SHIFT_TAB_UPDATEGATING[iTimer]); 03123 } 03124 03125 /** 03126 * @brief Enable the push-pull mode. 03127 * @rmtoll TIMxCR PSHPLL LL_HRTIM_TIM_EnablePushPullMode 03128 * @param HRTIMx High Resolution Timer instance 03129 * @param Timer This parameter can be one of the following values: 03130 * @arg @ref LL_HRTIM_TIMER_A 03131 * @arg @ref LL_HRTIM_TIMER_B 03132 * @arg @ref LL_HRTIM_TIMER_C 03133 * @arg @ref LL_HRTIM_TIMER_D 03134 * @arg @ref LL_HRTIM_TIMER_E 03135 * @retval None 03136 */ 03137 __STATIC_INLINE void LL_HRTIM_TIM_EnablePushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03138 { 03139 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03140 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) + 03141 REG_OFFSET_TAB_TIMER[iTimer])); 03142 SET_BIT(*pReg, HRTIM_TIMCR_PSHPLL); 03143 } 03144 03145 /** 03146 * @brief Disable the push-pull mode. 03147 * @rmtoll TIMxCR PSHPLL LL_HRTIM_TIM_DisablePushPullMode 03148 * @param HRTIMx High Resolution Timer instance 03149 * @param Timer This parameter can be one of the following values: 03150 * @arg @ref LL_HRTIM_TIMER_A 03151 * @arg @ref LL_HRTIM_TIMER_B 03152 * @arg @ref LL_HRTIM_TIMER_C 03153 * @arg @ref LL_HRTIM_TIMER_D 03154 * @arg @ref LL_HRTIM_TIMER_E 03155 * @retval None 03156 */ 03157 __STATIC_INLINE void LL_HRTIM_TIM_DisablePushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03158 { 03159 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03160 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) + 03161 REG_OFFSET_TAB_TIMER[iTimer])); 03162 CLEAR_BIT(*pReg, HRTIM_TIMCR_PSHPLL); 03163 } 03164 03165 /** 03166 * @brief Indicate whether the push-pull mode is enabled. 03167 * @rmtoll TIMxCR PSHPLL LL_HRTIM_TIM_IsEnabledPushPullMode\n 03168 * @param HRTIMx High Resolution Timer instance 03169 * @param Timer This parameter can be one of the following values: 03170 * @arg @ref LL_HRTIM_TIMER_A 03171 * @arg @ref LL_HRTIM_TIMER_B 03172 * @arg @ref LL_HRTIM_TIMER_C 03173 * @arg @ref LL_HRTIM_TIMER_D 03174 * @arg @ref LL_HRTIM_TIMER_E 03175 * @retval State of PSHPLL bit in HRTIM_TIMxCR register (1 or 0). 03176 */ 03177 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledPushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03178 { 03179 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03180 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) + 03181 REG_OFFSET_TAB_TIMER[iTimer])); 03182 return ((READ_BIT(*pReg, HRTIM_TIMCR_PSHPLL) == (HRTIM_TIMCR_PSHPLL)) ? 1UL : 0UL); 03183 } 03184 03185 /** 03186 * @brief Set the functioning mode of the compare unit (CMP2 or CMP4 can operate in standard mode or in auto delayed mode). 03187 * @rmtoll TIMxCR DELCMP2 LL_HRTIM_TIM_SetCompareMode\n 03188 * TIMxCR DELCMP4 LL_HRTIM_TIM_SetCompareMode 03189 * @note In auto-delayed mode the compare match occurs independently from the timer counter value. 03190 * @param HRTIMx High Resolution Timer instance 03191 * @param Timer This parameter can be one of the following values: 03192 * @arg @ref LL_HRTIM_TIMER_A 03193 * @arg @ref LL_HRTIM_TIMER_B 03194 * @arg @ref LL_HRTIM_TIMER_C 03195 * @arg @ref LL_HRTIM_TIMER_D 03196 * @arg @ref LL_HRTIM_TIMER_E 03197 * @param CompareUnit This parameter can be one of the following values: 03198 * @arg @ref LL_HRTIM_COMPAREUNIT_2 03199 * @arg @ref LL_HRTIM_COMPAREUNIT_4 03200 * @param Mode This parameter can be one of the following values: 03201 * @arg @ref LL_HRTIM_COMPAREMODE_REGULAR 03202 * @arg @ref LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT 03203 * @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP1 03204 * @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP3 03205 * @retval None 03206 */ 03207 __STATIC_INLINE void LL_HRTIM_TIM_SetCompareMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareUnit, 03208 uint32_t Mode) 03209 { 03210 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03211 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) + 03212 REG_OFFSET_TAB_TIMER[iTimer])); 03213 uint32_t shift = (((uint32_t)POSITION_VAL(CompareUnit) - (uint32_t)POSITION_VAL(LL_HRTIM_COMPAREUNIT_2)) & 0x1FU); 03214 MODIFY_REG(* pReg, (HRTIM_TIMCR_DELCMP2 << shift), (Mode << shift)); 03215 } 03216 03217 /** 03218 * @brief Get the functioning mode of the compare unit. 03219 * @rmtoll TIMxCR DELCMP2 LL_HRTIM_TIM_GetCompareMode\n 03220 * TIMxCR DELCMP4 LL_HRTIM_TIM_GetCompareMode 03221 * @param HRTIMx High Resolution Timer instance 03222 * @param Timer This parameter can be one of the following values: 03223 * @arg @ref LL_HRTIM_TIMER_A 03224 * @arg @ref LL_HRTIM_TIMER_B 03225 * @arg @ref LL_HRTIM_TIMER_C 03226 * @arg @ref LL_HRTIM_TIMER_D 03227 * @arg @ref LL_HRTIM_TIMER_E 03228 * @param CompareUnit This parameter can be one of the following values: 03229 * @arg @ref LL_HRTIM_COMPAREUNIT_2 03230 * @arg @ref LL_HRTIM_COMPAREUNIT_4 03231 * @retval Mode Returned value can be one of the following values: 03232 * @arg @ref LL_HRTIM_COMPAREMODE_REGULAR 03233 * @arg @ref LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT 03234 * @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP1 03235 * @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP3 03236 */ 03237 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompareMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareUnit) 03238 { 03239 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03240 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) + 03241 REG_OFFSET_TAB_TIMER[iTimer])); 03242 uint32_t shift = (((uint32_t)POSITION_VAL(CompareUnit) - (uint32_t)POSITION_VAL(LL_HRTIM_COMPAREUNIT_2)) & 0x1FU); 03243 return (READ_BIT(*pReg, (HRTIM_TIMCR_DELCMP2 << shift)) >> shift); 03244 } 03245 03246 /** 03247 * @brief Set the timer counter value. 03248 * @rmtoll MCNTR MCNT LL_HRTIM_TIM_SetCounter\n 03249 * CNTxR CNTx LL_HRTIM_TIM_SetCounter 03250 * @note This function can only be called when the timer is stopped. 03251 * @note For HR clock prescaling ratio below 32 (CKPSC[2:0] < 5), the least 03252 * significant bits of the counter are not significant. They cannot be 03253 * written and return 0 when read. 03254 * @note The timer behavior is not guaranteed if the counter value is set above 03255 * the period. 03256 * @param HRTIMx High Resolution Timer instance 03257 * @param Timer This parameter can be one of the following values: 03258 * @arg @ref LL_HRTIM_TIMER_MASTER 03259 * @arg @ref LL_HRTIM_TIMER_A 03260 * @arg @ref LL_HRTIM_TIMER_B 03261 * @arg @ref LL_HRTIM_TIMER_C 03262 * @arg @ref LL_HRTIM_TIMER_D 03263 * @arg @ref LL_HRTIM_TIMER_E 03264 * @param Counter Value between 0 and 0xFFFF 03265 * @retval None 03266 */ 03267 __STATIC_INLINE void LL_HRTIM_TIM_SetCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Counter) 03268 { 03269 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03270 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCNTR) + 03271 REG_OFFSET_TAB_TIMER[iTimer])); 03272 MODIFY_REG(* pReg, HRTIM_MCNTR_MCNTR, Counter); 03273 } 03274 03275 /** 03276 * @brief Get actual timer counter value. 03277 * @rmtoll MCNTR MCNT LL_HRTIM_TIM_GetCounter\n 03278 * CNTxR CNTx LL_HRTIM_TIM_GetCounter 03279 * @param HRTIMx High Resolution Timer instance 03280 * @param Timer This parameter can be one of the following values: 03281 * @arg @ref LL_HRTIM_TIMER_MASTER 03282 * @arg @ref LL_HRTIM_TIMER_A 03283 * @arg @ref LL_HRTIM_TIMER_B 03284 * @arg @ref LL_HRTIM_TIMER_C 03285 * @arg @ref LL_HRTIM_TIMER_D 03286 * @arg @ref LL_HRTIM_TIMER_E 03287 * @retval Counter Value between 0 and 0xFFFF 03288 */ 03289 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03290 { 03291 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03292 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCNTR) + 03293 REG_OFFSET_TAB_TIMER[iTimer])); 03294 return (READ_BIT(*pReg, HRTIM_MCNTR_MCNTR)); 03295 } 03296 03297 /** 03298 * @brief Set the timer period value. 03299 * @rmtoll MPER MPER LL_HRTIM_TIM_SetPeriod\n 03300 * PERxR PERx LL_HRTIM_TIM_SetPeriod 03301 * @param HRTIMx High Resolution Timer instance 03302 * @param Timer This parameter can be one of the following values: 03303 * @arg @ref LL_HRTIM_TIMER_MASTER 03304 * @arg @ref LL_HRTIM_TIMER_A 03305 * @arg @ref LL_HRTIM_TIMER_B 03306 * @arg @ref LL_HRTIM_TIMER_C 03307 * @arg @ref LL_HRTIM_TIMER_D 03308 * @arg @ref LL_HRTIM_TIMER_E 03309 * @param Period Value between 0 and 0xFFFF 03310 * @retval None 03311 */ 03312 __STATIC_INLINE void LL_HRTIM_TIM_SetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Period) 03313 { 03314 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03315 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MPER) + 03316 REG_OFFSET_TAB_TIMER[iTimer])); 03317 MODIFY_REG(* pReg, HRTIM_MPER_MPER, Period); 03318 } 03319 03320 /** 03321 * @brief Get actual timer period value. 03322 * @rmtoll MPER MPER LL_HRTIM_TIM_GetPeriod\n 03323 * PERxR PERx LL_HRTIM_TIM_GetPeriod 03324 * @param HRTIMx High Resolution Timer instance 03325 * @param Timer This parameter can be one of the following values: 03326 * @arg @ref LL_HRTIM_TIMER_MASTER 03327 * @arg @ref LL_HRTIM_TIMER_A 03328 * @arg @ref LL_HRTIM_TIMER_B 03329 * @arg @ref LL_HRTIM_TIMER_C 03330 * @arg @ref LL_HRTIM_TIMER_D 03331 * @arg @ref LL_HRTIM_TIMER_E 03332 * @retval Period Value between 0 and 0xFFFF 03333 */ 03334 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03335 { 03336 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03337 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MPER) + 03338 REG_OFFSET_TAB_TIMER[iTimer])); 03339 return (READ_BIT(*pReg, HRTIM_MPER_MPER)); 03340 } 03341 03342 /** 03343 * @brief Set the timer repetition period value. 03344 * @rmtoll MREP MREP LL_HRTIM_TIM_SetRepetition\n 03345 * REPxR REPx LL_HRTIM_TIM_SetRepetition 03346 * @param HRTIMx High Resolution Timer instance 03347 * @param Timer This parameter can be one of the following values: 03348 * @arg @ref LL_HRTIM_TIMER_MASTER 03349 * @arg @ref LL_HRTIM_TIMER_A 03350 * @arg @ref LL_HRTIM_TIMER_B 03351 * @arg @ref LL_HRTIM_TIMER_C 03352 * @arg @ref LL_HRTIM_TIMER_D 03353 * @arg @ref LL_HRTIM_TIMER_E 03354 * @param Repetition Value between 0 and 0xFF 03355 * @retval None 03356 */ 03357 __STATIC_INLINE void LL_HRTIM_TIM_SetRepetition(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Repetition) 03358 { 03359 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03360 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MREP) + 03361 REG_OFFSET_TAB_TIMER[iTimer])); 03362 MODIFY_REG(* pReg, HRTIM_MREP_MREP, Repetition); 03363 } 03364 03365 /** 03366 * @brief Get actual timer repetition period value. 03367 * @rmtoll MREP MREP LL_HRTIM_TIM_GetRepetition\n 03368 * REPxR REPx LL_HRTIM_TIM_GetRepetition 03369 * @param HRTIMx High Resolution Timer instance 03370 * @param Timer This parameter can be one of the following values: 03371 * @arg @ref LL_HRTIM_TIMER_MASTER 03372 * @arg @ref LL_HRTIM_TIMER_A 03373 * @arg @ref LL_HRTIM_TIMER_B 03374 * @arg @ref LL_HRTIM_TIMER_C 03375 * @arg @ref LL_HRTIM_TIMER_D 03376 * @arg @ref LL_HRTIM_TIMER_E 03377 * @retval Repetition Value between 0 and 0xFF 03378 */ 03379 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetRepetition(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03380 { 03381 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03382 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MREP) + 03383 REG_OFFSET_TAB_TIMER[iTimer])); 03384 return (READ_BIT(*pReg, HRTIM_MREP_MREP)); 03385 } 03386 03387 /** 03388 * @brief Set the compare value of the compare unit 1. 03389 * @rmtoll MCMP1R MCMP1 LL_HRTIM_TIM_SetCompare1\n 03390 * CMP1xR CMP1x LL_HRTIM_TIM_SetCompare1 03391 * @param HRTIMx High Resolution Timer instance 03392 * @param Timer This parameter can be one of the following values: 03393 * @arg @ref LL_HRTIM_TIMER_MASTER 03394 * @arg @ref LL_HRTIM_TIMER_A 03395 * @arg @ref LL_HRTIM_TIMER_B 03396 * @arg @ref LL_HRTIM_TIMER_C 03397 * @arg @ref LL_HRTIM_TIMER_D 03398 * @arg @ref LL_HRTIM_TIMER_E 03399 * @param CompareValue Compare value must be above or equal to 3 03400 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03401 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03402 * @retval None 03403 */ 03404 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare1(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue) 03405 { 03406 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03407 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP1R) + 03408 REG_OFFSET_TAB_TIMER[iTimer])); 03409 MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP1R, CompareValue); 03410 } 03411 03412 /** 03413 * @brief Get actual compare value of the compare unit 1. 03414 * @rmtoll MCMP1R MCMP1 LL_HRTIM_TIM_GetCompare1\n 03415 * CMP1xR CMP1x LL_HRTIM_TIM_GetCompare1 03416 * @param HRTIMx High Resolution Timer instance 03417 * @param Timer This parameter can be one of the following values: 03418 * @arg @ref LL_HRTIM_TIMER_MASTER 03419 * @arg @ref LL_HRTIM_TIMER_A 03420 * @arg @ref LL_HRTIM_TIMER_B 03421 * @arg @ref LL_HRTIM_TIMER_C 03422 * @arg @ref LL_HRTIM_TIMER_D 03423 * @arg @ref LL_HRTIM_TIMER_E 03424 * @retval CompareValue Compare value must be above or equal to 3 03425 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03426 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03427 */ 03428 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03429 { 03430 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03431 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP1R) + 03432 REG_OFFSET_TAB_TIMER[iTimer])); 03433 return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP1R)); 03434 } 03435 03436 /** 03437 * @brief Set the compare value of the compare unit 2. 03438 * @rmtoll MCMP2R MCMP2 LL_HRTIM_TIM_SetCompare2\n 03439 * CMP2xR CMP2x LL_HRTIM_TIM_SetCompare2 03440 * @param HRTIMx High Resolution Timer instance 03441 * @param Timer This parameter can be one of the following values: 03442 * @arg @ref LL_HRTIM_TIMER_MASTER 03443 * @arg @ref LL_HRTIM_TIMER_A 03444 * @arg @ref LL_HRTIM_TIMER_B 03445 * @arg @ref LL_HRTIM_TIMER_C 03446 * @arg @ref LL_HRTIM_TIMER_D 03447 * @arg @ref LL_HRTIM_TIMER_E 03448 * @param CompareValue Compare value must be above or equal to 3 03449 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03450 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03451 * @retval None 03452 */ 03453 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare2(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue) 03454 { 03455 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03456 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP2R) + 03457 REG_OFFSET_TAB_TIMER[iTimer])); 03458 MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP2R, CompareValue); 03459 } 03460 03461 /** 03462 * @brief Get actual compare value of the compare unit 2. 03463 * @rmtoll MCMP2R MCMP2 LL_HRTIM_TIM_GetCompare2\n 03464 * CMP2xR CMP2x LL_HRTIM_TIM_GetCompare2\n 03465 * @param HRTIMx High Resolution Timer instance 03466 * @param Timer This parameter can be one of the following values: 03467 * @arg @ref LL_HRTIM_TIMER_MASTER 03468 * @arg @ref LL_HRTIM_TIMER_A 03469 * @arg @ref LL_HRTIM_TIMER_B 03470 * @arg @ref LL_HRTIM_TIMER_C 03471 * @arg @ref LL_HRTIM_TIMER_D 03472 * @arg @ref LL_HRTIM_TIMER_E 03473 * @retval CompareValue Compare value must be above or equal to 3 03474 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03475 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03476 */ 03477 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03478 { 03479 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03480 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP2R) + 03481 REG_OFFSET_TAB_TIMER[iTimer])); 03482 return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP2R)); 03483 } 03484 03485 /** 03486 * @brief Set the compare value of the compare unit 3. 03487 * @rmtoll MCMP3R MCMP3 LL_HRTIM_TIM_SetCompare3\n 03488 * CMP3xR CMP3x LL_HRTIM_TIM_SetCompare3 03489 * @param HRTIMx High Resolution Timer instance 03490 * @param Timer This parameter can be one of the following values: 03491 * @arg @ref LL_HRTIM_TIMER_MASTER 03492 * @arg @ref LL_HRTIM_TIMER_A 03493 * @arg @ref LL_HRTIM_TIMER_B 03494 * @arg @ref LL_HRTIM_TIMER_C 03495 * @arg @ref LL_HRTIM_TIMER_D 03496 * @arg @ref LL_HRTIM_TIMER_E 03497 * @param CompareValue Compare value must be above or equal to 3 03498 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03499 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03500 * @retval None 03501 */ 03502 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare3(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue) 03503 { 03504 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03505 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP3R) + 03506 REG_OFFSET_TAB_TIMER[iTimer])); 03507 MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP3R, CompareValue); 03508 } 03509 03510 /** 03511 * @brief Get actual compare value of the compare unit 3. 03512 * @rmtoll MCMP3R MCMP3 LL_HRTIM_TIM_GetCompare3\n 03513 * CMP3xR CMP3x LL_HRTIM_TIM_GetCompare3 03514 * @param HRTIMx High Resolution Timer instance 03515 * @param Timer This parameter can be one of the following values: 03516 * @arg @ref LL_HRTIM_TIMER_MASTER 03517 * @arg @ref LL_HRTIM_TIMER_A 03518 * @arg @ref LL_HRTIM_TIMER_B 03519 * @arg @ref LL_HRTIM_TIMER_C 03520 * @arg @ref LL_HRTIM_TIMER_D 03521 * @arg @ref LL_HRTIM_TIMER_E 03522 * @retval CompareValue Compare value must be above or equal to 3 03523 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03524 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03525 */ 03526 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03527 { 03528 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03529 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP3R) + 03530 REG_OFFSET_TAB_TIMER[iTimer])); 03531 return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP3R)); 03532 } 03533 03534 /** 03535 * @brief Set the compare value of the compare unit 4. 03536 * @rmtoll MCMP4R MCMP4 LL_HRTIM_TIM_SetCompare4\n 03537 * CMP4xR CMP4x LL_HRTIM_TIM_SetCompare4 03538 * @param HRTIMx High Resolution Timer instance 03539 * @param Timer This parameter can be one of the following values: 03540 * @arg @ref LL_HRTIM_TIMER_MASTER 03541 * @arg @ref LL_HRTIM_TIMER_A 03542 * @arg @ref LL_HRTIM_TIMER_B 03543 * @arg @ref LL_HRTIM_TIMER_C 03544 * @arg @ref LL_HRTIM_TIMER_D 03545 * @arg @ref LL_HRTIM_TIMER_E 03546 * @param CompareValue Compare value must be above or equal to 3 03547 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03548 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03549 * @retval None 03550 */ 03551 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare4(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue) 03552 { 03553 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03554 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP4R) + 03555 REG_OFFSET_TAB_TIMER[iTimer])); 03556 MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP4R, CompareValue); 03557 } 03558 03559 /** 03560 * @brief Get actual compare value of the compare unit 4. 03561 * @rmtoll MCMP4R MCMP4 LL_HRTIM_TIM_GetCompare4\n 03562 * CMP4xR CMP4x LL_HRTIM_TIM_GetCompare4 03563 * @param HRTIMx High Resolution Timer instance 03564 * @param Timer This parameter can be one of the following values: 03565 * @arg @ref LL_HRTIM_TIMER_MASTER 03566 * @arg @ref LL_HRTIM_TIMER_A 03567 * @arg @ref LL_HRTIM_TIMER_B 03568 * @arg @ref LL_HRTIM_TIMER_C 03569 * @arg @ref LL_HRTIM_TIMER_D 03570 * @arg @ref LL_HRTIM_TIMER_E 03571 * @retval CompareValue Compare value must be above or equal to 3 03572 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 03573 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 03574 */ 03575 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03576 { 03577 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 03578 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP4R) + 03579 REG_OFFSET_TAB_TIMER[iTimer])); 03580 return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP4R)); 03581 } 03582 03583 /** 03584 * @brief Set the reset trigger of a timer counter. 03585 * @rmtoll RSTxR UPDT LL_HRTIM_TIM_SetResetTrig\n 03586 * RSTxR CMP2 LL_HRTIM_TIM_SetResetTrig\n 03587 * RSTxR CMP4 LL_HRTIM_TIM_SetResetTrig\n 03588 * RSTxR MSTPER LL_HRTIM_TIM_SetResetTrig\n 03589 * RSTxR MSTCMP1 LL_HRTIM_TIM_SetResetTrig\n 03590 * RSTxR MSTCMP2 LL_HRTIM_TIM_SetResetTrig\n 03591 * RSTxR MSTCMP3 LL_HRTIM_TIM_SetResetTrig\n 03592 * RSTxR MSTCMP4 LL_HRTIM_TIM_SetResetTrig\n 03593 * RSTxR EXTEVNT1 LL_HRTIM_TIM_SetResetTrig\n 03594 * RSTxR EXTEVNT2 LL_HRTIM_TIM_SetResetTrig\n 03595 * RSTxR EXTEVNT3 LL_HRTIM_TIM_SetResetTrig\n 03596 * RSTxR EXTEVNT4 LL_HRTIM_TIM_SetResetTrig\n 03597 * RSTxR EXTEVNT5 LL_HRTIM_TIM_SetResetTrig\n 03598 * RSTxR EXTEVNT6 LL_HRTIM_TIM_SetResetTrig\n 03599 * RSTxR EXTEVNT7 LL_HRTIM_TIM_SetResetTrig\n 03600 * RSTxR EXTEVNT8 LL_HRTIM_TIM_SetResetTrig\n 03601 * RSTxR EXTEVNT9 LL_HRTIM_TIM_SetResetTrig\n 03602 * RSTxR EXTEVNT10 LL_HRTIM_TIM_SetResetTrig\n 03603 * RSTxR TIMBCMP1 LL_HRTIM_TIM_SetResetTrig\n 03604 * RSTxR TIMBCMP2 LL_HRTIM_TIM_SetResetTrig\n 03605 * RSTxR TIMBCMP4 LL_HRTIM_TIM_SetResetTrig\n 03606 * RSTxR TIMCCMP1 LL_HRTIM_TIM_SetResetTrig\n 03607 * RSTxR TIMCCMP2 LL_HRTIM_TIM_SetResetTrig\n 03608 * RSTxR TIMCCMP4 LL_HRTIM_TIM_SetResetTrig\n 03609 * RSTxR TIMDCMP1 LL_HRTIM_TIM_SetResetTrig\n 03610 * RSTxR TIMDCMP2 LL_HRTIM_TIM_SetResetTrig\n 03611 * RSTxR TIMDCMP4 LL_HRTIM_TIM_SetResetTrig\n 03612 * RSTxR TIMECMP1 LL_HRTIM_TIM_SetResetTrig\n 03613 * RSTxR TIMECMP2 LL_HRTIM_TIM_SetResetTrig\n 03614 * RSTxR TIMECMP4 LL_HRTIM_TIM_SetResetTrig 03615 * @note The reset of the timer counter can be triggered by up to 30 events 03616 * that can be selected among the following sources: 03617 * @arg The timing unit: Compare 2, Compare 4 and Update (3 events). 03618 * @arg The master timer: Reset and Compare 1..4 (5 events). 03619 * @arg The external events EXTEVNT1..10 (10 events). 03620 * @arg All other timing units (e.g. Timer B..E for timer A): Compare 1, 2 and 4 (12 events). 03621 * @param HRTIMx High Resolution Timer instance 03622 * @param Timer This parameter can be one of the following values: 03623 * @arg @ref LL_HRTIM_TIMER_A 03624 * @arg @ref LL_HRTIM_TIMER_B 03625 * @arg @ref LL_HRTIM_TIMER_C 03626 * @arg @ref LL_HRTIM_TIMER_D 03627 * @arg @ref LL_HRTIM_TIMER_E 03628 * @param ResetTrig This parameter can be a combination of the following values: 03629 * @arg @ref LL_HRTIM_RESETTRIG_NONE 03630 * @arg @ref LL_HRTIM_RESETTRIG_UPDATE 03631 * @arg @ref LL_HRTIM_RESETTRIG_CMP2 03632 * @arg @ref LL_HRTIM_RESETTRIG_CMP4 03633 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_PER 03634 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP1 03635 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP2 03636 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP3 03637 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP4 03638 * @arg @ref LL_HRTIM_RESETTRIG_EEV_1 03639 * @arg @ref LL_HRTIM_RESETTRIG_EEV_2 03640 * @arg @ref LL_HRTIM_RESETTRIG_EEV_3 03641 * @arg @ref LL_HRTIM_RESETTRIG_EEV_4 03642 * @arg @ref LL_HRTIM_RESETTRIG_EEV_5 03643 * @arg @ref LL_HRTIM_RESETTRIG_EEV_6 03644 * @arg @ref LL_HRTIM_RESETTRIG_EEV_7 03645 * @arg @ref LL_HRTIM_RESETTRIG_EEV_8 03646 * @arg @ref LL_HRTIM_RESETTRIG_EEV_9 03647 * @arg @ref LL_HRTIM_RESETTRIG_EEV_10 03648 * @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP1 03649 * @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP2 03650 * @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP4 03651 * @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP1 03652 * @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP2 03653 * @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP4 03654 * @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP1 03655 * @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP2 03656 * @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP4 03657 * @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP1 03658 * @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP2 03659 * @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP4 03660 * @retval None 03661 */ 03662 __STATIC_INLINE void LL_HRTIM_TIM_SetResetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t ResetTrig) 03663 { 03664 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03665 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTxR) + 03666 REG_OFFSET_TAB_TIMER[iTimer])); 03667 WRITE_REG(*pReg, ResetTrig); 03668 } 03669 03670 /** 03671 * @brief Get actual reset trigger of a timer counter. 03672 * @rmtoll RSTxR UPDT LL_HRTIM_TIM_GetResetTrig\n 03673 * RSTxR CMP2 LL_HRTIM_TIM_GetResetTrig\n 03674 * RSTxR CMP4 LL_HRTIM_TIM_GetResetTrig\n 03675 * RSTxR MSTPER LL_HRTIM_TIM_GetResetTrig\n 03676 * RSTxR MSTCMP1 LL_HRTIM_TIM_GetResetTrig\n 03677 * RSTxR MSTCMP2 LL_HRTIM_TIM_GetResetTrig\n 03678 * RSTxR MSTCMP3 LL_HRTIM_TIM_GetResetTrig\n 03679 * RSTxR MSTCMP4 LL_HRTIM_TIM_GetResetTrig\n 03680 * RSTxR EXTEVNT1 LL_HRTIM_TIM_GetResetTrig\n 03681 * RSTxR EXTEVNT2 LL_HRTIM_TIM_GetResetTrig\n 03682 * RSTxR EXTEVNT3 LL_HRTIM_TIM_GetResetTrig\n 03683 * RSTxR EXTEVNT4 LL_HRTIM_TIM_GetResetTrig\n 03684 * RSTxR EXTEVNT5 LL_HRTIM_TIM_GetResetTrig\n 03685 * RSTxR EXTEVNT6 LL_HRTIM_TIM_GetResetTrig\n 03686 * RSTxR EXTEVNT7 LL_HRTIM_TIM_GetResetTrig\n 03687 * RSTxR EXTEVNT8 LL_HRTIM_TIM_GetResetTrig\n 03688 * RSTxR EXTEVNT9 LL_HRTIM_TIM_GetResetTrig\n 03689 * RSTxR EXTEVNT10 LL_HRTIM_TIM_GetResetTrig\n 03690 * RSTxR TIMBCMP1 LL_HRTIM_TIM_GetResetTrig\n 03691 * RSTxR TIMBCMP2 LL_HRTIM_TIM_GetResetTrig\n 03692 * RSTxR TIMBCMP4 LL_HRTIM_TIM_GetResetTrig\n 03693 * RSTxR TIMCCMP1 LL_HRTIM_TIM_GetResetTrig\n 03694 * RSTxR TIMCCMP2 LL_HRTIM_TIM_GetResetTrig\n 03695 * RSTxR TIMCCMP4 LL_HRTIM_TIM_GetResetTrig\n 03696 * RSTxR TIMDCMP1 LL_HRTIM_TIM_GetResetTrig\n 03697 * RSTxR TIMDCMP2 LL_HRTIM_TIM_GetResetTrig\n 03698 * RSTxR TIMDCMP4 LL_HRTIM_TIM_GetResetTrig\n 03699 * RSTxR TIMECMP1 LL_HRTIM_TIM_GetResetTrig\n 03700 * RSTxR TIMECMP2 LL_HRTIM_TIM_GetResetTrig\n 03701 * RSTxR TIMECMP4 LL_HRTIM_TIM_GetResetTrig 03702 * @param HRTIMx High Resolution Timer instance 03703 * @param Timer This parameter can be one of the following values: 03704 * @arg @ref LL_HRTIM_TIMER_A 03705 * @arg @ref LL_HRTIM_TIMER_B 03706 * @arg @ref LL_HRTIM_TIMER_C 03707 * @arg @ref LL_HRTIM_TIMER_D 03708 * @arg @ref LL_HRTIM_TIMER_E 03709 * @retval ResetTrig Returned value can be one of the following values: 03710 * @arg @ref LL_HRTIM_RESETTRIG_NONE 03711 * @arg @ref LL_HRTIM_RESETTRIG_UPDATE 03712 * @arg @ref LL_HRTIM_RESETTRIG_CMP2 03713 * @arg @ref LL_HRTIM_RESETTRIG_CMP4 03714 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_PER 03715 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP1 03716 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP2 03717 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP3 03718 * @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP4 03719 * @arg @ref LL_HRTIM_RESETTRIG_EEV_1 03720 * @arg @ref LL_HRTIM_RESETTRIG_EEV_2 03721 * @arg @ref LL_HRTIM_RESETTRIG_EEV_3 03722 * @arg @ref LL_HRTIM_RESETTRIG_EEV_4 03723 * @arg @ref LL_HRTIM_RESETTRIG_EEV_5 03724 * @arg @ref LL_HRTIM_RESETTRIG_EEV_6 03725 * @arg @ref LL_HRTIM_RESETTRIG_EEV_7 03726 * @arg @ref LL_HRTIM_RESETTRIG_EEV_8 03727 * @arg @ref LL_HRTIM_RESETTRIG_EEV_9 03728 * @arg @ref LL_HRTIM_RESETTRIG_EEV_10 03729 * @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP1 03730 * @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP2 03731 * @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP4 03732 * @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP1 03733 * @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP2 03734 * @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP4 03735 * @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP1 03736 * @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP2 03737 * @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP4 03738 * @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP1 03739 * @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP2 03740 * @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP4 03741 */ 03742 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetResetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03743 { 03744 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03745 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTxR) + 03746 REG_OFFSET_TAB_TIMER[iTimer])); 03747 return (READ_REG(*pReg)); 03748 } 03749 03750 /** 03751 * @brief Get captured value for capture unit 1. 03752 * @rmtoll CPT1xR CPT1x LL_HRTIM_TIM_GetCapture1 03753 * @param HRTIMx High Resolution Timer instance 03754 * @param Timer This parameter can be one of the following values: 03755 * @arg @ref LL_HRTIM_TIMER_A 03756 * @arg @ref LL_HRTIM_TIMER_B 03757 * @arg @ref LL_HRTIM_TIMER_C 03758 * @arg @ref LL_HRTIM_TIMER_D 03759 * @arg @ref LL_HRTIM_TIMER_E 03760 * @retval Captured value 03761 */ 03762 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03763 { 03764 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03765 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT1xR) + 03766 REG_OFFSET_TAB_TIMER[iTimer])); 03767 return (READ_REG(*pReg)); 03768 } 03769 03770 /** 03771 * @brief Get captured value for capture unit 2. 03772 * @rmtoll CPT2xR CPT2x LL_HRTIM_TIM_GetCapture2 03773 * @param HRTIMx High Resolution Timer instance 03774 * @param Timer This parameter can be one of the following values: 03775 * @arg @ref LL_HRTIM_TIMER_A 03776 * @arg @ref LL_HRTIM_TIMER_B 03777 * @arg @ref LL_HRTIM_TIMER_C 03778 * @arg @ref LL_HRTIM_TIMER_D 03779 * @arg @ref LL_HRTIM_TIMER_E 03780 * @retval Captured value 03781 */ 03782 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03783 { 03784 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03785 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT2xR) + 03786 REG_OFFSET_TAB_TIMER[iTimer])); 03787 return (READ_REG(*pReg)); 03788 } 03789 03790 /** 03791 * @brief Set the trigger of a capture unit for a given timer. 03792 * @rmtoll CPT1xCR SWCPT LL_HRTIM_TIM_SetCaptureTrig\n 03793 * CPT1xCR UPDCPT LL_HRTIM_TIM_SetCaptureTrig\n 03794 * CPT1xCR EXEV1CPT LL_HRTIM_TIM_SetCaptureTrig\n 03795 * CPT1xCR EXEV2CPT LL_HRTIM_TIM_SetCaptureTrig\n 03796 * CPT1xCR EXEV3CPT LL_HRTIM_TIM_SetCaptureTrig\n 03797 * CPT1xCR EXEV4CPT LL_HRTIM_TIM_SetCaptureTrig\n 03798 * CPT1xCR EXEV5CPT LL_HRTIM_TIM_SetCaptureTrig\n 03799 * CPT1xCR EXEV6CPT LL_HRTIM_TIM_SetCaptureTrig\n 03800 * CPT1xCR EXEV7CPT LL_HRTIM_TIM_SetCaptureTrig\n 03801 * CPT1xCR EXEV8CPT LL_HRTIM_TIM_SetCaptureTrig\n 03802 * CPT1xCR EXEV9CPT LL_HRTIM_TIM_SetCaptureTrig\n 03803 * CPT1xCR EXEV10CPT LL_HRTIM_TIM_SetCaptureTrig\n 03804 * CPT1xCR TA1SET LL_HRTIM_TIM_SetCaptureTrig\n 03805 * CPT1xCR TA1RST LL_HRTIM_TIM_SetCaptureTrig\n 03806 * CPT1xCR TACMP1 LL_HRTIM_TIM_SetCaptureTrig\n 03807 * CPT1xCR TACMP2 LL_HRTIM_TIM_SetCaptureTrig\n 03808 * CPT1xCR TB1SET LL_HRTIM_TIM_SetCaptureTrig\n 03809 * CPT1xCR TB1RST LL_HRTIM_TIM_SetCaptureTrig\n 03810 * CPT1xCR TBCMP1 LL_HRTIM_TIM_SetCaptureTrig\n 03811 * CPT1xCR TBCMP2 LL_HRTIM_TIM_SetCaptureTrig\n 03812 * CPT1xCR TC1SET LL_HRTIM_TIM_SetCaptureTrig\n 03813 * CPT1xCR TC1RST LL_HRTIM_TIM_SetCaptureTrig\n 03814 * CPT1xCR TCCMP1 LL_HRTIM_TIM_SetCaptureTrig\n 03815 * CPT1xCR TCCMP2 LL_HRTIM_TIM_SetCaptureTrig\n 03816 * CPT1xCR TD1SET LL_HRTIM_TIM_SetCaptureTrig\n 03817 * CPT1xCR TD1RST LL_HRTIM_TIM_SetCaptureTrig\n 03818 * CPT1xCR TDCMP1 LL_HRTIM_TIM_SetCaptureTrig\n 03819 * CPT1xCR TDCMP2 LL_HRTIM_TIM_SetCaptureTrig\n 03820 * CPT1xCR TE1SET LL_HRTIM_TIM_SetCaptureTrig\n 03821 * CPT1xCR TE1RST LL_HRTIM_TIM_SetCaptureTrig\n 03822 * CPT1xCR TECMP1 LL_HRTIM_TIM_SetCaptureTrig\n 03823 * CPT1xCR TECMP2 LL_HRTIM_TIM_SetCaptureTrig 03824 * @param HRTIMx High Resolution Timer instance 03825 * @param Timer This parameter can be one of the following values: 03826 * @arg @ref LL_HRTIM_TIMER_A 03827 * @arg @ref LL_HRTIM_TIMER_B 03828 * @arg @ref LL_HRTIM_TIMER_C 03829 * @arg @ref LL_HRTIM_TIMER_D 03830 * @arg @ref LL_HRTIM_TIMER_E 03831 * @param CaptureUnit This parameter can be one of the following values: 03832 * @arg @ref LL_HRTIM_CAPTUREUNIT_1 03833 * @arg @ref LL_HRTIM_CAPTUREUNIT_2 03834 * @param CaptureTrig This parameter can be a combination of the following values: 03835 * @arg @ref LL_HRTIM_CAPTURETRIG_NONE 03836 * @arg @ref LL_HRTIM_CAPTURETRIG_UPDATE 03837 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_1 03838 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_2 03839 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_3 03840 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_4 03841 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_5 03842 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_6 03843 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_7 03844 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_8 03845 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_9 03846 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_10 03847 * @arg @ref LL_HRTIM_CAPTURETRIG_TA1_SET 03848 * @arg @ref LL_HRTIM_CAPTURETRIG_TA1_RESET 03849 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP1 03850 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP2 03851 * @arg @ref LL_HRTIM_CAPTURETRIG_TB1_SET 03852 * @arg @ref LL_HRTIM_CAPTURETRIG_TB1_RESET 03853 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP1 03854 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP2 03855 * @arg @ref LL_HRTIM_CAPTURETRIG_TC1_SET 03856 * @arg @ref LL_HRTIM_CAPTURETRIG_TC1_RESET 03857 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP1 03858 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP2 03859 * @arg @ref LL_HRTIM_CAPTURETRIG_TD1_SET 03860 * @arg @ref LL_HRTIM_CAPTURETRIG_TD1_RESET 03861 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP1 03862 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP2 03863 * @arg @ref LL_HRTIM_CAPTURETRIG_TE1_SET 03864 * @arg @ref LL_HRTIM_CAPTURETRIG_TE1_RESET 03865 * @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP1 03866 * @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP2 03867 * @retval None 03868 */ 03869 __STATIC_INLINE void LL_HRTIM_TIM_SetCaptureTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CaptureUnit, 03870 uint32_t CaptureTrig) 03871 { 03872 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03873 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].CPT1xCR) + 03874 REG_OFFSET_TAB_TIMER[iTimer] + (CaptureUnit * 4U))); 03875 WRITE_REG(*pReg, CaptureTrig); 03876 } 03877 03878 /** 03879 * @brief Get actual trigger of a capture unit for a given timer. 03880 * @rmtoll CPT1xCR SWCPT LL_HRTIM_TIM_GetCaptureTrig\n 03881 * CPT1xCR UPDCPT LL_HRTIM_TIM_GetCaptureTrig\n 03882 * CPT1xCR EXEV1CPT LL_HRTIM_TIM_GetCaptureTrig\n 03883 * CPT1xCR EXEV2CPT LL_HRTIM_TIM_GetCaptureTrig\n 03884 * CPT1xCR EXEV3CPT LL_HRTIM_TIM_GetCaptureTrig\n 03885 * CPT1xCR EXEV4CPT LL_HRTIM_TIM_GetCaptureTrig\n 03886 * CPT1xCR EXEV5CPT LL_HRTIM_TIM_GetCaptureTrig\n 03887 * CPT1xCR EXEV6CPT LL_HRTIM_TIM_GetCaptureTrig\n 03888 * CPT1xCR EXEV7CPT LL_HRTIM_TIM_GetCaptureTrig\n 03889 * CPT1xCR EXEV8CPT LL_HRTIM_TIM_GetCaptureTrig\n 03890 * CPT1xCR EXEV9CPT LL_HRTIM_TIM_GetCaptureTrig\n 03891 * CPT1xCR EXEV10CPT LL_HRTIM_TIM_GetCaptureTrig\n 03892 * CPT1xCR TA1SET LL_HRTIM_TIM_GetCaptureTrig\n 03893 * CPT1xCR TA1RST LL_HRTIM_TIM_GetCaptureTrig\n 03894 * CPT1xCR TACMP1 LL_HRTIM_TIM_GetCaptureTrig\n 03895 * CPT1xCR TACMP2 LL_HRTIM_TIM_GetCaptureTrig\n 03896 * CPT1xCR TB1SET LL_HRTIM_TIM_GetCaptureTrig\n 03897 * CPT1xCR TB1RST LL_HRTIM_TIM_GetCaptureTrig\n 03898 * CPT1xCR TBCMP1 LL_HRTIM_TIM_GetCaptureTrig\n 03899 * CPT1xCR TBCMP2 LL_HRTIM_TIM_GetCaptureTrig\n 03900 * CPT1xCR TC1SET LL_HRTIM_TIM_GetCaptureTrig\n 03901 * CPT1xCR TC1RST LL_HRTIM_TIM_GetCaptureTrig\n 03902 * CPT1xCR TCCMP1 LL_HRTIM_TIM_GetCaptureTrig\n 03903 * CPT1xCR TCCMP2 LL_HRTIM_TIM_GetCaptureTrig\n 03904 * CPT1xCR TD1SET LL_HRTIM_TIM_GetCaptureTrig\n 03905 * CPT1xCR TD1RST LL_HRTIM_TIM_GetCaptureTrig\n 03906 * CPT1xCR TDCMP1 LL_HRTIM_TIM_GetCaptureTrig\n 03907 * CPT1xCR TDCMP2 LL_HRTIM_TIM_GetCaptureTrig\n 03908 * CPT1xCR TE1SET LL_HRTIM_TIM_GetCaptureTrig\n 03909 * CPT1xCR TE1RST LL_HRTIM_TIM_GetCaptureTrig\n 03910 * CPT1xCR TECMP1 LL_HRTIM_TIM_GetCaptureTrig\n 03911 * CPT1xCR TECMP2 LL_HRTIM_TIM_GetCaptureTrig 03912 * @param HRTIMx High Resolution Timer instance 03913 * @param Timer This parameter can be one of the following values: 03914 * @arg @ref LL_HRTIM_TIMER_A 03915 * @arg @ref LL_HRTIM_TIMER_B 03916 * @arg @ref LL_HRTIM_TIMER_C 03917 * @arg @ref LL_HRTIM_TIMER_D 03918 * @arg @ref LL_HRTIM_TIMER_E 03919 * @param CaptureUnit This parameter can be one of the following values: 03920 * @arg @ref LL_HRTIM_CAPTUREUNIT_1 03921 * @arg @ref LL_HRTIM_CAPTUREUNIT_2 03922 * @retval CaptureTrig This parameter can be a combination of the following values: 03923 * @arg @ref LL_HRTIM_CAPTURETRIG_NONE 03924 * @arg @ref LL_HRTIM_CAPTURETRIG_UPDATE 03925 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_1 03926 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_2 03927 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_3 03928 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_4 03929 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_5 03930 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_6 03931 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_7 03932 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_8 03933 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_9 03934 * @arg @ref LL_HRTIM_CAPTURETRIG_EEV_10 03935 * @arg @ref LL_HRTIM_CAPTURETRIG_TA1_SET 03936 * @arg @ref LL_HRTIM_CAPTURETRIG_TA1_RESET 03937 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP1 03938 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP2 03939 * @arg @ref LL_HRTIM_CAPTURETRIG_TB1_SET 03940 * @arg @ref LL_HRTIM_CAPTURETRIG_TB1_RESET 03941 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP1 03942 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP2 03943 * @arg @ref LL_HRTIM_CAPTURETRIG_TC1_SET 03944 * @arg @ref LL_HRTIM_CAPTURETRIG_TC1_RESET 03945 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP1 03946 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP2 03947 * @arg @ref LL_HRTIM_CAPTURETRIG_TD1_SET 03948 * @arg @ref LL_HRTIM_CAPTURETRIG_TD1_RESET 03949 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP1 03950 * @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP2 03951 * @arg @ref LL_HRTIM_CAPTURETRIG_TE1_SET 03952 * @arg @ref LL_HRTIM_CAPTURETRIG_TE1_RESET 03953 * @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP1 03954 * @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP2 03955 */ 03956 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCaptureTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CaptureUnit) 03957 { 03958 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03959 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].CPT1xCR) + 03960 REG_OFFSET_TAB_TIMER[iTimer] + (CaptureUnit * 4U))); 03961 return (READ_REG(*pReg)); 03962 } 03963 03964 /** 03965 * @brief Enable deadtime insertion for a given timer. 03966 * @rmtoll OUTxR DTEN LL_HRTIM_TIM_EnableDeadTime 03967 * @param HRTIMx High Resolution Timer instance 03968 * @param Timer This parameter can be one of the following values: 03969 * @arg @ref LL_HRTIM_TIMER_A 03970 * @arg @ref LL_HRTIM_TIMER_B 03971 * @arg @ref LL_HRTIM_TIMER_C 03972 * @arg @ref LL_HRTIM_TIMER_D 03973 * @arg @ref LL_HRTIM_TIMER_E 03974 * @retval None 03975 */ 03976 __STATIC_INLINE void LL_HRTIM_TIM_EnableDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03977 { 03978 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03979 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 03980 REG_OFFSET_TAB_TIMER[iTimer])); 03981 SET_BIT(*pReg, HRTIM_OUTR_DTEN); 03982 } 03983 03984 /** 03985 * @brief Disable deadtime insertion for a given timer. 03986 * @rmtoll OUTxR DTEN LL_HRTIM_TIM_DisableDeadTime 03987 * @param HRTIMx High Resolution Timer instance 03988 * @param Timer This parameter can be one of the following values: 03989 * @arg @ref LL_HRTIM_TIMER_A 03990 * @arg @ref LL_HRTIM_TIMER_B 03991 * @arg @ref LL_HRTIM_TIMER_C 03992 * @arg @ref LL_HRTIM_TIMER_D 03993 * @arg @ref LL_HRTIM_TIMER_E 03994 * @retval None 03995 */ 03996 __STATIC_INLINE void LL_HRTIM_TIM_DisableDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 03997 { 03998 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 03999 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04000 REG_OFFSET_TAB_TIMER[iTimer])); 04001 CLEAR_BIT(*pReg, HRTIM_OUTR_DTEN); 04002 } 04003 04004 /** 04005 * @brief Indicate whether deadtime insertion is enabled for a given timer. 04006 * @rmtoll OUTxR DTEN LL_HRTIM_TIM_IsEnabledDeadTime 04007 * @param HRTIMx High Resolution Timer instance 04008 * @param Timer This parameter can be one of the following values: 04009 * @arg @ref LL_HRTIM_TIMER_A 04010 * @arg @ref LL_HRTIM_TIMER_B 04011 * @arg @ref LL_HRTIM_TIMER_C 04012 * @arg @ref LL_HRTIM_TIMER_D 04013 * @arg @ref LL_HRTIM_TIMER_E 04014 * @retval State of DTEN bit in HRTIM_OUTxR register (1 or 0). 04015 */ 04016 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04017 { 04018 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04019 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04020 REG_OFFSET_TAB_TIMER[iTimer])); 04021 04022 return ((READ_BIT(*pReg, HRTIM_OUTR_DTEN) == (HRTIM_OUTR_DTEN)) ? 1UL : 0UL); 04023 } 04024 04025 /** 04026 * @brief Set the delayed protection (DLYPRT) mode. 04027 * @rmtoll OUTxR DLYPRTEN LL_HRTIM_TIM_SetDLYPRTMode\n 04028 * OUTxR DLYPRT LL_HRTIM_TIM_SetDLYPRTMode 04029 * @note This function must be called prior enabling the delayed protection 04030 * @note Balanced Idle mode is only available in push-pull mode 04031 * @param HRTIMx High Resolution Timer instance 04032 * @param Timer This parameter can be one of the following values: 04033 * @arg @ref LL_HRTIM_TIMER_A 04034 * @arg @ref LL_HRTIM_TIMER_B 04035 * @arg @ref LL_HRTIM_TIMER_C 04036 * @arg @ref LL_HRTIM_TIMER_D 04037 * @arg @ref LL_HRTIM_TIMER_E 04038 * @param DLYPRTMode Delayed protection (DLYPRT) mode 04039 * 04040 * For timers A, B and C this parameter can be one of the following values: 04041 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV6 04042 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV6 04043 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV6 04044 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV6 04045 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV7 04046 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV7 04047 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV7 04048 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV7 04049 * 04050 * For timers D and E this parameter can be one of the following values: 04051 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV8 04052 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV8 04053 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV8 04054 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV8 04055 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV9 04056 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV9 04057 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV9 04058 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV9 04059 * @retval None 04060 */ 04061 __STATIC_INLINE void LL_HRTIM_TIM_SetDLYPRTMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DLYPRTMode) 04062 { 04063 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04064 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04065 REG_OFFSET_TAB_TIMER[iTimer])); 04066 MODIFY_REG(*pReg, HRTIM_OUTR_DLYPRT, DLYPRTMode); 04067 } 04068 04069 /** 04070 * @brief Get the delayed protection (DLYPRT) mode. 04071 * @rmtoll OUTxR DLYPRTEN LL_HRTIM_TIM_GetDLYPRTMode\n 04072 * OUTxR DLYPRT LL_HRTIM_TIM_GetDLYPRTMode 04073 * @param HRTIMx High Resolution Timer instance 04074 * @param Timer This parameter can be one of the following values: 04075 * @arg @ref LL_HRTIM_TIMER_A 04076 * @arg @ref LL_HRTIM_TIMER_B 04077 * @arg @ref LL_HRTIM_TIMER_C 04078 * @arg @ref LL_HRTIM_TIMER_D 04079 * @arg @ref LL_HRTIM_TIMER_E 04080 * @retval DLYPRTMode Delayed protection (DLYPRT) mode 04081 * 04082 * For timers A, B and C this parameter can be one of the following values: 04083 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV6 04084 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV6 04085 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV6 04086 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV6 04087 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV7 04088 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV7 04089 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV7 04090 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV7 04091 * 04092 * For timers D and E this parameter can be one of the following values: 04093 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV8 04094 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV8 04095 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV8 04096 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV8 04097 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV9 04098 * @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV9 04099 * @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV9 04100 * @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV9 04101 */ 04102 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDLYPRTMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04103 { 04104 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04105 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04106 REG_OFFSET_TAB_TIMER[iTimer])); 04107 return (READ_BIT(*pReg, HRTIM_OUTR_DLYPRT)); 04108 } 04109 04110 /** 04111 * @brief Enable delayed protection (DLYPRT) for a given timer. 04112 * @rmtoll OUTxR DLYPRTEN LL_HRTIM_TIM_EnableDLYPRT 04113 * @note This function must not be called once the concerned timer is enabled 04114 * @param HRTIMx High Resolution Timer instance 04115 * @param Timer This parameter can be one of the following values: 04116 * @arg @ref LL_HRTIM_TIMER_A 04117 * @arg @ref LL_HRTIM_TIMER_B 04118 * @arg @ref LL_HRTIM_TIMER_C 04119 * @arg @ref LL_HRTIM_TIMER_D 04120 * @arg @ref LL_HRTIM_TIMER_E 04121 * @retval None 04122 */ 04123 __STATIC_INLINE void LL_HRTIM_TIM_EnableDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04124 { 04125 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04126 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04127 REG_OFFSET_TAB_TIMER[iTimer])); 04128 SET_BIT(*pReg, HRTIM_OUTR_DLYPRTEN); 04129 } 04130 04131 /** 04132 * @brief Disable delayed protection (DLYPRT) for a given timer. 04133 * @rmtoll OUTxR DLYPRTEN LL_HRTIM_TIM_DisableDLYPRT 04134 * @note This function must not be called once the concerned timer is enabled 04135 * @param HRTIMx High Resolution Timer instance 04136 * @param Timer This parameter can be one of the following values: 04137 * @arg @ref LL_HRTIM_TIMER_A 04138 * @arg @ref LL_HRTIM_TIMER_B 04139 * @arg @ref LL_HRTIM_TIMER_C 04140 * @arg @ref LL_HRTIM_TIMER_D 04141 * @arg @ref LL_HRTIM_TIMER_E 04142 * @retval None 04143 */ 04144 __STATIC_INLINE void LL_HRTIM_TIM_DisableDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04145 { 04146 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04147 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04148 REG_OFFSET_TAB_TIMER[iTimer])); 04149 CLEAR_BIT(*pReg, HRTIM_OUTR_DLYPRTEN); 04150 } 04151 04152 /** 04153 * @brief Indicate whether delayed protection (DLYPRT) is enabled for a given timer. 04154 * @rmtoll OUTxR DLYPRTEN LL_HRTIM_TIM_IsEnabledDLYPRT 04155 * @param HRTIMx High Resolution Timer instance 04156 * @param Timer This parameter can be one of the following values: 04157 * @arg @ref LL_HRTIM_TIMER_A 04158 * @arg @ref LL_HRTIM_TIMER_B 04159 * @arg @ref LL_HRTIM_TIMER_C 04160 * @arg @ref LL_HRTIM_TIMER_D 04161 * @arg @ref LL_HRTIM_TIMER_E 04162 * @retval State of DLYPRTEN bit in HRTIM_OUTxR register (1 or 0). 04163 */ 04164 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04165 { 04166 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04167 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 04168 REG_OFFSET_TAB_TIMER[iTimer])); 04169 return ((READ_BIT(*pReg, HRTIM_OUTR_DLYPRTEN) == (HRTIM_OUTR_DLYPRTEN)) ? 1UL : 0UL); 04170 } 04171 04172 /** 04173 * @brief Enable the fault channel(s) for a given timer. 04174 * @rmtoll FLTxR FLT1EN LL_HRTIM_TIM_EnableFault\n 04175 * FLTxR FLT2EN LL_HRTIM_TIM_EnableFault\n 04176 * FLTxR FLT3EN LL_HRTIM_TIM_EnableFault\n 04177 * FLTxR FLT4EN LL_HRTIM_TIM_EnableFault\n 04178 * FLTxR FLT5EN LL_HRTIM_TIM_EnableFault 04179 * @param HRTIMx High Resolution Timer instance 04180 * @param Timer This parameter can be one of the following values: 04181 * @arg @ref LL_HRTIM_TIMER_A 04182 * @arg @ref LL_HRTIM_TIMER_B 04183 * @arg @ref LL_HRTIM_TIMER_C 04184 * @arg @ref LL_HRTIM_TIMER_D 04185 * @arg @ref LL_HRTIM_TIMER_E 04186 * @param Faults This parameter can be a combination of the following values: 04187 * @arg @ref LL_HRTIM_FAULT_1 04188 * @arg @ref LL_HRTIM_FAULT_2 04189 * @arg @ref LL_HRTIM_FAULT_3 04190 * @arg @ref LL_HRTIM_FAULT_4 04191 * @arg @ref LL_HRTIM_FAULT_5 04192 * @retval None 04193 */ 04194 __STATIC_INLINE void LL_HRTIM_TIM_EnableFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Faults) 04195 { 04196 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04197 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) + 04198 REG_OFFSET_TAB_TIMER[iTimer])); 04199 SET_BIT(*pReg, Faults); 04200 } 04201 04202 /** 04203 * @brief Disable the fault channel(s) for a given timer. 04204 * @rmtoll FLTxR FLT1EN LL_HRTIM_TIM_DisableFault\n 04205 * FLTxR FLT2EN LL_HRTIM_TIM_DisableFault\n 04206 * FLTxR FLT3EN LL_HRTIM_TIM_DisableFault\n 04207 * FLTxR FLT4EN LL_HRTIM_TIM_DisableFault\n 04208 * FLTxR FLT5EN LL_HRTIM_TIM_DisableFault 04209 * @param HRTIMx High Resolution Timer instance 04210 * @param Timer This parameter can be one of the following values: 04211 * @arg @ref LL_HRTIM_TIMER_A 04212 * @arg @ref LL_HRTIM_TIMER_B 04213 * @arg @ref LL_HRTIM_TIMER_C 04214 * @arg @ref LL_HRTIM_TIMER_D 04215 * @arg @ref LL_HRTIM_TIMER_E 04216 * @param Faults This parameter can be a combination of the following values: 04217 * @arg @ref LL_HRTIM_FAULT_1 04218 * @arg @ref LL_HRTIM_FAULT_2 04219 * @arg @ref LL_HRTIM_FAULT_3 04220 * @arg @ref LL_HRTIM_FAULT_4 04221 * @arg @ref LL_HRTIM_FAULT_5 04222 * @retval None 04223 */ 04224 __STATIC_INLINE void LL_HRTIM_TIM_DisableFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Faults) 04225 { 04226 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04227 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) + 04228 REG_OFFSET_TAB_TIMER[iTimer])); 04229 CLEAR_BIT(*pReg, Faults); 04230 } 04231 04232 /** 04233 * @brief Indicate whether the fault channel is enabled for a given timer. 04234 * @rmtoll FLTxR FLT1EN LL_HRTIM_TIM_IsEnabledFault\n 04235 * FLTxR FLT2EN LL_HRTIM_TIM_IsEnabledFault\n 04236 * FLTxR FLT3EN LL_HRTIM_TIM_IsEnabledFault\n 04237 * FLTxR FLT4EN LL_HRTIM_TIM_IsEnabledFault\n 04238 * FLTxR FLT5EN LL_HRTIM_TIM_IsEnabledFault 04239 * @param HRTIMx High Resolution Timer instance 04240 * @param Timer This parameter can be one of the following values: 04241 * @arg @ref LL_HRTIM_TIMER_A 04242 * @arg @ref LL_HRTIM_TIMER_B 04243 * @arg @ref LL_HRTIM_TIMER_C 04244 * @arg @ref LL_HRTIM_TIMER_D 04245 * @arg @ref LL_HRTIM_TIMER_E 04246 * @param Fault This parameter can be one of the following values: 04247 * @arg @ref LL_HRTIM_FAULT_1 04248 * @arg @ref LL_HRTIM_FAULT_2 04249 * @arg @ref LL_HRTIM_FAULT_3 04250 * @arg @ref LL_HRTIM_FAULT_4 04251 * @arg @ref LL_HRTIM_FAULT_5 04252 * @retval State of FLTxEN bit in HRTIM_FLTxR register (1 or 0). 04253 */ 04254 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Fault) 04255 { 04256 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04257 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) + 04258 REG_OFFSET_TAB_TIMER[iTimer])); 04259 04260 return ((READ_BIT(*pReg, Fault) == (Fault)) ? 1UL : 0UL); 04261 } 04262 04263 /** 04264 * @brief Lock the fault conditioning set-up for a given timer. 04265 * @rmtoll FLTxR FLTLCK LL_HRTIM_TIM_LockFault 04266 * @note Timer fault-related set-up is frozen until the next HRTIM or system reset 04267 * @param HRTIMx High Resolution Timer instance 04268 * @param Timer This parameter can be one of the following values: 04269 * @arg @ref LL_HRTIM_TIMER_A 04270 * @arg @ref LL_HRTIM_TIMER_B 04271 * @arg @ref LL_HRTIM_TIMER_C 04272 * @arg @ref LL_HRTIM_TIMER_D 04273 * @arg @ref LL_HRTIM_TIMER_E 04274 * @retval None 04275 */ 04276 __STATIC_INLINE void LL_HRTIM_TIM_LockFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04277 { 04278 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04279 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) + 04280 REG_OFFSET_TAB_TIMER[iTimer])); 04281 SET_BIT(*pReg, HRTIM_FLTR_FLTLCK); 04282 } 04283 04284 /** 04285 * @brief Define how the timer behaves during a burst mode operation. 04286 * @rmtoll BMCR MTBM LL_HRTIM_TIM_SetBurstModeOption\n 04287 * BMCR TABM LL_HRTIM_TIM_SetBurstModeOption\n 04288 * BMCR TBBM LL_HRTIM_TIM_SetBurstModeOption\n 04289 * BMCR TCBM LL_HRTIM_TIM_SetBurstModeOption\n 04290 * BMCR TDBM LL_HRTIM_TIM_SetBurstModeOption\n 04291 * BMCR TEBM LL_HRTIM_TIM_SetBurstModeOption 04292 * @note This function must not be called when the burst mode is enabled 04293 * @param HRTIMx High Resolution Timer instance 04294 * @param Timer This parameter can be one of the following values: 04295 * @arg @ref LL_HRTIM_TIMER_MASTER 04296 * @arg @ref LL_HRTIM_TIMER_A 04297 * @arg @ref LL_HRTIM_TIMER_B 04298 * @arg @ref LL_HRTIM_TIMER_C 04299 * @arg @ref LL_HRTIM_TIMER_D 04300 * @arg @ref LL_HRTIM_TIMER_E 04301 * @param BurtsModeOption This parameter can be one of the following values: 04302 * @arg @ref LL_HRTIM_BURSTMODE_MAINTAINCLOCK 04303 * @arg @ref LL_HRTIM_BURSTMODE_RESETCOUNTER 04304 * @retval None 04305 */ 04306 __STATIC_INLINE void LL_HRTIM_TIM_SetBurstModeOption(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t BurtsModeOption) 04307 { 04308 uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos) & 0x1FU); 04309 MODIFY_REG(HRTIMx->sCommonRegs.BMCR, Timer, BurtsModeOption << iTimer); 04310 } 04311 04312 /** 04313 * @brief Retrieve how the timer behaves during a burst mode operation. 04314 * @rmtoll BMCR MCR LL_HRTIM_TIM_GetBurstModeOption\n 04315 * BMCR TABM LL_HRTIM_TIM_GetBurstModeOption\n 04316 * BMCR TBBM LL_HRTIM_TIM_GetBurstModeOption\n 04317 * BMCR TCBM LL_HRTIM_TIM_GetBurstModeOption\n 04318 * BMCR TDBM LL_HRTIM_TIM_GetBurstModeOption\n 04319 * BMCR TEBM LL_HRTIM_TIM_GetBurstModeOption 04320 * @param HRTIMx High Resolution Timer instance 04321 * @param Timer This parameter can be one of the following values: 04322 * @arg @ref LL_HRTIM_TIMER_MASTER 04323 * @arg @ref LL_HRTIM_TIMER_A 04324 * @arg @ref LL_HRTIM_TIMER_B 04325 * @arg @ref LL_HRTIM_TIMER_C 04326 * @arg @ref LL_HRTIM_TIMER_D 04327 * @arg @ref LL_HRTIM_TIMER_E 04328 * @retval BurtsMode This parameter can be one of the following values: 04329 * @arg @ref LL_HRTIM_BURSTMODE_MAINTAINCLOCK 04330 * @arg @ref LL_HRTIM_BURSTMODE_RESETCOUNTER 04331 */ 04332 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetBurstModeOption(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04333 { 04334 uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos) & 0x1FU); 04335 return (READ_BIT(HRTIMx->sCommonRegs.BMCR, Timer) >> iTimer); 04336 } 04337 04338 /** 04339 * @brief Program which registers are to be written by Burst DMA transfers. 04340 * @rmtoll BDMUPDR MTBM LL_HRTIM_TIM_ConfigBurstDMA\n 04341 * BDMUPDR MICR LL_HRTIM_TIM_ConfigBurstDMA\n 04342 * BDMUPDR MDIER LL_HRTIM_TIM_ConfigBurstDMA\n 04343 * BDMUPDR MCNT LL_HRTIM_TIM_ConfigBurstDMA\n 04344 * BDMUPDR MPER LL_HRTIM_TIM_ConfigBurstDMA\n 04345 * BDMUPDR MREP LL_HRTIM_TIM_ConfigBurstDMA\n 04346 * BDMUPDR MCMP1 LL_HRTIM_TIM_ConfigBurstDMA\n 04347 * BDMUPDR MCMP2 LL_HRTIM_TIM_ConfigBurstDMA\n 04348 * BDMUPDR MCMP3 LL_HRTIM_TIM_ConfigBurstDMA\n 04349 * BDMUPDR MCMP4 LL_HRTIM_TIM_ConfigBurstDMA\n 04350 * BDTxUPDR TIMxCR LL_HRTIM_TIM_ConfigBurstDMA\n 04351 * BDTxUPDR TIMxICR LL_HRTIM_TIM_ConfigBurstDMA\n 04352 * BDTxUPDR TIMxDIER LL_HRTIM_TIM_ConfigBurstDMA\n 04353 * BDTxUPDR TIMxCNT LL_HRTIM_TIM_ConfigBurstDMA\n 04354 * BDTxUPDR TIMxPER LL_HRTIM_TIM_ConfigBurstDMA\n 04355 * BDTxUPDR TIMxREP LL_HRTIM_TIM_ConfigBurstDMA\n 04356 * BDTxUPDR TIMxCMP1 LL_HRTIM_TIM_ConfigBurstDMA\n 04357 * BDTxUPDR TIMxCMP2 LL_HRTIM_TIM_ConfigBurstDMA\n 04358 * BDTxUPDR TIMxCMP3 LL_HRTIM_TIM_ConfigBurstDMA\n 04359 * BDTxUPDR TIMxCMP4 LL_HRTIM_TIM_ConfigBurstDMA\n 04360 * BDTxUPDR TIMxDTR LL_HRTIM_TIM_ConfigBurstDMA\n 04361 * BDTxUPDR TIMxSET1R LL_HRTIM_TIM_ConfigBurstDMA\n 04362 * BDTxUPDR TIMxRST1R LL_HRTIM_TIM_ConfigBurstDMA\n 04363 * BDTxUPDR TIMxSET2R LL_HRTIM_TIM_ConfigBurstDMA\n 04364 * BDTxUPDR TIMxRST2R LL_HRTIM_TIM_ConfigBurstDMA\n 04365 * BDTxUPDR TIMxEEFR1 LL_HRTIM_TIM_ConfigBurstDMA\n 04366 * BDTxUPDR TIMxEEFR2 LL_HRTIM_TIM_ConfigBurstDMA\n 04367 * BDTxUPDR TIMxRSTR LL_HRTIM_TIM_ConfigBurstDMA\n 04368 * BDTxUPDR TIMxOUTR LL_HRTIM_TIM_ConfigBurstDMA\n 04369 * BDTxUPDR TIMxLTCH LL_HRTIM_TIM_ConfigBurstDMA 04370 * @param HRTIMx High Resolution Timer instance 04371 * @param Timer This parameter can be one of the following values: 04372 * @arg @ref LL_HRTIM_TIMER_MASTER 04373 * @arg @ref LL_HRTIM_TIMER_A 04374 * @arg @ref LL_HRTIM_TIMER_B 04375 * @arg @ref LL_HRTIM_TIMER_C 04376 * @arg @ref LL_HRTIM_TIMER_D 04377 * @arg @ref LL_HRTIM_TIMER_E 04378 * @param Registers Registers to be updated by the DMA request 04379 * 04380 * For Master timer this parameter can be can be a combination of the following values: 04381 * @arg @ref LL_HRTIM_BURSTDMA_NONE 04382 * @arg @ref LL_HRTIM_BURSTDMA_MCR 04383 * @arg @ref LL_HRTIM_BURSTDMA_MICR 04384 * @arg @ref LL_HRTIM_BURSTDMA_MDIER 04385 * @arg @ref LL_HRTIM_BURSTDMA_MCNT 04386 * @arg @ref LL_HRTIM_BURSTDMA_MPER 04387 * @arg @ref LL_HRTIM_BURSTDMA_MREP 04388 * @arg @ref LL_HRTIM_BURSTDMA_MCMP1 04389 * @arg @ref LL_HRTIM_BURSTDMA_MCMP2 04390 * @arg @ref LL_HRTIM_BURSTDMA_MCMP3 04391 * @arg @ref LL_HRTIM_BURSTDMA_MCMP4 04392 * 04393 * For Timers A..E this parameter can be can be a combination of the following values: 04394 * @arg @ref LL_HRTIM_BURSTDMA_NONE 04395 * @arg @ref LL_HRTIM_BURSTDMA_TIMMCR 04396 * @arg @ref LL_HRTIM_BURSTDMA_TIMICR 04397 * @arg @ref LL_HRTIM_BURSTDMA_TIMDIER 04398 * @arg @ref LL_HRTIM_BURSTDMA_TIMCNT 04399 * @arg @ref LL_HRTIM_BURSTDMA_TIMPER 04400 * @arg @ref LL_HRTIM_BURSTDMA_TIMREP 04401 * @arg @ref LL_HRTIM_BURSTDMA_TIMCMP1 04402 * @arg @ref LL_HRTIM_BURSTDMA_TIMCMP2 04403 * @arg @ref LL_HRTIM_BURSTDMA_TIMCMP3 04404 * @arg @ref LL_HRTIM_BURSTDMA_TIMCMP4 04405 * @arg @ref LL_HRTIM_BURSTDMA_TIMDTR 04406 * @arg @ref LL_HRTIM_BURSTDMA_TIMSET1R 04407 * @arg @ref LL_HRTIM_BURSTDMA_TIMRST1R 04408 * @arg @ref LL_HRTIM_BURSTDMA_TIMSET2R 04409 * @arg @ref LL_HRTIM_BURSTDMA_TIMRST2R 04410 * @arg @ref LL_HRTIM_BURSTDMA_TIMEEFR1 04411 * @arg @ref LL_HRTIM_BURSTDMA_TIMEEFR2 04412 * @arg @ref LL_HRTIM_BURSTDMA_TIMRSTR 04413 * @arg @ref LL_HRTIM_BURSTDMA_TIMCHPR 04414 * @arg @ref LL_HRTIM_BURSTDMA_TIMOUTR 04415 * @arg @ref LL_HRTIM_BURSTDMA_TIMFLTR 04416 * @retval None 04417 */ 04418 __STATIC_INLINE void LL_HRTIM_TIM_ConfigBurstDMA(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Registers) 04419 { 04420 04421 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 04422 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.BDMUPR) + (4U * iTimer))); 04423 WRITE_REG(*pReg, Registers); 04424 } 04425 04426 /** 04427 * @brief Indicate on which output the signal is currently applied. 04428 * @rmtoll TIMxISR CPPSTAT LL_HRTIM_TIM_GetCurrentPushPullStatus 04429 * @note Only significant when the timer operates in push-pull mode. 04430 * @param HRTIMx High Resolution Timer instance 04431 * @param Timer This parameter can be one of the following values: 04432 * @arg @ref LL_HRTIM_TIMER_A 04433 * @arg @ref LL_HRTIM_TIMER_B 04434 * @arg @ref LL_HRTIM_TIMER_C 04435 * @arg @ref LL_HRTIM_TIMER_D 04436 * @arg @ref LL_HRTIM_TIMER_E 04437 * @retval CPPSTAT This parameter can be one of the following values: 04438 * @arg @ref LL_HRTIM_CPPSTAT_OUTPUT1 04439 * @arg @ref LL_HRTIM_CPPSTAT_OUTPUT2 04440 */ 04441 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCurrentPushPullStatus(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04442 { 04443 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 04444 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 04445 REG_OFFSET_TAB_TIMER[iTimer])); 04446 return (READ_BIT(*pReg, HRTIM_TIMISR_CPPSTAT)); 04447 } 04448 04449 /** 04450 * @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. 04451 * @rmtoll TIMxISR IPPSTAT LL_HRTIM_TIM_GetIdlePushPullStatus 04452 * @param HRTIMx High Resolution Timer instance 04453 * @param Timer This parameter can be one of the following values: 04454 * @arg @ref LL_HRTIM_TIMER_A 04455 * @arg @ref LL_HRTIM_TIMER_B 04456 * @arg @ref LL_HRTIM_TIMER_C 04457 * @arg @ref LL_HRTIM_TIMER_D 04458 * @arg @ref LL_HRTIM_TIMER_E 04459 * @retval IPPSTAT This parameter can be one of the following values: 04460 * @arg @ref LL_HRTIM_IPPSTAT_OUTPUT1 04461 * @arg @ref LL_HRTIM_IPPSTAT_OUTPUT2 04462 */ 04463 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetIdlePushPullStatus(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04464 { 04465 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 04466 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 04467 REG_OFFSET_TAB_TIMER[iTimer])); 04468 return (READ_BIT(*pReg, HRTIM_TIMISR_IPPSTAT)); 04469 } 04470 04471 /** 04472 * @brief Set the event filter for a given timer. 04473 * @rmtoll EEFxR1 EE1LTCH LL_HRTIM_TIM_SetEventFilter\n 04474 * EEFxR1 EE2LTCH LL_HRTIM_TIM_SetEventFilter\n 04475 * EEFxR1 EE3LTCH LL_HRTIM_TIM_SetEventFilter\n 04476 * EEFxR1 EE4LTCH LL_HRTIM_TIM_SetEventFilter\n 04477 * EEFxR1 EE5LTCH LL_HRTIM_TIM_SetEventFilter\n 04478 * EEFxR2 EE6LTCH LL_HRTIM_TIM_SetEventFilter\n 04479 * EEFxR2 EE7LTCH LL_HRTIM_TIM_SetEventFilter\n 04480 * EEFxR2 EE8LTCH LL_HRTIM_TIM_SetEventFilter\n 04481 * EEFxR2 EE9LTCH LL_HRTIM_TIM_SetEventFilter\n 04482 * EEFxR2 EE10LTCH LL_HRTIM_TIM_SetEventFilter 04483 * @note This function must not be called when the timer counter is enabled. 04484 * @param HRTIMx High Resolution Timer instance 04485 * @param Timer This parameter can be one of the following values: 04486 * @arg @ref LL_HRTIM_TIMER_A 04487 * @arg @ref LL_HRTIM_TIMER_B 04488 * @arg @ref LL_HRTIM_TIMER_C 04489 * @arg @ref LL_HRTIM_TIMER_D 04490 * @arg @ref LL_HRTIM_TIMER_E 04491 * @param Event This parameter can be one of the following values: 04492 * @arg @ref LL_HRTIM_EVENT_1 04493 * @arg @ref LL_HRTIM_EVENT_2 04494 * @arg @ref LL_HRTIM_EVENT_3 04495 * @arg @ref LL_HRTIM_EVENT_4 04496 * @arg @ref LL_HRTIM_EVENT_5 04497 * @arg @ref LL_HRTIM_EVENT_6 04498 * @arg @ref LL_HRTIM_EVENT_7 04499 * @arg @ref LL_HRTIM_EVENT_8 04500 * @arg @ref LL_HRTIM_EVENT_9 04501 * @arg @ref LL_HRTIM_EVENT_10 04502 * @param Filter This parameter can be one of the following values: 04503 * @arg @ref LL_HRTIM_EEFLTR_NONE 04504 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP1 04505 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP2 04506 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP3 04507 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP4 04508 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR1 04509 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR2 04510 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR3 04511 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR4 04512 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR5 04513 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR6 04514 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR7 04515 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR8 04516 * @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP2 04517 * @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP3 04518 * @arg @ref LL_HRTIM_EEFLTR_WINDOWINGTIM 04519 04520 * @retval None 04521 */ 04522 __STATIC_INLINE void LL_HRTIM_TIM_SetEventFilter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event, uint32_t Filter) 04523 { 04524 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A)); 04525 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 04526 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) + 04527 REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent])); 04528 MODIFY_REG(*pReg, (HRTIM_EEFR1_EE1FLTR << REG_SHIFT_TAB_EExSRC[iEvent]), (Filter << REG_SHIFT_TAB_EExSRC[iEvent])); 04529 } 04530 04531 /** 04532 * @brief Get actual event filter settings for a given timer. 04533 * @rmtoll EEFxR1 EE1FLTR LL_HRTIM_TIM_GetEventFilter\n 04534 * EEFxR1 EE2FLTR LL_HRTIM_TIM_GetEventFilter\n 04535 * EEFxR1 EE3FLTR LL_HRTIM_TIM_GetEventFilter\n 04536 * EEFxR1 EE4FLTR LL_HRTIM_TIM_GetEventFilter\n 04537 * EEFxR1 EE5FLTR LL_HRTIM_TIM_GetEventFilter\n 04538 * EEFxR2 EE6FLTR LL_HRTIM_TIM_GetEventFilter\n 04539 * EEFxR2 EE7FLTR LL_HRTIM_TIM_GetEventFilter\n 04540 * EEFxR2 EE8FLTR LL_HRTIM_TIM_GetEventFilter\n 04541 * EEFxR2 EE9FLTR LL_HRTIM_TIM_GetEventFilter\n 04542 * EEFxR2 EE10FLTR LL_HRTIM_TIM_GetEventFilter 04543 * @param HRTIMx High Resolution Timer instance 04544 * @param Timer This parameter can be one of the following values: 04545 * @arg @ref LL_HRTIM_TIMER_A 04546 * @arg @ref LL_HRTIM_TIMER_B 04547 * @arg @ref LL_HRTIM_TIMER_C 04548 * @arg @ref LL_HRTIM_TIMER_D 04549 * @arg @ref LL_HRTIM_TIMER_E 04550 * @param Event This parameter can be one of the following values: 04551 * @arg @ref LL_HRTIM_EVENT_1 04552 * @arg @ref LL_HRTIM_EVENT_2 04553 * @arg @ref LL_HRTIM_EVENT_3 04554 * @arg @ref LL_HRTIM_EVENT_4 04555 * @arg @ref LL_HRTIM_EVENT_5 04556 * @arg @ref LL_HRTIM_EVENT_6 04557 * @arg @ref LL_HRTIM_EVENT_7 04558 * @arg @ref LL_HRTIM_EVENT_8 04559 * @arg @ref LL_HRTIM_EVENT_9 04560 * @arg @ref LL_HRTIM_EVENT_10 04561 * @retval Filter This parameter can be one of the following values: 04562 * @arg @ref LL_HRTIM_EEFLTR_NONE 04563 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP1 04564 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP2 04565 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP3 04566 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP4 04567 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR1 04568 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR2 04569 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR3 04570 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR4 04571 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR5 04572 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR6 04573 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR7 04574 * @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR8 04575 * @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP2 04576 * @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP3 04577 * @arg @ref LL_HRTIM_EEFLTR_WINDOWINGTIM 04578 */ 04579 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventFilter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event) 04580 { 04581 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A)); 04582 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 04583 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) + 04584 REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent])); 04585 return (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR1_EE1FLTR) << (REG_SHIFT_TAB_EExSRC[iEvent])) >> (REG_SHIFT_TAB_EExSRC[iEvent])); 04586 } 04587 04588 /** 04589 * @brief Enable or disable event latch mechanism for a given timer. 04590 * @rmtoll EEFxR1 EE1LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04591 * EEFxR1 EE2LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04592 * EEFxR1 EE3LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04593 * EEFxR1 EE4LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04594 * EEFxR1 EE5LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04595 * EEFxR2 EE6LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04596 * EEFxR2 EE7LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04597 * EEFxR2 EE8LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04598 * EEFxR2 EE9LTCH LL_HRTIM_TIM_SetEventLatchStatus\n 04599 * EEFxR2 EE10LTCH LL_HRTIM_TIM_SetEventLatchStatus 04600 * @note This function must not be called when the timer counter is enabled. 04601 * @param HRTIMx High Resolution Timer instance 04602 * @param Timer This parameter can be one of the following values: 04603 * @arg @ref LL_HRTIM_TIMER_A 04604 * @arg @ref LL_HRTIM_TIMER_B 04605 * @arg @ref LL_HRTIM_TIMER_C 04606 * @arg @ref LL_HRTIM_TIMER_D 04607 * @arg @ref LL_HRTIM_TIMER_E 04608 * @param Event This parameter can be one of the following values: 04609 * @arg @ref LL_HRTIM_EVENT_1 04610 * @arg @ref LL_HRTIM_EVENT_2 04611 * @arg @ref LL_HRTIM_EVENT_3 04612 * @arg @ref LL_HRTIM_EVENT_4 04613 * @arg @ref LL_HRTIM_EVENT_5 04614 * @arg @ref LL_HRTIM_EVENT_6 04615 * @arg @ref LL_HRTIM_EVENT_7 04616 * @arg @ref LL_HRTIM_EVENT_8 04617 * @arg @ref LL_HRTIM_EVENT_9 04618 * @arg @ref LL_HRTIM_EVENT_10 04619 * @param LatchStatus This parameter can be one of the following values: 04620 * @arg @ref LL_HRTIM_EELATCH_DISABLED 04621 * @arg @ref LL_HRTIM_EELATCH_ENABLED 04622 * @retval None 04623 */ 04624 __STATIC_INLINE void LL_HRTIM_TIM_SetEventLatchStatus(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event, 04625 uint32_t LatchStatus) 04626 { 04627 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A)); 04628 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 04629 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) + 04630 REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent])); 04631 MODIFY_REG(*pReg, (HRTIM_EEFR1_EE1LTCH << REG_SHIFT_TAB_EExSRC[iEvent]), (LatchStatus << REG_SHIFT_TAB_EExSRC[iEvent])); 04632 } 04633 04634 /** 04635 * @brief Get actual event latch status for a given timer. 04636 * @rmtoll EEFxR1 EE1LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04637 * EEFxR1 EE2LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04638 * EEFxR1 EE3LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04639 * EEFxR1 EE4LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04640 * EEFxR1 EE5LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04641 * EEFxR2 EE6LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04642 * EEFxR2 EE7LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04643 * EEFxR2 EE8LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04644 * EEFxR2 EE9LTCH LL_HRTIM_TIM_GetEventLatchStatus\n 04645 * EEFxR2 EE10LTCH LL_HRTIM_TIM_GetEventLatchStatus 04646 * @param HRTIMx High Resolution Timer instance 04647 * @param Timer This parameter can be one of the following values: 04648 * @arg @ref LL_HRTIM_TIMER_A 04649 * @arg @ref LL_HRTIM_TIMER_B 04650 * @arg @ref LL_HRTIM_TIMER_C 04651 * @arg @ref LL_HRTIM_TIMER_D 04652 * @arg @ref LL_HRTIM_TIMER_E 04653 * @param Event This parameter can be one of the following values: 04654 * @arg @ref LL_HRTIM_EVENT_1 04655 * @arg @ref LL_HRTIM_EVENT_2 04656 * @arg @ref LL_HRTIM_EVENT_3 04657 * @arg @ref LL_HRTIM_EVENT_4 04658 * @arg @ref LL_HRTIM_EVENT_5 04659 * @arg @ref LL_HRTIM_EVENT_6 04660 * @arg @ref LL_HRTIM_EVENT_7 04661 * @arg @ref LL_HRTIM_EVENT_8 04662 * @arg @ref LL_HRTIM_EVENT_9 04663 * @arg @ref LL_HRTIM_EVENT_10 04664 * @retval LatchStatus This parameter can be one of the following values: 04665 * @arg @ref LL_HRTIM_EELATCH_DISABLED 04666 * @arg @ref LL_HRTIM_EELATCH_ENABLED 04667 */ 04668 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventLatchStatus(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event) 04669 { 04670 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A)); 04671 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 04672 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) + 04673 REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent])); 04674 return (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR1_EE1LTCH) << REG_SHIFT_TAB_EExSRC[iEvent]) >> (REG_SHIFT_TAB_EExSRC[iEvent])); 04675 } 04676 04677 /** 04678 * @} 04679 */ 04680 04681 /** @defgroup HRTIM_LL_EF_Dead_Time_Configuration Dead_Time_Configuration 04682 * @{ 04683 */ 04684 04685 /** 04686 * @brief Configure the dead time insertion feature for a given timer. 04687 * @rmtoll DTxR DTPRSC LL_HRTIM_DT_Config\n 04688 * DTxR SDTF LL_HRTIM_DT_Config\n 04689 * DTxR SDRT LL_HRTIM_DT_Config 04690 * @param HRTIMx High Resolution Timer instance 04691 * @param Timer This parameter can be one of the following values: 04692 * @arg @ref LL_HRTIM_TIMER_A 04693 * @arg @ref LL_HRTIM_TIMER_B 04694 * @arg @ref LL_HRTIM_TIMER_C 04695 * @arg @ref LL_HRTIM_TIMER_D 04696 * @arg @ref LL_HRTIM_TIMER_E 04697 * @param Configuration This parameter must be a combination of all the following values: 04698 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL8 or ... or @ref LL_HRTIM_DT_PRESCALER_DIV16 04699 * @arg @ref LL_HRTIM_DT_RISING_POSITIVE or @ref LL_HRTIM_DT_RISING_NEGATIVE 04700 * @arg @ref LL_HRTIM_DT_FALLING_POSITIVE or @ref LL_HRTIM_DT_FALLING_NEGATIVE 04701 * @retval None 04702 */ 04703 __STATIC_INLINE void LL_HRTIM_DT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Configuration) 04704 { 04705 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04706 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04707 REG_OFFSET_TAB_TIMER[iTimer])); 04708 MODIFY_REG(*pReg, HRTIM_DTR_SDTF | HRTIM_DTR_DTPRSC | HRTIM_DTR_SDTR, Configuration); 04709 } 04710 04711 /** 04712 * @brief Set the deadtime prescaler value. 04713 * @rmtoll DTxR DTPRSC LL_HRTIM_DT_SetPrescaler 04714 * @param HRTIMx High Resolution Timer instance 04715 * @param Timer This parameter can be one of the following values: 04716 * @arg @ref LL_HRTIM_TIMER_A 04717 * @arg @ref LL_HRTIM_TIMER_B 04718 * @arg @ref LL_HRTIM_TIMER_C 04719 * @arg @ref LL_HRTIM_TIMER_D 04720 * @arg @ref LL_HRTIM_TIMER_E 04721 * @param Prescaler This parameter can be one of the following values: 04722 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL8 04723 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL4 04724 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL2 04725 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV1 04726 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV2 04727 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV4 04728 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV8 04729 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV16 04730 * @retval None 04731 */ 04732 __STATIC_INLINE void LL_HRTIM_DT_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler) 04733 { 04734 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04735 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04736 REG_OFFSET_TAB_TIMER[iTimer])); 04737 MODIFY_REG(*pReg, HRTIM_DTR_DTPRSC, Prescaler); 04738 } 04739 04740 /** 04741 * @brief Get actual deadtime prescaler value. 04742 * @rmtoll DTxR DTPRSC LL_HRTIM_DT_GetPrescaler 04743 * @param HRTIMx High Resolution Timer instance 04744 * @param Timer This parameter can be one of the following values: 04745 * @arg @ref LL_HRTIM_TIMER_A 04746 * @arg @ref LL_HRTIM_TIMER_B 04747 * @arg @ref LL_HRTIM_TIMER_C 04748 * @arg @ref LL_HRTIM_TIMER_D 04749 * @arg @ref LL_HRTIM_TIMER_E 04750 * @retval Prescaler This parameter can be one of the following values: 04751 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL8 04752 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL4 04753 * @arg @ref LL_HRTIM_DT_PRESCALER_MUL2 04754 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV1 04755 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV2 04756 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV4 04757 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV8 04758 * @arg @ref LL_HRTIM_DT_PRESCALER_DIV16 04759 */ 04760 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04761 { 04762 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04763 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04764 REG_OFFSET_TAB_TIMER[iTimer])); 04765 return (READ_BIT(*pReg, HRTIM_DTR_DTPRSC)); 04766 } 04767 04768 /** 04769 * @brief Set the deadtime rising value. 04770 * @rmtoll DTxR DTR LL_HRTIM_DT_SetRisingValue 04771 * @param HRTIMx High Resolution Timer instance 04772 * @param Timer This parameter can be one of the following values: 04773 * @arg @ref LL_HRTIM_TIMER_A 04774 * @arg @ref LL_HRTIM_TIMER_B 04775 * @arg @ref LL_HRTIM_TIMER_C 04776 * @arg @ref LL_HRTIM_TIMER_D 04777 * @arg @ref LL_HRTIM_TIMER_E 04778 * @param RisingValue Value between 0 and 0x1FF 04779 * @retval None 04780 */ 04781 __STATIC_INLINE void LL_HRTIM_DT_SetRisingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t RisingValue) 04782 { 04783 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04784 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04785 REG_OFFSET_TAB_TIMER[iTimer])); 04786 MODIFY_REG(*pReg, HRTIM_DTR_DTR, RisingValue); 04787 } 04788 04789 /** 04790 * @brief Get actual deadtime rising value. 04791 * @rmtoll DTxR DTR LL_HRTIM_DT_GetRisingValue 04792 * @param HRTIMx High Resolution Timer instance 04793 * @param Timer This parameter can be one of the following values: 04794 * @arg @ref LL_HRTIM_TIMER_A 04795 * @arg @ref LL_HRTIM_TIMER_B 04796 * @arg @ref LL_HRTIM_TIMER_C 04797 * @arg @ref LL_HRTIM_TIMER_D 04798 * @arg @ref LL_HRTIM_TIMER_E 04799 * @retval RisingValue Value between 0 and 0x1FF 04800 */ 04801 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetRisingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04802 { 04803 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04804 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04805 REG_OFFSET_TAB_TIMER[iTimer])); 04806 return (READ_BIT(*pReg, HRTIM_DTR_DTR)); 04807 } 04808 04809 /** 04810 * @brief Set the deadtime sign on rising edge. 04811 * @rmtoll DTxR SDTR LL_HRTIM_DT_SetRisingSign 04812 * @param HRTIMx High Resolution Timer instance 04813 * @param Timer This parameter can be one of the following values: 04814 * @arg @ref LL_HRTIM_TIMER_A 04815 * @arg @ref LL_HRTIM_TIMER_B 04816 * @arg @ref LL_HRTIM_TIMER_C 04817 * @arg @ref LL_HRTIM_TIMER_D 04818 * @arg @ref LL_HRTIM_TIMER_E 04819 * @param RisingSign This parameter can be one of the following values: 04820 * @arg @ref LL_HRTIM_DT_RISING_POSITIVE 04821 * @arg @ref LL_HRTIM_DT_RISING_NEGATIVE 04822 * @retval None 04823 */ 04824 __STATIC_INLINE void LL_HRTIM_DT_SetRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t RisingSign) 04825 { 04826 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04827 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04828 REG_OFFSET_TAB_TIMER[iTimer])); 04829 MODIFY_REG(*pReg, HRTIM_DTR_SDTR, RisingSign); 04830 } 04831 04832 /** 04833 * @brief Get actual deadtime sign on rising edge. 04834 * @rmtoll DTxR SDTR LL_HRTIM_DT_GetRisingSign 04835 * @param HRTIMx High Resolution Timer instance 04836 * @param Timer This parameter can be one of the following values: 04837 * @arg @ref LL_HRTIM_TIMER_A 04838 * @arg @ref LL_HRTIM_TIMER_B 04839 * @arg @ref LL_HRTIM_TIMER_C 04840 * @arg @ref LL_HRTIM_TIMER_D 04841 * @arg @ref LL_HRTIM_TIMER_E 04842 * @retval RisingSign This parameter can be one of the following values: 04843 * @arg @ref LL_HRTIM_DT_RISING_POSITIVE 04844 * @arg @ref LL_HRTIM_DT_RISING_NEGATIVE 04845 */ 04846 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04847 { 04848 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04849 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04850 REG_OFFSET_TAB_TIMER[iTimer])); 04851 return (READ_BIT(*pReg, HRTIM_DTR_SDTR)); 04852 } 04853 04854 /** 04855 * @brief Set the deadime falling value. 04856 * @rmtoll DTxR DTF LL_HRTIM_DT_SetFallingValue 04857 * @param HRTIMx High Resolution Timer instance 04858 * @param Timer This parameter can be one of the following values: 04859 * @arg @ref LL_HRTIM_TIMER_A 04860 * @arg @ref LL_HRTIM_TIMER_B 04861 * @arg @ref LL_HRTIM_TIMER_C 04862 * @arg @ref LL_HRTIM_TIMER_D 04863 * @arg @ref LL_HRTIM_TIMER_E 04864 * @param FallingValue Value between 0 and 0x1FF 04865 * @retval None 04866 */ 04867 __STATIC_INLINE void LL_HRTIM_DT_SetFallingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t FallingValue) 04868 { 04869 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04870 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04871 REG_OFFSET_TAB_TIMER[iTimer])); 04872 MODIFY_REG(*pReg, HRTIM_DTR_DTF, FallingValue << HRTIM_DTR_DTF_Pos); 04873 } 04874 04875 /** 04876 * @brief Get actual deadtime falling value 04877 * @rmtoll DTxR DTF LL_HRTIM_DT_GetFallingValue 04878 * @param HRTIMx High Resolution Timer instance 04879 * @param Timer This parameter can be one of the following values: 04880 * @arg @ref LL_HRTIM_TIMER_A 04881 * @arg @ref LL_HRTIM_TIMER_B 04882 * @arg @ref LL_HRTIM_TIMER_C 04883 * @arg @ref LL_HRTIM_TIMER_D 04884 * @arg @ref LL_HRTIM_TIMER_E 04885 * @retval FallingValue Value between 0 and 0x1FF 04886 */ 04887 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetFallingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04888 { 04889 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04890 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04891 REG_OFFSET_TAB_TIMER[iTimer])); 04892 return ((READ_BIT(*pReg, HRTIM_DTR_DTF)) >> HRTIM_DTR_DTF_Pos); 04893 } 04894 04895 /** 04896 * @brief Set the deadtime sign on falling edge. 04897 * @rmtoll DTxR SDTF LL_HRTIM_DT_SetFallingSign 04898 * @param HRTIMx High Resolution Timer instance 04899 * @param Timer This parameter can be one of the following values: 04900 * @arg @ref LL_HRTIM_TIMER_A 04901 * @arg @ref LL_HRTIM_TIMER_B 04902 * @arg @ref LL_HRTIM_TIMER_C 04903 * @arg @ref LL_HRTIM_TIMER_D 04904 * @arg @ref LL_HRTIM_TIMER_E 04905 * @param FallingSign This parameter can be one of the following values: 04906 * @arg @ref LL_HRTIM_DT_FALLING_POSITIVE 04907 * @arg @ref LL_HRTIM_DT_FALLING_NEGATIVE 04908 * @retval None 04909 */ 04910 __STATIC_INLINE void LL_HRTIM_DT_SetFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t FallingSign) 04911 { 04912 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04913 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04914 REG_OFFSET_TAB_TIMER[iTimer])); 04915 MODIFY_REG(*pReg, HRTIM_DTR_SDTF, FallingSign); 04916 } 04917 04918 /** 04919 * @brief Get actual deadtime sign on falling edge. 04920 * @rmtoll DTxR SDTF LL_HRTIM_DT_GetFallingSign 04921 * @param HRTIMx High Resolution Timer instance 04922 * @param Timer This parameter can be one of the following values: 04923 * @arg @ref LL_HRTIM_TIMER_A 04924 * @arg @ref LL_HRTIM_TIMER_B 04925 * @arg @ref LL_HRTIM_TIMER_C 04926 * @arg @ref LL_HRTIM_TIMER_D 04927 * @arg @ref LL_HRTIM_TIMER_E 04928 * @retval FallingSign This parameter can be one of the following values: 04929 * @arg @ref LL_HRTIM_DT_FALLING_POSITIVE 04930 * @arg @ref LL_HRTIM_DT_FALLING_NEGATIVE 04931 */ 04932 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04933 { 04934 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04935 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04936 REG_OFFSET_TAB_TIMER[iTimer])); 04937 return (READ_BIT(*pReg, HRTIM_DTR_SDTF)); 04938 } 04939 04940 /** 04941 * @brief Lock the deadtime value and sign on rising edge. 04942 * @rmtoll DTxR DTRLK LL_HRTIM_DT_LockRising 04943 * @param HRTIMx High Resolution Timer instance 04944 * @param Timer This parameter can be one of the following values: 04945 * @arg @ref LL_HRTIM_TIMER_A 04946 * @arg @ref LL_HRTIM_TIMER_B 04947 * @arg @ref LL_HRTIM_TIMER_C 04948 * @arg @ref LL_HRTIM_TIMER_D 04949 * @arg @ref LL_HRTIM_TIMER_E 04950 * @retval None 04951 */ 04952 __STATIC_INLINE void LL_HRTIM_DT_LockRising(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04953 { 04954 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04955 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04956 REG_OFFSET_TAB_TIMER[iTimer])); 04957 SET_BIT(*pReg, HRTIM_DTR_DTRLK); 04958 } 04959 04960 /** 04961 * @brief Lock the deadtime sign on rising edge. 04962 * @rmtoll DTxR DTRSLK LL_HRTIM_DT_LockRisingSign 04963 * @param HRTIMx High Resolution Timer instance 04964 * @param Timer This parameter can be one of the following values: 04965 * @arg @ref LL_HRTIM_TIMER_A 04966 * @arg @ref LL_HRTIM_TIMER_B 04967 * @arg @ref LL_HRTIM_TIMER_C 04968 * @arg @ref LL_HRTIM_TIMER_D 04969 * @arg @ref LL_HRTIM_TIMER_E 04970 * @retval None 04971 */ 04972 __STATIC_INLINE void LL_HRTIM_DT_LockRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04973 { 04974 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04975 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04976 REG_OFFSET_TAB_TIMER[iTimer])); 04977 SET_BIT(*pReg, HRTIM_DTR_DTRSLK); 04978 } 04979 04980 /** 04981 * @brief Lock the deadtime value and sign on falling edge. 04982 * @rmtoll DTxR DTFLK LL_HRTIM_DT_LockFalling 04983 * @param HRTIMx High Resolution Timer instance 04984 * @param Timer This parameter can be one of the following values: 04985 * @arg @ref LL_HRTIM_TIMER_A 04986 * @arg @ref LL_HRTIM_TIMER_B 04987 * @arg @ref LL_HRTIM_TIMER_C 04988 * @arg @ref LL_HRTIM_TIMER_D 04989 * @arg @ref LL_HRTIM_TIMER_E 04990 * @retval None 04991 */ 04992 __STATIC_INLINE void LL_HRTIM_DT_LockFalling(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 04993 { 04994 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 04995 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 04996 REG_OFFSET_TAB_TIMER[iTimer])); 04997 SET_BIT(*pReg, HRTIM_DTR_DTFLK); 04998 } 04999 05000 /** 05001 * @brief Lock the deadtime sign on falling edge. 05002 * @rmtoll DTxR DTFSLK LL_HRTIM_DT_LockFallingSign 05003 * @param HRTIMx High Resolution Timer instance 05004 * @param Timer This parameter can be one of the following values: 05005 * @arg @ref LL_HRTIM_TIMER_A 05006 * @arg @ref LL_HRTIM_TIMER_B 05007 * @arg @ref LL_HRTIM_TIMER_C 05008 * @arg @ref LL_HRTIM_TIMER_D 05009 * @arg @ref LL_HRTIM_TIMER_E 05010 * @retval None 05011 */ 05012 __STATIC_INLINE void LL_HRTIM_DT_LockFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 05013 { 05014 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05015 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) + 05016 REG_OFFSET_TAB_TIMER[iTimer])); 05017 SET_BIT(*pReg, HRTIM_DTR_DTFSLK); 05018 } 05019 05020 /** 05021 * @} 05022 */ 05023 05024 /** @defgroup HRTIM_LL_EF_Chopper_Mode_Configuration Chopper_Mode_Configuration 05025 * @{ 05026 */ 05027 05028 /** 05029 * @brief Configure the chopper stage for a given timer. 05030 * @rmtoll CHPxR CARFRQ LL_HRTIM_CHP_Config\n 05031 * CHPxR CARDTY LL_HRTIM_CHP_Config\n 05032 * CHPxR STRTPW LL_HRTIM_CHP_Config 05033 * @note This function must not be called if the chopper mode is already 05034 * enabled for one of the timer outputs. 05035 * @param HRTIMx High Resolution Timer instance 05036 * @param Timer This parameter can be one of the following values: 05037 * @arg @ref LL_HRTIM_TIMER_A 05038 * @arg @ref LL_HRTIM_TIMER_B 05039 * @arg @ref LL_HRTIM_TIMER_C 05040 * @arg @ref LL_HRTIM_TIMER_D 05041 * @arg @ref LL_HRTIM_TIMER_E 05042 * @param Configuration This parameter must be a combination of all the following values: 05043 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16 or ... or @ref LL_HRTIM_CHP_PRESCALER_DIV256 05044 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0 or ... or @ref LL_HRTIM_CHP_DUTYCYCLE_875 05045 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16 or ... or @ref LL_HRTIM_CHP_PULSEWIDTH_256 05046 * @retval None 05047 */ 05048 __STATIC_INLINE void LL_HRTIM_CHP_Config(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Configuration) 05049 { 05050 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05051 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05052 REG_OFFSET_TAB_TIMER[iTimer])); 05053 MODIFY_REG(*pReg, HRTIM_CHPR_STRPW | HRTIM_CHPR_CARDTY | HRTIM_CHPR_CARFRQ, Configuration); 05054 } 05055 05056 /** 05057 * @brief Set prescaler determining the carrier frequency to be added on top 05058 * of the timer output signals when chopper mode is enabled. 05059 * @rmtoll CHPxR CARFRQ LL_HRTIM_CHP_SetPrescaler 05060 * @note This function must not be called if the chopper mode is already 05061 * enabled for one of the timer outputs. 05062 * @param HRTIMx High Resolution Timer instance 05063 * @param Timer This parameter can be one of the following values: 05064 * @arg @ref LL_HRTIM_TIMER_A 05065 * @arg @ref LL_HRTIM_TIMER_B 05066 * @arg @ref LL_HRTIM_TIMER_C 05067 * @arg @ref LL_HRTIM_TIMER_D 05068 * @arg @ref LL_HRTIM_TIMER_E 05069 * @param Prescaler This parameter can be one of the following values: 05070 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16 05071 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV32 05072 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV48 05073 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV64 05074 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV80 05075 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV96 05076 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV112 05077 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV128 05078 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV144 05079 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV160 05080 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV176 05081 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV192 05082 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV208 05083 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV224 05084 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV240 05085 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV256 05086 * @retval None 05087 */ 05088 __STATIC_INLINE void LL_HRTIM_CHP_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler) 05089 { 05090 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05091 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05092 REG_OFFSET_TAB_TIMER[iTimer])); 05093 MODIFY_REG(*pReg, HRTIM_CHPR_CARFRQ, Prescaler); 05094 } 05095 05096 /** 05097 * @brief Get actual chopper stage prescaler value. 05098 * @rmtoll CHPxR CARFRQ LL_HRTIM_CHP_GetPrescaler 05099 * @param HRTIMx High Resolution Timer instance 05100 * @param Timer This parameter can be one of the following values: 05101 * @arg @ref LL_HRTIM_TIMER_A 05102 * @arg @ref LL_HRTIM_TIMER_B 05103 * @arg @ref LL_HRTIM_TIMER_C 05104 * @arg @ref LL_HRTIM_TIMER_D 05105 * @arg @ref LL_HRTIM_TIMER_E 05106 * @retval Prescaler This parameter can be one of the following values: 05107 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16 05108 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV32 05109 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV48 05110 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV64 05111 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV80 05112 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV96 05113 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV112 05114 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV128 05115 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV144 05116 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV160 05117 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV176 05118 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV192 05119 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV208 05120 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV224 05121 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV240 05122 * @arg @ref LL_HRTIM_CHP_PRESCALER_DIV256 05123 */ 05124 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 05125 { 05126 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05127 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05128 REG_OFFSET_TAB_TIMER[iTimer])); 05129 return (READ_BIT(*pReg, HRTIM_CHPR_CARFRQ)); 05130 } 05131 05132 /** 05133 * @brief Set the chopper duty cycle. 05134 * @rmtoll CHPxR CARDTY LL_HRTIM_CHP_SetDutyCycle 05135 * @note Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8) 05136 * @note This function must not be called if the chopper mode is already 05137 * enabled for one of the timer outputs. 05138 * @param HRTIMx High Resolution Timer instance 05139 * @param Timer This parameter can be one of the following values: 05140 * @arg @ref LL_HRTIM_TIMER_A 05141 * @arg @ref LL_HRTIM_TIMER_B 05142 * @arg @ref LL_HRTIM_TIMER_C 05143 * @arg @ref LL_HRTIM_TIMER_D 05144 * @arg @ref LL_HRTIM_TIMER_E 05145 * @param DutyCycle This parameter can be one of the following values: 05146 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0 05147 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_125 05148 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_250 05149 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_375 05150 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_500 05151 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_625 05152 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_750 05153 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_875 05154 * @retval None 05155 */ 05156 __STATIC_INLINE void LL_HRTIM_CHP_SetDutyCycle(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DutyCycle) 05157 { 05158 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05159 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05160 REG_OFFSET_TAB_TIMER[iTimer])); 05161 MODIFY_REG(*pReg, HRTIM_CHPR_CARDTY, DutyCycle); 05162 } 05163 05164 /** 05165 * @brief Get actual chopper duty cycle. 05166 * @rmtoll CHPxR CARDTY LL_HRTIM_CHP_GetDutyCycle 05167 * @param HRTIMx High Resolution Timer instance 05168 * @param Timer This parameter can be one of the following values: 05169 * @arg @ref LL_HRTIM_TIMER_A 05170 * @arg @ref LL_HRTIM_TIMER_B 05171 * @arg @ref LL_HRTIM_TIMER_C 05172 * @arg @ref LL_HRTIM_TIMER_D 05173 * @arg @ref LL_HRTIM_TIMER_E 05174 * @retval DutyCycle This parameter can be one of the following values: 05175 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0 05176 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_125 05177 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_250 05178 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_375 05179 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_500 05180 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_625 05181 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_750 05182 * @arg @ref LL_HRTIM_CHP_DUTYCYCLE_875 05183 */ 05184 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetDutyCycle(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 05185 { 05186 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05187 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05188 REG_OFFSET_TAB_TIMER[iTimer])); 05189 return (READ_BIT(*pReg, HRTIM_CHPR_CARDTY)); 05190 } 05191 05192 /** 05193 * @brief Set the start pulse width. 05194 * @rmtoll CHPxR STRPW LL_HRTIM_CHP_SetPulseWidth 05195 * @note This function must not be called if the chopper mode is already 05196 * enabled for one of the timer outputs. 05197 * @param HRTIMx High Resolution Timer instance 05198 * @param Timer This parameter can be one of the following values: 05199 * @arg @ref LL_HRTIM_TIMER_A 05200 * @arg @ref LL_HRTIM_TIMER_B 05201 * @arg @ref LL_HRTIM_TIMER_C 05202 * @arg @ref LL_HRTIM_TIMER_D 05203 * @arg @ref LL_HRTIM_TIMER_E 05204 * @param PulseWidth This parameter can be one of the following values: 05205 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16 05206 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_32 05207 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_48 05208 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_64 05209 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_80 05210 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_96 05211 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_112 05212 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_128 05213 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_144 05214 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_160 05215 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_176 05216 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_192 05217 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_208 05218 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_224 05219 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_240 05220 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_256 05221 * @retval None 05222 */ 05223 __STATIC_INLINE void LL_HRTIM_CHP_SetPulseWidth(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t PulseWidth) 05224 { 05225 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05226 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05227 REG_OFFSET_TAB_TIMER[iTimer])); 05228 MODIFY_REG(*pReg, HRTIM_CHPR_STRPW, PulseWidth); 05229 } 05230 05231 /** 05232 * @brief Get actual start pulse width. 05233 * @rmtoll CHPxR STRPW LL_HRTIM_CHP_GetPulseWidth 05234 * @param HRTIMx High Resolution Timer instance 05235 * @param Timer This parameter can be one of the following values: 05236 * @arg @ref LL_HRTIM_TIMER_A 05237 * @arg @ref LL_HRTIM_TIMER_B 05238 * @arg @ref LL_HRTIM_TIMER_C 05239 * @arg @ref LL_HRTIM_TIMER_D 05240 * @arg @ref LL_HRTIM_TIMER_E 05241 * @retval PulseWidth This parameter can be one of the following values: 05242 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16 05243 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_32 05244 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_48 05245 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_64 05246 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_80 05247 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_96 05248 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_112 05249 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_128 05250 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_144 05251 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_160 05252 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_176 05253 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_192 05254 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_208 05255 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_224 05256 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_240 05257 * @arg @ref LL_HRTIM_CHP_PULSEWIDTH_256 05258 */ 05259 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetPulseWidth(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 05260 { 05261 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos); 05262 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) + 05263 REG_OFFSET_TAB_TIMER[iTimer])); 05264 return (READ_BIT(*pReg, HRTIM_CHPR_STRPW)); 05265 } 05266 05267 /** 05268 * @} 05269 */ 05270 05271 /** @defgroup HRTIM_LL_EF_Output_Management Output_Management 05272 * @{ 05273 */ 05274 05275 /** 05276 * @brief Set the timer output set source. 05277 * @rmtoll SETx1R SST LL_HRTIM_OUT_SetOutputSetSrc\n 05278 * SETx1R RESYNC LL_HRTIM_OUT_SetOutputSetSrc\n 05279 * SETx1R PER LL_HRTIM_OUT_SetOutputSetSrc\n 05280 * SETx1R CMP1 LL_HRTIM_OUT_SetOutputSetSrc\n 05281 * SETx1R CMP2 LL_HRTIM_OUT_SetOutputSetSrc\n 05282 * SETx1R CMP3 LL_HRTIM_OUT_SetOutputSetSrc\n 05283 * SETx1R CMP4 LL_HRTIM_OUT_SetOutputSetSrc\n 05284 * SETx1R MSTPER LL_HRTIM_OUT_SetOutputSetSrc\n 05285 * SETx1R MSTCMP1 LL_HRTIM_OUT_SetOutputSetSrc\n 05286 * SETx1R MSTCMP2 LL_HRTIM_OUT_SetOutputSetSrc\n 05287 * SETx1R MSTCMP3 LL_HRTIM_OUT_SetOutputSetSrc\n 05288 * SETx1R MSTCMP4 LL_HRTIM_OUT_SetOutputSetSrc\n 05289 * SETx1R TIMEVNT1 LL_HRTIM_OUT_SetOutputSetSrc\n 05290 * SETx1R TIMEVNT2 LL_HRTIM_OUT_SetOutputSetSrc\n 05291 * SETx1R TIMEVNT3 LL_HRTIM_OUT_SetOutputSetSrc\n 05292 * SETx1R TIMEVNT4 LL_HRTIM_OUT_SetOutputSetSrc\n 05293 * SETx1R TIMEVNT5 LL_HRTIM_OUT_SetOutputSetSrc\n 05294 * SETx1R TIMEVNT6 LL_HRTIM_OUT_SetOutputSetSrc\n 05295 * SETx1R TIMEVNT7 LL_HRTIM_OUT_SetOutputSetSrc\n 05296 * SETx1R TIMEVNT8 LL_HRTIM_OUT_SetOutputSetSrc\n 05297 * SETx1R TIMEVNT9 LL_HRTIM_OUT_SetOutputSetSrc\n 05298 * SETx1R EXEVNT1 LL_HRTIM_OUT_SetOutputSetSrc\n 05299 * SETx1R EXEVNT2 LL_HRTIM_OUT_SetOutputSetSrc\n 05300 * SETx1R EXEVNT3 LL_HRTIM_OUT_SetOutputSetSrc\n 05301 * SETx1R EXEVNT4 LL_HRTIM_OUT_SetOutputSetSrc\n 05302 * SETx1R EXEVNT5 LL_HRTIM_OUT_SetOutputSetSrc\n 05303 * SETx1R EXEVNT6 LL_HRTIM_OUT_SetOutputSetSrc\n 05304 * SETx1R EXEVNT7 LL_HRTIM_OUT_SetOutputSetSrc\n 05305 * SETx1R EXEVNT8 LL_HRTIM_OUT_SetOutputSetSrc\n 05306 * SETx1R EXEVNT9 LL_HRTIM_OUT_SetOutputSetSrc\n 05307 * SETx1R EXEVNT10 LL_HRTIM_OUT_SetOutputSetSrc\n 05308 * SETx1R UPDATE LL_HRTIM_OUT_SetOutputSetSrc\n 05309 * SETx1R SST LL_HRTIM_OUT_SetOutputSetSrc\n 05310 * SETx1R RESYNC LL_HRTIM_OUT_SetOutputSetSrc\n 05311 * SETx1R PER LL_HRTIM_OUT_SetOutputSetSrc\n 05312 * SETx1R CMP1 LL_HRTIM_OUT_SetOutputSetSrc\n 05313 * SETx1R CMP2 LL_HRTIM_OUT_SetOutputSetSrc\n 05314 * SETx1R CMP3 LL_HRTIM_OUT_SetOutputSetSrc\n 05315 * SETx1R CMP4 LL_HRTIM_OUT_SetOutputSetSrc\n 05316 * SETx1R MSTPER LL_HRTIM_OUT_SetOutputSetSrc\n 05317 * SETx1R MSTCMP1 LL_HRTIM_OUT_SetOutputSetSrc\n 05318 * SETx1R MSTCMP2 LL_HRTIM_OUT_SetOutputSetSrc\n 05319 * SETx1R MSTCMP3 LL_HRTIM_OUT_SetOutputSetSrc\n 05320 * SETx1R MSTCMP4 LL_HRTIM_OUT_SetOutputSetSrc\n 05321 * SETx1R TIMEVNT1 LL_HRTIM_OUT_SetOutputSetSrc\n 05322 * SETx1R TIMEVNT2 LL_HRTIM_OUT_SetOutputSetSrc\n 05323 * SETx1R TIMEVNT3 LL_HRTIM_OUT_SetOutputSetSrc\n 05324 * SETx1R TIMEVNT4 LL_HRTIM_OUT_SetOutputSetSrc\n 05325 * SETx1R TIMEVNT5 LL_HRTIM_OUT_SetOutputSetSrc\n 05326 * SETx1R TIMEVNT6 LL_HRTIM_OUT_SetOutputSetSrc\n 05327 * SETx1R TIMEVNT7 LL_HRTIM_OUT_SetOutputSetSrc\n 05328 * SETx1R TIMEVNT8 LL_HRTIM_OUT_SetOutputSetSrc\n 05329 * SETx1R TIMEVNT9 LL_HRTIM_OUT_SetOutputSetSrc\n 05330 * SETx1R EXEVNT1 LL_HRTIM_OUT_SetOutputSetSrc\n 05331 * SETx1R EXEVNT2 LL_HRTIM_OUT_SetOutputSetSrc\n 05332 * SETx1R EXEVNT3 LL_HRTIM_OUT_SetOutputSetSrc\n 05333 * SETx1R EXEVNT4 LL_HRTIM_OUT_SetOutputSetSrc\n 05334 * SETx1R EXEVNT5 LL_HRTIM_OUT_SetOutputSetSrc\n 05335 * SETx1R EXEVNT6 LL_HRTIM_OUT_SetOutputSetSrc\n 05336 * SETx1R EXEVNT7 LL_HRTIM_OUT_SetOutputSetSrc\n 05337 * SETx1R EXEVNT8 LL_HRTIM_OUT_SetOutputSetSrc\n 05338 * SETx1R EXEVNT9 LL_HRTIM_OUT_SetOutputSetSrc\n 05339 * SETx1R EXEVNT10 LL_HRTIM_OUT_SetOutputSetSrc\n 05340 * SETx1R UPDATE LL_HRTIM_OUT_SetOutputSetSrc 05341 * @param HRTIMx High Resolution Timer instance 05342 * @param Output This parameter can be one of the following values: 05343 * @arg @ref LL_HRTIM_OUTPUT_TA1 05344 * @arg @ref LL_HRTIM_OUTPUT_TA2 05345 * @arg @ref LL_HRTIM_OUTPUT_TB1 05346 * @arg @ref LL_HRTIM_OUTPUT_TB2 05347 * @arg @ref LL_HRTIM_OUTPUT_TC1 05348 * @arg @ref LL_HRTIM_OUTPUT_TC2 05349 * @arg @ref LL_HRTIM_OUTPUT_TD1 05350 * @arg @ref LL_HRTIM_OUTPUT_TD2 05351 * @arg @ref LL_HRTIM_OUTPUT_TE1 05352 * @arg @ref LL_HRTIM_OUTPUT_TE2 05353 * @param SetSrc This parameter can be a combination of the following values: 05354 * @arg @ref LL_HRTIM_CROSSBAR_NONE 05355 * @arg @ref LL_HRTIM_CROSSBAR_RESYNC 05356 * @arg @ref LL_HRTIM_CROSSBAR_TIMPER 05357 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1 05358 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2 05359 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3 05360 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4 05361 * @arg @ref LL_HRTIM_CROSSBAR_MASTERPER 05362 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1 05363 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2 05364 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3 05365 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4 05366 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1 05367 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2 05368 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3 05369 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4 05370 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5 05371 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6 05372 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7 05373 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8 05374 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9 05375 * @arg @ref LL_HRTIM_CROSSBAR_EEV_1 05376 * @arg @ref LL_HRTIM_CROSSBAR_EEV_2 05377 * @arg @ref LL_HRTIM_CROSSBAR_EEV_3 05378 * @arg @ref LL_HRTIM_CROSSBAR_EEV_4 05379 * @arg @ref LL_HRTIM_CROSSBAR_EEV_5 05380 * @arg @ref LL_HRTIM_CROSSBAR_EEV_6 05381 * @arg @ref LL_HRTIM_CROSSBAR_EEV_7 05382 * @arg @ref LL_HRTIM_CROSSBAR_EEV_8 05383 * @arg @ref LL_HRTIM_CROSSBAR_EEV_9 05384 * @arg @ref LL_HRTIM_CROSSBAR_EEV_10 05385 * @arg @ref LL_HRTIM_CROSSBAR_UPDATE 05386 * @retval None 05387 */ 05388 __STATIC_INLINE void LL_HRTIM_OUT_SetOutputSetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t SetSrc) 05389 { 05390 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05391 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) + 05392 REG_OFFSET_TAB_SETxR[iOutput])); 05393 WRITE_REG(*pReg, SetSrc); 05394 } 05395 05396 /** 05397 * @brief Get the timer output set source. 05398 * @rmtoll SETx1R SST LL_HRTIM_OUT_GetOutputSetSrc\n 05399 * SETx1R RESYNC LL_HRTIM_OUT_GetOutputSetSrc\n 05400 * SETx1R PER LL_HRTIM_OUT_GetOutputSetSrc\n 05401 * SETx1R CMP1 LL_HRTIM_OUT_GetOutputSetSrc\n 05402 * SETx1R CMP2 LL_HRTIM_OUT_GetOutputSetSrc\n 05403 * SETx1R CMP3 LL_HRTIM_OUT_GetOutputSetSrc\n 05404 * SETx1R CMP4 LL_HRTIM_OUT_GetOutputSetSrc\n 05405 * SETx1R MSTPER LL_HRTIM_OUT_GetOutputSetSrc\n 05406 * SETx1R MSTCMP1 LL_HRTIM_OUT_GetOutputSetSrc\n 05407 * SETx1R MSTCMP2 LL_HRTIM_OUT_GetOutputSetSrc\n 05408 * SETx1R MSTCMP3 LL_HRTIM_OUT_GetOutputSetSrc\n 05409 * SETx1R MSTCMP4 LL_HRTIM_OUT_GetOutputSetSrc\n 05410 * SETx1R TIMEVNT1 LL_HRTIM_OUT_GetOutputSetSrc\n 05411 * SETx1R TIMEVNT2 LL_HRTIM_OUT_GetOutputSetSrc\n 05412 * SETx1R TIMEVNT3 LL_HRTIM_OUT_GetOutputSetSrc\n 05413 * SETx1R TIMEVNT4 LL_HRTIM_OUT_GetOutputSetSrc\n 05414 * SETx1R TIMEVNT5 LL_HRTIM_OUT_GetOutputSetSrc\n 05415 * SETx1R TIMEVNT6 LL_HRTIM_OUT_GetOutputSetSrc\n 05416 * SETx1R TIMEVNT7 LL_HRTIM_OUT_GetOutputSetSrc\n 05417 * SETx1R TIMEVNT8 LL_HRTIM_OUT_GetOutputSetSrc\n 05418 * SETx1R TIMEVNT9 LL_HRTIM_OUT_GetOutputSetSrc\n 05419 * SETx1R EXEVNT1 LL_HRTIM_OUT_GetOutputSetSrc\n 05420 * SETx1R EXEVNT2 LL_HRTIM_OUT_GetOutputSetSrc\n 05421 * SETx1R EXEVNT3 LL_HRTIM_OUT_GetOutputSetSrc\n 05422 * SETx1R EXEVNT4 LL_HRTIM_OUT_GetOutputSetSrc\n 05423 * SETx1R EXEVNT5 LL_HRTIM_OUT_GetOutputSetSrc\n 05424 * SETx1R EXEVNT6 LL_HRTIM_OUT_GetOutputSetSrc\n 05425 * SETx1R EXEVNT7 LL_HRTIM_OUT_GetOutputSetSrc\n 05426 * SETx1R EXEVNT8 LL_HRTIM_OUT_GetOutputSetSrc\n 05427 * SETx1R EXEVNT9 LL_HRTIM_OUT_GetOutputSetSrc\n 05428 * SETx1R EXEVNT10 LL_HRTIM_OUT_GetOutputSetSrc\n 05429 * SETx1R UPDATE LL_HRTIM_OUT_GetOutputSetSrc\n 05430 * SETx1R SST LL_HRTIM_OUT_GetOutputSetSrc\n 05431 * SETx1R RESYNC LL_HRTIM_OUT_GetOutputSetSrc\n 05432 * SETx1R PER LL_HRTIM_OUT_GetOutputSetSrc\n 05433 * SETx1R CMP1 LL_HRTIM_OUT_GetOutputSetSrc\n 05434 * SETx1R CMP2 LL_HRTIM_OUT_GetOutputSetSrc\n 05435 * SETx1R CMP3 LL_HRTIM_OUT_GetOutputSetSrc\n 05436 * SETx1R CMP4 LL_HRTIM_OUT_GetOutputSetSrc\n 05437 * SETx1R MSTPER LL_HRTIM_OUT_GetOutputSetSrc\n 05438 * SETx1R MSTCMP1 LL_HRTIM_OUT_GetOutputSetSrc\n 05439 * SETx1R MSTCMP2 LL_HRTIM_OUT_GetOutputSetSrc\n 05440 * SETx1R MSTCMP3 LL_HRTIM_OUT_GetOutputSetSrc\n 05441 * SETx1R MSTCMP4 LL_HRTIM_OUT_GetOutputSetSrc\n 05442 * SETx1R TIMEVNT1 LL_HRTIM_OUT_GetOutputSetSrc\n 05443 * SETx1R TIMEVNT2 LL_HRTIM_OUT_GetOutputSetSrc\n 05444 * SETx1R TIMEVNT3 LL_HRTIM_OUT_GetOutputSetSrc\n 05445 * SETx1R TIMEVNT4 LL_HRTIM_OUT_GetOutputSetSrc\n 05446 * SETx1R TIMEVNT5 LL_HRTIM_OUT_GetOutputSetSrc\n 05447 * SETx1R TIMEVNT6 LL_HRTIM_OUT_GetOutputSetSrc\n 05448 * SETx1R TIMEVNT7 LL_HRTIM_OUT_GetOutputSetSrc\n 05449 * SETx1R TIMEVNT8 LL_HRTIM_OUT_GetOutputSetSrc\n 05450 * SETx1R TIMEVNT9 LL_HRTIM_OUT_GetOutputSetSrc\n 05451 * SETx1R EXEVNT1 LL_HRTIM_OUT_GetOutputSetSrc\n 05452 * SETx1R EXEVNT2 LL_HRTIM_OUT_GetOutputSetSrc\n 05453 * SETx1R EXEVNT3 LL_HRTIM_OUT_GetOutputSetSrc\n 05454 * SETx1R EXEVNT4 LL_HRTIM_OUT_GetOutputSetSrc\n 05455 * SETx1R EXEVNT5 LL_HRTIM_OUT_GetOutputSetSrc\n 05456 * SETx1R EXEVNT6 LL_HRTIM_OUT_GetOutputSetSrc\n 05457 * SETx1R EXEVNT7 LL_HRTIM_OUT_GetOutputSetSrc\n 05458 * SETx1R EXEVNT8 LL_HRTIM_OUT_GetOutputSetSrc\n 05459 * SETx1R EXEVNT9 LL_HRTIM_OUT_GetOutputSetSrc\n 05460 * SETx1R EXEVNT10 LL_HRTIM_OUT_GetOutputSetSrc\n 05461 * SETx1R UPDATE LL_HRTIM_OUT_GetOutputSetSrc 05462 * @param HRTIMx High Resolution Timer instance 05463 * @param Output This parameter can be one of the following values: 05464 * @arg @ref LL_HRTIM_OUTPUT_TA1 05465 * @arg @ref LL_HRTIM_OUTPUT_TA2 05466 * @arg @ref LL_HRTIM_OUTPUT_TB1 05467 * @arg @ref LL_HRTIM_OUTPUT_TB2 05468 * @arg @ref LL_HRTIM_OUTPUT_TC1 05469 * @arg @ref LL_HRTIM_OUTPUT_TC2 05470 * @arg @ref LL_HRTIM_OUTPUT_TD1 05471 * @arg @ref LL_HRTIM_OUTPUT_TD2 05472 * @arg @ref LL_HRTIM_OUTPUT_TE1 05473 * @arg @ref LL_HRTIM_OUTPUT_TE2 05474 * @retval SetSrc This parameter can be a combination of the following values: 05475 * @arg @ref LL_HRTIM_CROSSBAR_NONE 05476 * @arg @ref LL_HRTIM_CROSSBAR_RESYNC 05477 * @arg @ref LL_HRTIM_CROSSBAR_TIMPER 05478 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1 05479 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2 05480 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3 05481 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4 05482 * @arg @ref LL_HRTIM_CROSSBAR_MASTERPER 05483 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1 05484 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2 05485 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3 05486 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4 05487 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1 05488 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2 05489 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3 05490 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4 05491 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5 05492 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6 05493 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7 05494 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8 05495 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9 05496 * @arg @ref LL_HRTIM_CROSSBAR_EEV_1 05497 * @arg @ref LL_HRTIM_CROSSBAR_EEV_2 05498 * @arg @ref LL_HRTIM_CROSSBAR_EEV_3 05499 * @arg @ref LL_HRTIM_CROSSBAR_EEV_4 05500 * @arg @ref LL_HRTIM_CROSSBAR_EEV_5 05501 * @arg @ref LL_HRTIM_CROSSBAR_EEV_6 05502 * @arg @ref LL_HRTIM_CROSSBAR_EEV_7 05503 * @arg @ref LL_HRTIM_CROSSBAR_EEV_8 05504 * @arg @ref LL_HRTIM_CROSSBAR_EEV_9 05505 * @arg @ref LL_HRTIM_CROSSBAR_EEV_10 05506 * @arg @ref LL_HRTIM_CROSSBAR_UPDATE 05507 */ 05508 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetOutputSetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output) 05509 { 05510 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05511 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) + 05512 REG_OFFSET_TAB_SETxR[iOutput])); 05513 return (uint32_t) READ_REG(*pReg); 05514 } 05515 05516 /** 05517 * @brief Set the timer output reset source. 05518 * @rmtoll RSTx1R RST LL_HRTIM_OUT_SetOutputResetSrc\n 05519 * RSTx1R RESYNC LL_HRTIM_OUT_SetOutputResetSrc\n 05520 * RSTx1R PER LL_HRTIM_OUT_SetOutputResetSrc\n 05521 * RSTx1R CMP1 LL_HRTIM_OUT_SetOutputResetSrc\n 05522 * RSTx1R CMP2 LL_HRTIM_OUT_SetOutputResetSrc\n 05523 * RSTx1R CMP3 LL_HRTIM_OUT_SetOutputResetSrc\n 05524 * RSTx1R CMP4 LL_HRTIM_OUT_SetOutputResetSrc\n 05525 * RSTx1R MSTPER LL_HRTIM_OUT_SetOutputResetSrc\n 05526 * RSTx1R MSTCMP1 LL_HRTIM_OUT_SetOutputResetSrc\n 05527 * RSTx1R MSTCMP2 LL_HRTIM_OUT_SetOutputResetSrc\n 05528 * RSTx1R MSTCMP3 LL_HRTIM_OUT_SetOutputResetSrc\n 05529 * RSTx1R MSTCMP4 LL_HRTIM_OUT_SetOutputResetSrc\n 05530 * RSTx1R TIMEVNT1 LL_HRTIM_OUT_SetOutputResetSrc\n 05531 * RSTx1R TIMEVNT2 LL_HRTIM_OUT_SetOutputResetSrc\n 05532 * RSTx1R TIMEVNT3 LL_HRTIM_OUT_SetOutputResetSrc\n 05533 * RSTx1R TIMEVNT4 LL_HRTIM_OUT_SetOutputResetSrc\n 05534 * RSTx1R TIMEVNT5 LL_HRTIM_OUT_SetOutputResetSrc\n 05535 * RSTx1R TIMEVNT6 LL_HRTIM_OUT_SetOutputResetSrc\n 05536 * RSTx1R TIMEVNT7 LL_HRTIM_OUT_SetOutputResetSrc\n 05537 * RSTx1R TIMEVNT8 LL_HRTIM_OUT_SetOutputResetSrc\n 05538 * RSTx1R TIMEVNT9 LL_HRTIM_OUT_SetOutputResetSrc\n 05539 * RSTx1R EXEVNT1 LL_HRTIM_OUT_SetOutputResetSrc\n 05540 * RSTx1R EXEVNT2 LL_HRTIM_OUT_SetOutputResetSrc\n 05541 * RSTx1R EXEVNT3 LL_HRTIM_OUT_SetOutputResetSrc\n 05542 * RSTx1R EXEVNT4 LL_HRTIM_OUT_SetOutputResetSrc\n 05543 * RSTx1R EXEVNT5 LL_HRTIM_OUT_SetOutputResetSrc\n 05544 * RSTx1R EXEVNT6 LL_HRTIM_OUT_SetOutputResetSrc\n 05545 * RSTx1R EXEVNT7 LL_HRTIM_OUT_SetOutputResetSrc\n 05546 * RSTx1R EXEVNT8 LL_HRTIM_OUT_SetOutputResetSrc\n 05547 * RSTx1R EXEVNT9 LL_HRTIM_OUT_SetOutputResetSrc\n 05548 * RSTx1R EXEVNT10 LL_HRTIM_OUT_SetOutputResetSrc\n 05549 * RSTx1R UPDATE LL_HRTIM_OUT_SetOutputResetSrc\n 05550 * RSTx1R RST LL_HRTIM_OUT_SetOutputResetSrc\n 05551 * RSTx1R RESYNC LL_HRTIM_OUT_SetOutputResetSrc\n 05552 * RSTx1R PER LL_HRTIM_OUT_SetOutputResetSrc\n 05553 * RSTx1R CMP1 LL_HRTIM_OUT_SetOutputResetSrc\n 05554 * RSTx1R CMP2 LL_HRTIM_OUT_SetOutputResetSrc\n 05555 * RSTx1R CMP3 LL_HRTIM_OUT_SetOutputResetSrc\n 05556 * RSTx1R CMP4 LL_HRTIM_OUT_SetOutputResetSrc\n 05557 * RSTx1R MSTPER LL_HRTIM_OUT_SetOutputResetSrc\n 05558 * RSTx1R MSTCMP1 LL_HRTIM_OUT_SetOutputResetSrc\n 05559 * RSTx1R MSTCMP2 LL_HRTIM_OUT_SetOutputResetSrc\n 05560 * RSTx1R MSTCMP3 LL_HRTIM_OUT_SetOutputResetSrc\n 05561 * RSTx1R MSTCMP4 LL_HRTIM_OUT_SetOutputResetSrc\n 05562 * RSTx1R TIMEVNT1 LL_HRTIM_OUT_SetOutputResetSrc\n 05563 * RSTx1R TIMEVNT2 LL_HRTIM_OUT_SetOutputResetSrc\n 05564 * RSTx1R TIMEVNT3 LL_HRTIM_OUT_SetOutputResetSrc\n 05565 * RSTx1R TIMEVNT4 LL_HRTIM_OUT_SetOutputResetSrc\n 05566 * RSTx1R TIMEVNT5 LL_HRTIM_OUT_SetOutputResetSrc\n 05567 * RSTx1R TIMEVNT6 LL_HRTIM_OUT_SetOutputResetSrc\n 05568 * RSTx1R TIMEVNT7 LL_HRTIM_OUT_SetOutputResetSrc\n 05569 * RSTx1R TIMEVNT8 LL_HRTIM_OUT_SetOutputResetSrc\n 05570 * RSTx1R TIMEVNT9 LL_HRTIM_OUT_SetOutputResetSrc\n 05571 * RSTx1R EXEVNT1 LL_HRTIM_OUT_SetOutputResetSrc\n 05572 * RSTx1R EXEVNT2 LL_HRTIM_OUT_SetOutputResetSrc\n 05573 * RSTx1R EXEVNT3 LL_HRTIM_OUT_SetOutputResetSrc\n 05574 * RSTx1R EXEVNT4 LL_HRTIM_OUT_SetOutputResetSrc\n 05575 * RSTx1R EXEVNT5 LL_HRTIM_OUT_SetOutputResetSrc\n 05576 * RSTx1R EXEVNT6 LL_HRTIM_OUT_SetOutputResetSrc\n 05577 * RSTx1R EXEVNT7 LL_HRTIM_OUT_SetOutputResetSrc\n 05578 * RSTx1R EXEVNT8 LL_HRTIM_OUT_SetOutputResetSrc\n 05579 * RSTx1R EXEVNT9 LL_HRTIM_OUT_SetOutputResetSrc\n 05580 * RSTx1R EXEVNT10 LL_HRTIM_OUT_SetOutputResetSrc\n 05581 * RSTx1R UPDATE LL_HRTIM_OUT_SetOutputResetSrc 05582 * @param HRTIMx High Resolution Timer instance 05583 * @param Output This parameter can be one of the following values: 05584 * @arg @ref LL_HRTIM_OUTPUT_TA1 05585 * @arg @ref LL_HRTIM_OUTPUT_TA2 05586 * @arg @ref LL_HRTIM_OUTPUT_TB1 05587 * @arg @ref LL_HRTIM_OUTPUT_TB2 05588 * @arg @ref LL_HRTIM_OUTPUT_TC1 05589 * @arg @ref LL_HRTIM_OUTPUT_TC2 05590 * @arg @ref LL_HRTIM_OUTPUT_TD1 05591 * @arg @ref LL_HRTIM_OUTPUT_TD2 05592 * @arg @ref LL_HRTIM_OUTPUT_TE1 05593 * @arg @ref LL_HRTIM_OUTPUT_TE2 05594 * @param ResetSrc This parameter can be a combination of the following values: 05595 * @arg @ref LL_HRTIM_CROSSBAR_NONE 05596 * @arg @ref LL_HRTIM_CROSSBAR_RESYNC 05597 * @arg @ref LL_HRTIM_CROSSBAR_TIMPER 05598 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1 05599 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2 05600 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3 05601 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4 05602 * @arg @ref LL_HRTIM_CROSSBAR_MASTERPER 05603 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1 05604 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2 05605 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3 05606 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4 05607 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1 05608 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2 05609 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3 05610 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4 05611 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5 05612 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6 05613 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7 05614 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8 05615 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9 05616 * @arg @ref LL_HRTIM_CROSSBAR_EEV_1 05617 * @arg @ref LL_HRTIM_CROSSBAR_EEV_2 05618 * @arg @ref LL_HRTIM_CROSSBAR_EEV_3 05619 * @arg @ref LL_HRTIM_CROSSBAR_EEV_4 05620 * @arg @ref LL_HRTIM_CROSSBAR_EEV_5 05621 * @arg @ref LL_HRTIM_CROSSBAR_EEV_6 05622 * @arg @ref LL_HRTIM_CROSSBAR_EEV_7 05623 * @arg @ref LL_HRTIM_CROSSBAR_EEV_8 05624 * @arg @ref LL_HRTIM_CROSSBAR_EEV_9 05625 * @arg @ref LL_HRTIM_CROSSBAR_EEV_10 05626 * @arg @ref LL_HRTIM_CROSSBAR_UPDATE 05627 * @retval None 05628 */ 05629 __STATIC_INLINE void LL_HRTIM_OUT_SetOutputResetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t ResetSrc) 05630 { 05631 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05632 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTx1R) + 05633 REG_OFFSET_TAB_SETxR[iOutput])); 05634 WRITE_REG(*pReg, ResetSrc); 05635 } 05636 05637 /** 05638 * @brief Get the timer output set source. 05639 * @rmtoll RSTx1R RST LL_HRTIM_OUT_GetOutputResetSrc\n 05640 * RSTx1R RESYNC LL_HRTIM_OUT_GetOutputResetSrc\n 05641 * RSTx1R PER LL_HRTIM_OUT_GetOutputResetSrc\n 05642 * RSTx1R CMP1 LL_HRTIM_OUT_GetOutputResetSrc\n 05643 * RSTx1R CMP2 LL_HRTIM_OUT_GetOutputResetSrc\n 05644 * RSTx1R CMP3 LL_HRTIM_OUT_GetOutputResetSrc\n 05645 * RSTx1R CMP4 LL_HRTIM_OUT_GetOutputResetSrc\n 05646 * RSTx1R MSTPER LL_HRTIM_OUT_GetOutputResetSrc\n 05647 * RSTx1R MSTCMP1 LL_HRTIM_OUT_GetOutputResetSrc\n 05648 * RSTx1R MSTCMP2 LL_HRTIM_OUT_GetOutputResetSrc\n 05649 * RSTx1R MSTCMP3 LL_HRTIM_OUT_GetOutputResetSrc\n 05650 * RSTx1R MSTCMP4 LL_HRTIM_OUT_GetOutputResetSrc\n 05651 * RSTx1R TIMEVNT1 LL_HRTIM_OUT_GetOutputResetSrc\n 05652 * RSTx1R TIMEVNT2 LL_HRTIM_OUT_GetOutputResetSrc\n 05653 * RSTx1R TIMEVNT3 LL_HRTIM_OUT_GetOutputResetSrc\n 05654 * RSTx1R TIMEVNT4 LL_HRTIM_OUT_GetOutputResetSrc\n 05655 * RSTx1R TIMEVNT5 LL_HRTIM_OUT_GetOutputResetSrc\n 05656 * RSTx1R TIMEVNT6 LL_HRTIM_OUT_GetOutputResetSrc\n 05657 * RSTx1R TIMEVNT7 LL_HRTIM_OUT_GetOutputResetSrc\n 05658 * RSTx1R TIMEVNT8 LL_HRTIM_OUT_GetOutputResetSrc\n 05659 * RSTx1R TIMEVNT9 LL_HRTIM_OUT_GetOutputResetSrc\n 05660 * RSTx1R EXEVNT1 LL_HRTIM_OUT_GetOutputResetSrc\n 05661 * RSTx1R EXEVNT2 LL_HRTIM_OUT_GetOutputResetSrc\n 05662 * RSTx1R EXEVNT3 LL_HRTIM_OUT_GetOutputResetSrc\n 05663 * RSTx1R EXEVNT4 LL_HRTIM_OUT_GetOutputResetSrc\n 05664 * RSTx1R EXEVNT5 LL_HRTIM_OUT_GetOutputResetSrc\n 05665 * RSTx1R EXEVNT6 LL_HRTIM_OUT_GetOutputResetSrc\n 05666 * RSTx1R EXEVNT7 LL_HRTIM_OUT_GetOutputResetSrc\n 05667 * RSTx1R EXEVNT8 LL_HRTIM_OUT_GetOutputResetSrc\n 05668 * RSTx1R EXEVNT9 LL_HRTIM_OUT_GetOutputResetSrc\n 05669 * RSTx1R EXEVNT10 LL_HRTIM_OUT_GetOutputResetSrc\n 05670 * RSTx1R UPDATE LL_HRTIM_OUT_GetOutputResetSrc\n 05671 * RSTx1R RST LL_HRTIM_OUT_GetOutputResetSrc\n 05672 * RSTx1R RESYNC LL_HRTIM_OUT_GetOutputResetSrc\n 05673 * RSTx1R PER LL_HRTIM_OUT_GetOutputResetSrc\n 05674 * RSTx1R CMP1 LL_HRTIM_OUT_GetOutputResetSrc\n 05675 * RSTx1R CMP2 LL_HRTIM_OUT_GetOutputResetSrc\n 05676 * RSTx1R CMP3 LL_HRTIM_OUT_GetOutputResetSrc\n 05677 * RSTx1R CMP4 LL_HRTIM_OUT_GetOutputResetSrc\n 05678 * RSTx1R MSTPER LL_HRTIM_OUT_GetOutputResetSrc\n 05679 * RSTx1R MSTCMP1 LL_HRTIM_OUT_GetOutputResetSrc\n 05680 * RSTx1R MSTCMP2 LL_HRTIM_OUT_GetOutputResetSrc\n 05681 * RSTx1R MSTCMP3 LL_HRTIM_OUT_GetOutputResetSrc\n 05682 * RSTx1R MSTCMP4 LL_HRTIM_OUT_GetOutputResetSrc\n 05683 * RSTx1R TIMEVNT1 LL_HRTIM_OUT_GetOutputResetSrc\n 05684 * RSTx1R TIMEVNT2 LL_HRTIM_OUT_GetOutputResetSrc\n 05685 * RSTx1R TIMEVNT3 LL_HRTIM_OUT_GetOutputResetSrc\n 05686 * RSTx1R TIMEVNT4 LL_HRTIM_OUT_GetOutputResetSrc\n 05687 * RSTx1R TIMEVNT5 LL_HRTIM_OUT_GetOutputResetSrc\n 05688 * RSTx1R TIMEVNT6 LL_HRTIM_OUT_GetOutputResetSrc\n 05689 * RSTx1R TIMEVNT7 LL_HRTIM_OUT_GetOutputResetSrc\n 05690 * RSTx1R TIMEVNT8 LL_HRTIM_OUT_GetOutputResetSrc\n 05691 * RSTx1R TIMEVNT9 LL_HRTIM_OUT_GetOutputResetSrc\n 05692 * RSTx1R EXEVNT1 LL_HRTIM_OUT_GetOutputResetSrc\n 05693 * RSTx1R EXEVNT2 LL_HRTIM_OUT_GetOutputResetSrc\n 05694 * RSTx1R EXEVNT3 LL_HRTIM_OUT_GetOutputResetSrc\n 05695 * RSTx1R EXEVNT4 LL_HRTIM_OUT_GetOutputResetSrc\n 05696 * RSTx1R EXEVNT5 LL_HRTIM_OUT_GetOutputResetSrc\n 05697 * RSTx1R EXEVNT6 LL_HRTIM_OUT_GetOutputResetSrc\n 05698 * RSTx1R EXEVNT7 LL_HRTIM_OUT_GetOutputResetSrc\n 05699 * RSTx1R EXEVNT8 LL_HRTIM_OUT_GetOutputResetSrc\n 05700 * RSTx1R EXEVNT9 LL_HRTIM_OUT_GetOutputResetSrc\n 05701 * RSTx1R EXEVNT10 LL_HRTIM_OUT_GetOutputResetSrc\n 05702 * RSTx1R UPDATE LL_HRTIM_OUT_GetOutputResetSrc 05703 * @param HRTIMx High Resolution Timer instance 05704 * @param Output This parameter can be one of the following values: 05705 * @arg @ref LL_HRTIM_OUTPUT_TA1 05706 * @arg @ref LL_HRTIM_OUTPUT_TA2 05707 * @arg @ref LL_HRTIM_OUTPUT_TB1 05708 * @arg @ref LL_HRTIM_OUTPUT_TB2 05709 * @arg @ref LL_HRTIM_OUTPUT_TC1 05710 * @arg @ref LL_HRTIM_OUTPUT_TC2 05711 * @arg @ref LL_HRTIM_OUTPUT_TD1 05712 * @arg @ref LL_HRTIM_OUTPUT_TD2 05713 * @arg @ref LL_HRTIM_OUTPUT_TE1 05714 * @arg @ref LL_HRTIM_OUTPUT_TE2 05715 * @retval ResetSrc This parameter can be a combination of the following values: 05716 * @arg @ref LL_HRTIM_CROSSBAR_NONE 05717 * @arg @ref LL_HRTIM_CROSSBAR_RESYNC 05718 * @arg @ref LL_HRTIM_CROSSBAR_TIMPER 05719 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1 05720 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2 05721 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3 05722 * @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4 05723 * @arg @ref LL_HRTIM_CROSSBAR_MASTERPER 05724 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1 05725 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2 05726 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3 05727 * @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4 05728 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1 05729 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2 05730 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3 05731 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4 05732 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5 05733 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6 05734 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7 05735 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8 05736 * @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9 05737 * @arg @ref LL_HRTIM_CROSSBAR_EEV_1 05738 * @arg @ref LL_HRTIM_CROSSBAR_EEV_2 05739 * @arg @ref LL_HRTIM_CROSSBAR_EEV_3 05740 * @arg @ref LL_HRTIM_CROSSBAR_EEV_4 05741 * @arg @ref LL_HRTIM_CROSSBAR_EEV_5 05742 * @arg @ref LL_HRTIM_CROSSBAR_EEV_6 05743 * @arg @ref LL_HRTIM_CROSSBAR_EEV_7 05744 * @arg @ref LL_HRTIM_CROSSBAR_EEV_8 05745 * @arg @ref LL_HRTIM_CROSSBAR_EEV_9 05746 * @arg @ref LL_HRTIM_CROSSBAR_EEV_10 05747 * @arg @ref LL_HRTIM_CROSSBAR_UPDATE 05748 */ 05749 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetOutputResetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output) 05750 { 05751 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05752 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTx1R) + 05753 REG_OFFSET_TAB_SETxR[iOutput])); 05754 return (uint32_t) READ_REG(*pReg); 05755 } 05756 05757 /** 05758 * @brief Configure a timer output. 05759 * @rmtoll OUTxR POL1 LL_HRTIM_OUT_Config\n 05760 * OUTxR IDLEM1 LL_HRTIM_OUT_Config\n 05761 * OUTxR IDLES1 LL_HRTIM_OUT_Config\n 05762 * OUTxR FAULT1 LL_HRTIM_OUT_Config\n 05763 * OUTxR CHP1 LL_HRTIM_OUT_Config\n 05764 * OUTxR DIDL1 LL_HRTIM_OUT_Config\n 05765 * OUTxR POL2 LL_HRTIM_OUT_Config\n 05766 * OUTxR IDLEM2 LL_HRTIM_OUT_Config\n 05767 * OUTxR IDLES2 LL_HRTIM_OUT_Config\n 05768 * OUTxR FAULT2 LL_HRTIM_OUT_Config\n 05769 * OUTxR CHP2 LL_HRTIM_OUT_Config\n 05770 * OUTxR DIDL2 LL_HRTIM_OUT_Config 05771 * @param HRTIMx High Resolution Timer instance 05772 * @param Output This parameter can be one of the following values: 05773 * @arg @ref LL_HRTIM_OUTPUT_TA1 05774 * @arg @ref LL_HRTIM_OUTPUT_TA2 05775 * @arg @ref LL_HRTIM_OUTPUT_TB1 05776 * @arg @ref LL_HRTIM_OUTPUT_TB2 05777 * @arg @ref LL_HRTIM_OUTPUT_TC1 05778 * @arg @ref LL_HRTIM_OUTPUT_TC2 05779 * @arg @ref LL_HRTIM_OUTPUT_TD1 05780 * @arg @ref LL_HRTIM_OUTPUT_TD2 05781 * @arg @ref LL_HRTIM_OUTPUT_TE1 05782 * @arg @ref LL_HRTIM_OUTPUT_TE2 05783 * @param Configuration This parameter must be a combination of all the following values: 05784 * @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY or @ref LL_HRTIM_OUT_NEGATIVE_POLARITY 05785 * @arg @ref LL_HRTIM_OUT_NO_IDLE or @ref LL_HRTIM_OUT_IDLE_WHEN_BURST 05786 * @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE or @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE 05787 * @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 05788 * @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED or @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED 05789 * @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR or @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED 05790 * @retval None 05791 */ 05792 __STATIC_INLINE void LL_HRTIM_OUT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t Configuration) 05793 { 05794 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05795 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05796 REG_OFFSET_TAB_OUTxR[iOutput])); 05797 MODIFY_REG(*pReg, (HRTIM_OUT_CONFIG_MASK << REG_SHIFT_TAB_OUTxR[iOutput]), 05798 (Configuration << REG_SHIFT_TAB_OUTxR[iOutput])); 05799 } 05800 05801 /** 05802 * @brief Set the polarity of a timer output. 05803 * @rmtoll OUTxR POL1 LL_HRTIM_OUT_SetPolarity\n 05804 * OUTxR POL2 LL_HRTIM_OUT_SetPolarity 05805 * @param HRTIMx High Resolution Timer instance 05806 * @param Output This parameter can be one of the following values: 05807 * @arg @ref LL_HRTIM_OUTPUT_TA1 05808 * @arg @ref LL_HRTIM_OUTPUT_TA2 05809 * @arg @ref LL_HRTIM_OUTPUT_TB1 05810 * @arg @ref LL_HRTIM_OUTPUT_TB2 05811 * @arg @ref LL_HRTIM_OUTPUT_TC1 05812 * @arg @ref LL_HRTIM_OUTPUT_TC2 05813 * @arg @ref LL_HRTIM_OUTPUT_TD1 05814 * @arg @ref LL_HRTIM_OUTPUT_TD2 05815 * @arg @ref LL_HRTIM_OUTPUT_TE1 05816 * @arg @ref LL_HRTIM_OUTPUT_TE2 05817 * @param Polarity This parameter can be one of the following values: 05818 * @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY 05819 * @arg @ref LL_HRTIM_OUT_NEGATIVE_POLARITY 05820 * @retval None 05821 */ 05822 __STATIC_INLINE void LL_HRTIM_OUT_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t Polarity) 05823 { 05824 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05825 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05826 REG_OFFSET_TAB_OUTxR[iOutput])); 05827 MODIFY_REG(*pReg, (HRTIM_OUTR_POL1 << REG_SHIFT_TAB_OUTxR[iOutput]), (Polarity << REG_SHIFT_TAB_OUTxR[iOutput])); 05828 } 05829 05830 /** 05831 * @brief Get actual polarity of the timer output. 05832 * @rmtoll OUTxR POL1 LL_HRTIM_OUT_GetPolarity\n 05833 * OUTxR POL2 LL_HRTIM_OUT_GetPolarity 05834 * @param HRTIMx High Resolution Timer instance 05835 * @param Output This parameter can be one of the following values: 05836 * @arg @ref LL_HRTIM_OUTPUT_TA1 05837 * @arg @ref LL_HRTIM_OUTPUT_TA2 05838 * @arg @ref LL_HRTIM_OUTPUT_TB1 05839 * @arg @ref LL_HRTIM_OUTPUT_TB2 05840 * @arg @ref LL_HRTIM_OUTPUT_TC1 05841 * @arg @ref LL_HRTIM_OUTPUT_TC2 05842 * @arg @ref LL_HRTIM_OUTPUT_TD1 05843 * @arg @ref LL_HRTIM_OUTPUT_TD2 05844 * @arg @ref LL_HRTIM_OUTPUT_TE1 05845 * @arg @ref LL_HRTIM_OUTPUT_TE2 05846 * @retval Polarity This parameter can be one of the following values: 05847 * @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY 05848 * @arg @ref LL_HRTIM_OUT_NEGATIVE_POLARITY 05849 */ 05850 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Output) 05851 { 05852 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05853 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05854 REG_OFFSET_TAB_OUTxR[iOutput])); 05855 return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_POL1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]); 05856 } 05857 05858 /** 05859 * @brief Set the output IDLE mode. 05860 * @rmtoll OUTxR IDLEM1 LL_HRTIM_OUT_SetIdleMode\n 05861 * OUTxR IDLEM2 LL_HRTIM_OUT_SetIdleMode 05862 * @note This function must not be called when the burst mode is active 05863 * @param HRTIMx High Resolution Timer instance 05864 * @param Output This parameter can be one of the following values: 05865 * @arg @ref LL_HRTIM_OUTPUT_TA1 05866 * @arg @ref LL_HRTIM_OUTPUT_TA2 05867 * @arg @ref LL_HRTIM_OUTPUT_TB1 05868 * @arg @ref LL_HRTIM_OUTPUT_TB2 05869 * @arg @ref LL_HRTIM_OUTPUT_TC1 05870 * @arg @ref LL_HRTIM_OUTPUT_TC2 05871 * @arg @ref LL_HRTIM_OUTPUT_TD1 05872 * @arg @ref LL_HRTIM_OUTPUT_TD2 05873 * @arg @ref LL_HRTIM_OUTPUT_TE1 05874 * @arg @ref LL_HRTIM_OUTPUT_TE2 05875 * @param IdleMode This parameter can be one of the following values: 05876 * @arg @ref LL_HRTIM_OUT_NO_IDLE 05877 * @arg @ref LL_HRTIM_OUT_IDLE_WHEN_BURST 05878 * @retval None 05879 */ 05880 __STATIC_INLINE void LL_HRTIM_OUT_SetIdleMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t IdleMode) 05881 { 05882 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05883 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05884 REG_OFFSET_TAB_OUTxR[iOutput])); 05885 MODIFY_REG(*pReg, (HRTIM_OUTR_IDLM1 << (REG_SHIFT_TAB_OUTxR[iOutput])), (IdleMode << (REG_SHIFT_TAB_OUTxR[iOutput]))); 05886 } 05887 05888 /** 05889 * @brief Get actual output IDLE mode. 05890 * @rmtoll OUTxR IDLEM1 LL_HRTIM_OUT_GetIdleMode\n 05891 * OUTxR IDLEM2 LL_HRTIM_OUT_GetIdleMode 05892 * @param HRTIMx High Resolution Timer instance 05893 * @param Output This parameter can be one of the following values: 05894 * @arg @ref LL_HRTIM_OUTPUT_TA1 05895 * @arg @ref LL_HRTIM_OUTPUT_TA2 05896 * @arg @ref LL_HRTIM_OUTPUT_TB1 05897 * @arg @ref LL_HRTIM_OUTPUT_TB2 05898 * @arg @ref LL_HRTIM_OUTPUT_TC1 05899 * @arg @ref LL_HRTIM_OUTPUT_TC2 05900 * @arg @ref LL_HRTIM_OUTPUT_TD1 05901 * @arg @ref LL_HRTIM_OUTPUT_TD2 05902 * @arg @ref LL_HRTIM_OUTPUT_TE1 05903 * @arg @ref LL_HRTIM_OUTPUT_TE2 05904 * @retval IdleMode This parameter can be one of the following values: 05905 * @arg @ref LL_HRTIM_OUT_NO_IDLE 05906 * @arg @ref LL_HRTIM_OUT_IDLE_WHEN_BURST 05907 */ 05908 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetIdleMode(HRTIM_TypeDef *HRTIMx, uint32_t Output) 05909 { 05910 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05911 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05912 REG_OFFSET_TAB_OUTxR[iOutput])); 05913 return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_IDLM1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]); 05914 } 05915 05916 /** 05917 * @brief Set the output IDLE level. 05918 * @rmtoll OUTxR IDLES1 LL_HRTIM_OUT_SetIdleLevel\n 05919 * OUTxR IDLES2 LL_HRTIM_OUT_SetIdleLevel 05920 * @note This function must be called prior enabling the timer. 05921 * @note Idle level isn't relevant when the output idle mode is set to LL_HRTIM_OUT_NO_IDLE. 05922 * @param HRTIMx High Resolution Timer instance 05923 * @param Output This parameter can be one of the following values: 05924 * @arg @ref LL_HRTIM_OUTPUT_TA1 05925 * @arg @ref LL_HRTIM_OUTPUT_TA2 05926 * @arg @ref LL_HRTIM_OUTPUT_TB1 05927 * @arg @ref LL_HRTIM_OUTPUT_TB2 05928 * @arg @ref LL_HRTIM_OUTPUT_TC1 05929 * @arg @ref LL_HRTIM_OUTPUT_TC2 05930 * @arg @ref LL_HRTIM_OUTPUT_TD1 05931 * @arg @ref LL_HRTIM_OUTPUT_TD2 05932 * @arg @ref LL_HRTIM_OUTPUT_TE1 05933 * @arg @ref LL_HRTIM_OUTPUT_TE2 05934 * @param IdleLevel This parameter can be one of the following values: 05935 * @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE 05936 * @arg @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE 05937 * @retval None 05938 */ 05939 __STATIC_INLINE void LL_HRTIM_OUT_SetIdleLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t IdleLevel) 05940 { 05941 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05942 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05943 REG_OFFSET_TAB_OUTxR[iOutput])); 05944 MODIFY_REG(*pReg, (HRTIM_OUTR_IDLES1 << REG_SHIFT_TAB_OUTxR[iOutput]), (IdleLevel << REG_SHIFT_TAB_OUTxR[iOutput])); 05945 } 05946 05947 /** 05948 * @brief Get actual output IDLE level. 05949 * @rmtoll OUTxR IDLES1 LL_HRTIM_OUT_GetIdleLevel\n 05950 * OUTxR IDLES2 LL_HRTIM_OUT_GetIdleLevel 05951 * @param HRTIMx High Resolution Timer instance 05952 * @param Output This parameter can be one of the following values: 05953 * @arg @ref LL_HRTIM_OUTPUT_TA1 05954 * @arg @ref LL_HRTIM_OUTPUT_TA2 05955 * @arg @ref LL_HRTIM_OUTPUT_TB1 05956 * @arg @ref LL_HRTIM_OUTPUT_TB2 05957 * @arg @ref LL_HRTIM_OUTPUT_TC1 05958 * @arg @ref LL_HRTIM_OUTPUT_TC2 05959 * @arg @ref LL_HRTIM_OUTPUT_TD1 05960 * @arg @ref LL_HRTIM_OUTPUT_TD2 05961 * @arg @ref LL_HRTIM_OUTPUT_TE1 05962 * @arg @ref LL_HRTIM_OUTPUT_TE2 05963 * @retval IdleLevel This parameter can be one of the following values: 05964 * @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE 05965 * @arg @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE 05966 */ 05967 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetIdleLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output) 05968 { 05969 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 05970 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 05971 REG_OFFSET_TAB_OUTxR[iOutput])); 05972 return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_IDLES1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]); 05973 } 05974 05975 /** 05976 * @brief Set the output FAULT state. 05977 * @rmtoll OUTxR FAULT1 LL_HRTIM_OUT_SetFaultState\n 05978 * OUTxR FAULT2 LL_HRTIM_OUT_SetFaultState 05979 * @note This function must not called when the timer is enabled and a fault 05980 * channel is enabled at timer level. 05981 * @param HRTIMx High Resolution Timer instance 05982 * @param Output This parameter can be one of the following values: 05983 * @arg @ref LL_HRTIM_OUTPUT_TA1 05984 * @arg @ref LL_HRTIM_OUTPUT_TA2 05985 * @arg @ref LL_HRTIM_OUTPUT_TB1 05986 * @arg @ref LL_HRTIM_OUTPUT_TB2 05987 * @arg @ref LL_HRTIM_OUTPUT_TC1 05988 * @arg @ref LL_HRTIM_OUTPUT_TC2 05989 * @arg @ref LL_HRTIM_OUTPUT_TD1 05990 * @arg @ref LL_HRTIM_OUTPUT_TD2 05991 * @arg @ref LL_HRTIM_OUTPUT_TE1 05992 * @arg @ref LL_HRTIM_OUTPUT_TE2 05993 * @param FaultState This parameter can be one of the following values: 05994 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION 05995 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE 05996 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE 05997 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ 05998 * @retval None 05999 */ 06000 __STATIC_INLINE void LL_HRTIM_OUT_SetFaultState(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t FaultState) 06001 { 06002 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06003 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 06004 REG_OFFSET_TAB_OUTxR[iOutput])); 06005 MODIFY_REG(*pReg, (HRTIM_OUTR_FAULT1 << REG_SHIFT_TAB_OUTxR[iOutput]), (FaultState << REG_SHIFT_TAB_OUTxR[iOutput])); 06006 } 06007 06008 /** 06009 * @brief Get actual FAULT state. 06010 * @rmtoll OUTxR FAULT1 LL_HRTIM_OUT_GetFaultState\n 06011 * OUTxR FAULT2 LL_HRTIM_OUT_GetFaultState 06012 * @param HRTIMx High Resolution Timer instance 06013 * @param Output This parameter can be one of the following values: 06014 * @arg @ref LL_HRTIM_OUTPUT_TA1 06015 * @arg @ref LL_HRTIM_OUTPUT_TA2 06016 * @arg @ref LL_HRTIM_OUTPUT_TB1 06017 * @arg @ref LL_HRTIM_OUTPUT_TB2 06018 * @arg @ref LL_HRTIM_OUTPUT_TC1 06019 * @arg @ref LL_HRTIM_OUTPUT_TC2 06020 * @arg @ref LL_HRTIM_OUTPUT_TD1 06021 * @arg @ref LL_HRTIM_OUTPUT_TD2 06022 * @arg @ref LL_HRTIM_OUTPUT_TE1 06023 * @arg @ref LL_HRTIM_OUTPUT_TE2 06024 * @retval FaultState This parameter can be one of the following values: 06025 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION 06026 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE 06027 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE 06028 * @arg @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ 06029 */ 06030 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetFaultState(HRTIM_TypeDef *HRTIMx, uint32_t Output) 06031 { 06032 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06033 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 06034 REG_OFFSET_TAB_OUTxR[iOutput])); 06035 return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_FAULT1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]); 06036 } 06037 06038 /** 06039 * @brief Set the output chopper mode. 06040 * @rmtoll OUTxR CHP1 LL_HRTIM_OUT_SetChopperMode\n 06041 * OUTxR CHP2 LL_HRTIM_OUT_SetChopperMode 06042 * @note This function must not called when the timer is enabled. 06043 * @param HRTIMx High Resolution Timer instance 06044 * @param Output This parameter can be one of the following values: 06045 * @arg @ref LL_HRTIM_OUTPUT_TA1 06046 * @arg @ref LL_HRTIM_OUTPUT_TA2 06047 * @arg @ref LL_HRTIM_OUTPUT_TB1 06048 * @arg @ref LL_HRTIM_OUTPUT_TB2 06049 * @arg @ref LL_HRTIM_OUTPUT_TC1 06050 * @arg @ref LL_HRTIM_OUTPUT_TC2 06051 * @arg @ref LL_HRTIM_OUTPUT_TD1 06052 * @arg @ref LL_HRTIM_OUTPUT_TD2 06053 * @arg @ref LL_HRTIM_OUTPUT_TE1 06054 * @arg @ref LL_HRTIM_OUTPUT_TE2 06055 * @param ChopperMode This parameter can be one of the following values: 06056 * @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED 06057 * @arg @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED 06058 * @retval None 06059 */ 06060 __STATIC_INLINE void LL_HRTIM_OUT_SetChopperMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t ChopperMode) 06061 { 06062 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06063 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 06064 REG_OFFSET_TAB_OUTxR[iOutput])); 06065 MODIFY_REG(*pReg, (HRTIM_OUTR_CHP1 << REG_SHIFT_TAB_OUTxR[iOutput]), (ChopperMode << REG_SHIFT_TAB_OUTxR[iOutput])); 06066 } 06067 06068 /** 06069 * @brief Get actual output chopper mode 06070 * @rmtoll OUTxR CHP1 LL_HRTIM_OUT_GetChopperMode\n 06071 * OUTxR CHP2 LL_HRTIM_OUT_GetChopperMode 06072 * @param HRTIMx High Resolution Timer instance 06073 * @param Output This parameter can be one of the following values: 06074 * @arg @ref LL_HRTIM_OUTPUT_TA1 06075 * @arg @ref LL_HRTIM_OUTPUT_TA2 06076 * @arg @ref LL_HRTIM_OUTPUT_TB1 06077 * @arg @ref LL_HRTIM_OUTPUT_TB2 06078 * @arg @ref LL_HRTIM_OUTPUT_TC1 06079 * @arg @ref LL_HRTIM_OUTPUT_TC2 06080 * @arg @ref LL_HRTIM_OUTPUT_TD1 06081 * @arg @ref LL_HRTIM_OUTPUT_TD2 06082 * @arg @ref LL_HRTIM_OUTPUT_TE1 06083 * @arg @ref LL_HRTIM_OUTPUT_TE2 06084 * @retval ChopperMode This parameter can be one of the following values: 06085 * @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED 06086 * @arg @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED 06087 */ 06088 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetChopperMode(HRTIM_TypeDef *HRTIMx, uint32_t Output) 06089 { 06090 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06091 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 06092 REG_OFFSET_TAB_OUTxR[iOutput])); 06093 return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_CHP1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]); 06094 } 06095 06096 /** 06097 * @brief Set the output burst mode entry mode. 06098 * @rmtoll OUTxR DIDL1 LL_HRTIM_OUT_SetBMEntryMode\n 06099 * OUTxR DIDL2 LL_HRTIM_OUT_SetBMEntryMode 06100 * @note This function must not called when the timer is enabled. 06101 * @param HRTIMx High Resolution Timer instance 06102 * @param Output This parameter can be one of the following values: 06103 * @arg @ref LL_HRTIM_OUTPUT_TA1 06104 * @arg @ref LL_HRTIM_OUTPUT_TA2 06105 * @arg @ref LL_HRTIM_OUTPUT_TB1 06106 * @arg @ref LL_HRTIM_OUTPUT_TB2 06107 * @arg @ref LL_HRTIM_OUTPUT_TC1 06108 * @arg @ref LL_HRTIM_OUTPUT_TC2 06109 * @arg @ref LL_HRTIM_OUTPUT_TD1 06110 * @arg @ref LL_HRTIM_OUTPUT_TD2 06111 * @arg @ref LL_HRTIM_OUTPUT_TE1 06112 * @arg @ref LL_HRTIM_OUTPUT_TE2 06113 * @param BMEntryMode This parameter can be one of the following values: 06114 * @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR 06115 * @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED 06116 * @retval None 06117 */ 06118 __STATIC_INLINE void LL_HRTIM_OUT_SetBMEntryMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t BMEntryMode) 06119 { 06120 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06121 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 06122 REG_OFFSET_TAB_OUTxR[iOutput])); 06123 MODIFY_REG(*pReg, (HRTIM_OUTR_DIDL1 << REG_SHIFT_TAB_OUTxR[iOutput]), (BMEntryMode << REG_SHIFT_TAB_OUTxR[iOutput])); 06124 } 06125 06126 /** 06127 * @brief Get actual output burst mode entry mode. 06128 * @rmtoll OUTxR DIDL1 LL_HRTIM_OUT_GetBMEntryMode\n 06129 * OUTxR DIDL2 LL_HRTIM_OUT_GetBMEntryMode 06130 * @param HRTIMx High Resolution Timer instance 06131 * @param Output This parameter can be one of the following values: 06132 * @arg @ref LL_HRTIM_OUTPUT_TA1 06133 * @arg @ref LL_HRTIM_OUTPUT_TA2 06134 * @arg @ref LL_HRTIM_OUTPUT_TB1 06135 * @arg @ref LL_HRTIM_OUTPUT_TB2 06136 * @arg @ref LL_HRTIM_OUTPUT_TC1 06137 * @arg @ref LL_HRTIM_OUTPUT_TC2 06138 * @arg @ref LL_HRTIM_OUTPUT_TD1 06139 * @arg @ref LL_HRTIM_OUTPUT_TD2 06140 * @arg @ref LL_HRTIM_OUTPUT_TE1 06141 * @arg @ref LL_HRTIM_OUTPUT_TE2 06142 * @retval BMEntryMode This parameter can be one of the following values: 06143 * @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR 06144 * @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED 06145 */ 06146 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetBMEntryMode(HRTIM_TypeDef *HRTIMx, uint32_t Output) 06147 { 06148 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06149 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) + 06150 REG_OFFSET_TAB_OUTxR[iOutput])); 06151 return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_DIDL1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]); 06152 } 06153 06154 /** 06155 * @brief Get the level (active or inactive) of the designated output when the 06156 * delayed protection was triggered. 06157 * @rmtoll TIMxISR O1SRSR LL_HRTIM_OUT_GetDLYPRTOutStatus\n 06158 * TIMxISR O2SRSR LL_HRTIM_OUT_GetDLYPRTOutStatus 06159 * @param HRTIMx High Resolution Timer instance 06160 * @param Output This parameter can be one of the following values: 06161 * @arg @ref LL_HRTIM_OUTPUT_TA1 06162 * @arg @ref LL_HRTIM_OUTPUT_TA2 06163 * @arg @ref LL_HRTIM_OUTPUT_TB1 06164 * @arg @ref LL_HRTIM_OUTPUT_TB2 06165 * @arg @ref LL_HRTIM_OUTPUT_TC1 06166 * @arg @ref LL_HRTIM_OUTPUT_TC2 06167 * @arg @ref LL_HRTIM_OUTPUT_TD1 06168 * @arg @ref LL_HRTIM_OUTPUT_TD2 06169 * @arg @ref LL_HRTIM_OUTPUT_TE1 06170 * @arg @ref LL_HRTIM_OUTPUT_TE2 06171 * @retval OutputLevel This parameter can be one of the following values: 06172 * @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE 06173 * @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE 06174 */ 06175 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetDLYPRTOutStatus(HRTIM_TypeDef *HRTIMx, uint32_t Output) 06176 { 06177 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06178 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxISR) + 06179 REG_OFFSET_TAB_OUTxR[iOutput])); 06180 return ((READ_BIT(*pReg, (uint32_t)(HRTIM_TIMISR_O1STAT) << REG_SHIFT_TAB_OxSTAT[iOutput]) >> REG_SHIFT_TAB_OxSTAT[iOutput]) >> 06181 HRTIM_TIMISR_O1STAT_Pos); 06182 } 06183 06184 /** 06185 * @brief Force the timer output to its active or inactive level. 06186 * @rmtoll SETx1R SST LL_HRTIM_OUT_ForceLevel\n 06187 * RSTx1R SRT LL_HRTIM_OUT_ForceLevel\n 06188 * SETx2R SST LL_HRTIM_OUT_ForceLevel\n 06189 * RSTx2R SRT LL_HRTIM_OUT_ForceLevel 06190 * @param HRTIMx High Resolution Timer instance 06191 * @param Output This parameter can be one of the following values: 06192 * @arg @ref LL_HRTIM_OUTPUT_TA1 06193 * @arg @ref LL_HRTIM_OUTPUT_TA2 06194 * @arg @ref LL_HRTIM_OUTPUT_TB1 06195 * @arg @ref LL_HRTIM_OUTPUT_TB2 06196 * @arg @ref LL_HRTIM_OUTPUT_TC1 06197 * @arg @ref LL_HRTIM_OUTPUT_TC2 06198 * @arg @ref LL_HRTIM_OUTPUT_TD1 06199 * @arg @ref LL_HRTIM_OUTPUT_TD2 06200 * @arg @ref LL_HRTIM_OUTPUT_TE1 06201 * @arg @ref LL_HRTIM_OUTPUT_TE2 06202 * @param OutputLevel This parameter can be one of the following values: 06203 * @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE 06204 * @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE 06205 * @retval None 06206 */ 06207 __STATIC_INLINE void LL_HRTIM_OUT_ForceLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t OutputLevel) 06208 { 06209 const uint8_t REG_OFFSET_TAB_OUT_LEVEL[] = 06210 { 06211 0x04U, /* 0: LL_HRTIM_OUT_LEVEL_INACTIVE */ 06212 0x00U /* 1: LL_HRTIM_OUT_LEVEL_ACTIVE */ 06213 }; 06214 06215 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06216 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) + 06217 REG_OFFSET_TAB_SETxR[iOutput] + REG_OFFSET_TAB_OUT_LEVEL[OutputLevel])); 06218 SET_BIT(*pReg, HRTIM_SET1R_SST); 06219 } 06220 06221 /** 06222 * @brief Get actual output level, before the output stage (chopper, polarity). 06223 * @rmtoll TIMxISR O1CPY LL_HRTIM_OUT_GetLevel\n 06224 * TIMxISR O2CPY LL_HRTIM_OUT_GetLevel 06225 * @param HRTIMx High Resolution Timer instance 06226 * @param Output This parameter can be one of the following values: 06227 * @arg @ref LL_HRTIM_OUTPUT_TA1 06228 * @arg @ref LL_HRTIM_OUTPUT_TA2 06229 * @arg @ref LL_HRTIM_OUTPUT_TB1 06230 * @arg @ref LL_HRTIM_OUTPUT_TB2 06231 * @arg @ref LL_HRTIM_OUTPUT_TC1 06232 * @arg @ref LL_HRTIM_OUTPUT_TC2 06233 * @arg @ref LL_HRTIM_OUTPUT_TD1 06234 * @arg @ref LL_HRTIM_OUTPUT_TD2 06235 * @arg @ref LL_HRTIM_OUTPUT_TE1 06236 * @arg @ref LL_HRTIM_OUTPUT_TE2 06237 * @retval OutputLevel This parameter can be one of the following values: 06238 * @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE 06239 * @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE 06240 */ 06241 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output) 06242 { 06243 uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1)); 06244 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxISR) + 06245 REG_OFFSET_TAB_OUTxR[iOutput])); 06246 return ((READ_BIT(*pReg, (uint32_t)(HRTIM_TIMISR_O1CPY) << REG_SHIFT_TAB_OxSTAT[iOutput]) >> REG_SHIFT_TAB_OxSTAT[iOutput]) >> 06247 HRTIM_TIMISR_O1CPY_Pos); 06248 } 06249 06250 /** 06251 * @} 06252 */ 06253 06254 /** @defgroup HRTIM_LL_EF_External_Event_management External_Event_management 06255 * @{ 06256 */ 06257 06258 /** 06259 * @brief Configure external event conditioning. 06260 * @rmtoll EECR1 EE1SRC LL_HRTIM_EE_Config\n 06261 * EECR1 EE1POL LL_HRTIM_EE_Config\n 06262 * EECR1 EE1SNS LL_HRTIM_EE_Config\n 06263 * EECR1 EE1FAST LL_HRTIM_EE_Config\n 06264 * EECR1 EE2SRC LL_HRTIM_EE_Config\n 06265 * EECR1 EE2POL LL_HRTIM_EE_Config\n 06266 * EECR1 EE2SNS LL_HRTIM_EE_Config\n 06267 * EECR1 EE2FAST LL_HRTIM_EE_Config\n 06268 * EECR1 EE3SRC LL_HRTIM_EE_Config\n 06269 * EECR1 EE3POL LL_HRTIM_EE_Config\n 06270 * EECR1 EE3SNS LL_HRTIM_EE_Config\n 06271 * EECR1 EE3FAST LL_HRTIM_EE_Config\n 06272 * EECR1 EE4SRC LL_HRTIM_EE_Config\n 06273 * EECR1 EE4POL LL_HRTIM_EE_Config\n 06274 * EECR1 EE4SNS LL_HRTIM_EE_Config\n 06275 * EECR1 EE4FAST LL_HRTIM_EE_Config\n 06276 * EECR1 EE5SRC LL_HRTIM_EE_Config\n 06277 * EECR1 EE5POL LL_HRTIM_EE_Config\n 06278 * EECR1 EE5SNS LL_HRTIM_EE_Config\n 06279 * EECR1 EE5FAST LL_HRTIM_EE_Config\n 06280 * EECR2 EE6SRC LL_HRTIM_EE_Config\n 06281 * EECR2 EE6POL LL_HRTIM_EE_Config\n 06282 * EECR2 EE6SNS LL_HRTIM_EE_Config\n 06283 * EECR2 EE6FAST LL_HRTIM_EE_Config\n 06284 * EECR2 EE7SRC LL_HRTIM_EE_Config\n 06285 * EECR2 EE7POL LL_HRTIM_EE_Config\n 06286 * EECR2 EE7SNS LL_HRTIM_EE_Config\n 06287 * EECR2 EE7FAST LL_HRTIM_EE_Config\n 06288 * EECR2 EE8SRC LL_HRTIM_EE_Config\n 06289 * EECR2 EE8POL LL_HRTIM_EE_Config\n 06290 * EECR2 EE8SNS LL_HRTIM_EE_Config\n 06291 * EECR2 EE8FAST LL_HRTIM_EE_Config\n 06292 * EECR2 EE9SRC LL_HRTIM_EE_Config\n 06293 * EECR2 EE9POL LL_HRTIM_EE_Config\n 06294 * EECR2 EE9SNS LL_HRTIM_EE_Config\n 06295 * EECR2 EE9FAST LL_HRTIM_EE_Config\n 06296 * EECR2 EE10SRC LL_HRTIM_EE_Config\n 06297 * EECR2 EE10POL LL_HRTIM_EE_Config\n 06298 * EECR2 EE10SNS LL_HRTIM_EE_Config\n 06299 * EECR2 EE10FAST LL_HRTIM_EE_Config 06300 * @note This function must not be called when the timer counter is enabled. 06301 * @note Event source (EExSrc1..EExSRC4) mapping depends on configured event channel. 06302 * @note Fast mode is available only for LL_HRTIM_EVENT_1..5. 06303 * @param HRTIMx High Resolution Timer instance 06304 * @param Event This parameter can be one of the following values: 06305 * @arg @ref LL_HRTIM_EVENT_1 06306 * @arg @ref LL_HRTIM_EVENT_2 06307 * @arg @ref LL_HRTIM_EVENT_3 06308 * @arg @ref LL_HRTIM_EVENT_4 06309 * @arg @ref LL_HRTIM_EVENT_5 06310 * @arg @ref LL_HRTIM_EVENT_6 06311 * @arg @ref LL_HRTIM_EVENT_7 06312 * @arg @ref LL_HRTIM_EVENT_8 06313 * @arg @ref LL_HRTIM_EVENT_9 06314 * @arg @ref LL_HRTIM_EVENT_10 06315 * @param Configuration This parameter must be a combination of all the following values: 06316 * @arg External event source 1 or External event source 2 or External event source 3 or External event source 4 06317 * @arg @ref LL_HRTIM_EE_POLARITY_HIGH or @ref LL_HRTIM_EE_POLARITY_LOW 06318 * @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 06319 * @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE or @ref LL_HRTIM_EE_FASTMODE_ENABLE 06320 * @retval None 06321 */ 06322 __STATIC_INLINE void LL_HRTIM_EE_Config(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Configuration) 06323 { 06324 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06325 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06326 REG_OFFSET_TAB_EECR[iEvent])); 06327 MODIFY_REG(*pReg, (HRTIM_EE_CONFIG_MASK << REG_SHIFT_TAB_EExSRC[iEvent]), 06328 (Configuration << REG_SHIFT_TAB_EExSRC[iEvent])); 06329 } 06330 06331 /** 06332 * @brief Set the external event source. 06333 * @rmtoll EECR1 EE1SRC LL_HRTIM_EE_SetSrc\n 06334 * EECR1 EE2SRC LL_HRTIM_EE_SetSrc\n 06335 * EECR1 EE3SRC LL_HRTIM_EE_SetSrc\n 06336 * EECR1 EE4SRC LL_HRTIM_EE_SetSrc\n 06337 * EECR1 EE5SRC LL_HRTIM_EE_SetSrc\n 06338 * EECR2 EE6SRC LL_HRTIM_EE_SetSrc\n 06339 * EECR2 EE7SRC LL_HRTIM_EE_SetSrc\n 06340 * EECR2 EE8SRC LL_HRTIM_EE_SetSrc\n 06341 * EECR2 EE9SRC LL_HRTIM_EE_SetSrc\n 06342 * EECR2 EE10SRC LL_HRTIM_EE_SetSrc 06343 * @param HRTIMx High Resolution Timer instance 06344 * @param Event This parameter can be one of the following values: 06345 * @arg @ref LL_HRTIM_EVENT_1 06346 * @arg @ref LL_HRTIM_EVENT_2 06347 * @arg @ref LL_HRTIM_EVENT_3 06348 * @arg @ref LL_HRTIM_EVENT_4 06349 * @arg @ref LL_HRTIM_EVENT_5 06350 * @arg @ref LL_HRTIM_EVENT_6 06351 * @arg @ref LL_HRTIM_EVENT_7 06352 * @arg @ref LL_HRTIM_EVENT_8 06353 * @arg @ref LL_HRTIM_EVENT_9 06354 * @arg @ref LL_HRTIM_EVENT_10 06355 * @param Src This parameter can be one of the following values: 06356 * @arg External event source 1 06357 * @arg External event source 2 06358 * @arg External event source 3 06359 * @arg External event source 4 06360 * @retval None 06361 */ 06362 __STATIC_INLINE void LL_HRTIM_EE_SetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Src) 06363 { 06364 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06365 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06366 REG_OFFSET_TAB_EECR[iEvent])); 06367 MODIFY_REG(*pReg, (HRTIM_EECR1_EE1SRC << REG_SHIFT_TAB_EExSRC[iEvent]), (Src << REG_SHIFT_TAB_EExSRC[iEvent])); 06368 } 06369 06370 /** 06371 * @brief Get actual external event source. 06372 * @rmtoll EECR1 EE1SRC LL_HRTIM_EE_GetSrc\n 06373 * EECR1 EE2SRC LL_HRTIM_EE_GetSrc\n 06374 * EECR1 EE3SRC LL_HRTIM_EE_GetSrc\n 06375 * EECR1 EE4SRC LL_HRTIM_EE_GetSrc\n 06376 * EECR1 EE5SRC LL_HRTIM_EE_GetSrc\n 06377 * EECR2 EE6SRC LL_HRTIM_EE_GetSrc\n 06378 * EECR2 EE7SRC LL_HRTIM_EE_GetSrc\n 06379 * EECR2 EE8SRC LL_HRTIM_EE_GetSrc\n 06380 * EECR2 EE9SRC LL_HRTIM_EE_GetSrc\n 06381 * EECR2 EE10SRC LL_HRTIM_EE_GetSrc 06382 * @param HRTIMx High Resolution Timer instance 06383 * @param Event This parameter can be one of the following values: 06384 * @arg @ref LL_HRTIM_EVENT_1 06385 * @arg @ref LL_HRTIM_EVENT_2 06386 * @arg @ref LL_HRTIM_EVENT_3 06387 * @arg @ref LL_HRTIM_EVENT_4 06388 * @arg @ref LL_HRTIM_EVENT_5 06389 * @arg @ref LL_HRTIM_EVENT_6 06390 * @arg @ref LL_HRTIM_EVENT_7 06391 * @arg @ref LL_HRTIM_EVENT_8 06392 * @arg @ref LL_HRTIM_EVENT_9 06393 * @arg @ref LL_HRTIM_EVENT_10 06394 * @retval EventSrc This parameter can be one of the following values: 06395 * @arg External event source 1 06396 * @arg External event source 2 06397 * @arg External event source 3 06398 * @arg External event source 4 06399 */ 06400 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Event) 06401 { 06402 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06403 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06404 REG_OFFSET_TAB_EECR[iEvent])); 06405 return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1SRC) << REG_SHIFT_TAB_EExSRC[iEvent]) >> REG_SHIFT_TAB_EExSRC[iEvent]); 06406 } 06407 06408 /** 06409 * @brief Set the polarity of an external event. 06410 * @rmtoll EECR1 EE1POL LL_HRTIM_EE_SetPolarity\n 06411 * EECR1 EE2POL LL_HRTIM_EE_SetPolarity\n 06412 * EECR1 EE3POL LL_HRTIM_EE_SetPolarity\n 06413 * EECR1 EE4POL LL_HRTIM_EE_SetPolarity\n 06414 * EECR1 EE5POL LL_HRTIM_EE_SetPolarity\n 06415 * EECR2 EE6POL LL_HRTIM_EE_SetPolarity\n 06416 * EECR2 EE7POL LL_HRTIM_EE_SetPolarity\n 06417 * EECR2 EE8POL LL_HRTIM_EE_SetPolarity\n 06418 * EECR2 EE9POL LL_HRTIM_EE_SetPolarity\n 06419 * EECR2 EE10POL LL_HRTIM_EE_SetPolarity 06420 * @note This function must not be called when the timer counter is enabled. 06421 * @note Event polarity is only significant when event detection is level-sensitive. 06422 * @param HRTIMx High Resolution Timer instance 06423 * @param Event This parameter can be one of the following values: 06424 * @arg @ref LL_HRTIM_EVENT_1 06425 * @arg @ref LL_HRTIM_EVENT_2 06426 * @arg @ref LL_HRTIM_EVENT_3 06427 * @arg @ref LL_HRTIM_EVENT_4 06428 * @arg @ref LL_HRTIM_EVENT_5 06429 * @arg @ref LL_HRTIM_EVENT_6 06430 * @arg @ref LL_HRTIM_EVENT_7 06431 * @arg @ref LL_HRTIM_EVENT_8 06432 * @arg @ref LL_HRTIM_EVENT_9 06433 * @arg @ref LL_HRTIM_EVENT_10 06434 * @param Polarity This parameter can be one of the following values: 06435 * @arg @ref LL_HRTIM_EE_POLARITY_HIGH 06436 * @arg @ref LL_HRTIM_EE_POLARITY_LOW 06437 * @retval None 06438 */ 06439 __STATIC_INLINE void LL_HRTIM_EE_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Polarity) 06440 { 06441 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06442 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06443 REG_OFFSET_TAB_EECR[iEvent])); 06444 MODIFY_REG(*pReg, (HRTIM_EECR1_EE1POL << REG_SHIFT_TAB_EExSRC[iEvent]), (Polarity << REG_SHIFT_TAB_EExSRC[iEvent])); 06445 } 06446 06447 /** 06448 * @brief Get actual polarity setting of an external event. 06449 * @rmtoll EECR1 EE1POL LL_HRTIM_EE_GetPolarity\n 06450 * EECR1 EE2POL LL_HRTIM_EE_GetPolarity\n 06451 * EECR1 EE3POL LL_HRTIM_EE_GetPolarity\n 06452 * EECR1 EE4POL LL_HRTIM_EE_GetPolarity\n 06453 * EECR1 EE5POL LL_HRTIM_EE_GetPolarity\n 06454 * EECR2 EE6POL LL_HRTIM_EE_GetPolarity\n 06455 * EECR2 EE7POL LL_HRTIM_EE_GetPolarity\n 06456 * EECR2 EE8POL LL_HRTIM_EE_GetPolarity\n 06457 * EECR2 EE9POL LL_HRTIM_EE_GetPolarity\n 06458 * EECR2 EE10POL LL_HRTIM_EE_GetPolarity 06459 * @param HRTIMx High Resolution Timer instance 06460 * @param Event This parameter can be one of the following values: 06461 * @arg @ref LL_HRTIM_EVENT_1 06462 * @arg @ref LL_HRTIM_EVENT_2 06463 * @arg @ref LL_HRTIM_EVENT_3 06464 * @arg @ref LL_HRTIM_EVENT_4 06465 * @arg @ref LL_HRTIM_EVENT_5 06466 * @arg @ref LL_HRTIM_EVENT_6 06467 * @arg @ref LL_HRTIM_EVENT_7 06468 * @arg @ref LL_HRTIM_EVENT_8 06469 * @arg @ref LL_HRTIM_EVENT_9 06470 * @arg @ref LL_HRTIM_EVENT_10 06471 * @retval Polarity This parameter can be one of the following values: 06472 * @arg @ref LL_HRTIM_EE_POLARITY_HIGH 06473 * @arg @ref LL_HRTIM_EE_POLARITY_LOW 06474 */ 06475 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Event) 06476 { 06477 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06478 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06479 REG_OFFSET_TAB_EECR[iEvent])); 06480 return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1POL) << REG_SHIFT_TAB_EExSRC[iEvent]) >> REG_SHIFT_TAB_EExSRC[iEvent]); 06481 } 06482 06483 /** 06484 * @brief Set the sensitivity of an external event. 06485 * @rmtoll EECR1 EE1SNS LL_HRTIM_EE_SetSensitivity\n 06486 * EECR1 EE2SNS LL_HRTIM_EE_SetSensitivity\n 06487 * EECR1 EE3SNS LL_HRTIM_EE_SetSensitivity\n 06488 * EECR1 EE4SNS LL_HRTIM_EE_SetSensitivity\n 06489 * EECR1 EE5SNS LL_HRTIM_EE_SetSensitivity\n 06490 * EECR2 EE6SNS LL_HRTIM_EE_SetSensitivity\n 06491 * EECR2 EE7SNS LL_HRTIM_EE_SetSensitivity\n 06492 * EECR2 EE8SNS LL_HRTIM_EE_SetSensitivity\n 06493 * EECR2 EE9SNS LL_HRTIM_EE_SetSensitivity\n 06494 * EECR2 EE10SNS LL_HRTIM_EE_SetSensitivity 06495 * @param HRTIMx High Resolution Timer instance 06496 * @param Event This parameter can be one of the following values: 06497 * @arg @ref LL_HRTIM_EVENT_1 06498 * @arg @ref LL_HRTIM_EVENT_2 06499 * @arg @ref LL_HRTIM_EVENT_3 06500 * @arg @ref LL_HRTIM_EVENT_4 06501 * @arg @ref LL_HRTIM_EVENT_5 06502 * @arg @ref LL_HRTIM_EVENT_6 06503 * @arg @ref LL_HRTIM_EVENT_7 06504 * @arg @ref LL_HRTIM_EVENT_8 06505 * @arg @ref LL_HRTIM_EVENT_9 06506 * @arg @ref LL_HRTIM_EVENT_10 06507 * @param Sensitivity This parameter can be one of the following values: 06508 * @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL 06509 * @arg @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE 06510 * @arg @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE 06511 * @arg @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES 06512 * @retval None 06513 */ 06514 06515 __STATIC_INLINE void LL_HRTIM_EE_SetSensitivity(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Sensitivity) 06516 { 06517 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06518 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06519 REG_OFFSET_TAB_EECR[iEvent])); 06520 MODIFY_REG(*pReg, (HRTIM_EECR1_EE1SNS << REG_SHIFT_TAB_EExSRC[iEvent]), (Sensitivity << REG_SHIFT_TAB_EExSRC[iEvent])); 06521 } 06522 06523 /** 06524 * @brief Get actual sensitivity setting of an external event. 06525 * @rmtoll EECR1 EE1SNS LL_HRTIM_EE_GetSensitivity\n 06526 * EECR1 EE2SNS LL_HRTIM_EE_GetSensitivity\n 06527 * EECR1 EE3SNS LL_HRTIM_EE_GetSensitivity\n 06528 * EECR1 EE4SNS LL_HRTIM_EE_GetSensitivity\n 06529 * EECR1 EE5SNS LL_HRTIM_EE_GetSensitivity\n 06530 * EECR2 EE6SNS LL_HRTIM_EE_GetSensitivity\n 06531 * EECR2 EE7SNS LL_HRTIM_EE_GetSensitivity\n 06532 * EECR2 EE8SNS LL_HRTIM_EE_GetSensitivity\n 06533 * EECR2 EE9SNS LL_HRTIM_EE_GetSensitivity\n 06534 * EECR2 EE10SNS LL_HRTIM_EE_GetSensitivity 06535 * @param HRTIMx High Resolution Timer instance 06536 * @param Event This parameter can be one of the following values: 06537 * @arg @ref LL_HRTIM_EVENT_1 06538 * @arg @ref LL_HRTIM_EVENT_2 06539 * @arg @ref LL_HRTIM_EVENT_3 06540 * @arg @ref LL_HRTIM_EVENT_4 06541 * @arg @ref LL_HRTIM_EVENT_5 06542 * @arg @ref LL_HRTIM_EVENT_6 06543 * @arg @ref LL_HRTIM_EVENT_7 06544 * @arg @ref LL_HRTIM_EVENT_8 06545 * @arg @ref LL_HRTIM_EVENT_9 06546 * @arg @ref LL_HRTIM_EVENT_10 06547 * @retval Polarity This parameter can be one of the following values: 06548 * @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL 06549 * @arg @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE 06550 * @arg @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE 06551 * @arg @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES 06552 */ 06553 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetSensitivity(HRTIM_TypeDef *HRTIMx, uint32_t Event) 06554 { 06555 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06556 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06557 REG_OFFSET_TAB_EECR[iEvent])); 06558 return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1SNS) << REG_SHIFT_TAB_EExSRC[iEvent]) >> REG_SHIFT_TAB_EExSRC[iEvent]); 06559 } 06560 06561 /** 06562 * @brief Set the fast mode of an external event. 06563 * @rmtoll EECR1 EE1FAST LL_HRTIM_EE_SetFastMode\n 06564 * EECR1 EE2FAST LL_HRTIM_EE_SetFastMode\n 06565 * EECR1 EE3FAST LL_HRTIM_EE_SetFastMode\n 06566 * EECR1 EE4FAST LL_HRTIM_EE_SetFastMode\n 06567 * EECR1 EE5FAST LL_HRTIM_EE_SetFastMode\n 06568 * EECR2 EE6FAST LL_HRTIM_EE_SetFastMode\n 06569 * EECR2 EE7FAST LL_HRTIM_EE_SetFastMode\n 06570 * EECR2 EE8FAST LL_HRTIM_EE_SetFastMode\n 06571 * EECR2 EE9FAST LL_HRTIM_EE_SetFastMode\n 06572 * EECR2 EE10FAST LL_HRTIM_EE_SetFastMode 06573 * @note This function must not be called when the timer counter is enabled. 06574 * @param HRTIMx High Resolution Timer instance 06575 * @param Event This parameter can be one of the following values: 06576 * @arg @ref LL_HRTIM_EVENT_1 06577 * @arg @ref LL_HRTIM_EVENT_2 06578 * @arg @ref LL_HRTIM_EVENT_3 06579 * @arg @ref LL_HRTIM_EVENT_4 06580 * @arg @ref LL_HRTIM_EVENT_5 06581 * @param FastMode This parameter can be one of the following values: 06582 * @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE 06583 * @arg @ref LL_HRTIM_EE_FASTMODE_ENABLE 06584 * @retval None 06585 */ 06586 __STATIC_INLINE void LL_HRTIM_EE_SetFastMode(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t FastMode) 06587 { 06588 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06589 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06590 REG_OFFSET_TAB_EECR[iEvent])); 06591 MODIFY_REG(*pReg, (HRTIM_EECR1_EE1FAST << REG_SHIFT_TAB_EExSRC[iEvent]), (FastMode << REG_SHIFT_TAB_EExSRC[iEvent])); 06592 } 06593 06594 /** 06595 * @brief Get actual fast mode setting of an external event. 06596 * @rmtoll EECR1 EE1FAST LL_HRTIM_EE_GetFastMode\n 06597 * EECR1 EE2FAST LL_HRTIM_EE_GetFastMode\n 06598 * EECR1 EE3FAST LL_HRTIM_EE_GetFastMode\n 06599 * EECR1 EE4FAST LL_HRTIM_EE_GetFastMode\n 06600 * EECR1 EE5FAST LL_HRTIM_EE_GetFastMode\n 06601 * EECR2 EE6FAST LL_HRTIM_EE_GetFastMode\n 06602 * EECR2 EE7FAST LL_HRTIM_EE_GetFastMode\n 06603 * EECR2 EE8FAST LL_HRTIM_EE_GetFastMode\n 06604 * EECR2 EE9FAST LL_HRTIM_EE_GetFastMode\n 06605 * EECR2 EE10FAST LL_HRTIM_EE_GetFastMode 06606 * @param HRTIMx High Resolution Timer instance 06607 * @param Event This parameter can be one of the following values: 06608 * @arg @ref LL_HRTIM_EVENT_1 06609 * @arg @ref LL_HRTIM_EVENT_2 06610 * @arg @ref LL_HRTIM_EVENT_3 06611 * @arg @ref LL_HRTIM_EVENT_4 06612 * @arg @ref LL_HRTIM_EVENT_5 06613 * @retval FastMode This parameter can be one of the following values: 06614 * @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE 06615 * @arg @ref LL_HRTIM_EE_FASTMODE_ENABLE 06616 */ 06617 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetFastMode(HRTIM_TypeDef *HRTIMx, uint32_t Event) 06618 { 06619 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06620 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) + 06621 REG_OFFSET_TAB_EECR[iEvent])); 06622 return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1FAST) << REG_SHIFT_TAB_EExSRC[iEvent]) >> REG_SHIFT_TAB_EExSRC[iEvent]); 06623 } 06624 06625 /** 06626 * @brief Set the digital noise filter of a external event. 06627 * @rmtoll EECR3 EE6F LL_HRTIM_EE_SetFilter\n 06628 * EECR3 EE7F LL_HRTIM_EE_SetFilter\n 06629 * EECR3 EE8F LL_HRTIM_EE_SetFilter\n 06630 * EECR3 EE9F LL_HRTIM_EE_SetFilter\n 06631 * EECR3 EE10F LL_HRTIM_EE_SetFilter 06632 * @param HRTIMx High Resolution Timer instance 06633 * @param Event This parameter can be one of the following values: 06634 * @arg @ref LL_HRTIM_EVENT_6 06635 * @arg @ref LL_HRTIM_EVENT_7 06636 * @arg @ref LL_HRTIM_EVENT_8 06637 * @arg @ref LL_HRTIM_EVENT_9 06638 * @arg @ref LL_HRTIM_EVENT_10 06639 * @param Filter This parameter can be one of the following values: 06640 * @arg @ref LL_HRTIM_EE_FILTER_NONE 06641 * @arg @ref LL_HRTIM_EE_FILTER_1 06642 * @arg @ref LL_HRTIM_EE_FILTER_2 06643 * @arg @ref LL_HRTIM_EE_FILTER_3 06644 * @arg @ref LL_HRTIM_EE_FILTER_4 06645 * @arg @ref LL_HRTIM_EE_FILTER_5 06646 * @arg @ref LL_HRTIM_EE_FILTER_6 06647 * @arg @ref LL_HRTIM_EE_FILTER_7 06648 * @arg @ref LL_HRTIM_EE_FILTER_8 06649 * @arg @ref LL_HRTIM_EE_FILTER_9 06650 * @arg @ref LL_HRTIM_EE_FILTER_10 06651 * @arg @ref LL_HRTIM_EE_FILTER_11 06652 * @arg @ref LL_HRTIM_EE_FILTER_12 06653 * @arg @ref LL_HRTIM_EE_FILTER_13 06654 * @arg @ref LL_HRTIM_EE_FILTER_14 06655 * @arg @ref LL_HRTIM_EE_FILTER_15 06656 * @retval None 06657 */ 06658 __STATIC_INLINE void LL_HRTIM_EE_SetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Filter) 06659 { 06660 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1)); 06661 MODIFY_REG(HRTIMx->sCommonRegs.EECR3, (HRTIM_EECR3_EE6F << REG_SHIFT_TAB_EExSRC[iEvent]), 06662 (Filter << REG_SHIFT_TAB_EExSRC[iEvent])); 06663 } 06664 06665 /** 06666 * @brief Get actual digital noise filter setting of a external event. 06667 * @rmtoll EECR3 EE6F LL_HRTIM_EE_GetFilter\n 06668 * EECR3 EE7F LL_HRTIM_EE_GetFilter\n 06669 * EECR3 EE8F LL_HRTIM_EE_GetFilter\n 06670 * EECR3 EE9F LL_HRTIM_EE_GetFilter\n 06671 * EECR3 EE10F LL_HRTIM_EE_GetFilter 06672 * @param HRTIMx High Resolution Timer instance 06673 * @param Event This parameter can be one of the following values: 06674 * @arg @ref LL_HRTIM_EVENT_6 06675 * @arg @ref LL_HRTIM_EVENT_7 06676 * @arg @ref LL_HRTIM_EVENT_8 06677 * @arg @ref LL_HRTIM_EVENT_9 06678 * @arg @ref LL_HRTIM_EVENT_10 06679 * @retval Filter This parameter can be one of the following values: 06680 * @arg @ref LL_HRTIM_EE_FILTER_NONE 06681 * @arg @ref LL_HRTIM_EE_FILTER_1 06682 * @arg @ref LL_HRTIM_EE_FILTER_2 06683 * @arg @ref LL_HRTIM_EE_FILTER_3 06684 * @arg @ref LL_HRTIM_EE_FILTER_4 06685 * @arg @ref LL_HRTIM_EE_FILTER_5 06686 * @arg @ref LL_HRTIM_EE_FILTER_6 06687 * @arg @ref LL_HRTIM_EE_FILTER_7 06688 * @arg @ref LL_HRTIM_EE_FILTER_8 06689 * @arg @ref LL_HRTIM_EE_FILTER_9 06690 * @arg @ref LL_HRTIM_EE_FILTER_10 06691 * @arg @ref LL_HRTIM_EE_FILTER_11 06692 * @arg @ref LL_HRTIM_EE_FILTER_12 06693 * @arg @ref LL_HRTIM_EE_FILTER_13 06694 * @arg @ref LL_HRTIM_EE_FILTER_14 06695 * @arg @ref LL_HRTIM_EE_FILTER_15 06696 */ 06697 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Event) 06698 { 06699 uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_6)); 06700 return (READ_BIT(HRTIMx->sCommonRegs.EECR3, 06701 (uint32_t)(HRTIM_EECR3_EE6F) << REG_SHIFT_TAB_EExSRC[iEvent]) >> REG_SHIFT_TAB_EExSRC[iEvent]); 06702 } 06703 06704 /** 06705 * @brief Set the external event prescaler. 06706 * @rmtoll EECR3 EEVSD LL_HRTIM_EE_SetPrescaler 06707 * @param HRTIMx High Resolution Timer instance 06708 * @param Prescaler This parameter can be one of the following values: 06709 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV1 06710 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV2 06711 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV4 06712 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV8 06713 * @retval None 06714 */ 06715 06716 __STATIC_INLINE void LL_HRTIM_EE_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler) 06717 { 06718 MODIFY_REG(HRTIMx->sCommonRegs.EECR3, HRTIM_EECR3_EEVSD, Prescaler); 06719 } 06720 06721 /** 06722 * @brief Get actual external event prescaler setting. 06723 * @rmtoll EECR3 EEVSD LL_HRTIM_EE_GetPrescaler 06724 * @param HRTIMx High Resolution Timer instance 06725 * @retval Prescaler This parameter can be one of the following values: 06726 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV1 06727 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV2 06728 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV4 06729 * @arg @ref LL_HRTIM_EE_PRESCALER_DIV8 06730 */ 06731 06732 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetPrescaler(HRTIM_TypeDef *HRTIMx) 06733 { 06734 return (READ_BIT(HRTIMx->sCommonRegs.EECR3, HRTIM_EECR3_EEVSD)); 06735 } 06736 06737 /** 06738 * @} 06739 */ 06740 06741 /** @defgroup HRTIM_LL_EF_Fault_management Fault_management 06742 * @{ 06743 */ 06744 /** 06745 * @brief Configure fault signal conditioning Polarity and Source. 06746 * @rmtoll FLTINR1 FLT1P LL_HRTIM_FLT_Config\n 06747 * FLTINR1 FLT1SRC LL_HRTIM_FLT_Config\n 06748 * FLTINR1 FLT2P LL_HRTIM_FLT_Config\n 06749 * FLTINR1 FLT2SRC LL_HRTIM_FLT_Config\n 06750 * FLTINR1 FLT3P LL_HRTIM_FLT_Config\n 06751 * FLTINR1 FLT3SRC LL_HRTIM_FLT_Config\n 06752 * FLTINR1 FLT4P LL_HRTIM_FLT_Config\n 06753 * FLTINR1 FLT4SRC LL_HRTIM_FLT_Config\n 06754 * FLTINR2 FLT5P LL_HRTIM_FLT_Config\n 06755 * FLTINR2 FLT5SRC LL_HRTIM_FLT_Config 06756 * @note This function must not be called when the fault channel is enabled. 06757 * @param HRTIMx High Resolution Timer instance 06758 * @param Fault This parameter can be one of the following values: 06759 * @arg @ref LL_HRTIM_FAULT_1 06760 * @arg @ref LL_HRTIM_FAULT_2 06761 * @arg @ref LL_HRTIM_FAULT_3 06762 * @arg @ref LL_HRTIM_FAULT_4 06763 * @arg @ref LL_HRTIM_FAULT_5 06764 * @param Configuration This parameter must be a combination of all the following values: 06765 * @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT..LL_HRTIM_FLT_SRC_INTERNAL 06766 * @arg @ref LL_HRTIM_FLT_POLARITY_LOW..LL_HRTIM_FLT_POLARITY_HIGH 06767 * @retval None 06768 */ 06769 __STATIC_INLINE void LL_HRTIM_FLT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Configuration) 06770 { 06771 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06772 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06773 REG_OFFSET_TAB_FLTINR[iFault])); 06774 MODIFY_REG(*pReg, (HRTIM_FLT_CONFIG_MASK << REG_SHIFT_TAB_FLTxE[iFault]), 06775 (Configuration << REG_SHIFT_TAB_FLTxE[iFault])); 06776 } 06777 06778 /** 06779 * @brief Set the source of a fault signal. 06780 * @rmtoll FLTINR1 FLT1SRC LL_HRTIM_FLT_SetSrc\n 06781 * FLTINR1 FLT2SRC LL_HRTIM_FLT_SetSrc\n 06782 * FLTINR1 FLT3SRC LL_HRTIM_FLT_SetSrc\n 06783 * FLTINR1 FLT4SRC LL_HRTIM_FLT_SetSrc\n 06784 * FLTINR2 FLT5SRC LL_HRTIM_FLT_SetSrc 06785 * @note This function must not be called when the fault channel is enabled. 06786 * @param HRTIMx High Resolution Timer instance 06787 * @param Fault This parameter can be one of the following values: 06788 * @arg @ref LL_HRTIM_FAULT_1 06789 * @arg @ref LL_HRTIM_FAULT_2 06790 * @arg @ref LL_HRTIM_FAULT_3 06791 * @arg @ref LL_HRTIM_FAULT_4 06792 * @arg @ref LL_HRTIM_FAULT_5 06793 * @param Src This parameter can be one of the following values: 06794 * @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT 06795 * @arg @ref LL_HRTIM_FLT_SRC_INTERNAL 06796 * @retval None 06797 */ 06798 __STATIC_INLINE void LL_HRTIM_FLT_SetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Src) 06799 { 06800 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06801 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06802 REG_OFFSET_TAB_FLTINR[iFault])); 06803 MODIFY_REG(*pReg, (HRTIM_FLTINR1_FLT1SRC << REG_SHIFT_TAB_FLTxE[iFault]), (Src << REG_SHIFT_TAB_FLTxE[iFault])); 06804 } 06805 06806 /** 06807 * @brief Get actual source of a fault signal. 06808 * @rmtoll FLTINR1 FLT1SRC LL_HRTIM_FLT_GetSrc\n 06809 * FLTINR1 FLT2SRC LL_HRTIM_FLT_GetSrc\n 06810 * FLTINR1 FLT3SRC LL_HRTIM_FLT_GetSrc\n 06811 * FLTINR1 FLT4SRC LL_HRTIM_FLT_GetSrc\n 06812 * FLTINR2 FLT5SRC LL_HRTIM_FLT_GetSrc 06813 * @param HRTIMx High Resolution Timer instance 06814 * @param Fault This parameter can be one of the following values: 06815 * @arg @ref LL_HRTIM_FAULT_1 06816 * @arg @ref LL_HRTIM_FAULT_2 06817 * @arg @ref LL_HRTIM_FAULT_3 06818 * @arg @ref LL_HRTIM_FAULT_4 06819 * @arg @ref LL_HRTIM_FAULT_5 06820 * @retval Source This parameter can be one of the following values: 06821 * @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT 06822 * @arg @ref LL_HRTIM_FLT_SRC_INTERNAL 06823 */ 06824 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 06825 { 06826 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06827 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06828 REG_OFFSET_TAB_FLTINR[iFault])); 06829 return (READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1SRC << REG_SHIFT_TAB_FLTxE[iFault])) >> REG_SHIFT_TAB_FLTxE[iFault]); 06830 } 06831 06832 /** 06833 * @brief Set the polarity of a fault signal. 06834 * @rmtoll FLTINR1 FLT1P LL_HRTIM_FLT_SetPolarity\n 06835 * FLTINR1 FLT2P LL_HRTIM_FLT_SetPolarity\n 06836 * FLTINR1 FLT3P LL_HRTIM_FLT_SetPolarity\n 06837 * FLTINR1 FLT4P LL_HRTIM_FLT_SetPolarity\n 06838 * FLTINR2 FLT5P LL_HRTIM_FLT_SetPolarity 06839 * @note This function must not be called when the fault channel is enabled. 06840 * @param HRTIMx High Resolution Timer instance 06841 * @param Fault This parameter can be one of the following values: 06842 * @arg @ref LL_HRTIM_FAULT_1 06843 * @arg @ref LL_HRTIM_FAULT_2 06844 * @arg @ref LL_HRTIM_FAULT_3 06845 * @arg @ref LL_HRTIM_FAULT_4 06846 * @arg @ref LL_HRTIM_FAULT_5 06847 * @param Polarity This parameter can be one of the following values: 06848 * @arg @ref LL_HRTIM_FLT_POLARITY_LOW 06849 * @arg @ref LL_HRTIM_FLT_POLARITY_HIGH 06850 * @retval None 06851 */ 06852 __STATIC_INLINE void LL_HRTIM_FLT_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Polarity) 06853 { 06854 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06855 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06856 REG_OFFSET_TAB_FLTINR[iFault])); 06857 MODIFY_REG(*pReg, (HRTIM_FLTINR1_FLT1P << REG_SHIFT_TAB_FLTxE[iFault]), (Polarity << REG_SHIFT_TAB_FLTxE[iFault])); 06858 } 06859 06860 /** 06861 * @brief Get actual polarity of a fault signal. 06862 * @rmtoll FLTINR1 FLT1P LL_HRTIM_FLT_GetPolarity\n 06863 * FLTINR1 FLT2P LL_HRTIM_FLT_GetPolarity\n 06864 * FLTINR1 FLT3P LL_HRTIM_FLT_GetPolarity\n 06865 * FLTINR1 FLT4P LL_HRTIM_FLT_GetPolarity\n 06866 * FLTINR2 FLT5P LL_HRTIM_FLT_GetPolarity 06867 * @param HRTIMx High Resolution Timer instance 06868 * @param Fault This parameter can be one of the following values: 06869 * @arg @ref LL_HRTIM_FAULT_1 06870 * @arg @ref LL_HRTIM_FAULT_2 06871 * @arg @ref LL_HRTIM_FAULT_3 06872 * @arg @ref LL_HRTIM_FAULT_4 06873 * @arg @ref LL_HRTIM_FAULT_5 06874 * @retval Polarity This parameter can be one of the following values: 06875 * @arg @ref LL_HRTIM_FLT_POLARITY_LOW 06876 * @arg @ref LL_HRTIM_FLT_POLARITY_HIGH 06877 */ 06878 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 06879 { 06880 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06881 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06882 REG_OFFSET_TAB_FLTINR[iFault])); 06883 return (READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1P << REG_SHIFT_TAB_FLTxE[iFault])) >> REG_SHIFT_TAB_FLTxE[iFault]); 06884 } 06885 06886 /** 06887 * @brief Set the digital noise filter of a fault signal. 06888 * @rmtoll FLTINR1 FLT1F LL_HRTIM_FLT_SetFilter\n 06889 * FLTINR1 FLT2F LL_HRTIM_FLT_SetFilter\n 06890 * FLTINR1 FLT3F LL_HRTIM_FLT_SetFilter\n 06891 * FLTINR1 FLT4F LL_HRTIM_FLT_SetFilter\n 06892 * FLTINR2 FLT5F LL_HRTIM_FLT_SetFilter 06893 * @note This function must not be called when the fault channel is enabled. 06894 * @param HRTIMx High Resolution Timer instance 06895 * @param Fault This parameter can be one of the following values: 06896 * @arg @ref LL_HRTIM_FAULT_1 06897 * @arg @ref LL_HRTIM_FAULT_2 06898 * @arg @ref LL_HRTIM_FAULT_3 06899 * @arg @ref LL_HRTIM_FAULT_4 06900 * @arg @ref LL_HRTIM_FAULT_5 06901 * @param Filter This parameter can be one of the following values: 06902 * @arg @ref LL_HRTIM_FLT_FILTER_NONE 06903 * @arg @ref LL_HRTIM_FLT_FILTER_1 06904 * @arg @ref LL_HRTIM_FLT_FILTER_2 06905 * @arg @ref LL_HRTIM_FLT_FILTER_3 06906 * @arg @ref LL_HRTIM_FLT_FILTER_4 06907 * @arg @ref LL_HRTIM_FLT_FILTER_5 06908 * @arg @ref LL_HRTIM_FLT_FILTER_6 06909 * @arg @ref LL_HRTIM_FLT_FILTER_7 06910 * @arg @ref LL_HRTIM_FLT_FILTER_8 06911 * @arg @ref LL_HRTIM_FLT_FILTER_9 06912 * @arg @ref LL_HRTIM_FLT_FILTER_10 06913 * @arg @ref LL_HRTIM_FLT_FILTER_11 06914 * @arg @ref LL_HRTIM_FLT_FILTER_12 06915 * @arg @ref LL_HRTIM_FLT_FILTER_13 06916 * @arg @ref LL_HRTIM_FLT_FILTER_14 06917 * @arg @ref LL_HRTIM_FLT_FILTER_15 06918 * @retval None 06919 */ 06920 __STATIC_INLINE void LL_HRTIM_FLT_SetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Filter) 06921 { 06922 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06923 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06924 REG_OFFSET_TAB_FLTINR[iFault])); 06925 MODIFY_REG(*pReg, (HRTIM_FLTINR1_FLT1F << REG_SHIFT_TAB_FLTxE[iFault]), (Filter << REG_SHIFT_TAB_FLTxE[iFault])); 06926 } 06927 06928 /** 06929 * @brief Get actual digital noise filter setting of a fault signal. 06930 * @rmtoll FLTINR1 FLT1F LL_HRTIM_FLT_GetFilter\n 06931 * FLTINR1 FLT2F LL_HRTIM_FLT_GetFilter\n 06932 * FLTINR1 FLT3F LL_HRTIM_FLT_GetFilter\n 06933 * FLTINR1 FLT4F LL_HRTIM_FLT_GetFilter\n 06934 * FLTINR2 FLT5F LL_HRTIM_FLT_GetFilter 06935 * @param HRTIMx High Resolution Timer instance 06936 * @param Fault This parameter can be one of the following values: 06937 * @arg @ref LL_HRTIM_FAULT_1 06938 * @arg @ref LL_HRTIM_FAULT_2 06939 * @arg @ref LL_HRTIM_FAULT_3 06940 * @arg @ref LL_HRTIM_FAULT_4 06941 * @arg @ref LL_HRTIM_FAULT_5 06942 * @retval Filter This parameter can be one of the following values: 06943 * @arg @ref LL_HRTIM_FLT_FILTER_NONE 06944 * @arg @ref LL_HRTIM_FLT_FILTER_1 06945 * @arg @ref LL_HRTIM_FLT_FILTER_2 06946 * @arg @ref LL_HRTIM_FLT_FILTER_3 06947 * @arg @ref LL_HRTIM_FLT_FILTER_4 06948 * @arg @ref LL_HRTIM_FLT_FILTER_5 06949 * @arg @ref LL_HRTIM_FLT_FILTER_6 06950 * @arg @ref LL_HRTIM_FLT_FILTER_7 06951 * @arg @ref LL_HRTIM_FLT_FILTER_8 06952 * @arg @ref LL_HRTIM_FLT_FILTER_9 06953 * @arg @ref LL_HRTIM_FLT_FILTER_10 06954 * @arg @ref LL_HRTIM_FLT_FILTER_11 06955 * @arg @ref LL_HRTIM_FLT_FILTER_12 06956 * @arg @ref LL_HRTIM_FLT_FILTER_13 06957 * @arg @ref LL_HRTIM_FLT_FILTER_14 06958 * @arg @ref LL_HRTIM_FLT_FILTER_15 06959 */ 06960 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 06961 { 06962 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 06963 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 06964 REG_OFFSET_TAB_FLTINR[iFault])); 06965 return (READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1F << REG_SHIFT_TAB_FLTxE[iFault])) >> REG_SHIFT_TAB_FLTxE[iFault]); 06966 06967 } 06968 06969 /** 06970 * @brief Set the fault circuitry prescaler. 06971 * @rmtoll FLTINR2 FLTSD LL_HRTIM_FLT_SetPrescaler 06972 * @param HRTIMx High Resolution Timer instance 06973 * @param Prescaler This parameter can be one of the following values: 06974 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV1 06975 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV2 06976 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV4 06977 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV8 06978 * @retval None 06979 */ 06980 __STATIC_INLINE void LL_HRTIM_FLT_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler) 06981 { 06982 MODIFY_REG(HRTIMx->sCommonRegs.FLTINR2, HRTIM_FLTINR2_FLTSD, Prescaler); 06983 } 06984 06985 /** 06986 * @brief Get actual fault circuitry prescaler setting. 06987 * @rmtoll FLTINR2 FLTSD LL_HRTIM_FLT_GetPrescaler 06988 * @param HRTIMx High Resolution Timer instance 06989 * @retval Prescaler This parameter can be one of the following values: 06990 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV1 06991 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV2 06992 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV4 06993 * @arg @ref LL_HRTIM_FLT_PRESCALER_DIV8 06994 */ 06995 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetPrescaler(HRTIM_TypeDef *HRTIMx) 06996 { 06997 return (READ_BIT(HRTIMx->sCommonRegs.FLTINR2, HRTIM_FLTINR2_FLTSD)); 06998 } 06999 07000 /** 07001 * @brief Lock the fault signal conditioning settings. 07002 * @rmtoll FLTINR1 FLT1LCK LL_HRTIM_FLT_Lock\n 07003 * FLTINR1 FLT2LCK LL_HRTIM_FLT_Lock\n 07004 * FLTINR1 FLT3LCK LL_HRTIM_FLT_Lock\n 07005 * FLTINR1 FLT4LCK LL_HRTIM_FLT_Lock\n 07006 * FLTINR2 FLT5LCK LL_HRTIM_FLT_Lock 07007 * @param HRTIMx High Resolution Timer instance 07008 * @param Fault This parameter can be one of the following values: 07009 * @arg @ref LL_HRTIM_FAULT_1 07010 * @arg @ref LL_HRTIM_FAULT_2 07011 * @arg @ref LL_HRTIM_FAULT_3 07012 * @arg @ref LL_HRTIM_FAULT_4 07013 * @arg @ref LL_HRTIM_FAULT_5 07014 * @retval None 07015 */ 07016 __STATIC_INLINE void LL_HRTIM_FLT_Lock(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 07017 { 07018 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 07019 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 07020 REG_OFFSET_TAB_FLTINR[iFault])); 07021 SET_BIT(*pReg, (HRTIM_FLTINR1_FLT1LCK << REG_SHIFT_TAB_FLTxE[iFault])); 07022 } 07023 07024 /** 07025 * @brief Enable the fault circuitry for the designated fault input. 07026 * @rmtoll FLTINR1 FLT1E LL_HRTIM_FLT_Enable\n 07027 * FLTINR1 FLT2E LL_HRTIM_FLT_Enable\n 07028 * FLTINR1 FLT3E LL_HRTIM_FLT_Enable\n 07029 * FLTINR1 FLT4E LL_HRTIM_FLT_Enable\n 07030 * FLTINR2 FLT5E LL_HRTIM_FLT_Enable 07031 * @param HRTIMx High Resolution Timer instance 07032 * @param Fault This parameter can be one of the following values: 07033 * @arg @ref LL_HRTIM_FAULT_1 07034 * @arg @ref LL_HRTIM_FAULT_2 07035 * @arg @ref LL_HRTIM_FAULT_3 07036 * @arg @ref LL_HRTIM_FAULT_4 07037 * @arg @ref LL_HRTIM_FAULT_5 07038 * @retval None 07039 */ 07040 __STATIC_INLINE void LL_HRTIM_FLT_Enable(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 07041 { 07042 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 07043 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 07044 REG_OFFSET_TAB_FLTINR[iFault])); 07045 SET_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault])); 07046 } 07047 07048 /** 07049 * @brief Disable the fault circuitry for for the designated fault input. 07050 * @rmtoll FLTINR1 FLT1E LL_HRTIM_FLT_Disable\n 07051 * FLTINR1 FLT2E LL_HRTIM_FLT_Disable\n 07052 * FLTINR1 FLT3E LL_HRTIM_FLT_Disable\n 07053 * FLTINR1 FLT4E LL_HRTIM_FLT_Disable\n 07054 * FLTINR2 FLT5E LL_HRTIM_FLT_Disable 07055 * @param HRTIMx High Resolution Timer instance 07056 * @param Fault This parameter can be one of the following values: 07057 * @arg @ref LL_HRTIM_FAULT_1 07058 * @arg @ref LL_HRTIM_FAULT_2 07059 * @arg @ref LL_HRTIM_FAULT_3 07060 * @arg @ref LL_HRTIM_FAULT_4 07061 * @arg @ref LL_HRTIM_FAULT_5 07062 * @retval None 07063 */ 07064 __STATIC_INLINE void LL_HRTIM_FLT_Disable(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 07065 { 07066 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 07067 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 07068 REG_OFFSET_TAB_FLTINR[iFault])); 07069 CLEAR_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault])); 07070 } 07071 07072 /** 07073 * @brief Indicate whether the fault circuitry is enabled for a given fault input. 07074 * @rmtoll FLTINR1 FLT1E LL_HRTIM_FLT_IsEnabled\n 07075 * FLTINR1 FLT2E LL_HRTIM_FLT_IsEnabled\n 07076 * FLTINR1 FLT3E LL_HRTIM_FLT_IsEnabled\n 07077 * FLTINR1 FLT4E LL_HRTIM_FLT_IsEnabled\n 07078 * FLTINR2 FLT5E LL_HRTIM_FLT_IsEnabled 07079 * @param HRTIMx High Resolution Timer instance 07080 * @param Fault This parameter can be one of the following values: 07081 * @arg @ref LL_HRTIM_FAULT_1 07082 * @arg @ref LL_HRTIM_FAULT_2 07083 * @arg @ref LL_HRTIM_FAULT_3 07084 * @arg @ref LL_HRTIM_FAULT_4 07085 * @arg @ref LL_HRTIM_FAULT_5 07086 * @retval State of FLTxEN bit in HRTIM_FLTINRx register (1 or 0). 07087 */ 07088 __STATIC_INLINE uint32_t LL_HRTIM_FLT_IsEnabled(HRTIM_TypeDef *HRTIMx, uint32_t Fault) 07089 { 07090 uint32_t iFault = (uint8_t)POSITION_VAL(Fault); 07091 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) + 07092 REG_OFFSET_TAB_FLTINR[iFault])); 07093 return (((READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault])) >> REG_SHIFT_TAB_FLTxE[iFault]) == 07094 (HRTIM_IER_FLT1)) ? 1UL : 0UL); 07095 } 07096 07097 /** 07098 * @} 07099 */ 07100 07101 /** @defgroup HRTIM_LL_EF_Burst_Mode_management Burst_Mode_management 07102 * @{ 07103 */ 07104 07105 /** 07106 * @brief Configure the burst mode controller. 07107 * @rmtoll BMCR BMOM LL_HRTIM_BM_Config\n 07108 * BMCR BMCLK LL_HRTIM_BM_Config\n 07109 * BMCR BMPRSC LL_HRTIM_BM_Config 07110 * @param HRTIMx High Resolution Timer instance 07111 * @param Configuration This parameter must be a combination of all the following values: 07112 * @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT or @ref LL_HRTIM_BM_MODE_CONTINOUS 07113 * @arg @ref LL_HRTIM_BM_CLKSRC_MASTER or ... or @ref LL_HRTIM_BM_CLKSRC_FHRTIM 07114 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV1 or ... @ref LL_HRTIM_BM_PRESCALER_DIV32768 07115 * @retval None 07116 */ 07117 __STATIC_INLINE void LL_HRTIM_BM_Config(HRTIM_TypeDef *HRTIMx, uint32_t Configuration) 07118 { 07119 MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BM_CONFIG_MASK, Configuration); 07120 } 07121 07122 /** 07123 * @brief Set the burst mode controller operating mode. 07124 * @rmtoll BMCR BMOM LL_HRTIM_BM_SetMode 07125 * @param HRTIMx High Resolution Timer instance 07126 * @param Mode This parameter can be one of the following values: 07127 * @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT 07128 * @arg @ref LL_HRTIM_BM_MODE_CONTINOUS 07129 * @retval None 07130 */ 07131 __STATIC_INLINE void LL_HRTIM_BM_SetMode(HRTIM_TypeDef *HRTIMx, uint32_t Mode) 07132 { 07133 MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMOM, Mode); 07134 } 07135 07136 /** 07137 * @brief Get actual burst mode controller operating mode. 07138 * @rmtoll BMCR BMOM LL_HRTIM_BM_GetMode 07139 * @param HRTIMx High Resolution Timer instance 07140 * @retval Mode This parameter can be one of the following values: 07141 * @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT 07142 * @arg @ref LL_HRTIM_BM_MODE_CONTINOUS 07143 */ 07144 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetMode(HRTIM_TypeDef *HRTIMx) 07145 { 07146 return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMOM); 07147 } 07148 07149 /** 07150 * @brief Set the burst mode controller clock source. 07151 * @rmtoll BMCR BMCLK LL_HRTIM_BM_SetClockSrc 07152 * @param HRTIMx High Resolution Timer instance 07153 * @param ClockSrc This parameter can be one of the following values: 07154 * @arg @ref LL_HRTIM_BM_CLKSRC_MASTER 07155 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A 07156 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B 07157 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C 07158 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D 07159 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E 07160 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC 07161 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC 07162 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO 07163 * @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM 07164 * @retval None 07165 */ 07166 __STATIC_INLINE void LL_HRTIM_BM_SetClockSrc(HRTIM_TypeDef *HRTIMx, uint32_t ClockSrc) 07167 { 07168 MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMCLK, ClockSrc); 07169 } 07170 07171 /** 07172 * @brief Get actual burst mode controller clock source. 07173 * @rmtoll BMCR BMCLK LL_HRTIM_BM_GetClockSrc 07174 * @param HRTIMx High Resolution Timer instance 07175 * @retval ClockSrc This parameter can be one of the following values: 07176 * @arg @ref LL_HRTIM_BM_CLKSRC_MASTER 07177 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A 07178 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B 07179 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C 07180 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D 07181 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E 07182 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC 07183 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC 07184 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO 07185 * @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM 07186 * @retval ClockSrc This parameter can be one of the following values: 07187 * @arg @ref LL_HRTIM_BM_CLKSRC_MASTER 07188 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A 07189 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B 07190 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C 07191 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D 07192 * @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E 07193 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC 07194 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC 07195 * @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO 07196 * @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM 07197 */ 07198 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetClockSrc(HRTIM_TypeDef *HRTIMx) 07199 { 07200 return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMCLK); 07201 } 07202 07203 /** 07204 * @brief Set the burst mode controller prescaler. 07205 * @rmtoll BMCR BMPRSC LL_HRTIM_BM_SetPrescaler 07206 * @param HRTIMx High Resolution Timer instance 07207 * @param Prescaler This parameter can be one of the following values: 07208 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV1 07209 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV2 07210 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV4 07211 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV8 07212 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV16 07213 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV32 07214 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV64 07215 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV128 07216 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV256 07217 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV512 07218 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV1024 07219 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV2048 07220 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV4096 07221 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV8192 07222 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV16384 07223 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV32768 07224 * @retval None 07225 */ 07226 __STATIC_INLINE void LL_HRTIM_BM_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler) 07227 { 07228 MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPRSC, Prescaler); 07229 } 07230 07231 /** 07232 * @brief Get actual burst mode controller prescaler setting. 07233 * @rmtoll BMCR BMPRSC LL_HRTIM_BM_GetPrescaler 07234 * @param HRTIMx High Resolution Timer instance 07235 * @retval Prescaler This parameter can be one of the following values: 07236 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV1 07237 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV2 07238 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV4 07239 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV8 07240 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV16 07241 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV32 07242 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV64 07243 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV128 07244 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV256 07245 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV512 07246 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV1024 07247 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV2048 07248 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV4096 07249 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV8192 07250 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV16384 07251 * @arg @ref LL_HRTIM_BM_PRESCALER_DIV32768 07252 */ 07253 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetPrescaler(HRTIM_TypeDef *HRTIMx) 07254 { 07255 return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPRSC); 07256 } 07257 07258 /** 07259 * @brief Enable burst mode compare and period registers preload. 07260 * @rmtoll BMCR BMPREN LL_HRTIM_BM_EnablePreload 07261 * @param HRTIMx High Resolution Timer instance 07262 * @retval None 07263 */ 07264 __STATIC_INLINE void LL_HRTIM_BM_EnablePreload(HRTIM_TypeDef *HRTIMx) 07265 { 07266 SET_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN); 07267 } 07268 07269 /** 07270 * @brief Disable burst mode compare and period registers preload. 07271 * @rmtoll BMCR BMPREN LL_HRTIM_BM_DisablePreload 07272 * @param HRTIMx High Resolution Timer instance 07273 * @retval None 07274 */ 07275 __STATIC_INLINE void LL_HRTIM_BM_DisablePreload(HRTIM_TypeDef *HRTIMx) 07276 { 07277 CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN); 07278 } 07279 07280 /** 07281 * @brief Indicate whether burst mode compare and period registers are preloaded. 07282 * @rmtoll BMCR BMPREN LL_HRTIM_BM_IsEnabledPreload 07283 * @param HRTIMx High Resolution Timer instance 07284 * @retval State of BMPREN bit in HRTIM_BMCR register (1 or 0). 07285 */ 07286 __STATIC_INLINE uint32_t LL_HRTIM_BM_IsEnabledPreload(HRTIM_TypeDef *HRTIMx) 07287 { 07288 uint32_t temp; /* MISRAC-2012 compliance */ 07289 temp = READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN); 07290 07291 return ((temp == (HRTIM_BMCR_BMPREN)) ? 1UL : 0UL); 07292 } 07293 07294 /** 07295 * @brief Set the burst mode controller trigger 07296 * @rmtoll BMTRGR SW LL_HRTIM_BM_SetTrig\n 07297 * BMTRGR MSTRST LL_HRTIM_BM_SetTrig\n 07298 * BMTRGR MSTREP LL_HRTIM_BM_SetTrig\n 07299 * BMTRGR MSTCMP1 LL_HRTIM_BM_SetTrig\n 07300 * BMTRGR MSTCMP2 LL_HRTIM_BM_SetTrig\n 07301 * BMTRGR MSTCMP3 LL_HRTIM_BM_SetTrig\n 07302 * BMTRGR MSTCMP4 LL_HRTIM_BM_SetTrig\n 07303 * BMTRGR TARST LL_HRTIM_BM_SetTrig\n 07304 * BMTRGR TAREP LL_HRTIM_BM_SetTrig\n 07305 * BMTRGR TACMP1 LL_HRTIM_BM_SetTrig\n 07306 * BMTRGR TACMP2 LL_HRTIM_BM_SetTrig\n 07307 * BMTRGR TBRST LL_HRTIM_BM_SetTrig\n 07308 * BMTRGR TBREP LL_HRTIM_BM_SetTrig\n 07309 * BMTRGR TBCMP1 LL_HRTIM_BM_SetTrig\n 07310 * BMTRGR TBCMP2 LL_HRTIM_BM_SetTrig\n 07311 * BMTRGR TCRST LL_HRTIM_BM_SetTrig\n 07312 * BMTRGR TCREP LL_HRTIM_BM_SetTrig\n 07313 * BMTRGR TCCMP1 LL_HRTIM_BM_SetTrig\n 07314 * BMTRGR TCCMP2 LL_HRTIM_BM_SetTrig\n 07315 * BMTRGR TDRST LL_HRTIM_BM_SetTrig\n 07316 * BMTRGR TDREP LL_HRTIM_BM_SetTrig\n 07317 * BMTRGR TDCMP1 LL_HRTIM_BM_SetTrig\n 07318 * BMTRGR TDCMP2 LL_HRTIM_BM_SetTrig\n 07319 * BMTRGR TERST LL_HRTIM_BM_SetTrig\n 07320 * BMTRGR TEREP LL_HRTIM_BM_SetTrig\n 07321 * BMTRGR TECMP1 LL_HRTIM_BM_SetTrig\n 07322 * BMTRGR TECMP2 LL_HRTIM_BM_SetTrig\n 07323 * BMTRGR TAEEV7 LL_HRTIM_BM_SetTrig\n 07324 * BMTRGR TAEEV8 LL_HRTIM_BM_SetTrig\n 07325 * BMTRGR EEV7 LL_HRTIM_BM_SetTrig\n 07326 * BMTRGR EEV8 LL_HRTIM_BM_SetTrig\n 07327 * BMTRGR OCHIPEV LL_HRTIM_BM_SetTrig 07328 * @param HRTIMx High Resolution Timer instance 07329 * @param Trig This parameter can be a combination of the following values: 07330 * @arg @ref LL_HRTIM_BM_TRIG_NONE 07331 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_RESET 07332 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_REPETITION 07333 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP1 07334 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP2 07335 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP3 07336 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP4 07337 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_RESET 07338 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_REPETITION 07339 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP1 07340 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP2 07341 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_RESET 07342 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_REPETITION 07343 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP1 07344 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP2 07345 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_RESET 07346 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_REPETITION 07347 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP1 07348 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP2 07349 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_RESET 07350 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_REPETITION 07351 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP1 07352 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP2 07353 * @arg @ref LL_HRTIM_BM_TRIG_TIME_RESET 07354 * @arg @ref LL_HRTIM_BM_TRIG_TIME_REPETITION 07355 * @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP1 07356 * @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP2 07357 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_EVENT7 07358 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_EVENT8 07359 * @arg @ref LL_HRTIM_BM_TRIG_EVENT_7 07360 * @arg @ref LL_HRTIM_BM_TRIG_EVENT_8 07361 * @arg @ref LL_HRTIM_BM_TRIG_EVENT_ONCHIP 07362 * @retval None 07363 */ 07364 __STATIC_INLINE void LL_HRTIM_BM_SetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Trig) 07365 { 07366 WRITE_REG(HRTIMx->sCommonRegs.BMTRGR, Trig); 07367 } 07368 07369 /** 07370 * @brief Get actual burst mode controller trigger. 07371 * @rmtoll BMTRGR SW LL_HRTIM_BM_GetTrig\n 07372 * BMTRGR MSTRST LL_HRTIM_BM_GetTrig\n 07373 * BMTRGR MSTREP LL_HRTIM_BM_GetTrig\n 07374 * BMTRGR MSTCMP1 LL_HRTIM_BM_GetTrig\n 07375 * BMTRGR MSTCMP2 LL_HRTIM_BM_GetTrig\n 07376 * BMTRGR MSTCMP3 LL_HRTIM_BM_GetTrig\n 07377 * BMTRGR MSTCMP4 LL_HRTIM_BM_GetTrig\n 07378 * BMTRGR TARST LL_HRTIM_BM_GetTrig\n 07379 * BMTRGR TAREP LL_HRTIM_BM_GetTrig\n 07380 * BMTRGR TACMP1 LL_HRTIM_BM_GetTrig\n 07381 * BMTRGR TACMP2 LL_HRTIM_BM_GetTrig\n 07382 * BMTRGR TBRST LL_HRTIM_BM_GetTrig\n 07383 * BMTRGR TBREP LL_HRTIM_BM_GetTrig\n 07384 * BMTRGR TBCMP1 LL_HRTIM_BM_GetTrig\n 07385 * BMTRGR TBCMP2 LL_HRTIM_BM_GetTrig\n 07386 * BMTRGR TCRST LL_HRTIM_BM_GetTrig\n 07387 * BMTRGR TCREP LL_HRTIM_BM_GetTrig\n 07388 * BMTRGR TCCMP1 LL_HRTIM_BM_GetTrig\n 07389 * BMTRGR TCCMP2 LL_HRTIM_BM_GetTrig\n 07390 * BMTRGR TDRST LL_HRTIM_BM_GetTrig\n 07391 * BMTRGR TDREP LL_HRTIM_BM_GetTrig\n 07392 * BMTRGR TDCMP1 LL_HRTIM_BM_GetTrig\n 07393 * BMTRGR TDCMP2 LL_HRTIM_BM_GetTrig\n 07394 * BMTRGR TERST LL_HRTIM_BM_GetTrig\n 07395 * BMTRGR TEREP LL_HRTIM_BM_GetTrig\n 07396 * BMTRGR TECMP1 LL_HRTIM_BM_GetTrig\n 07397 * BMTRGR TECMP2 LL_HRTIM_BM_GetTrig\n 07398 * BMTRGR TAEEV7 LL_HRTIM_BM_GetTrig\n 07399 * BMTRGR TAEEV8 LL_HRTIM_BM_GetTrig\n 07400 * BMTRGR EEV7 LL_HRTIM_BM_GetTrig\n 07401 * BMTRGR EEV8 LL_HRTIM_BM_GetTrig\n 07402 * BMTRGR OCHIPEV LL_HRTIM_BM_GetTrig 07403 * @param HRTIMx High Resolution Timer instance 07404 * @retval Trig This parameter can be a combination of the following values: 07405 * @arg @ref LL_HRTIM_BM_TRIG_NONE 07406 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_RESET 07407 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_REPETITION 07408 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP1 07409 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP2 07410 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP3 07411 * @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP4 07412 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_RESET 07413 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_REPETITION 07414 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP1 07415 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP2 07416 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_RESET 07417 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_REPETITION 07418 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP1 07419 * @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP2 07420 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_RESET 07421 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_REPETITION 07422 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP1 07423 * @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP2 07424 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_RESET 07425 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_REPETITION 07426 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP1 07427 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP2 07428 * @arg @ref LL_HRTIM_BM_TRIG_TIME_RESET 07429 * @arg @ref LL_HRTIM_BM_TRIG_TIME_REPETITION 07430 * @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP1 07431 * @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP2 07432 * @arg @ref LL_HRTIM_BM_TRIG_TIMA_EVENT7 07433 * @arg @ref LL_HRTIM_BM_TRIG_TIMD_EVENT8 07434 * @arg @ref LL_HRTIM_BM_TRIG_EVENT_7 07435 * @arg @ref LL_HRTIM_BM_TRIG_EVENT_8 07436 * @arg @ref LL_HRTIM_BM_TRIG_EVENT_ONCHIP 07437 */ 07438 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetTrig(HRTIM_TypeDef *HRTIMx) 07439 { 07440 return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMTRGR); 07441 } 07442 07443 /** 07444 * @brief Set the burst mode controller compare value. 07445 * @rmtoll BMCMPR BMCMP LL_HRTIM_BM_SetCompare 07446 * @param HRTIMx High Resolution Timer instance 07447 * @param CompareValue Compare value must be above or equal to 3 07448 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 07449 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 07450 * @retval None 07451 */ 07452 __STATIC_INLINE void LL_HRTIM_BM_SetCompare(HRTIM_TypeDef *HRTIMx, uint32_t CompareValue) 07453 { 07454 WRITE_REG(HRTIMx->sCommonRegs.BMCMPR, CompareValue); 07455 } 07456 07457 /** 07458 * @brief Get actual burst mode controller compare value. 07459 * @rmtoll BMCMPR BMCMP LL_HRTIM_BM_GetCompare 07460 * @param HRTIMx High Resolution Timer instance 07461 * @retval CompareValue Compare value must be above or equal to 3 07462 * periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0, 07463 * 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 07464 */ 07465 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetCompare(HRTIM_TypeDef *HRTIMx) 07466 { 07467 return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMCMPR); 07468 } 07469 07470 /** 07471 * @brief Set the burst mode controller period. 07472 * @rmtoll BMPER BMPER LL_HRTIM_BM_SetPeriod 07473 * @param HRTIMx High Resolution Timer instance 07474 * @param Period The period value must be above or equal to 3 periods of the fHRTIM clock, 07475 * that is 0x60 if CKPSC[2:0] = 0, 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 07476 * The maximum value is 0x0000 FFDF. 07477 * @retval None 07478 */ 07479 __STATIC_INLINE void LL_HRTIM_BM_SetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Period) 07480 { 07481 WRITE_REG(HRTIMx->sCommonRegs.BMPER, Period); 07482 } 07483 07484 /** 07485 * @brief Get actual burst mode controller period. 07486 * @rmtoll BMPER BMPER LL_HRTIM_BM_GetPeriod 07487 * @param HRTIMx High Resolution Timer instance 07488 * @retval The period value must be above or equal to 3 periods of the fHRTIM clock, 07489 * that is 0x60 if CKPSC[2:0] = 0, 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,... 07490 * The maximum value is 0x0000 FFDF. 07491 */ 07492 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetPeriod(HRTIM_TypeDef *HRTIMx) 07493 { 07494 return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMPER); 07495 } 07496 07497 /** 07498 * @brief Enable the burst mode controller 07499 * @rmtoll BMCR BME LL_HRTIM_BM_Enable 07500 * @param HRTIMx High Resolution Timer instance 07501 * @retval None 07502 */ 07503 __STATIC_INLINE void LL_HRTIM_BM_Enable(HRTIM_TypeDef *HRTIMx) 07504 { 07505 SET_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME); 07506 } 07507 07508 /** 07509 * @brief Disable the burst mode controller 07510 * @rmtoll BMCR BME LL_HRTIM_BM_Disable 07511 * @param HRTIMx High Resolution Timer instance 07512 * @retval None 07513 */ 07514 __STATIC_INLINE void LL_HRTIM_BM_Disable(HRTIM_TypeDef *HRTIMx) 07515 { 07516 CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME); 07517 } 07518 07519 /** 07520 * @brief Indicate whether the burst mode controller is enabled. 07521 * @rmtoll BMCR BME LL_HRTIM_BM_IsEnabled 07522 * @param HRTIMx High Resolution Timer instance 07523 * @retval State of BME bit in HRTIM_BMCR register (1 or 0). 07524 */ 07525 __STATIC_INLINE uint32_t LL_HRTIM_BM_IsEnabled(HRTIM_TypeDef *HRTIMx) 07526 { 07527 return ((READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME) == (HRTIM_BMCR_BME)) ? 1UL : 0UL); 07528 } 07529 07530 /** 07531 * @brief Trigger the burst operation (software trigger) 07532 * @rmtoll BMTRGR SW LL_HRTIM_BM_Start 07533 * @param HRTIMx High Resolution Timer instance 07534 * @retval None 07535 */ 07536 __STATIC_INLINE void LL_HRTIM_BM_Start(HRTIM_TypeDef *HRTIMx) 07537 { 07538 SET_BIT(HRTIMx->sCommonRegs.BMTRGR, HRTIM_BMTRGR_SW); 07539 } 07540 07541 /** 07542 * @brief Stop the burst mode operation. 07543 * @rmtoll BMCR BMSTAT LL_HRTIM_BM_Stop 07544 * @note Causes a burst mode early termination. 07545 * @param HRTIMx High Resolution Timer instance 07546 * @retval None 07547 */ 07548 __STATIC_INLINE void LL_HRTIM_BM_Stop(HRTIM_TypeDef *HRTIMx) 07549 { 07550 CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMSTAT); 07551 } 07552 07553 /** 07554 * @brief Get actual burst mode status 07555 * @rmtoll BMCR BMSTAT LL_HRTIM_BM_GetStatus 07556 * @param HRTIMx High Resolution Timer instance 07557 * @retval Status This parameter can be one of the following values: 07558 * @arg @ref LL_HRTIM_BM_STATUS_NORMAL 07559 * @arg @ref LL_HRTIM_BM_STATUS_BURST_ONGOING 07560 */ 07561 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetStatus(HRTIM_TypeDef *HRTIMx) 07562 { 07563 return (READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMSTAT)); 07564 } 07565 07566 /** 07567 * @} 07568 */ 07569 07570 /** @defgroup HRTIM_LL_EF_FLAG_Management FLAG_Management 07571 * @{ 07572 */ 07573 07574 /** 07575 * @brief Clear the Fault 1 interrupt flag. 07576 * @rmtoll ICR FLT1C LL_HRTIM_ClearFlag_FLT1 07577 * @param HRTIMx High Resolution Timer instance 07578 * @retval None 07579 */ 07580 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT1(HRTIM_TypeDef *HRTIMx) 07581 { 07582 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT1C); 07583 } 07584 07585 /** 07586 * @brief Indicate whether Fault 1 interrupt occurred. 07587 * @rmtoll ICR FLT1 LL_HRTIM_IsActiveFlag_FLT1 07588 * @param HRTIMx High Resolution Timer instance 07589 * @retval State of FLT1 bit in HRTIM_ISR register (1 or 0). 07590 */ 07591 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT1(HRTIM_TypeDef *HRTIMx) 07592 { 07593 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT1) == (HRTIM_ISR_FLT1)) ? 1UL : 0UL); 07594 } 07595 07596 /** 07597 * @brief Clear the Fault 2 interrupt flag. 07598 * @rmtoll ICR FLT2C LL_HRTIM_ClearFlag_FLT2 07599 * @param HRTIMx High Resolution Timer instance 07600 * @retval None 07601 */ 07602 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT2(HRTIM_TypeDef *HRTIMx) 07603 { 07604 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT2C); 07605 } 07606 07607 /** 07608 * @brief Indicate whether Fault 2 interrupt occurred. 07609 * @rmtoll ICR FLT2 LL_HRTIM_IsActiveFlag_FLT2 07610 * @param HRTIMx High Resolution Timer instance 07611 * @retval State of FLT2 bit in HRTIM_ISR register (1 or 0). 07612 */ 07613 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT2(HRTIM_TypeDef *HRTIMx) 07614 { 07615 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT2) == (HRTIM_ISR_FLT2)) ? 1UL : 0UL); 07616 } 07617 07618 /** 07619 * @brief Clear the Fault 3 interrupt flag. 07620 * @rmtoll ICR FLT3C LL_HRTIM_ClearFlag_FLT3 07621 * @param HRTIMx High Resolution Timer instance 07622 * @retval None 07623 */ 07624 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT3(HRTIM_TypeDef *HRTIMx) 07625 { 07626 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT3C); 07627 } 07628 07629 /** 07630 * @brief Indicate whether Fault 3 interrupt occurred. 07631 * @rmtoll ICR FLT3 LL_HRTIM_IsActiveFlag_FLT3 07632 * @param HRTIMx High Resolution Timer instance 07633 * @retval State of FLT3 bit in HRTIM_ISR register (1 or 0). 07634 */ 07635 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT3(HRTIM_TypeDef *HRTIMx) 07636 { 07637 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT3) == (HRTIM_ISR_FLT3)) ? 1UL : 0UL); 07638 } 07639 07640 /** 07641 * @brief Clear the Fault 4 interrupt flag. 07642 * @rmtoll ICR FLT4C LL_HRTIM_ClearFlag_FLT4 07643 * @param HRTIMx High Resolution Timer instance 07644 * @retval None 07645 */ 07646 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT4(HRTIM_TypeDef *HRTIMx) 07647 { 07648 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT4C); 07649 } 07650 07651 /** 07652 * @brief Indicate whether Fault 4 interrupt occurred. 07653 * @rmtoll ICR FLT4 LL_HRTIM_IsActiveFlag_FLT4 07654 * @param HRTIMx High Resolution Timer instance 07655 * @retval State of FLT4 bit in HRTIM_ISR register (1 or 0). 07656 */ 07657 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT4(HRTIM_TypeDef *HRTIMx) 07658 { 07659 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT4) == (HRTIM_ISR_FLT4)) ? 1UL : 0UL); 07660 } 07661 07662 /** 07663 * @brief Clear the Fault 5 interrupt flag. 07664 * @rmtoll ICR FLT5C LL_HRTIM_ClearFlag_FLT5 07665 * @param HRTIMx High Resolution Timer instance 07666 * @retval None 07667 */ 07668 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT5(HRTIM_TypeDef *HRTIMx) 07669 { 07670 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT5C); 07671 } 07672 07673 /** 07674 * @brief Indicate whether Fault 5 interrupt occurred. 07675 * @rmtoll ICR FLT5 LL_HRTIM_IsActiveFlag_FLT5 07676 * @param HRTIMx High Resolution Timer instance 07677 * @retval State of FLT5 bit in HRTIM_ISR register (1 or 0). 07678 */ 07679 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT5(HRTIM_TypeDef *HRTIMx) 07680 { 07681 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT5) == (HRTIM_ISR_FLT5)) ? 1UL : 0UL); 07682 } 07683 07684 /** 07685 * @brief Clear the System Fault interrupt flag. 07686 * @rmtoll ICR SYSFLTC LL_HRTIM_ClearFlag_SYSFLT 07687 * @param HRTIMx High Resolution Timer instance 07688 * @retval None 07689 */ 07690 __STATIC_INLINE void LL_HRTIM_ClearFlag_SYSFLT(HRTIM_TypeDef *HRTIMx) 07691 { 07692 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_SYSFLTC); 07693 } 07694 07695 /** 07696 * @brief Indicate whether System Fault interrupt occurred. 07697 * @rmtoll ISR SYSFLT LL_HRTIM_IsActiveFlag_SYSFLT 07698 * @param HRTIMx High Resolution Timer instance 07699 * @retval State of SYSFLT bit in HRTIM_ISR register (1 or 0). 07700 */ 07701 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SYSFLT(HRTIM_TypeDef *HRTIMx) 07702 { 07703 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_SYSFLT) == (HRTIM_ISR_SYSFLT)) ? 1UL : 0UL); 07704 } 07705 07706 /** 07707 * @brief Clear the Burst Mode period interrupt flag. 07708 * @rmtoll ICR BMPERC LL_HRTIM_ClearFlag_BMPER 07709 * @param HRTIMx High Resolution Timer instance 07710 * @retval None 07711 */ 07712 __STATIC_INLINE void LL_HRTIM_ClearFlag_BMPER(HRTIM_TypeDef *HRTIMx) 07713 { 07714 SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_BMPERC); 07715 } 07716 07717 /** 07718 * @brief Indicate whether Burst Mode period interrupt occurred. 07719 * @rmtoll ISR BMPER LL_HRTIM_IsActiveFlag_BMPER 07720 * @param HRTIMx High Resolution Timer instance 07721 * @retval State of BMPER bit in HRTIM_ISR register (1 or 0). 07722 */ 07723 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_BMPER(HRTIM_TypeDef *HRTIMx) 07724 { 07725 return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_BMPER) == (HRTIM_ISR_BMPER)) ? 1UL : 0UL); 07726 } 07727 07728 /** 07729 * @brief Clear the Synchronization Input interrupt flag. 07730 * @rmtoll MICR SYNCC LL_HRTIM_ClearFlag_SYNC 07731 * @param HRTIMx High Resolution Timer instance 07732 * @retval None 07733 */ 07734 __STATIC_INLINE void LL_HRTIM_ClearFlag_SYNC(HRTIM_TypeDef *HRTIMx) 07735 { 07736 SET_BIT(HRTIMx->sMasterRegs.MICR, HRTIM_MICR_SYNC); 07737 } 07738 07739 /** 07740 * @brief Indicate whether the Synchronization Input interrupt occurred. 07741 * @rmtoll MISR SYNC LL_HRTIM_IsActiveFlag_SYNC 07742 * @param HRTIMx High Resolution Timer instance 07743 * @retval State of SYNC bit in HRTIM_MISR register (1 or 0). 07744 */ 07745 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SYNC(HRTIM_TypeDef *HRTIMx) 07746 { 07747 return ((READ_BIT(HRTIMx->sMasterRegs.MISR, HRTIM_MISR_SYNC) == (HRTIM_MISR_SYNC)) ? 1UL : 0UL); 07748 } 07749 07750 /** 07751 * @brief Clear the update interrupt flag for a given timer (including the master timer) . 07752 * @rmtoll MICR MUPDC LL_HRTIM_ClearFlag_UPDATE\n 07753 * TIMxICR UPDC LL_HRTIM_ClearFlag_UPDATE 07754 * @param HRTIMx High Resolution Timer instance 07755 * @param Timer This parameter can be one of the following values: 07756 * @arg @ref LL_HRTIM_TIMER_MASTER 07757 * @arg @ref LL_HRTIM_TIMER_A 07758 * @arg @ref LL_HRTIM_TIMER_B 07759 * @arg @ref LL_HRTIM_TIMER_C 07760 * @arg @ref LL_HRTIM_TIMER_D 07761 * @arg @ref LL_HRTIM_TIMER_E 07762 * @retval None 07763 */ 07764 __STATIC_INLINE void LL_HRTIM_ClearFlag_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07765 { 07766 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07767 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 07768 REG_OFFSET_TAB_TIMER[iTimer])); 07769 SET_BIT(*pReg, HRTIM_MICR_MUPD); 07770 } 07771 07772 /** 07773 * @brief Indicate whether the update interrupt has occurred for a given timer (including the master timer) . 07774 * @rmtoll MISR MUPD LL_HRTIM_IsActiveFlag_UPDATE\n 07775 * TIMxISR UPD LL_HRTIM_IsActiveFlag_UPDATE 07776 * @param HRTIMx High Resolution Timer instance 07777 * @param Timer This parameter can be one of the following values: 07778 * @arg @ref LL_HRTIM_TIMER_MASTER 07779 * @arg @ref LL_HRTIM_TIMER_A 07780 * @arg @ref LL_HRTIM_TIMER_B 07781 * @arg @ref LL_HRTIM_TIMER_C 07782 * @arg @ref LL_HRTIM_TIMER_D 07783 * @arg @ref LL_HRTIM_TIMER_E 07784 * @retval State of MUPD/UPD bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0). 07785 */ 07786 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07787 { 07788 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07789 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 07790 REG_OFFSET_TAB_TIMER[iTimer])); 07791 07792 return ((READ_BIT(*pReg, HRTIM_MISR_MUPD) == (HRTIM_MISR_MUPD)) ? 1UL : 0UL); 07793 } 07794 07795 /** 07796 * @brief Clear the repetition interrupt flag for a given timer (including the master timer) . 07797 * @rmtoll MICR MREPC LL_HRTIM_ClearFlag_REP\n 07798 * TIMxICR REPC LL_HRTIM_ClearFlag_REP 07799 * @param HRTIMx High Resolution Timer instance 07800 * @param Timer This parameter can be one of the following values: 07801 * @arg @ref LL_HRTIM_TIMER_MASTER 07802 * @arg @ref LL_HRTIM_TIMER_A 07803 * @arg @ref LL_HRTIM_TIMER_B 07804 * @arg @ref LL_HRTIM_TIMER_C 07805 * @arg @ref LL_HRTIM_TIMER_D 07806 * @arg @ref LL_HRTIM_TIMER_E 07807 * @retval None 07808 */ 07809 __STATIC_INLINE void LL_HRTIM_ClearFlag_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07810 { 07811 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07812 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 07813 REG_OFFSET_TAB_TIMER[iTimer])); 07814 SET_BIT(*pReg, HRTIM_MICR_MREP); 07815 07816 } 07817 07818 /** 07819 * @brief Indicate whether the repetition interrupt has occurred for a given timer (including the master timer) . 07820 * @rmtoll MISR MREP LL_HRTIM_IsActiveFlag_REP\n 07821 * TIMxISR REP LL_HRTIM_IsActiveFlag_REP 07822 * @param HRTIMx High Resolution Timer instance 07823 * @param Timer This parameter can be one of the following values: 07824 * @arg @ref LL_HRTIM_TIMER_MASTER 07825 * @arg @ref LL_HRTIM_TIMER_A 07826 * @arg @ref LL_HRTIM_TIMER_B 07827 * @arg @ref LL_HRTIM_TIMER_C 07828 * @arg @ref LL_HRTIM_TIMER_D 07829 * @arg @ref LL_HRTIM_TIMER_E 07830 * @retval State of MREP/REP bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0). 07831 */ 07832 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07833 { 07834 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07835 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 07836 REG_OFFSET_TAB_TIMER[iTimer])); 07837 07838 return ((READ_BIT(*pReg, HRTIM_MISR_MREP) == (HRTIM_MISR_MREP)) ? 1UL : 0UL); 07839 } 07840 07841 /** 07842 * @brief Clear the compare 1 match interrupt for a given timer (including the master timer). 07843 * @rmtoll MICR MCMP1C LL_HRTIM_ClearFlag_CMP1\n 07844 * TIMxICR CMP1C LL_HRTIM_ClearFlag_CMP1 07845 * @param HRTIMx High Resolution Timer instance 07846 * @param Timer This parameter can be one of the following values: 07847 * @arg @ref LL_HRTIM_TIMER_MASTER 07848 * @arg @ref LL_HRTIM_TIMER_A 07849 * @arg @ref LL_HRTIM_TIMER_B 07850 * @arg @ref LL_HRTIM_TIMER_C 07851 * @arg @ref LL_HRTIM_TIMER_D 07852 * @arg @ref LL_HRTIM_TIMER_E 07853 * @retval None 07854 */ 07855 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07856 { 07857 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07858 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 07859 REG_OFFSET_TAB_TIMER[iTimer])); 07860 SET_BIT(*pReg, HRTIM_MICR_MCMP1); 07861 } 07862 07863 /** 07864 * @brief Indicate whether the compare match 1 interrupt has occurred for a given timer (including the master timer) . 07865 * @rmtoll MISR MCMP1 LL_HRTIM_IsActiveFlag_CMP1\n 07866 * TIMxISR CMP1 LL_HRTIM_IsActiveFlag_CMP1 07867 * @param HRTIMx High Resolution Timer instance 07868 * @param Timer This parameter can be one of the following values: 07869 * @arg @ref LL_HRTIM_TIMER_MASTER 07870 * @arg @ref LL_HRTIM_TIMER_A 07871 * @arg @ref LL_HRTIM_TIMER_B 07872 * @arg @ref LL_HRTIM_TIMER_C 07873 * @arg @ref LL_HRTIM_TIMER_D 07874 * @arg @ref LL_HRTIM_TIMER_E 07875 * @retval State of MCMP1/CMP1 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0). 07876 */ 07877 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07878 { 07879 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07880 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 07881 REG_OFFSET_TAB_TIMER[iTimer])); 07882 07883 return ((READ_BIT(*pReg, HRTIM_MISR_MCMP1) == (HRTIM_MISR_MCMP1)) ? 1UL : 0UL); 07884 } 07885 07886 /** 07887 * @brief Clear the compare 2 match interrupt for a given timer (including the master timer). 07888 * @rmtoll MICR MCMP2C LL_HRTIM_ClearFlag_CMP2\n 07889 * TIMxICR CMP2C LL_HRTIM_ClearFlag_CMP2 07890 * @param HRTIMx High Resolution Timer instance 07891 * @param Timer This parameter can be one of the following values: 07892 * @arg @ref LL_HRTIM_TIMER_MASTER 07893 * @arg @ref LL_HRTIM_TIMER_A 07894 * @arg @ref LL_HRTIM_TIMER_B 07895 * @arg @ref LL_HRTIM_TIMER_C 07896 * @arg @ref LL_HRTIM_TIMER_D 07897 * @arg @ref LL_HRTIM_TIMER_E 07898 * @retval None 07899 */ 07900 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07901 { 07902 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07903 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 07904 REG_OFFSET_TAB_TIMER[iTimer])); 07905 SET_BIT(*pReg, HRTIM_MICR_MCMP2); 07906 } 07907 07908 /** 07909 * @brief Indicate whether the compare match 2 interrupt has occurred for a given timer (including the master timer) . 07910 * @rmtoll MISR MCMP2 LL_HRTIM_IsActiveFlag_CMP2\n 07911 * TIMxISR CMP2 LL_HRTIM_IsActiveFlag_CMP2 07912 * @param HRTIMx High Resolution Timer instance 07913 * @param Timer This parameter can be one of the following values: 07914 * @arg @ref LL_HRTIM_TIMER_MASTER 07915 * @arg @ref LL_HRTIM_TIMER_A 07916 * @arg @ref LL_HRTIM_TIMER_B 07917 * @arg @ref LL_HRTIM_TIMER_C 07918 * @arg @ref LL_HRTIM_TIMER_D 07919 * @arg @ref LL_HRTIM_TIMER_E 07920 * @retval State of MCMP2/CMP2 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0). 07921 */ 07922 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07923 { 07924 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07925 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 07926 REG_OFFSET_TAB_TIMER[iTimer])); 07927 07928 return ((READ_BIT(*pReg, HRTIM_MISR_MCMP2) == (HRTIM_MISR_MCMP2)) ? 1UL : 0UL); 07929 } 07930 07931 /** 07932 * @brief Clear the compare 3 match interrupt for a given timer (including the master timer). 07933 * @rmtoll MICR MCMP3C LL_HRTIM_ClearFlag_CMP3\n 07934 * TIMxICR CMP3C LL_HRTIM_ClearFlag_CMP3 07935 * @param HRTIMx High Resolution Timer instance 07936 * @param Timer This parameter can be one of the following values: 07937 * @arg @ref LL_HRTIM_TIMER_MASTER 07938 * @arg @ref LL_HRTIM_TIMER_A 07939 * @arg @ref LL_HRTIM_TIMER_B 07940 * @arg @ref LL_HRTIM_TIMER_C 07941 * @arg @ref LL_HRTIM_TIMER_D 07942 * @arg @ref LL_HRTIM_TIMER_E 07943 * @retval None 07944 */ 07945 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07946 { 07947 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07948 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 07949 REG_OFFSET_TAB_TIMER[iTimer])); 07950 SET_BIT(*pReg, HRTIM_MICR_MCMP3); 07951 } 07952 07953 /** 07954 * @brief Indicate whether the compare match 3 interrupt has occurred for a given timer (including the master timer) . 07955 * @rmtoll MISR MCMP3 LL_HRTIM_IsActiveFlag_CMP3\n 07956 * TIMxISR CMP3 LL_HRTIM_IsActiveFlag_CMP3 07957 * @param HRTIMx High Resolution Timer instance 07958 * @param Timer This parameter can be one of the following values: 07959 * @arg @ref LL_HRTIM_TIMER_MASTER 07960 * @arg @ref LL_HRTIM_TIMER_A 07961 * @arg @ref LL_HRTIM_TIMER_B 07962 * @arg @ref LL_HRTIM_TIMER_C 07963 * @arg @ref LL_HRTIM_TIMER_D 07964 * @arg @ref LL_HRTIM_TIMER_E 07965 * @retval State of MCMP3/CMP3 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0). 07966 */ 07967 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07968 { 07969 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07970 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 07971 REG_OFFSET_TAB_TIMER[iTimer])); 07972 07973 return ((READ_BIT(*pReg, HRTIM_MISR_MCMP3) == (HRTIM_MISR_MCMP3)) ? 1UL : 0UL); 07974 } 07975 07976 /** 07977 * @brief Clear the compare 4 match interrupt for a given timer (including the master timer). 07978 * @rmtoll MICR MCMP4C LL_HRTIM_ClearFlag_CMP4\n 07979 * TIMxICR CMP4C LL_HRTIM_ClearFlag_CMP4 07980 * @param HRTIMx High Resolution Timer instance 07981 * @param Timer This parameter can be one of the following values: 07982 * @arg @ref LL_HRTIM_TIMER_MASTER 07983 * @arg @ref LL_HRTIM_TIMER_A 07984 * @arg @ref LL_HRTIM_TIMER_B 07985 * @arg @ref LL_HRTIM_TIMER_C 07986 * @arg @ref LL_HRTIM_TIMER_D 07987 * @arg @ref LL_HRTIM_TIMER_E 07988 * @retval None 07989 */ 07990 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 07991 { 07992 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 07993 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 07994 REG_OFFSET_TAB_TIMER[iTimer])); 07995 SET_BIT(*pReg, HRTIM_MICR_MCMP4); 07996 } 07997 07998 /** 07999 * @brief Indicate whether the compare match 4 interrupt has occurred for a given timer (including the master timer) . 08000 * @rmtoll MISR MCMP4 LL_HRTIM_IsActiveFlag_CMP4\n 08001 * TIMxISR CMP4 LL_HRTIM_IsActiveFlag_CMP4 08002 * @param HRTIMx High Resolution Timer instance 08003 * @param Timer This parameter can be one of the following values: 08004 * @arg @ref LL_HRTIM_TIMER_MASTER 08005 * @arg @ref LL_HRTIM_TIMER_A 08006 * @arg @ref LL_HRTIM_TIMER_B 08007 * @arg @ref LL_HRTIM_TIMER_C 08008 * @arg @ref LL_HRTIM_TIMER_D 08009 * @arg @ref LL_HRTIM_TIMER_E 08010 * @retval State of MCMP4/CMP4 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0). 08011 */ 08012 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08013 { 08014 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08015 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08016 REG_OFFSET_TAB_TIMER[iTimer])); 08017 08018 return ((READ_BIT(*pReg, HRTIM_MISR_MCMP4) == (HRTIM_MISR_MCMP4)) ? 1UL : 0UL); 08019 } 08020 08021 /** 08022 * @brief Clear the capture 1 interrupt flag for a given timer. 08023 * @rmtoll TIMxICR CPT1C LL_HRTIM_ClearFlag_CPT1 08024 * @param HRTIMx High Resolution Timer instance 08025 * @param Timer This parameter can be one of the following values: 08026 * @arg @ref LL_HRTIM_TIMER_A 08027 * @arg @ref LL_HRTIM_TIMER_B 08028 * @arg @ref LL_HRTIM_TIMER_C 08029 * @arg @ref LL_HRTIM_TIMER_D 08030 * @arg @ref LL_HRTIM_TIMER_E 08031 * @retval None 08032 */ 08033 __STATIC_INLINE void LL_HRTIM_ClearFlag_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08034 { 08035 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08036 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08037 REG_OFFSET_TAB_TIMER[iTimer])); 08038 SET_BIT(*pReg, HRTIM_TIMICR_CPT1C); 08039 } 08040 08041 /** 08042 * @brief Indicate whether the capture 1 interrupt occurred for a given timer. 08043 * @rmtoll TIMxISR CPT1 LL_HRTIM_IsActiveFlag_CPT1 08044 * @param HRTIMx High Resolution Timer instance 08045 * @param Timer This parameter can be one of the following values: 08046 * @arg @ref LL_HRTIM_TIMER_A 08047 * @arg @ref LL_HRTIM_TIMER_B 08048 * @arg @ref LL_HRTIM_TIMER_C 08049 * @arg @ref LL_HRTIM_TIMER_D 08050 * @arg @ref LL_HRTIM_TIMER_E 08051 * @retval State of CPT1 bit in HRTIM_TIMxISR register (1 or 0). 08052 */ 08053 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08054 { 08055 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08056 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08057 REG_OFFSET_TAB_TIMER[iTimer])); 08058 08059 return ((READ_BIT(*pReg, HRTIM_TIMISR_CPT1) == (HRTIM_TIMISR_CPT1)) ? 1UL : 0UL); 08060 } 08061 08062 /** 08063 * @brief Clear the capture 2 interrupt flag for a given timer. 08064 * @rmtoll TIMxICR CPT2C LL_HRTIM_ClearFlag_CPT2 08065 * @param HRTIMx High Resolution Timer instance 08066 * @param Timer This parameter can be one of the following values: 08067 * @arg @ref LL_HRTIM_TIMER_A 08068 * @arg @ref LL_HRTIM_TIMER_B 08069 * @arg @ref LL_HRTIM_TIMER_C 08070 * @arg @ref LL_HRTIM_TIMER_D 08071 * @arg @ref LL_HRTIM_TIMER_E 08072 * @retval None 08073 */ 08074 __STATIC_INLINE void LL_HRTIM_ClearFlag_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08075 { 08076 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08077 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08078 REG_OFFSET_TAB_TIMER[iTimer])); 08079 SET_BIT(*pReg, HRTIM_TIMICR_CPT2C); 08080 } 08081 08082 /** 08083 * @brief Indicate whether the capture 2 interrupt occurred for a given timer. 08084 * @rmtoll TIMxISR CPT2 LL_HRTIM_IsActiveFlag_CPT2 08085 * @param HRTIMx High Resolution Timer instance 08086 * @param Timer This parameter can be one of the following values: 08087 * @arg @ref LL_HRTIM_TIMER_A 08088 * @arg @ref LL_HRTIM_TIMER_B 08089 * @arg @ref LL_HRTIM_TIMER_C 08090 * @arg @ref LL_HRTIM_TIMER_D 08091 * @arg @ref LL_HRTIM_TIMER_E 08092 * @retval State of CPT2 bit in HRTIM_TIMxISR register (1 or 0). 08093 */ 08094 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08095 { 08096 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08097 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08098 REG_OFFSET_TAB_TIMER[iTimer])); 08099 08100 return ((READ_BIT(*pReg, HRTIM_TIMISR_CPT2) == (HRTIM_TIMISR_CPT2)) ? 1UL : 0UL); 08101 } 08102 08103 /** 08104 * @brief Clear the output 1 set interrupt flag for a given timer. 08105 * @rmtoll TIMxICR SET1C LL_HRTIM_ClearFlag_SET1 08106 * @param HRTIMx High Resolution Timer instance 08107 * @param Timer This parameter can be one of the following values: 08108 * @arg @ref LL_HRTIM_TIMER_A 08109 * @arg @ref LL_HRTIM_TIMER_B 08110 * @arg @ref LL_HRTIM_TIMER_C 08111 * @arg @ref LL_HRTIM_TIMER_D 08112 * @arg @ref LL_HRTIM_TIMER_E 08113 * @retval None 08114 */ 08115 __STATIC_INLINE void LL_HRTIM_ClearFlag_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08116 { 08117 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08118 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08119 REG_OFFSET_TAB_TIMER[iTimer])); 08120 SET_BIT(*pReg, HRTIM_TIMICR_SET1C); 08121 } 08122 08123 /** 08124 * @brief Indicate whether the output 1 set interrupt occurred for a given timer. 08125 * @rmtoll TIMxISR SET1 LL_HRTIM_IsActiveFlag_SET1 08126 * @param HRTIMx High Resolution Timer instance 08127 * @param Timer This parameter can be one of the following values: 08128 * @arg @ref LL_HRTIM_TIMER_A 08129 * @arg @ref LL_HRTIM_TIMER_B 08130 * @arg @ref LL_HRTIM_TIMER_C 08131 * @arg @ref LL_HRTIM_TIMER_D 08132 * @arg @ref LL_HRTIM_TIMER_E 08133 * @retval State of SETx1 bit in HRTIM_TIMxISR register (1 or 0). 08134 */ 08135 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08136 { 08137 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08138 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08139 REG_OFFSET_TAB_TIMER[iTimer])); 08140 08141 return ((READ_BIT(*pReg, HRTIM_TIMISR_SET1) == (HRTIM_TIMISR_SET1)) ? 1UL : 0UL); 08142 } 08143 08144 /** 08145 * @brief Clear the output 1 reset interrupt flag for a given timer. 08146 * @rmtoll TIMxICR RST1C LL_HRTIM_ClearFlag_RST1 08147 * @param HRTIMx High Resolution Timer instance 08148 * @param Timer This parameter can be one of the following values: 08149 * @arg @ref LL_HRTIM_TIMER_A 08150 * @arg @ref LL_HRTIM_TIMER_B 08151 * @arg @ref LL_HRTIM_TIMER_C 08152 * @arg @ref LL_HRTIM_TIMER_D 08153 * @arg @ref LL_HRTIM_TIMER_E 08154 * @retval None 08155 */ 08156 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08157 { 08158 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08159 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08160 REG_OFFSET_TAB_TIMER[iTimer])); 08161 SET_BIT(*pReg, HRTIM_TIMICR_RST1C); 08162 } 08163 08164 /** 08165 * @brief Indicate whether the output 1 reset interrupt occurred for a given timer. 08166 * @rmtoll TIMxISR RST1 LL_HRTIM_IsActiveFlag_RST1 08167 * @param HRTIMx High Resolution Timer instance 08168 * @param Timer This parameter can be one of the following values: 08169 * @arg @ref LL_HRTIM_TIMER_A 08170 * @arg @ref LL_HRTIM_TIMER_B 08171 * @arg @ref LL_HRTIM_TIMER_C 08172 * @arg @ref LL_HRTIM_TIMER_D 08173 * @arg @ref LL_HRTIM_TIMER_E 08174 * @retval State of RSTx1 bit in HRTIM_TIMxISR register (1 or 0). 08175 */ 08176 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08177 { 08178 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08179 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08180 REG_OFFSET_TAB_TIMER[iTimer])); 08181 08182 return ((READ_BIT(*pReg, HRTIM_TIMISR_RST1) == (HRTIM_TIMISR_RST1)) ? 1UL : 0UL); 08183 } 08184 08185 /** 08186 * @brief Clear the output 2 set interrupt flag for a given timer. 08187 * @rmtoll TIMxICR SET2C LL_HRTIM_ClearFlag_SET2 08188 * @param HRTIMx High Resolution Timer instance 08189 * @param Timer This parameter can be one of the following values: 08190 * @arg @ref LL_HRTIM_TIMER_A 08191 * @arg @ref LL_HRTIM_TIMER_B 08192 * @arg @ref LL_HRTIM_TIMER_C 08193 * @arg @ref LL_HRTIM_TIMER_D 08194 * @arg @ref LL_HRTIM_TIMER_E 08195 * @retval None 08196 */ 08197 __STATIC_INLINE void LL_HRTIM_ClearFlag_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08198 { 08199 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08200 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08201 REG_OFFSET_TAB_TIMER[iTimer])); 08202 SET_BIT(*pReg, HRTIM_TIMICR_SET2C); 08203 } 08204 08205 /** 08206 * @brief Indicate whether the output 2 set interrupt occurred for a given timer. 08207 * @rmtoll TIMxISR SET2 LL_HRTIM_IsActiveFlag_SET2 08208 * @param HRTIMx High Resolution Timer instance 08209 * @param Timer This parameter can be one of the following values: 08210 * @arg @ref LL_HRTIM_TIMER_A 08211 * @arg @ref LL_HRTIM_TIMER_B 08212 * @arg @ref LL_HRTIM_TIMER_C 08213 * @arg @ref LL_HRTIM_TIMER_D 08214 * @arg @ref LL_HRTIM_TIMER_E 08215 * @retval State of SETx2 bit in HRTIM_TIMxISR register (1 or 0). 08216 */ 08217 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08218 { 08219 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08220 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08221 REG_OFFSET_TAB_TIMER[iTimer])); 08222 08223 return ((READ_BIT(*pReg, HRTIM_TIMISR_SET2) == (HRTIM_TIMISR_SET2)) ? 1UL : 0UL); 08224 } 08225 08226 /** 08227 * @brief Clear the output 2reset interrupt flag for a given timer. 08228 * @rmtoll TIMxICR RST2C LL_HRTIM_ClearFlag_RST2 08229 * @param HRTIMx High Resolution Timer instance 08230 * @param Timer This parameter can be one of the following values: 08231 * @arg @ref LL_HRTIM_TIMER_A 08232 * @arg @ref LL_HRTIM_TIMER_B 08233 * @arg @ref LL_HRTIM_TIMER_C 08234 * @arg @ref LL_HRTIM_TIMER_D 08235 * @arg @ref LL_HRTIM_TIMER_E 08236 * @retval None 08237 */ 08238 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08239 { 08240 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08241 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08242 REG_OFFSET_TAB_TIMER[iTimer])); 08243 SET_BIT(*pReg, HRTIM_TIMICR_RST2C); 08244 } 08245 08246 /** 08247 * @brief Indicate whether the output 2 reset interrupt occurred for a given timer. 08248 * @rmtoll TIMxISR RST2 LL_HRTIM_IsActiveFlag_RST2 08249 * @param HRTIMx High Resolution Timer instance 08250 * @param Timer This parameter can be one of the following values: 08251 * @arg @ref LL_HRTIM_TIMER_A 08252 * @arg @ref LL_HRTIM_TIMER_B 08253 * @arg @ref LL_HRTIM_TIMER_C 08254 * @arg @ref LL_HRTIM_TIMER_D 08255 * @arg @ref LL_HRTIM_TIMER_E 08256 * @retval State of RSTx2 bit in HRTIM_TIMxISR register (1 or 0). 08257 */ 08258 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08259 { 08260 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08261 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08262 REG_OFFSET_TAB_TIMER[iTimer])); 08263 08264 return ((READ_BIT(*pReg, HRTIM_TIMISR_RST2) == (HRTIM_TIMISR_RST2)) ? 1UL : 0UL); 08265 } 08266 08267 /** 08268 * @brief Clear the reset and/or roll-over interrupt flag for a given timer. 08269 * @rmtoll TIMxICR RSTC LL_HRTIM_ClearFlag_RST 08270 * @param HRTIMx High Resolution Timer instance 08271 * @param Timer This parameter can be one of the following values: 08272 * @arg @ref LL_HRTIM_TIMER_A 08273 * @arg @ref LL_HRTIM_TIMER_B 08274 * @arg @ref LL_HRTIM_TIMER_C 08275 * @arg @ref LL_HRTIM_TIMER_D 08276 * @arg @ref LL_HRTIM_TIMER_E 08277 * @retval None 08278 */ 08279 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08280 { 08281 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08282 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08283 REG_OFFSET_TAB_TIMER[iTimer])); 08284 SET_BIT(*pReg, HRTIM_TIMICR_RSTC); 08285 } 08286 08287 /** 08288 * @brief Indicate whether the reset and/or roll-over interrupt occurred for a given timer. 08289 * @rmtoll TIMxISR RST LL_HRTIM_IsActiveFlag_RST 08290 * @param HRTIMx High Resolution Timer instance 08291 * @param Timer This parameter can be one of the following values: 08292 * @arg @ref LL_HRTIM_TIMER_A 08293 * @arg @ref LL_HRTIM_TIMER_B 08294 * @arg @ref LL_HRTIM_TIMER_C 08295 * @arg @ref LL_HRTIM_TIMER_D 08296 * @arg @ref LL_HRTIM_TIMER_E 08297 * @retval State of RST bit in HRTIM_TIMxISR register (1 or 0). 08298 */ 08299 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08300 { 08301 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08302 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08303 REG_OFFSET_TAB_TIMER[iTimer])); 08304 08305 return ((READ_BIT(*pReg, HRTIM_TIMISR_RST) == (HRTIM_TIMISR_RST)) ? 1UL : 0UL); 08306 } 08307 08308 /** 08309 * @brief Clear the delayed protection interrupt flag for a given timer. 08310 * @rmtoll TIMxICR DLYPRTC LL_HRTIM_ClearFlag_DLYPRT 08311 * @param HRTIMx High Resolution Timer instance 08312 * @param Timer This parameter can be one of the following values: 08313 * @arg @ref LL_HRTIM_TIMER_A 08314 * @arg @ref LL_HRTIM_TIMER_B 08315 * @arg @ref LL_HRTIM_TIMER_C 08316 * @arg @ref LL_HRTIM_TIMER_D 08317 * @arg @ref LL_HRTIM_TIMER_E 08318 * @retval None 08319 */ 08320 __STATIC_INLINE void LL_HRTIM_ClearFlag_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08321 { 08322 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08323 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) + 08324 REG_OFFSET_TAB_TIMER[iTimer])); 08325 SET_BIT(*pReg, HRTIM_TIMICR_DLYPRTC); 08326 } 08327 08328 /** 08329 * @brief Indicate whether the delayed protection interrupt occurred for a given timer. 08330 * @rmtoll TIMxISR DLYPRT LL_HRTIM_IsActiveFlag_DLYPRT 08331 * @param HRTIMx High Resolution Timer instance 08332 * @param Timer This parameter can be one of the following values: 08333 * @arg @ref LL_HRTIM_TIMER_A 08334 * @arg @ref LL_HRTIM_TIMER_B 08335 * @arg @ref LL_HRTIM_TIMER_C 08336 * @arg @ref LL_HRTIM_TIMER_D 08337 * @arg @ref LL_HRTIM_TIMER_E 08338 * @retval State of DLYPRT bit in HRTIM_TIMxISR register (1 or 0). 08339 */ 08340 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08341 { 08342 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08343 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) + 08344 REG_OFFSET_TAB_TIMER[iTimer])); 08345 08346 return ((READ_BIT(*pReg, HRTIM_TIMISR_DLYPRT) == (HRTIM_TIMISR_DLYPRT)) ? 1UL : 0UL); 08347 } 08348 08349 /** 08350 * @} 08351 */ 08352 08353 /** @defgroup HRTIM_LL_EF_IT_Management IT_Management 08354 * @{ 08355 */ 08356 08357 /** 08358 * @brief Enable the fault 1 interrupt. 08359 * @rmtoll IER FLT1IE LL_HRTIM_EnableIT_FLT1 08360 * @param HRTIMx High Resolution Timer instance 08361 * @retval None 08362 */ 08363 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT1(HRTIM_TypeDef *HRTIMx) 08364 { 08365 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1); 08366 } 08367 08368 /** 08369 * @brief Disable the fault 1 interrupt. 08370 * @rmtoll IER FLT1IE LL_HRTIM_DisableIT_FLT1 08371 * @param HRTIMx High Resolution Timer instance 08372 * @retval None 08373 */ 08374 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT1(HRTIM_TypeDef *HRTIMx) 08375 { 08376 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1); 08377 } 08378 08379 /** 08380 * @brief Indicate whether the fault 1 interrupt is enabled. 08381 * @rmtoll IER FLT1IE LL_HRTIM_IsEnabledIT_FLT1 08382 * @param HRTIMx High Resolution Timer instance 08383 * @retval State of FLT1IE bit in HRTIM_IER register (1 or 0). 08384 */ 08385 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT1(HRTIM_TypeDef *HRTIMx) 08386 { 08387 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1) == (HRTIM_IER_FLT1)) ? 1UL : 0UL); 08388 } 08389 08390 /** 08391 * @brief Enable the fault 2 interrupt. 08392 * @rmtoll IER FLT2IE LL_HRTIM_EnableIT_FLT2 08393 * @param HRTIMx High Resolution Timer instance 08394 * @retval None 08395 */ 08396 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT2(HRTIM_TypeDef *HRTIMx) 08397 { 08398 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2); 08399 } 08400 08401 /** 08402 * @brief Disable the fault 2 interrupt. 08403 * @rmtoll IER FLT2IE LL_HRTIM_DisableIT_FLT2 08404 * @param HRTIMx High Resolution Timer instance 08405 * @retval None 08406 */ 08407 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT2(HRTIM_TypeDef *HRTIMx) 08408 { 08409 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2); 08410 } 08411 08412 /** 08413 * @brief Indicate whether the fault 2 interrupt is enabled. 08414 * @rmtoll IER FLT2IE LL_HRTIM_IsEnabledIT_FLT2 08415 * @param HRTIMx High Resolution Timer instance 08416 * @retval State of FLT2IE bit in HRTIM_IER register (1 or 0). 08417 */ 08418 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT2(HRTIM_TypeDef *HRTIMx) 08419 { 08420 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2) == (HRTIM_IER_FLT2)) ? 1UL : 0UL); 08421 } 08422 08423 /** 08424 * @brief Enable the fault 3 interrupt. 08425 * @rmtoll IER FLT3IE LL_HRTIM_EnableIT_FLT3 08426 * @param HRTIMx High Resolution Timer instance 08427 * @retval None 08428 */ 08429 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT3(HRTIM_TypeDef *HRTIMx) 08430 { 08431 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3); 08432 } 08433 08434 /** 08435 * @brief Disable the fault 3 interrupt. 08436 * @rmtoll IER FLT3IE LL_HRTIM_DisableIT_FLT3 08437 * @param HRTIMx High Resolution Timer instance 08438 * @retval None 08439 */ 08440 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT3(HRTIM_TypeDef *HRTIMx) 08441 { 08442 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3); 08443 } 08444 08445 /** 08446 * @brief Indicate whether the fault 3 interrupt is enabled. 08447 * @rmtoll IER FLT3IE LL_HRTIM_IsEnabledIT_FLT3 08448 * @param HRTIMx High Resolution Timer instance 08449 * @retval State of FLT3IE bit in HRTIM_IER register (1 or 0). 08450 */ 08451 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT3(HRTIM_TypeDef *HRTIMx) 08452 { 08453 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3) == (HRTIM_IER_FLT3)) ? 1UL : 0UL); 08454 } 08455 08456 /** 08457 * @brief Enable the fault 4 interrupt. 08458 * @rmtoll IER FLT4IE LL_HRTIM_EnableIT_FLT4 08459 * @param HRTIMx High Resolution Timer instance 08460 * @retval None 08461 */ 08462 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT4(HRTIM_TypeDef *HRTIMx) 08463 { 08464 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4); 08465 } 08466 08467 /** 08468 * @brief Disable the fault 4 interrupt. 08469 * @rmtoll IER FLT4IE LL_HRTIM_DisableIT_FLT4 08470 * @param HRTIMx High Resolution Timer instance 08471 * @retval None 08472 */ 08473 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT4(HRTIM_TypeDef *HRTIMx) 08474 { 08475 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4); 08476 } 08477 08478 /** 08479 * @brief Indicate whether the fault 4 interrupt is enabled. 08480 * @rmtoll IER FLT4IE LL_HRTIM_IsEnabledIT_FLT4 08481 * @param HRTIMx High Resolution Timer instance 08482 * @retval State of FLT4IE bit in HRTIM_IER register (1 or 0). 08483 */ 08484 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT4(HRTIM_TypeDef *HRTIMx) 08485 { 08486 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4) == (HRTIM_IER_FLT4)) ? 1UL : 0UL); 08487 } 08488 08489 /** 08490 * @brief Enable the fault 5 interrupt. 08491 * @rmtoll IER FLT5IE LL_HRTIM_EnableIT_FLT5 08492 * @param HRTIMx High Resolution Timer instance 08493 * @retval None 08494 */ 08495 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT5(HRTIM_TypeDef *HRTIMx) 08496 { 08497 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5); 08498 } 08499 08500 /** 08501 * @brief Disable the fault 5 interrupt. 08502 * @rmtoll IER FLT5IE LL_HRTIM_DisableIT_FLT5 08503 * @param HRTIMx High Resolution Timer instance 08504 * @retval None 08505 */ 08506 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT5(HRTIM_TypeDef *HRTIMx) 08507 { 08508 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5); 08509 } 08510 08511 /** 08512 * @brief Indicate whether the fault 5 interrupt is enabled. 08513 * @rmtoll IER FLT5IE LL_HRTIM_IsEnabledIT_FLT5 08514 * @param HRTIMx High Resolution Timer instance 08515 * @retval State of FLT5IE bit in HRTIM_IER register (1 or 0). 08516 */ 08517 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT5(HRTIM_TypeDef *HRTIMx) 08518 { 08519 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5) == (HRTIM_IER_FLT5)) ? 1UL : 0UL); 08520 } 08521 08522 /** 08523 * @brief Enable the system fault interrupt. 08524 * @rmtoll IER SYSFLTIE LL_HRTIM_EnableIT_SYSFLT 08525 * @param HRTIMx High Resolution Timer instance 08526 * @retval None 08527 */ 08528 __STATIC_INLINE void LL_HRTIM_EnableIT_SYSFLT(HRTIM_TypeDef *HRTIMx) 08529 { 08530 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT); 08531 } 08532 08533 /** 08534 * @brief Disable the system fault interrupt. 08535 * @rmtoll IER SYSFLTIE LL_HRTIM_DisableIT_SYSFLT 08536 * @param HRTIMx High Resolution Timer instance 08537 * @retval None 08538 */ 08539 __STATIC_INLINE void LL_HRTIM_DisableIT_SYSFLT(HRTIM_TypeDef *HRTIMx) 08540 { 08541 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT); 08542 } 08543 08544 /** 08545 * @brief Indicate whether the system fault interrupt is enabled. 08546 * @rmtoll IER SYSFLTIE LL_HRTIM_IsEnabledIT_SYSFLT 08547 * @param HRTIMx High Resolution Timer instance 08548 * @retval State of SYSFLTIE bit in HRTIM_IER register (1 or 0). 08549 */ 08550 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SYSFLT(HRTIM_TypeDef *HRTIMx) 08551 { 08552 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT) == (HRTIM_IER_SYSFLT)) ? 1UL : 0UL); 08553 } 08554 08555 /** 08556 * @brief Enable the burst mode period interrupt. 08557 * @rmtoll IER BMPERIE LL_HRTIM_EnableIT_BMPER 08558 * @param HRTIMx High Resolution Timer instance 08559 * @retval None 08560 */ 08561 __STATIC_INLINE void LL_HRTIM_EnableIT_BMPER(HRTIM_TypeDef *HRTIMx) 08562 { 08563 SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER); 08564 } 08565 08566 /** 08567 * @brief Disable the burst mode period interrupt. 08568 * @rmtoll IER BMPERIE LL_HRTIM_DisableIT_BMPER 08569 * @param HRTIMx High Resolution Timer instance 08570 * @retval None 08571 */ 08572 __STATIC_INLINE void LL_HRTIM_DisableIT_BMPER(HRTIM_TypeDef *HRTIMx) 08573 { 08574 CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER); 08575 } 08576 08577 /** 08578 * @brief Indicate whether the burst mode period interrupt is enabled. 08579 * @rmtoll IER BMPERIE LL_HRTIM_IsEnabledIT_BMPER 08580 * @param HRTIMx High Resolution Timer instance 08581 * @retval State of BMPERIE bit in HRTIM_IER register (1 or 0). 08582 */ 08583 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_BMPER(HRTIM_TypeDef *HRTIMx) 08584 { 08585 return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER) == (HRTIM_IER_BMPER)) ? 1UL : 0UL); 08586 } 08587 08588 /** 08589 * @brief Enable the synchronization input interrupt. 08590 * @rmtoll MDIER SYNCIE LL_HRTIM_EnableIT_SYNC 08591 * @param HRTIMx High Resolution Timer instance 08592 * @retval None 08593 */ 08594 __STATIC_INLINE void LL_HRTIM_EnableIT_SYNC(HRTIM_TypeDef *HRTIMx) 08595 { 08596 SET_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE); 08597 } 08598 08599 /** 08600 * @brief Disable the synchronization input interrupt. 08601 * @rmtoll MDIER SYNCIE LL_HRTIM_DisableIT_SYNC 08602 * @param HRTIMx High Resolution Timer instance 08603 * @retval None 08604 */ 08605 __STATIC_INLINE void LL_HRTIM_DisableIT_SYNC(HRTIM_TypeDef *HRTIMx) 08606 { 08607 CLEAR_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE); 08608 } 08609 08610 /** 08611 * @brief Indicate whether the synchronization input interrupt is enabled. 08612 * @rmtoll MDIER SYNCIE LL_HRTIM_IsEnabledIT_SYNC 08613 * @param HRTIMx High Resolution Timer instance 08614 * @retval State of SYNCIE bit in HRTIM_MDIER register (1 or 0). 08615 */ 08616 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SYNC(HRTIM_TypeDef *HRTIMx) 08617 { 08618 return ((READ_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE) == (HRTIM_MDIER_SYNCIE)) ? 1UL : 0UL); 08619 } 08620 08621 /** 08622 * @brief Enable the update interrupt for a given timer. 08623 * @rmtoll MDIER MUPDIE LL_HRTIM_EnableIT_UPDATE\n 08624 * TIMxDIER UPDIE LL_HRTIM_EnableIT_UPDATE 08625 * @param HRTIMx High Resolution Timer instance 08626 * @param Timer This parameter can be one of the following values: 08627 * @arg @ref LL_HRTIM_TIMER_MASTER 08628 * @arg @ref LL_HRTIM_TIMER_A 08629 * @arg @ref LL_HRTIM_TIMER_B 08630 * @arg @ref LL_HRTIM_TIMER_C 08631 * @arg @ref LL_HRTIM_TIMER_D 08632 * @arg @ref LL_HRTIM_TIMER_E 08633 * @retval None 08634 */ 08635 __STATIC_INLINE void LL_HRTIM_EnableIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08636 { 08637 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08638 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08639 REG_OFFSET_TAB_TIMER[iTimer])); 08640 SET_BIT(*pReg, HRTIM_MDIER_MUPDIE); 08641 } 08642 08643 /** 08644 * @brief Disable the update interrupt for a given timer. 08645 * @rmtoll MDIER MUPDIE LL_HRTIM_DisableIT_UPDATE\n 08646 * TIMxDIER UPDIE LL_HRTIM_DisableIT_UPDATE 08647 * @param HRTIMx High Resolution Timer instance 08648 * @param Timer This parameter can be one of the following values: 08649 * @arg @ref LL_HRTIM_TIMER_MASTER 08650 * @arg @ref LL_HRTIM_TIMER_A 08651 * @arg @ref LL_HRTIM_TIMER_B 08652 * @arg @ref LL_HRTIM_TIMER_C 08653 * @arg @ref LL_HRTIM_TIMER_D 08654 * @arg @ref LL_HRTIM_TIMER_E 08655 * @retval None 08656 */ 08657 __STATIC_INLINE void LL_HRTIM_DisableIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08658 { 08659 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08660 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08661 REG_OFFSET_TAB_TIMER[iTimer])); 08662 CLEAR_BIT(*pReg, HRTIM_MDIER_MUPDIE); 08663 } 08664 08665 /** 08666 * @brief Indicate whether the update interrupt is enabled for a given timer. 08667 * @rmtoll MDIER MUPDIE LL_HRTIM_IsEnabledIT_UPDATE\n 08668 * TIMxDIER UPDIE LL_HRTIM_IsEnabledIT_UPDATE 08669 * @param HRTIMx High Resolution Timer instance 08670 * @param Timer This parameter can be one of the following values: 08671 * @arg @ref LL_HRTIM_TIMER_MASTER 08672 * @arg @ref LL_HRTIM_TIMER_A 08673 * @arg @ref LL_HRTIM_TIMER_B 08674 * @arg @ref LL_HRTIM_TIMER_C 08675 * @arg @ref LL_HRTIM_TIMER_D 08676 * @arg @ref LL_HRTIM_TIMER_E 08677 * @retval State of MUPDIE/UPDIE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 08678 */ 08679 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08680 { 08681 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08682 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08683 REG_OFFSET_TAB_TIMER[iTimer])); 08684 08685 return ((READ_BIT(*pReg, HRTIM_MDIER_MUPDIE) == (HRTIM_MDIER_MUPDIE)) ? 1UL : 0UL); 08686 } 08687 08688 /** 08689 * @brief Enable the repetition interrupt for a given timer. 08690 * @rmtoll MDIER MREPIE LL_HRTIM_EnableIT_REP\n 08691 * TIMxDIER REPIE LL_HRTIM_EnableIT_REP 08692 * @param HRTIMx High Resolution Timer instance 08693 * @param Timer This parameter can be one of the following values: 08694 * @arg @ref LL_HRTIM_TIMER_MASTER 08695 * @arg @ref LL_HRTIM_TIMER_A 08696 * @arg @ref LL_HRTIM_TIMER_B 08697 * @arg @ref LL_HRTIM_TIMER_C 08698 * @arg @ref LL_HRTIM_TIMER_D 08699 * @arg @ref LL_HRTIM_TIMER_E 08700 * @retval None 08701 */ 08702 __STATIC_INLINE void LL_HRTIM_EnableIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08703 { 08704 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08705 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08706 REG_OFFSET_TAB_TIMER[iTimer])); 08707 SET_BIT(*pReg, HRTIM_MDIER_MREPIE); 08708 } 08709 08710 /** 08711 * @brief Disable the repetition interrupt for a given timer. 08712 * @rmtoll MDIER MREPIE LL_HRTIM_DisableIT_REP\n 08713 * TIMxDIER REPIE LL_HRTIM_DisableIT_REP 08714 * @param HRTIMx High Resolution Timer instance 08715 * @param Timer This parameter can be one of the following values: 08716 * @arg @ref LL_HRTIM_TIMER_MASTER 08717 * @arg @ref LL_HRTIM_TIMER_A 08718 * @arg @ref LL_HRTIM_TIMER_B 08719 * @arg @ref LL_HRTIM_TIMER_C 08720 * @arg @ref LL_HRTIM_TIMER_D 08721 * @arg @ref LL_HRTIM_TIMER_E 08722 * @retval None 08723 */ 08724 __STATIC_INLINE void LL_HRTIM_DisableIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08725 { 08726 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08727 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08728 REG_OFFSET_TAB_TIMER[iTimer])); 08729 CLEAR_BIT(*pReg, HRTIM_MDIER_MREPIE); 08730 } 08731 08732 /** 08733 * @brief Indicate whether the repetition interrupt is enabled for a given timer. 08734 * @rmtoll MDIER MREPIE LL_HRTIM_IsEnabledIT_REP\n 08735 * TIMxDIER REPIE LL_HRTIM_IsEnabledIT_REP 08736 * @param HRTIMx High Resolution Timer instance 08737 * @param Timer This parameter can be one of the following values: 08738 * @arg @ref LL_HRTIM_TIMER_MASTER 08739 * @arg @ref LL_HRTIM_TIMER_A 08740 * @arg @ref LL_HRTIM_TIMER_B 08741 * @arg @ref LL_HRTIM_TIMER_C 08742 * @arg @ref LL_HRTIM_TIMER_D 08743 * @arg @ref LL_HRTIM_TIMER_E 08744 * @retval State of MREPIE/REPIE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 08745 */ 08746 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08747 { 08748 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08749 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08750 REG_OFFSET_TAB_TIMER[iTimer])); 08751 08752 return ((READ_BIT(*pReg, HRTIM_MDIER_MREPIE) == (HRTIM_MDIER_MREPIE)) ? 1UL : 0UL); 08753 } 08754 08755 /** 08756 * @brief Enable the compare 1 interrupt for a given timer. 08757 * @rmtoll MDIER MCMP1IE LL_HRTIM_EnableIT_CMP1\n 08758 * TIMxDIER CMP1IE LL_HRTIM_EnableIT_CMP1 08759 * @param HRTIMx High Resolution Timer instance 08760 * @param Timer This parameter can be one of the following values: 08761 * @arg @ref LL_HRTIM_TIMER_MASTER 08762 * @arg @ref LL_HRTIM_TIMER_A 08763 * @arg @ref LL_HRTIM_TIMER_B 08764 * @arg @ref LL_HRTIM_TIMER_C 08765 * @arg @ref LL_HRTIM_TIMER_D 08766 * @arg @ref LL_HRTIM_TIMER_E 08767 * @retval None 08768 */ 08769 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08770 { 08771 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08772 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08773 REG_OFFSET_TAB_TIMER[iTimer])); 08774 SET_BIT(*pReg, HRTIM_MDIER_MCMP1IE); 08775 } 08776 08777 /** 08778 * @brief Disable the compare 1 interrupt for a given timer. 08779 * @rmtoll MDIER MCMP1IE LL_HRTIM_DisableIT_CMP1\n 08780 * TIMxDIER CMP1IE LL_HRTIM_DisableIT_CMP1 08781 * @param HRTIMx High Resolution Timer instance 08782 * @param Timer This parameter can be one of the following values: 08783 * @arg @ref LL_HRTIM_TIMER_MASTER 08784 * @arg @ref LL_HRTIM_TIMER_A 08785 * @arg @ref LL_HRTIM_TIMER_B 08786 * @arg @ref LL_HRTIM_TIMER_C 08787 * @arg @ref LL_HRTIM_TIMER_D 08788 * @arg @ref LL_HRTIM_TIMER_E 08789 * @retval None 08790 */ 08791 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08792 { 08793 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08794 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08795 REG_OFFSET_TAB_TIMER[iTimer])); 08796 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP1IE); 08797 } 08798 08799 /** 08800 * @brief Indicate whether the compare 1 interrupt is enabled for a given timer. 08801 * @rmtoll MDIER MCMP1IE LL_HRTIM_IsEnabledIT_CMP1\n 08802 * TIMxDIER CMP1IE LL_HRTIM_IsEnabledIT_CMP1 08803 * @param HRTIMx High Resolution Timer instance 08804 * @param Timer This parameter can be one of the following values: 08805 * @arg @ref LL_HRTIM_TIMER_MASTER 08806 * @arg @ref LL_HRTIM_TIMER_A 08807 * @arg @ref LL_HRTIM_TIMER_B 08808 * @arg @ref LL_HRTIM_TIMER_C 08809 * @arg @ref LL_HRTIM_TIMER_D 08810 * @arg @ref LL_HRTIM_TIMER_E 08811 * @retval State of MCMP1IE/CMP1IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 08812 */ 08813 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08814 { 08815 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08816 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08817 REG_OFFSET_TAB_TIMER[iTimer])); 08818 08819 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP1IE) == (HRTIM_MDIER_MCMP1IE)) ? 1UL : 0UL); 08820 } 08821 08822 /** 08823 * @brief Enable the compare 2 interrupt for a given timer. 08824 * @rmtoll MDIER MCMP2IE LL_HRTIM_EnableIT_CMP2\n 08825 * TIMxDIER CMP2IE LL_HRTIM_EnableIT_CMP2 08826 * @param HRTIMx High Resolution Timer instance 08827 * @param Timer This parameter can be one of the following values: 08828 * @arg @ref LL_HRTIM_TIMER_MASTER 08829 * @arg @ref LL_HRTIM_TIMER_A 08830 * @arg @ref LL_HRTIM_TIMER_B 08831 * @arg @ref LL_HRTIM_TIMER_C 08832 * @arg @ref LL_HRTIM_TIMER_D 08833 * @arg @ref LL_HRTIM_TIMER_E 08834 * @retval None 08835 */ 08836 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08837 { 08838 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08839 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08840 REG_OFFSET_TAB_TIMER[iTimer])); 08841 SET_BIT(*pReg, HRTIM_MDIER_MCMP2IE); 08842 } 08843 08844 /** 08845 * @brief Disable the compare 2 interrupt for a given timer. 08846 * @rmtoll MDIER MCMP2IE LL_HRTIM_DisableIT_CMP2\n 08847 * TIMxDIER CMP2IE LL_HRTIM_DisableIT_CMP2 08848 * @param HRTIMx High Resolution Timer instance 08849 * @param Timer This parameter can be one of the following values: 08850 * @arg @ref LL_HRTIM_TIMER_MASTER 08851 * @arg @ref LL_HRTIM_TIMER_A 08852 * @arg @ref LL_HRTIM_TIMER_B 08853 * @arg @ref LL_HRTIM_TIMER_C 08854 * @arg @ref LL_HRTIM_TIMER_D 08855 * @arg @ref LL_HRTIM_TIMER_E 08856 * @retval None 08857 */ 08858 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08859 { 08860 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08861 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08862 REG_OFFSET_TAB_TIMER[iTimer])); 08863 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP2IE); 08864 } 08865 08866 /** 08867 * @brief Indicate whether the compare 2 interrupt is enabled for a given timer. 08868 * @rmtoll MDIER MCMP2IE LL_HRTIM_IsEnabledIT_CMP2\n 08869 * TIMxDIER CMP2IE LL_HRTIM_IsEnabledIT_CMP2 08870 * @param HRTIMx High Resolution Timer instance 08871 * @param Timer This parameter can be one of the following values: 08872 * @arg @ref LL_HRTIM_TIMER_MASTER 08873 * @arg @ref LL_HRTIM_TIMER_A 08874 * @arg @ref LL_HRTIM_TIMER_B 08875 * @arg @ref LL_HRTIM_TIMER_C 08876 * @arg @ref LL_HRTIM_TIMER_D 08877 * @arg @ref LL_HRTIM_TIMER_E 08878 * @retval State of MCMP2IE/CMP2IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 08879 */ 08880 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08881 { 08882 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08883 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08884 REG_OFFSET_TAB_TIMER[iTimer])); 08885 08886 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP2IE) == (HRTIM_MDIER_MCMP2IE)) ? 1UL : 0UL); 08887 } 08888 08889 /** 08890 * @brief Enable the compare 3 interrupt for a given timer. 08891 * @rmtoll MDIER MCMP3IE LL_HRTIM_EnableIT_CMP3\n 08892 * TIMxDIER CMP3IE LL_HRTIM_EnableIT_CMP3 08893 * @param HRTIMx High Resolution Timer instance 08894 * @param Timer This parameter can be one of the following values: 08895 * @arg @ref LL_HRTIM_TIMER_MASTER 08896 * @arg @ref LL_HRTIM_TIMER_A 08897 * @arg @ref LL_HRTIM_TIMER_B 08898 * @arg @ref LL_HRTIM_TIMER_C 08899 * @arg @ref LL_HRTIM_TIMER_D 08900 * @arg @ref LL_HRTIM_TIMER_E 08901 * @retval None 08902 */ 08903 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08904 { 08905 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08906 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08907 REG_OFFSET_TAB_TIMER[iTimer])); 08908 SET_BIT(*pReg, HRTIM_MDIER_MCMP3IE); 08909 } 08910 08911 /** 08912 * @brief Disable the compare 3 interrupt for a given timer. 08913 * @rmtoll MDIER MCMP3IE LL_HRTIM_DisableIT_CMP3\n 08914 * TIMxDIER CMP3IE LL_HRTIM_DisableIT_CMP3 08915 * @param HRTIMx High Resolution Timer instance 08916 * @param Timer This parameter can be one of the following values: 08917 * @arg @ref LL_HRTIM_TIMER_MASTER 08918 * @arg @ref LL_HRTIM_TIMER_A 08919 * @arg @ref LL_HRTIM_TIMER_B 08920 * @arg @ref LL_HRTIM_TIMER_C 08921 * @arg @ref LL_HRTIM_TIMER_D 08922 * @arg @ref LL_HRTIM_TIMER_E 08923 * @retval None 08924 */ 08925 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08926 { 08927 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08928 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08929 REG_OFFSET_TAB_TIMER[iTimer])); 08930 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP3IE); 08931 } 08932 08933 /** 08934 * @brief Indicate whether the compare 3 interrupt is enabled for a given timer. 08935 * @rmtoll MDIER MCMP3IE LL_HRTIM_IsEnabledIT_CMP3\n 08936 * TIMxDIER CMP3IE LL_HRTIM_IsEnabledIT_CMP3 08937 * @param HRTIMx High Resolution Timer instance 08938 * @param Timer This parameter can be one of the following values: 08939 * @arg @ref LL_HRTIM_TIMER_MASTER 08940 * @arg @ref LL_HRTIM_TIMER_A 08941 * @arg @ref LL_HRTIM_TIMER_B 08942 * @arg @ref LL_HRTIM_TIMER_C 08943 * @arg @ref LL_HRTIM_TIMER_D 08944 * @arg @ref LL_HRTIM_TIMER_E 08945 * @retval State of MCMP3IE/CMP3IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 08946 */ 08947 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08948 { 08949 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08950 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08951 REG_OFFSET_TAB_TIMER[iTimer])); 08952 08953 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP3IE) == (HRTIM_MDIER_MCMP3IE)) ? 1UL : 0UL); 08954 } 08955 08956 /** 08957 * @brief Enable the compare 4 interrupt for a given timer. 08958 * @rmtoll MDIER MCMP4IE LL_HRTIM_EnableIT_CMP4\n 08959 * TIMxDIER CMP4IE LL_HRTIM_EnableIT_CMP4 08960 * @param HRTIMx High Resolution Timer instance 08961 * @param Timer This parameter can be one of the following values: 08962 * @arg @ref LL_HRTIM_TIMER_MASTER 08963 * @arg @ref LL_HRTIM_TIMER_A 08964 * @arg @ref LL_HRTIM_TIMER_B 08965 * @arg @ref LL_HRTIM_TIMER_C 08966 * @arg @ref LL_HRTIM_TIMER_D 08967 * @arg @ref LL_HRTIM_TIMER_E 08968 * @retval None 08969 */ 08970 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08971 { 08972 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08973 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08974 REG_OFFSET_TAB_TIMER[iTimer])); 08975 SET_BIT(*pReg, HRTIM_MDIER_MCMP4IE); 08976 } 08977 08978 /** 08979 * @brief Disable the compare 4 interrupt for a given timer. 08980 * @rmtoll MDIER MCMP4IE LL_HRTIM_DisableIT_CMP4\n 08981 * TIMxDIER CMP4IE LL_HRTIM_DisableIT_CMP4 08982 * @param HRTIMx High Resolution Timer instance 08983 * @param Timer This parameter can be one of the following values: 08984 * @arg @ref LL_HRTIM_TIMER_MASTER 08985 * @arg @ref LL_HRTIM_TIMER_A 08986 * @arg @ref LL_HRTIM_TIMER_B 08987 * @arg @ref LL_HRTIM_TIMER_C 08988 * @arg @ref LL_HRTIM_TIMER_D 08989 * @arg @ref LL_HRTIM_TIMER_E 08990 * @retval None 08991 */ 08992 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 08993 { 08994 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 08995 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 08996 REG_OFFSET_TAB_TIMER[iTimer])); 08997 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP4IE); 08998 } 08999 09000 /** 09001 * @brief Indicate whether the compare 4 interrupt is enabled for a given timer. 09002 * @rmtoll MDIER MCMP4IE LL_HRTIM_IsEnabledIT_CMP4\n 09003 * TIMxDIER CMP4IE LL_HRTIM_IsEnabledIT_CMP4 09004 * @param HRTIMx High Resolution Timer instance 09005 * @param Timer This parameter can be one of the following values: 09006 * @arg @ref LL_HRTIM_TIMER_MASTER 09007 * @arg @ref LL_HRTIM_TIMER_A 09008 * @arg @ref LL_HRTIM_TIMER_B 09009 * @arg @ref LL_HRTIM_TIMER_C 09010 * @arg @ref LL_HRTIM_TIMER_D 09011 * @arg @ref LL_HRTIM_TIMER_E 09012 * @retval State of MCMP4IE/CMP4IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09013 */ 09014 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09015 { 09016 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09017 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09018 REG_OFFSET_TAB_TIMER[iTimer])); 09019 09020 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP4IE) == (HRTIM_MDIER_MCMP4IE)) ? 1UL : 0UL); 09021 } 09022 09023 /** 09024 * @brief Enable the capture 1 interrupt for a given timer. 09025 * @rmtoll TIMxDIER CPT1IE LL_HRTIM_EnableIT_CPT1 09026 * @param HRTIMx High Resolution Timer instance 09027 * @param Timer This parameter can be one of the following values: 09028 * @arg @ref LL_HRTIM_TIMER_A 09029 * @arg @ref LL_HRTIM_TIMER_B 09030 * @arg @ref LL_HRTIM_TIMER_C 09031 * @arg @ref LL_HRTIM_TIMER_D 09032 * @arg @ref LL_HRTIM_TIMER_E 09033 * @retval None 09034 */ 09035 __STATIC_INLINE void LL_HRTIM_EnableIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09036 { 09037 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09038 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09039 REG_OFFSET_TAB_TIMER[iTimer])); 09040 SET_BIT(*pReg, HRTIM_TIMDIER_CPT1IE); 09041 } 09042 09043 /** 09044 * @brief Enable the capture 1 interrupt for a given timer. 09045 * @rmtoll TIMxDIER CPT1IE LL_HRTIM_DisableIT_CPT1 09046 * @param HRTIMx High Resolution Timer instance 09047 * @param Timer This parameter can be one of the following values: 09048 * @arg @ref LL_HRTIM_TIMER_A 09049 * @arg @ref LL_HRTIM_TIMER_B 09050 * @arg @ref LL_HRTIM_TIMER_C 09051 * @arg @ref LL_HRTIM_TIMER_D 09052 * @arg @ref LL_HRTIM_TIMER_E 09053 * @retval None 09054 */ 09055 __STATIC_INLINE void LL_HRTIM_DisableIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09056 { 09057 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09058 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09059 REG_OFFSET_TAB_TIMER[iTimer])); 09060 CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT1IE); 09061 } 09062 09063 /** 09064 * @brief Indicate whether the capture 1 interrupt is enabled for a given timer. 09065 * @rmtoll TIMxDIER CPT1IE LL_HRTIM_IsEnabledIT_CPT1 09066 * @param HRTIMx High Resolution Timer instance 09067 * @param Timer This parameter can be one of the following values: 09068 * @arg @ref LL_HRTIM_TIMER_A 09069 * @arg @ref LL_HRTIM_TIMER_B 09070 * @arg @ref LL_HRTIM_TIMER_C 09071 * @arg @ref LL_HRTIM_TIMER_D 09072 * @arg @ref LL_HRTIM_TIMER_E 09073 * @retval State of CPT1IE bit in HRTIM_TIMxDIER register (1 or 0). 09074 */ 09075 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09076 { 09077 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09078 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09079 REG_OFFSET_TAB_TIMER[iTimer])); 09080 09081 return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT1IE) == (HRTIM_TIMDIER_CPT1IE)) ? 1UL : 0UL); 09082 } 09083 09084 /** 09085 * @brief Enable the capture 2 interrupt for a given timer. 09086 * @rmtoll TIMxDIER CPT2IE LL_HRTIM_EnableIT_CPT2 09087 * @param HRTIMx High Resolution Timer instance 09088 * @param Timer This parameter can be one of the following values: 09089 * @arg @ref LL_HRTIM_TIMER_A 09090 * @arg @ref LL_HRTIM_TIMER_B 09091 * @arg @ref LL_HRTIM_TIMER_C 09092 * @arg @ref LL_HRTIM_TIMER_D 09093 * @arg @ref LL_HRTIM_TIMER_E 09094 * @retval None 09095 */ 09096 __STATIC_INLINE void LL_HRTIM_EnableIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09097 { 09098 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09099 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09100 REG_OFFSET_TAB_TIMER[iTimer])); 09101 SET_BIT(*pReg, HRTIM_TIMDIER_CPT2IE); 09102 } 09103 09104 /** 09105 * @brief Enable the capture 2 interrupt for a given timer. 09106 * @rmtoll TIMxDIER CPT2IE LL_HRTIM_DisableIT_CPT2 09107 * @param HRTIMx High Resolution Timer instance 09108 * @param Timer This parameter can be one of the following values: 09109 * @arg @ref LL_HRTIM_TIMER_A 09110 * @arg @ref LL_HRTIM_TIMER_B 09111 * @arg @ref LL_HRTIM_TIMER_C 09112 * @arg @ref LL_HRTIM_TIMER_D 09113 * @arg @ref LL_HRTIM_TIMER_E 09114 * @retval None 09115 */ 09116 __STATIC_INLINE void LL_HRTIM_DisableIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09117 { 09118 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09119 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09120 REG_OFFSET_TAB_TIMER[iTimer])); 09121 CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT2IE); 09122 } 09123 09124 /** 09125 * @brief Indicate whether the capture 2 interrupt is enabled for a given timer. 09126 * @rmtoll TIMxDIER CPT2IE LL_HRTIM_IsEnabledIT_CPT2 09127 * @param HRTIMx High Resolution Timer instance 09128 * @param Timer This parameter can be one of the following values: 09129 * @arg @ref LL_HRTIM_TIMER_A 09130 * @arg @ref LL_HRTIM_TIMER_B 09131 * @arg @ref LL_HRTIM_TIMER_C 09132 * @arg @ref LL_HRTIM_TIMER_D 09133 * @arg @ref LL_HRTIM_TIMER_E 09134 * @retval State of CPT2IE bit in HRTIM_TIMxDIER register (1 or 0). 09135 */ 09136 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09137 { 09138 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09139 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09140 REG_OFFSET_TAB_TIMER[iTimer])); 09141 09142 return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT2IE) == (HRTIM_TIMDIER_CPT2IE)) ? 1UL : 0UL); 09143 } 09144 09145 /** 09146 * @brief Enable the output 1 set interrupt for a given timer. 09147 * @rmtoll TIMxDIER SET1IE LL_HRTIM_EnableIT_SET1 09148 * @param HRTIMx High Resolution Timer instance 09149 * @param Timer This parameter can be one of the following values: 09150 * @arg @ref LL_HRTIM_TIMER_A 09151 * @arg @ref LL_HRTIM_TIMER_B 09152 * @arg @ref LL_HRTIM_TIMER_C 09153 * @arg @ref LL_HRTIM_TIMER_D 09154 * @arg @ref LL_HRTIM_TIMER_E 09155 * @retval None 09156 */ 09157 __STATIC_INLINE void LL_HRTIM_EnableIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09158 { 09159 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09160 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09161 REG_OFFSET_TAB_TIMER[iTimer])); 09162 SET_BIT(*pReg, HRTIM_TIMDIER_SET1IE); 09163 } 09164 09165 /** 09166 * @brief Disable the output 1 set interrupt for a given timer. 09167 * @rmtoll TIMxDIER SET1IE LL_HRTIM_DisableIT_SET1 09168 * @param HRTIMx High Resolution Timer instance 09169 * @param Timer This parameter can be one of the following values: 09170 * @arg @ref LL_HRTIM_TIMER_A 09171 * @arg @ref LL_HRTIM_TIMER_B 09172 * @arg @ref LL_HRTIM_TIMER_C 09173 * @arg @ref LL_HRTIM_TIMER_D 09174 * @arg @ref LL_HRTIM_TIMER_E 09175 * @retval None 09176 */ 09177 __STATIC_INLINE void LL_HRTIM_DisableIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09178 { 09179 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09180 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09181 REG_OFFSET_TAB_TIMER[iTimer])); 09182 CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET1IE); 09183 } 09184 09185 /** 09186 * @brief Indicate whether the output 1 set interrupt is enabled for a given timer. 09187 * @rmtoll TIMxDIER SET1IE LL_HRTIM_IsEnabledIT_SET1 09188 * @param HRTIMx High Resolution Timer instance 09189 * @param Timer This parameter can be one of the following values: 09190 * @arg @ref LL_HRTIM_TIMER_A 09191 * @arg @ref LL_HRTIM_TIMER_B 09192 * @arg @ref LL_HRTIM_TIMER_C 09193 * @arg @ref LL_HRTIM_TIMER_D 09194 * @arg @ref LL_HRTIM_TIMER_E 09195 * @retval State of SET1xIE bit in HRTIM_TIMxDIER register (1 or 0). 09196 */ 09197 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09198 { 09199 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09200 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09201 REG_OFFSET_TAB_TIMER[iTimer])); 09202 09203 return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET1IE) == (HRTIM_TIMDIER_SET1IE)) ? 1UL : 0UL); 09204 } 09205 09206 /** 09207 * @brief Enable the output 1 reset interrupt for a given timer. 09208 * @rmtoll TIMxDIER RST1IE LL_HRTIM_EnableIT_RST1 09209 * @param HRTIMx High Resolution Timer instance 09210 * @param Timer This parameter can be one of the following values: 09211 * @arg @ref LL_HRTIM_TIMER_A 09212 * @arg @ref LL_HRTIM_TIMER_B 09213 * @arg @ref LL_HRTIM_TIMER_C 09214 * @arg @ref LL_HRTIM_TIMER_D 09215 * @arg @ref LL_HRTIM_TIMER_E 09216 * @retval None 09217 */ 09218 __STATIC_INLINE void LL_HRTIM_EnableIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09219 { 09220 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09221 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09222 REG_OFFSET_TAB_TIMER[iTimer])); 09223 SET_BIT(*pReg, HRTIM_TIMDIER_RST1IE); 09224 } 09225 09226 /** 09227 * @brief Disable the output 1 reset interrupt for a given timer. 09228 * @rmtoll TIMxDIER RST1IE LL_HRTIM_DisableIT_RST1 09229 * @param HRTIMx High Resolution Timer instance 09230 * @param Timer This parameter can be one of the following values: 09231 * @arg @ref LL_HRTIM_TIMER_A 09232 * @arg @ref LL_HRTIM_TIMER_B 09233 * @arg @ref LL_HRTIM_TIMER_C 09234 * @arg @ref LL_HRTIM_TIMER_D 09235 * @arg @ref LL_HRTIM_TIMER_E 09236 * @retval None 09237 */ 09238 __STATIC_INLINE void LL_HRTIM_DisableIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09239 { 09240 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09241 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09242 REG_OFFSET_TAB_TIMER[iTimer])); 09243 CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST1IE); 09244 } 09245 09246 /** 09247 * @brief Indicate whether the output 1 reset interrupt is enabled for a given timer. 09248 * @rmtoll TIMxDIER RST1IE LL_HRTIM_IsEnabledIT_RST1 09249 * @param HRTIMx High Resolution Timer instance 09250 * @param Timer This parameter can be one of the following values: 09251 * @arg @ref LL_HRTIM_TIMER_A 09252 * @arg @ref LL_HRTIM_TIMER_B 09253 * @arg @ref LL_HRTIM_TIMER_C 09254 * @arg @ref LL_HRTIM_TIMER_D 09255 * @arg @ref LL_HRTIM_TIMER_E 09256 * @retval State of RST1xIE bit in HRTIM_TIMxDIER register (1 or 0). 09257 */ 09258 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09259 { 09260 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09261 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09262 REG_OFFSET_TAB_TIMER[iTimer])); 09263 09264 return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST1IE) == (HRTIM_TIMDIER_RST1IE)) ? 1UL : 0UL); 09265 } 09266 09267 /** 09268 * @brief Enable the output 2 set interrupt for a given timer. 09269 * @rmtoll TIMxDIER SET2IE LL_HRTIM_EnableIT_SET2 09270 * @param HRTIMx High Resolution Timer instance 09271 * @param Timer This parameter can be one of the following values: 09272 * @arg @ref LL_HRTIM_TIMER_A 09273 * @arg @ref LL_HRTIM_TIMER_B 09274 * @arg @ref LL_HRTIM_TIMER_C 09275 * @arg @ref LL_HRTIM_TIMER_D 09276 * @arg @ref LL_HRTIM_TIMER_E 09277 * @retval None 09278 */ 09279 __STATIC_INLINE void LL_HRTIM_EnableIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09280 { 09281 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09282 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09283 REG_OFFSET_TAB_TIMER[iTimer])); 09284 SET_BIT(*pReg, HRTIM_TIMDIER_SET2IE); 09285 } 09286 09287 /** 09288 * @brief Disable the output 2 set interrupt for a given timer. 09289 * @rmtoll TIMxDIER SET2IE LL_HRTIM_DisableIT_SET2 09290 * @param HRTIMx High Resolution Timer instance 09291 * @param Timer This parameter can be one of the following values: 09292 * @arg @ref LL_HRTIM_TIMER_A 09293 * @arg @ref LL_HRTIM_TIMER_B 09294 * @arg @ref LL_HRTIM_TIMER_C 09295 * @arg @ref LL_HRTIM_TIMER_D 09296 * @arg @ref LL_HRTIM_TIMER_E 09297 * @retval None 09298 */ 09299 __STATIC_INLINE void LL_HRTIM_DisableIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09300 { 09301 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09302 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09303 REG_OFFSET_TAB_TIMER[iTimer])); 09304 CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET2IE); 09305 } 09306 09307 /** 09308 * @brief Indicate whether the output 2 set interrupt is enabled for a given timer. 09309 * @rmtoll TIMxDIER SET2IE LL_HRTIM_IsEnabledIT_SET2 09310 * @param HRTIMx High Resolution Timer instance 09311 * @param Timer This parameter can be one of the following values: 09312 * @arg @ref LL_HRTIM_TIMER_A 09313 * @arg @ref LL_HRTIM_TIMER_B 09314 * @arg @ref LL_HRTIM_TIMER_C 09315 * @arg @ref LL_HRTIM_TIMER_D 09316 * @arg @ref LL_HRTIM_TIMER_E 09317 * @retval State of SET2xIE bit in HRTIM_TIMxDIER register (1 or 0). 09318 */ 09319 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09320 { 09321 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09322 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09323 REG_OFFSET_TAB_TIMER[iTimer])); 09324 09325 return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET2IE) == (HRTIM_TIMDIER_SET2IE)) ? 1UL : 0UL); 09326 } 09327 09328 /** 09329 * @brief Enable the output 2 reset interrupt for a given timer. 09330 * @rmtoll TIMxDIER RST2IE LL_HRTIM_EnableIT_RST2 09331 * @param HRTIMx High Resolution Timer instance 09332 * @param Timer This parameter can be one of the following values: 09333 * @arg @ref LL_HRTIM_TIMER_A 09334 * @arg @ref LL_HRTIM_TIMER_B 09335 * @arg @ref LL_HRTIM_TIMER_C 09336 * @arg @ref LL_HRTIM_TIMER_D 09337 * @arg @ref LL_HRTIM_TIMER_E 09338 * @retval None 09339 */ 09340 __STATIC_INLINE void LL_HRTIM_EnableIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09341 { 09342 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09343 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09344 REG_OFFSET_TAB_TIMER[iTimer])); 09345 SET_BIT(*pReg, HRTIM_TIMDIER_RST2IE); 09346 } 09347 09348 /** 09349 * @brief Disable the output 2 reset interrupt for a given timer. 09350 * @rmtoll TIMxDIER RST2IE LL_HRTIM_DisableIT_RST2 09351 * @param HRTIMx High Resolution Timer instance 09352 * @param Timer This parameter can be one of the following values: 09353 * @arg @ref LL_HRTIM_TIMER_A 09354 * @arg @ref LL_HRTIM_TIMER_B 09355 * @arg @ref LL_HRTIM_TIMER_C 09356 * @arg @ref LL_HRTIM_TIMER_D 09357 * @arg @ref LL_HRTIM_TIMER_E 09358 * @retval None 09359 */ 09360 __STATIC_INLINE void LL_HRTIM_DisableIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09361 { 09362 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09363 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09364 REG_OFFSET_TAB_TIMER[iTimer])); 09365 CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST2IE); 09366 } 09367 09368 /** 09369 * @brief Indicate whether the output 2 reset LL_HRTIM_IsEnabledIT_RST2 is enabled for a given timer. 09370 * @rmtoll TIMxDIER RST2IE LL_HRTIM_DisableIT_RST2 09371 * @param HRTIMx High Resolution Timer instance 09372 * @param Timer This parameter can be one of the following values: 09373 * @arg @ref LL_HRTIM_TIMER_A 09374 * @arg @ref LL_HRTIM_TIMER_B 09375 * @arg @ref LL_HRTIM_TIMER_C 09376 * @arg @ref LL_HRTIM_TIMER_D 09377 * @arg @ref LL_HRTIM_TIMER_E 09378 * @retval State of RST2xIE bit in HRTIM_TIMxDIER register (1 or 0). 09379 */ 09380 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09381 { 09382 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09383 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09384 REG_OFFSET_TAB_TIMER[iTimer])); 09385 09386 return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST2IE) == (HRTIM_TIMDIER_RST2IE)) ? 1UL : 0UL); 09387 } 09388 09389 /** 09390 * @brief Enable the reset/roll-over interrupt for a given timer. 09391 * @rmtoll TIMxDIER RSTIE LL_HRTIM_EnableIT_RST 09392 * @param HRTIMx High Resolution Timer instance 09393 * @param Timer This parameter can be one of the following values: 09394 * @arg @ref LL_HRTIM_TIMER_A 09395 * @arg @ref LL_HRTIM_TIMER_B 09396 * @arg @ref LL_HRTIM_TIMER_C 09397 * @arg @ref LL_HRTIM_TIMER_D 09398 * @arg @ref LL_HRTIM_TIMER_E 09399 * @retval None 09400 */ 09401 __STATIC_INLINE void LL_HRTIM_EnableIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09402 { 09403 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09404 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09405 REG_OFFSET_TAB_TIMER[iTimer])); 09406 SET_BIT(*pReg, HRTIM_TIMDIER_RSTIE); 09407 } 09408 09409 /** 09410 * @brief Disable the reset/roll-over interrupt for a given timer. 09411 * @rmtoll TIMxDIER RSTIE LL_HRTIM_DisableIT_RST 09412 * @param HRTIMx High Resolution Timer instance 09413 * @param Timer This parameter can be one of the following values: 09414 * @arg @ref LL_HRTIM_TIMER_A 09415 * @arg @ref LL_HRTIM_TIMER_B 09416 * @arg @ref LL_HRTIM_TIMER_C 09417 * @arg @ref LL_HRTIM_TIMER_D 09418 * @arg @ref LL_HRTIM_TIMER_E 09419 * @retval None 09420 */ 09421 __STATIC_INLINE void LL_HRTIM_DisableIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09422 { 09423 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09424 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09425 REG_OFFSET_TAB_TIMER[iTimer])); 09426 CLEAR_BIT(*pReg, HRTIM_TIMDIER_RSTIE); 09427 } 09428 09429 /** 09430 * @brief Indicate whether the reset/roll-over interrupt is enabled for a given timer. 09431 * @rmtoll TIMxDIER RSTIE LL_HRTIM_IsEnabledIT_RST 09432 * @param HRTIMx High Resolution Timer instance 09433 * @param Timer This parameter can be one of the following values: 09434 * @arg @ref LL_HRTIM_TIMER_A 09435 * @arg @ref LL_HRTIM_TIMER_B 09436 * @arg @ref LL_HRTIM_TIMER_C 09437 * @arg @ref LL_HRTIM_TIMER_D 09438 * @arg @ref LL_HRTIM_TIMER_E 09439 * @retval State of RSTIE bit in HRTIM_TIMxDIER register (1 or 0). 09440 */ 09441 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09442 { 09443 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09444 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09445 REG_OFFSET_TAB_TIMER[iTimer])); 09446 09447 return ((READ_BIT(*pReg, HRTIM_TIMDIER_RSTIE) == (HRTIM_TIMDIER_RSTIE)) ? 1UL : 0UL); 09448 } 09449 09450 /** 09451 * @brief Enable the delayed protection interrupt for a given timer. 09452 * @rmtoll TIMxDIER DLYPRTIE LL_HRTIM_EnableIT_DLYPRT 09453 * @param HRTIMx High Resolution Timer instance 09454 * @param Timer This parameter can be one of the following values: 09455 * @arg @ref LL_HRTIM_TIMER_A 09456 * @arg @ref LL_HRTIM_TIMER_B 09457 * @arg @ref LL_HRTIM_TIMER_C 09458 * @arg @ref LL_HRTIM_TIMER_D 09459 * @arg @ref LL_HRTIM_TIMER_E 09460 * @retval None 09461 */ 09462 __STATIC_INLINE void LL_HRTIM_EnableIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09463 { 09464 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09465 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09466 REG_OFFSET_TAB_TIMER[iTimer])); 09467 SET_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE); 09468 } 09469 09470 /** 09471 * @brief Disable the delayed protection interrupt for a given timer. 09472 * @rmtoll TIMxDIER DLYPRTIE LL_HRTIM_DisableIT_DLYPRT 09473 * @param HRTIMx High Resolution Timer instance 09474 * @param Timer This parameter can be one of the following values: 09475 * @arg @ref LL_HRTIM_TIMER_A 09476 * @arg @ref LL_HRTIM_TIMER_B 09477 * @arg @ref LL_HRTIM_TIMER_C 09478 * @arg @ref LL_HRTIM_TIMER_D 09479 * @arg @ref LL_HRTIM_TIMER_E 09480 * @retval None 09481 */ 09482 __STATIC_INLINE void LL_HRTIM_DisableIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09483 { 09484 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09485 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09486 REG_OFFSET_TAB_TIMER[iTimer])); 09487 CLEAR_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE); 09488 } 09489 09490 /** 09491 * @brief Indicate whether the delayed protection interrupt is enabled for a given timer. 09492 * @rmtoll TIMxDIER DLYPRTIE LL_HRTIM_IsEnabledIT_DLYPRT 09493 * @param HRTIMx High Resolution Timer instance 09494 * @param Timer This parameter can be one of the following values: 09495 * @arg @ref LL_HRTIM_TIMER_A 09496 * @arg @ref LL_HRTIM_TIMER_B 09497 * @arg @ref LL_HRTIM_TIMER_C 09498 * @arg @ref LL_HRTIM_TIMER_D 09499 * @arg @ref LL_HRTIM_TIMER_E 09500 * @retval State of DLYPRTIE bit in HRTIM_TIMxDIER register (1 or 0). 09501 */ 09502 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09503 { 09504 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09505 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09506 REG_OFFSET_TAB_TIMER[iTimer])); 09507 09508 return ((READ_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE) == (HRTIM_TIMDIER_DLYPRTIE)) ? 1UL : 0UL); 09509 } 09510 09511 /** 09512 * @} 09513 */ 09514 09515 /** @defgroup HRTIM_LL_EF_DMA_Management DMA_Management 09516 * @{ 09517 */ 09518 09519 /** 09520 * @brief Enable the synchronization input DMA request. 09521 * @rmtoll MDIER SYNCDE LL_HRTIM_EnableDMAReq_SYNC 09522 * @param HRTIMx High Resolution Timer instance 09523 * @retval None 09524 */ 09525 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SYNC(HRTIM_TypeDef *HRTIMx) 09526 { 09527 SET_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE); 09528 } 09529 09530 /** 09531 * @brief Disable the synchronization input DMA request 09532 * @rmtoll MDIER SYNCDE LL_HRTIM_DisableDMAReq_SYNC 09533 * @param HRTIMx High Resolution Timer instance 09534 * @retval None 09535 */ 09536 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SYNC(HRTIM_TypeDef *HRTIMx) 09537 { 09538 CLEAR_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE); 09539 } 09540 09541 /** 09542 * @brief Indicate whether the synchronization input DMA request is enabled. 09543 * @rmtoll MDIER SYNCDE LL_HRTIM_IsEnabledDMAReq_SYNC 09544 * @param HRTIMx High Resolution Timer instance 09545 * @retval State of SYNCDE bit in HRTIM_MDIER register (1 or 0). 09546 */ 09547 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SYNC(HRTIM_TypeDef *HRTIMx) 09548 { 09549 return ((READ_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE) == (HRTIM_MDIER_SYNCDE)) ? 1UL : 0UL); 09550 } 09551 09552 /** 09553 * @brief Enable the update DMA request for a given timer. 09554 * @rmtoll MDIER MUPDDE LL_HRTIM_EnableDMAReq_UPDATE\n 09555 * TIMxDIER UPDDE LL_HRTIM_EnableDMAReq_UPDATE 09556 * @param HRTIMx High Resolution Timer instance 09557 * @param Timer This parameter can be one of the following values: 09558 * @arg @ref LL_HRTIM_TIMER_MASTER 09559 * @arg @ref LL_HRTIM_TIMER_A 09560 * @arg @ref LL_HRTIM_TIMER_B 09561 * @arg @ref LL_HRTIM_TIMER_C 09562 * @arg @ref LL_HRTIM_TIMER_D 09563 * @arg @ref LL_HRTIM_TIMER_E 09564 * @retval None 09565 */ 09566 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09567 { 09568 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09569 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09570 REG_OFFSET_TAB_TIMER[iTimer])); 09571 SET_BIT(*pReg, HRTIM_MDIER_MUPDDE); 09572 } 09573 09574 /** 09575 * @brief Disable the update DMA request for a given timer. 09576 * @rmtoll MDIER MUPDDE LL_HRTIM_DisableDMAReq_UPDATE\n 09577 * TIMxDIER UPDDE LL_HRTIM_DisableDMAReq_UPDATE 09578 * @param HRTIMx High Resolution Timer instance 09579 * @param Timer This parameter can be one of the following values: 09580 * @arg @ref LL_HRTIM_TIMER_MASTER 09581 * @arg @ref LL_HRTIM_TIMER_A 09582 * @arg @ref LL_HRTIM_TIMER_B 09583 * @arg @ref LL_HRTIM_TIMER_C 09584 * @arg @ref LL_HRTIM_TIMER_D 09585 * @arg @ref LL_HRTIM_TIMER_E 09586 * @retval None 09587 */ 09588 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09589 { 09590 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09591 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09592 REG_OFFSET_TAB_TIMER[iTimer])); 09593 CLEAR_BIT(*pReg, HRTIM_MDIER_MUPDDE); 09594 } 09595 09596 /** 09597 * @brief Indicate whether the update DMA request is enabled for a given timer. 09598 * @rmtoll MDIER MUPDDE LL_HRTIM_IsEnabledDMAReq_UPDATE\n 09599 * TIMxDIER UPDDE LL_HRTIM_IsEnabledDMAReq_UPDATE 09600 * @param HRTIMx High Resolution Timer instance 09601 * @param Timer This parameter can be one of the following values: 09602 * @arg @ref LL_HRTIM_TIMER_MASTER 09603 * @arg @ref LL_HRTIM_TIMER_A 09604 * @arg @ref LL_HRTIM_TIMER_B 09605 * @arg @ref LL_HRTIM_TIMER_C 09606 * @arg @ref LL_HRTIM_TIMER_D 09607 * @arg @ref LL_HRTIM_TIMER_E 09608 * @retval State of MUPDDE/UPDDE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09609 */ 09610 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09611 { 09612 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09613 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09614 REG_OFFSET_TAB_TIMER[iTimer])); 09615 09616 return ((READ_BIT(*pReg, HRTIM_MDIER_MUPDDE) == (HRTIM_MDIER_MUPDDE)) ? 1UL : 0UL); 09617 } 09618 09619 /** 09620 * @brief Enable the repetition DMA request for a given timer. 09621 * @rmtoll MDIER MREPDE LL_HRTIM_EnableDMAReq_REP\n 09622 * TIMxDIER REPDE LL_HRTIM_EnableDMAReq_REP 09623 * @param HRTIMx High Resolution Timer instance 09624 * @param Timer This parameter can be one of the following values: 09625 * @arg @ref LL_HRTIM_TIMER_MASTER 09626 * @arg @ref LL_HRTIM_TIMER_A 09627 * @arg @ref LL_HRTIM_TIMER_B 09628 * @arg @ref LL_HRTIM_TIMER_C 09629 * @arg @ref LL_HRTIM_TIMER_D 09630 * @arg @ref LL_HRTIM_TIMER_E 09631 * @retval None 09632 */ 09633 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09634 { 09635 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09636 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09637 REG_OFFSET_TAB_TIMER[iTimer])); 09638 SET_BIT(*pReg, HRTIM_MDIER_MREPDE); 09639 } 09640 09641 /** 09642 * @brief Disable the repetition DMA request for a given timer. 09643 * @rmtoll MDIER MREPDE LL_HRTIM_DisableDMAReq_REP\n 09644 * TIMxDIER REPDE LL_HRTIM_DisableDMAReq_REP 09645 * @param HRTIMx High Resolution Timer instance 09646 * @param Timer This parameter can be one of the following values: 09647 * @arg @ref LL_HRTIM_TIMER_MASTER 09648 * @arg @ref LL_HRTIM_TIMER_A 09649 * @arg @ref LL_HRTIM_TIMER_B 09650 * @arg @ref LL_HRTIM_TIMER_C 09651 * @arg @ref LL_HRTIM_TIMER_D 09652 * @arg @ref LL_HRTIM_TIMER_E 09653 * @retval None 09654 */ 09655 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09656 { 09657 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09658 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09659 REG_OFFSET_TAB_TIMER[iTimer])); 09660 CLEAR_BIT(*pReg, HRTIM_MDIER_MREPDE); 09661 } 09662 09663 /** 09664 * @brief Indicate whether the repetition DMA request is enabled for a given timer. 09665 * @rmtoll MDIER MREPDE LL_HRTIM_IsEnabledDMAReq_REP\n 09666 * TIMxDIER REPDE LL_HRTIM_IsEnabledDMAReq_REP 09667 * @param HRTIMx High Resolution Timer instance 09668 * @param Timer This parameter can be one of the following values: 09669 * @arg @ref LL_HRTIM_TIMER_MASTER 09670 * @arg @ref LL_HRTIM_TIMER_A 09671 * @arg @ref LL_HRTIM_TIMER_B 09672 * @arg @ref LL_HRTIM_TIMER_C 09673 * @arg @ref LL_HRTIM_TIMER_D 09674 * @arg @ref LL_HRTIM_TIMER_E 09675 * @retval State of MREPDE/REPDE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09676 */ 09677 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09678 { 09679 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09680 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09681 REG_OFFSET_TAB_TIMER[iTimer])); 09682 09683 return ((READ_BIT(*pReg, HRTIM_MDIER_MREPDE) == (HRTIM_MDIER_MREPDE)) ? 1UL : 0UL); 09684 } 09685 09686 /** 09687 * @brief Enable the compare 1 DMA request for a given timer. 09688 * @rmtoll MDIER MCMP1DE LL_HRTIM_EnableDMAReq_CMP1\n 09689 * TIMxDIER CMP1DE LL_HRTIM_EnableDMAReq_CMP1 09690 * @param HRTIMx High Resolution Timer instance 09691 * @param Timer This parameter can be one of the following values: 09692 * @arg @ref LL_HRTIM_TIMER_MASTER 09693 * @arg @ref LL_HRTIM_TIMER_A 09694 * @arg @ref LL_HRTIM_TIMER_B 09695 * @arg @ref LL_HRTIM_TIMER_C 09696 * @arg @ref LL_HRTIM_TIMER_D 09697 * @arg @ref LL_HRTIM_TIMER_E 09698 * @retval None 09699 */ 09700 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09701 { 09702 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09703 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09704 REG_OFFSET_TAB_TIMER[iTimer])); 09705 SET_BIT(*pReg, HRTIM_MDIER_MCMP1DE); 09706 } 09707 09708 /** 09709 * @brief Disable the compare 1 DMA request for a given timer. 09710 * @rmtoll MDIER MCMP1DE LL_HRTIM_DisableDMAReq_CMP1\n 09711 * TIMxDIER CMP1DE LL_HRTIM_DisableDMAReq_CMP1 09712 * @param HRTIMx High Resolution Timer instance 09713 * @param Timer This parameter can be one of the following values: 09714 * @arg @ref LL_HRTIM_TIMER_MASTER 09715 * @arg @ref LL_HRTIM_TIMER_A 09716 * @arg @ref LL_HRTIM_TIMER_B 09717 * @arg @ref LL_HRTIM_TIMER_C 09718 * @arg @ref LL_HRTIM_TIMER_D 09719 * @arg @ref LL_HRTIM_TIMER_E 09720 * @retval None 09721 */ 09722 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09723 { 09724 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09725 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09726 REG_OFFSET_TAB_TIMER[iTimer])); 09727 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP1DE); 09728 } 09729 09730 /** 09731 * @brief Indicate whether the compare 1 DMA request is enabled for a given timer. 09732 * @rmtoll MDIER MCMP1DE LL_HRTIM_IsEnabledDMAReq_CMP1\n 09733 * TIMxDIER CMP1DE LL_HRTIM_IsEnabledDMAReq_CMP1 09734 * @param HRTIMx High Resolution Timer instance 09735 * @param Timer This parameter can be one of the following values: 09736 * @arg @ref LL_HRTIM_TIMER_MASTER 09737 * @arg @ref LL_HRTIM_TIMER_A 09738 * @arg @ref LL_HRTIM_TIMER_B 09739 * @arg @ref LL_HRTIM_TIMER_C 09740 * @arg @ref LL_HRTIM_TIMER_D 09741 * @arg @ref LL_HRTIM_TIMER_E 09742 * @retval State of MCMP1DE/CMP1DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09743 */ 09744 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09745 { 09746 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09747 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09748 REG_OFFSET_TAB_TIMER[iTimer])); 09749 09750 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP1DE) == (HRTIM_MDIER_MCMP1DE)) ? 1UL : 0UL); 09751 } 09752 09753 /** 09754 * @brief Enable the compare 2 DMA request for a given timer. 09755 * @rmtoll MDIER MCMP2DE LL_HRTIM_EnableDMAReq_CMP2\n 09756 * TIMxDIER CMP2DE LL_HRTIM_EnableDMAReq_CMP2 09757 * @param HRTIMx High Resolution Timer instance 09758 * @param Timer This parameter can be one of the following values: 09759 * @arg @ref LL_HRTIM_TIMER_MASTER 09760 * @arg @ref LL_HRTIM_TIMER_A 09761 * @arg @ref LL_HRTIM_TIMER_B 09762 * @arg @ref LL_HRTIM_TIMER_C 09763 * @arg @ref LL_HRTIM_TIMER_D 09764 * @arg @ref LL_HRTIM_TIMER_E 09765 * @retval None 09766 */ 09767 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09768 { 09769 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09770 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09771 REG_OFFSET_TAB_TIMER[iTimer])); 09772 SET_BIT(*pReg, HRTIM_MDIER_MCMP2DE); 09773 } 09774 09775 /** 09776 * @brief Disable the compare 2 DMA request for a given timer. 09777 * @rmtoll MDIER MCMP2DE LL_HRTIM_DisableDMAReq_CMP2\n 09778 * TIMxDIER CMP2DE LL_HRTIM_DisableDMAReq_CMP2 09779 * @param HRTIMx High Resolution Timer instance 09780 * @param Timer This parameter can be one of the following values: 09781 * @arg @ref LL_HRTIM_TIMER_MASTER 09782 * @arg @ref LL_HRTIM_TIMER_A 09783 * @arg @ref LL_HRTIM_TIMER_B 09784 * @arg @ref LL_HRTIM_TIMER_C 09785 * @arg @ref LL_HRTIM_TIMER_D 09786 * @arg @ref LL_HRTIM_TIMER_E 09787 * @retval None 09788 */ 09789 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09790 { 09791 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09792 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09793 REG_OFFSET_TAB_TIMER[iTimer])); 09794 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP2DE); 09795 } 09796 09797 /** 09798 * @brief Indicate whether the compare 2 DMA request is enabled for a given timer. 09799 * @rmtoll MDIER MCMP2DE LL_HRTIM_IsEnabledDMAReq_CMP2\n 09800 * TIMxDIER CMP2DE LL_HRTIM_IsEnabledDMAReq_CMP2 09801 * @param HRTIMx High Resolution Timer instance 09802 * @param Timer This parameter can be one of the following values: 09803 * @arg @ref LL_HRTIM_TIMER_MASTER 09804 * @arg @ref LL_HRTIM_TIMER_A 09805 * @arg @ref LL_HRTIM_TIMER_B 09806 * @arg @ref LL_HRTIM_TIMER_C 09807 * @arg @ref LL_HRTIM_TIMER_D 09808 * @arg @ref LL_HRTIM_TIMER_E 09809 * @retval State of MCMP2DE/CMP2DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09810 */ 09811 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09812 { 09813 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09814 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09815 REG_OFFSET_TAB_TIMER[iTimer])); 09816 09817 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP2DE) == (HRTIM_MDIER_MCMP2DE)) ? 1UL : 0UL); 09818 } 09819 09820 /** 09821 * @brief Enable the compare 3 DMA request for a given timer. 09822 * @rmtoll MDIER MCMP3DE LL_HRTIM_EnableDMAReq_CMP3\n 09823 * TIMxDIER CMP3DE LL_HRTIM_EnableDMAReq_CMP3 09824 * @param HRTIMx High Resolution Timer instance 09825 * @param Timer This parameter can be one of the following values: 09826 * @arg @ref LL_HRTIM_TIMER_MASTER 09827 * @arg @ref LL_HRTIM_TIMER_A 09828 * @arg @ref LL_HRTIM_TIMER_B 09829 * @arg @ref LL_HRTIM_TIMER_C 09830 * @arg @ref LL_HRTIM_TIMER_D 09831 * @arg @ref LL_HRTIM_TIMER_E 09832 * @retval None 09833 */ 09834 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09835 { 09836 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09837 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09838 REG_OFFSET_TAB_TIMER[iTimer])); 09839 SET_BIT(*pReg, HRTIM_MDIER_MCMP3DE); 09840 } 09841 09842 /** 09843 * @brief Disable the compare 3 DMA request for a given timer. 09844 * @rmtoll MDIER MCMP3DE LL_HRTIM_DisableDMAReq_CMP3\n 09845 * TIMxDIER CMP3DE LL_HRTIM_DisableDMAReq_CMP3 09846 * @param HRTIMx High Resolution Timer instance 09847 * @param Timer This parameter can be one of the following values: 09848 * @arg @ref LL_HRTIM_TIMER_MASTER 09849 * @arg @ref LL_HRTIM_TIMER_A 09850 * @arg @ref LL_HRTIM_TIMER_B 09851 * @arg @ref LL_HRTIM_TIMER_C 09852 * @arg @ref LL_HRTIM_TIMER_D 09853 * @arg @ref LL_HRTIM_TIMER_E 09854 * @retval None 09855 */ 09856 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09857 { 09858 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09859 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09860 REG_OFFSET_TAB_TIMER[iTimer])); 09861 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP3DE); 09862 } 09863 09864 /** 09865 * @brief Indicate whether the compare 3 DMA request is enabled for a given timer. 09866 * @rmtoll MDIER MCMP3DE LL_HRTIM_IsEnabledDMAReq_CMP3\n 09867 * TIMxDIER CMP3DE LL_HRTIM_IsEnabledDMAReq_CMP3 09868 * @param HRTIMx High Resolution Timer instance 09869 * @param Timer This parameter can be one of the following values: 09870 * @arg @ref LL_HRTIM_TIMER_MASTER 09871 * @arg @ref LL_HRTIM_TIMER_A 09872 * @arg @ref LL_HRTIM_TIMER_B 09873 * @arg @ref LL_HRTIM_TIMER_C 09874 * @arg @ref LL_HRTIM_TIMER_D 09875 * @arg @ref LL_HRTIM_TIMER_E 09876 * @retval State of MCMP3DE/CMP3DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09877 */ 09878 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09879 { 09880 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09881 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09882 REG_OFFSET_TAB_TIMER[iTimer])); 09883 09884 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP3DE) == (HRTIM_MDIER_MCMP3DE)) ? 1UL : 0UL); 09885 } 09886 09887 /** 09888 * @brief Enable the compare 4 DMA request for a given timer. 09889 * @rmtoll MDIER MCMP4DE LL_HRTIM_EnableDMAReq_CMP4\n 09890 * TIMxDIER CMP4DE LL_HRTIM_EnableDMAReq_CMP4 09891 * @param HRTIMx High Resolution Timer instance 09892 * @param Timer This parameter can be one of the following values: 09893 * @arg @ref LL_HRTIM_TIMER_MASTER 09894 * @arg @ref LL_HRTIM_TIMER_A 09895 * @arg @ref LL_HRTIM_TIMER_B 09896 * @arg @ref LL_HRTIM_TIMER_C 09897 * @arg @ref LL_HRTIM_TIMER_D 09898 * @arg @ref LL_HRTIM_TIMER_E 09899 * @retval None 09900 */ 09901 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09902 { 09903 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09904 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09905 REG_OFFSET_TAB_TIMER[iTimer])); 09906 SET_BIT(*pReg, HRTIM_MDIER_MCMP4DE); 09907 } 09908 09909 /** 09910 * @brief Disable the compare 4 DMA request for a given timer. 09911 * @rmtoll MDIER MCMP4DE LL_HRTIM_DisableDMAReq_CMP4\n 09912 * TIMxDIER CMP4DE LL_HRTIM_DisableDMAReq_CMP4 09913 * @param HRTIMx High Resolution Timer instance 09914 * @param Timer This parameter can be one of the following values: 09915 * @arg @ref LL_HRTIM_TIMER_MASTER 09916 * @arg @ref LL_HRTIM_TIMER_A 09917 * @arg @ref LL_HRTIM_TIMER_B 09918 * @arg @ref LL_HRTIM_TIMER_C 09919 * @arg @ref LL_HRTIM_TIMER_D 09920 * @arg @ref LL_HRTIM_TIMER_E 09921 * @retval None 09922 */ 09923 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09924 { 09925 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09926 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09927 REG_OFFSET_TAB_TIMER[iTimer])); 09928 CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP4DE); 09929 } 09930 09931 /** 09932 * @brief Indicate whether the compare 4 DMA request is enabled for a given timer. 09933 * @rmtoll MDIER MCMP4DE LL_HRTIM_IsEnabledDMAReq_CMP4\n 09934 * TIMxDIER CMP4DE LL_HRTIM_IsEnabledDMAReq_CMP4 09935 * @param HRTIMx High Resolution Timer instance 09936 * @param Timer This parameter can be one of the following values: 09937 * @arg @ref LL_HRTIM_TIMER_MASTER 09938 * @arg @ref LL_HRTIM_TIMER_A 09939 * @arg @ref LL_HRTIM_TIMER_B 09940 * @arg @ref LL_HRTIM_TIMER_C 09941 * @arg @ref LL_HRTIM_TIMER_D 09942 * @arg @ref LL_HRTIM_TIMER_E 09943 * @retval State of MCMP4DE/CMP4DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0). 09944 */ 09945 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09946 { 09947 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09948 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09949 REG_OFFSET_TAB_TIMER[iTimer])); 09950 09951 return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP4DE) == (HRTIM_MDIER_MCMP4DE)) ? 1UL : 0UL); 09952 } 09953 09954 /** 09955 * @brief Enable the capture 1 DMA request for a given timer. 09956 * @rmtoll TIMxDIER CPT1DE LL_HRTIM_EnableDMAReq_CPT1 09957 * @param HRTIMx High Resolution Timer instance 09958 * @param Timer This parameter can be one of the following values: 09959 * @arg @ref LL_HRTIM_TIMER_A 09960 * @arg @ref LL_HRTIM_TIMER_B 09961 * @arg @ref LL_HRTIM_TIMER_C 09962 * @arg @ref LL_HRTIM_TIMER_D 09963 * @arg @ref LL_HRTIM_TIMER_E 09964 * @retval None 09965 */ 09966 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09967 { 09968 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09969 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09970 REG_OFFSET_TAB_TIMER[iTimer])); 09971 SET_BIT(*pReg, HRTIM_TIMDIER_CPT1DE); 09972 } 09973 09974 /** 09975 * @brief Disable the capture 1 DMA request for a given timer. 09976 * @rmtoll TIMxDIER CPT1DE LL_HRTIM_DisableDMAReq_CPT1 09977 * @param HRTIMx High Resolution Timer instance 09978 * @param Timer This parameter can be one of the following values: 09979 * @arg @ref LL_HRTIM_TIMER_A 09980 * @arg @ref LL_HRTIM_TIMER_B 09981 * @arg @ref LL_HRTIM_TIMER_C 09982 * @arg @ref LL_HRTIM_TIMER_D 09983 * @arg @ref LL_HRTIM_TIMER_E 09984 * @retval None 09985 */ 09986 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 09987 { 09988 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 09989 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 09990 REG_OFFSET_TAB_TIMER[iTimer])); 09991 CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT1DE); 09992 } 09993 09994 /** 09995 * @brief Indicate whether the capture 1 DMA request is enabled for a given timer. 09996 * @rmtoll TIMxDIER CPT1DE LL_HRTIM_IsEnabledDMAReq_CPT1 09997 * @param HRTIMx High Resolution Timer instance 09998 * @param Timer This parameter can be one of the following values: 09999 * @arg @ref LL_HRTIM_TIMER_A 10000 * @arg @ref LL_HRTIM_TIMER_B 10001 * @arg @ref LL_HRTIM_TIMER_C 10002 * @arg @ref LL_HRTIM_TIMER_D 10003 * @arg @ref LL_HRTIM_TIMER_E 10004 * @retval State of CPT1DE bit in HRTIM_TIMxDIER register (1 or 0). 10005 */ 10006 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10007 { 10008 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10009 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10010 REG_OFFSET_TAB_TIMER[iTimer])); 10011 10012 return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT1DE) == (HRTIM_TIMDIER_CPT1DE)) ? 1UL : 0UL); 10013 } 10014 10015 /** 10016 * @brief Enable the capture 2 DMA request for a given timer. 10017 * @rmtoll TIMxDIER CPT2DE LL_HRTIM_EnableDMAReq_CPT2 10018 * @param HRTIMx High Resolution Timer instance 10019 * @param Timer This parameter can be one of the following values: 10020 * @arg @ref LL_HRTIM_TIMER_A 10021 * @arg @ref LL_HRTIM_TIMER_B 10022 * @arg @ref LL_HRTIM_TIMER_C 10023 * @arg @ref LL_HRTIM_TIMER_D 10024 * @arg @ref LL_HRTIM_TIMER_E 10025 * @retval None 10026 */ 10027 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10028 { 10029 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10030 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10031 REG_OFFSET_TAB_TIMER[iTimer])); 10032 SET_BIT(*pReg, HRTIM_TIMDIER_CPT2DE); 10033 } 10034 10035 /** 10036 * @brief Disable the capture 2 DMA request for a given timer. 10037 * @rmtoll TIMxDIER CPT2DE LL_HRTIM_DisableDMAReq_CPT2 10038 * @param HRTIMx High Resolution Timer instance 10039 * @param Timer This parameter can be one of the following values: 10040 * @arg @ref LL_HRTIM_TIMER_A 10041 * @arg @ref LL_HRTIM_TIMER_B 10042 * @arg @ref LL_HRTIM_TIMER_C 10043 * @arg @ref LL_HRTIM_TIMER_D 10044 * @arg @ref LL_HRTIM_TIMER_E 10045 * @retval None 10046 */ 10047 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10048 { 10049 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10050 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10051 REG_OFFSET_TAB_TIMER[iTimer])); 10052 CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT2DE); 10053 } 10054 10055 /** 10056 * @brief Indicate whether the capture 2 DMA request is enabled for a given timer. 10057 * @rmtoll TIMxDIER CPT2DE LL_HRTIM_IsEnabledDMAReq_CPT2 10058 * @param HRTIMx High Resolution Timer instance 10059 * @param Timer This parameter can be one of the following values: 10060 * @arg @ref LL_HRTIM_TIMER_A 10061 * @arg @ref LL_HRTIM_TIMER_B 10062 * @arg @ref LL_HRTIM_TIMER_C 10063 * @arg @ref LL_HRTIM_TIMER_D 10064 * @arg @ref LL_HRTIM_TIMER_E 10065 * @retval State of CPT2DE bit in HRTIM_TIMxDIER register (1 or 0). 10066 */ 10067 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10068 { 10069 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10070 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10071 REG_OFFSET_TAB_TIMER[iTimer])); 10072 10073 return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT2DE) == (HRTIM_TIMDIER_CPT2DE)) ? 1UL : 0UL); 10074 } 10075 10076 /** 10077 * @brief Enable the output 1 set DMA request for a given timer. 10078 * @rmtoll TIMxDIER SET1DE LL_HRTIM_EnableDMAReq_SET1 10079 * @param HRTIMx High Resolution Timer instance 10080 * @param Timer This parameter can be one of the following values: 10081 * @arg @ref LL_HRTIM_TIMER_A 10082 * @arg @ref LL_HRTIM_TIMER_B 10083 * @arg @ref LL_HRTIM_TIMER_C 10084 * @arg @ref LL_HRTIM_TIMER_D 10085 * @arg @ref LL_HRTIM_TIMER_E 10086 * @retval None 10087 */ 10088 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10089 { 10090 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10091 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10092 REG_OFFSET_TAB_TIMER[iTimer])); 10093 SET_BIT(*pReg, HRTIM_TIMDIER_SET1DE); 10094 } 10095 10096 /** 10097 * @brief Disable the output 1 set DMA request for a given timer. 10098 * @rmtoll TIMxDIER SET1DE LL_HRTIM_DisableDMAReq_SET1 10099 * @param HRTIMx High Resolution Timer instance 10100 * @param Timer This parameter can be one of the following values: 10101 * @arg @ref LL_HRTIM_TIMER_A 10102 * @arg @ref LL_HRTIM_TIMER_B 10103 * @arg @ref LL_HRTIM_TIMER_C 10104 * @arg @ref LL_HRTIM_TIMER_D 10105 * @arg @ref LL_HRTIM_TIMER_E 10106 * @retval None 10107 */ 10108 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10109 { 10110 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10111 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10112 REG_OFFSET_TAB_TIMER[iTimer])); 10113 CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET1DE); 10114 } 10115 10116 /** 10117 * @brief Indicate whether the output 1 set DMA request is enabled for a given timer. 10118 * @rmtoll TIMxDIER SET1DE LL_HRTIM_IsEnabledDMAReq_SET1 10119 * @param HRTIMx High Resolution Timer instance 10120 * @param Timer This parameter can be one of the following values: 10121 * @arg @ref LL_HRTIM_TIMER_A 10122 * @arg @ref LL_HRTIM_TIMER_B 10123 * @arg @ref LL_HRTIM_TIMER_C 10124 * @arg @ref LL_HRTIM_TIMER_D 10125 * @arg @ref LL_HRTIM_TIMER_E 10126 * @retval State of SET1xDE bit in HRTIM_TIMxDIER register (1 or 0). 10127 */ 10128 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10129 { 10130 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10131 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10132 REG_OFFSET_TAB_TIMER[iTimer])); 10133 10134 return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET1DE) == (HRTIM_TIMDIER_SET1DE)) ? 1UL : 0UL); 10135 } 10136 10137 /** 10138 * @brief Enable the output 1 reset DMA request for a given timer. 10139 * @rmtoll TIMxDIER RST1DE LL_HRTIM_EnableDMAReq_RST1 10140 * @param HRTIMx High Resolution Timer instance 10141 * @param Timer This parameter can be one of the following values: 10142 * @arg @ref LL_HRTIM_TIMER_A 10143 * @arg @ref LL_HRTIM_TIMER_B 10144 * @arg @ref LL_HRTIM_TIMER_C 10145 * @arg @ref LL_HRTIM_TIMER_D 10146 * @arg @ref LL_HRTIM_TIMER_E 10147 * @retval None 10148 */ 10149 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10150 { 10151 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10152 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10153 REG_OFFSET_TAB_TIMER[iTimer])); 10154 SET_BIT(*pReg, HRTIM_TIMDIER_RST1DE); 10155 } 10156 10157 /** 10158 * @brief Disable the output 1 reset DMA request for a given timer. 10159 * @rmtoll TIMxDIER RST1DE LL_HRTIM_DisableDMAReq_RST1 10160 * @param HRTIMx High Resolution Timer instance 10161 * @param Timer This parameter can be one of the following values: 10162 * @arg @ref LL_HRTIM_TIMER_A 10163 * @arg @ref LL_HRTIM_TIMER_B 10164 * @arg @ref LL_HRTIM_TIMER_C 10165 * @arg @ref LL_HRTIM_TIMER_D 10166 * @arg @ref LL_HRTIM_TIMER_E 10167 * @retval None 10168 */ 10169 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10170 { 10171 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10172 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10173 REG_OFFSET_TAB_TIMER[iTimer])); 10174 CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST1DE); 10175 } 10176 10177 /** 10178 * @brief Indicate whether the output 1 reset interrupt is enabled for a given timer. 10179 * @rmtoll TIMxDIER RST1DE LL_HRTIM_IsEnabledDMAReq_RST1 10180 * @param HRTIMx High Resolution Timer instance 10181 * @param Timer This parameter can be one of the following values: 10182 * @arg @ref LL_HRTIM_TIMER_A 10183 * @arg @ref LL_HRTIM_TIMER_B 10184 * @arg @ref LL_HRTIM_TIMER_C 10185 * @arg @ref LL_HRTIM_TIMER_D 10186 * @arg @ref LL_HRTIM_TIMER_E 10187 * @retval State of RST1xDE bit in HRTIM_TIMxDIER register (1 or 0). 10188 */ 10189 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10190 { 10191 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10192 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10193 REG_OFFSET_TAB_TIMER[iTimer])); 10194 10195 return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST1DE) == (HRTIM_TIMDIER_RST1DE)) ? 1UL : 0UL); 10196 } 10197 10198 /** 10199 * @brief Enable the output 2 set DMA request for a given timer. 10200 * @rmtoll TIMxDIER SET2DE LL_HRTIM_EnableDMAReq_SET2 10201 * @param HRTIMx High Resolution Timer instance 10202 * @param Timer This parameter can be one of the following values: 10203 * @arg @ref LL_HRTIM_TIMER_A 10204 * @arg @ref LL_HRTIM_TIMER_B 10205 * @arg @ref LL_HRTIM_TIMER_C 10206 * @arg @ref LL_HRTIM_TIMER_D 10207 * @arg @ref LL_HRTIM_TIMER_E 10208 * @retval None 10209 */ 10210 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10211 { 10212 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10213 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10214 REG_OFFSET_TAB_TIMER[iTimer])); 10215 SET_BIT(*pReg, HRTIM_TIMDIER_SET2DE); 10216 } 10217 10218 /** 10219 * @brief Disable the output 2 set DMA request for a given timer. 10220 * @rmtoll TIMxDIER SET2DE LL_HRTIM_DisableDMAReq_SET2 10221 * @param HRTIMx High Resolution Timer instance 10222 * @param Timer This parameter can be one of the following values: 10223 * @arg @ref LL_HRTIM_TIMER_A 10224 * @arg @ref LL_HRTIM_TIMER_B 10225 * @arg @ref LL_HRTIM_TIMER_C 10226 * @arg @ref LL_HRTIM_TIMER_D 10227 * @arg @ref LL_HRTIM_TIMER_E 10228 * @retval None 10229 */ 10230 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10231 { 10232 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10233 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10234 REG_OFFSET_TAB_TIMER[iTimer])); 10235 CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET2DE); 10236 } 10237 10238 /** 10239 * @brief Indicate whether the output 2 set DMA request is enabled for a given timer. 10240 * @rmtoll TIMxDIER SET2DE LL_HRTIM_IsEnabledDMAReq_SET2 10241 * @param HRTIMx High Resolution Timer instance 10242 * @param Timer This parameter can be one of the following values: 10243 * @arg @ref LL_HRTIM_TIMER_A 10244 * @arg @ref LL_HRTIM_TIMER_B 10245 * @arg @ref LL_HRTIM_TIMER_C 10246 * @arg @ref LL_HRTIM_TIMER_D 10247 * @arg @ref LL_HRTIM_TIMER_E 10248 * @retval State of SET2xDE bit in HRTIM_TIMxDIER register (1 or 0). 10249 */ 10250 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10251 { 10252 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10253 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10254 REG_OFFSET_TAB_TIMER[iTimer])); 10255 10256 return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET2DE) == (HRTIM_TIMDIER_SET2DE)) ? 1UL : 0UL); 10257 } 10258 10259 /** 10260 * @brief Enable the output 2 reset DMA request for a given timer. 10261 * @rmtoll TIMxDIER RST2DE LL_HRTIM_EnableDMAReq_RST2 10262 * @param HRTIMx High Resolution Timer instance 10263 * @param Timer This parameter can be one of the following values: 10264 * @arg @ref LL_HRTIM_TIMER_A 10265 * @arg @ref LL_HRTIM_TIMER_B 10266 * @arg @ref LL_HRTIM_TIMER_C 10267 * @arg @ref LL_HRTIM_TIMER_D 10268 * @arg @ref LL_HRTIM_TIMER_E 10269 * @retval None 10270 */ 10271 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10272 { 10273 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10274 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10275 REG_OFFSET_TAB_TIMER[iTimer])); 10276 SET_BIT(*pReg, HRTIM_TIMDIER_RST2DE); 10277 } 10278 10279 /** 10280 * @brief Disable the output 2 reset DMA request for a given timer. 10281 * @rmtoll TIMxDIER RST2DE LL_HRTIM_DisableDMAReq_RST2 10282 * @param HRTIMx High Resolution Timer instance 10283 * @param Timer This parameter can be one of the following values: 10284 * @arg @ref LL_HRTIM_TIMER_A 10285 * @arg @ref LL_HRTIM_TIMER_B 10286 * @arg @ref LL_HRTIM_TIMER_C 10287 * @arg @ref LL_HRTIM_TIMER_D 10288 * @arg @ref LL_HRTIM_TIMER_E 10289 * @retval None 10290 */ 10291 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10292 { 10293 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10294 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10295 REG_OFFSET_TAB_TIMER[iTimer])); 10296 CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST2DE); 10297 } 10298 10299 /** 10300 * @brief Indicate whether the output 2 reset DMA request is enabled for a given timer. 10301 * @rmtoll TIMxDIER RST2DE LL_HRTIM_IsEnabledDMAReq_RST2 10302 * @param HRTIMx High Resolution Timer instance 10303 * @param Timer This parameter can be one of the following values: 10304 * @arg @ref LL_HRTIM_TIMER_A 10305 * @arg @ref LL_HRTIM_TIMER_B 10306 * @arg @ref LL_HRTIM_TIMER_C 10307 * @arg @ref LL_HRTIM_TIMER_D 10308 * @arg @ref LL_HRTIM_TIMER_E 10309 * @retval State of RST2xDE bit in HRTIM_TIMxDIER register (1 or 0). 10310 */ 10311 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10312 { 10313 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10314 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10315 REG_OFFSET_TAB_TIMER[iTimer])); 10316 10317 return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST2DE) == (HRTIM_TIMDIER_RST2DE)) ? 1UL : 0UL); 10318 } 10319 10320 /** 10321 * @brief Enable the reset/roll-over DMA request for a given timer. 10322 * @rmtoll TIMxDIER RSTDE LL_HRTIM_EnableDMAReq_RST 10323 * @param HRTIMx High Resolution Timer instance 10324 * @param Timer This parameter can be one of the following values: 10325 * @arg @ref LL_HRTIM_TIMER_A 10326 * @arg @ref LL_HRTIM_TIMER_B 10327 * @arg @ref LL_HRTIM_TIMER_C 10328 * @arg @ref LL_HRTIM_TIMER_D 10329 * @arg @ref LL_HRTIM_TIMER_E 10330 * @retval None 10331 */ 10332 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10333 { 10334 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10335 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10336 REG_OFFSET_TAB_TIMER[iTimer])); 10337 SET_BIT(*pReg, HRTIM_TIMDIER_RSTDE); 10338 } 10339 10340 /** 10341 * @brief Disable the reset/roll-over DMA request for a given timer. 10342 * @rmtoll TIMxDIER RSTDE LL_HRTIM_DisableDMAReq_RST 10343 * @param HRTIMx High Resolution Timer instance 10344 * @param Timer This parameter can be one of the following values: 10345 * @arg @ref LL_HRTIM_TIMER_A 10346 * @arg @ref LL_HRTIM_TIMER_B 10347 * @arg @ref LL_HRTIM_TIMER_C 10348 * @arg @ref LL_HRTIM_TIMER_D 10349 * @arg @ref LL_HRTIM_TIMER_E 10350 * @retval None 10351 */ 10352 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10353 { 10354 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10355 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10356 REG_OFFSET_TAB_TIMER[iTimer])); 10357 CLEAR_BIT(*pReg, HRTIM_TIMDIER_RSTDE); 10358 } 10359 10360 /** 10361 * @brief Indicate whether the reset/roll-over DMA request is enabled for a given timer. 10362 * @rmtoll TIMxDIER RSTDE LL_HRTIM_IsEnabledDMAReq_RST 10363 * @param HRTIMx High Resolution Timer instance 10364 * @param Timer This parameter can be one of the following values: 10365 * @arg @ref LL_HRTIM_TIMER_A 10366 * @arg @ref LL_HRTIM_TIMER_B 10367 * @arg @ref LL_HRTIM_TIMER_C 10368 * @arg @ref LL_HRTIM_TIMER_D 10369 * @arg @ref LL_HRTIM_TIMER_E 10370 * @retval State of RSTDE bit in HRTIM_TIMxDIER register (1 or 0). 10371 */ 10372 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10373 { 10374 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10375 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10376 REG_OFFSET_TAB_TIMER[iTimer])); 10377 10378 return ((READ_BIT(*pReg, HRTIM_TIMDIER_RSTDE) == (HRTIM_TIMDIER_RSTDE)) ? 1UL : 0UL); 10379 } 10380 10381 /** 10382 * @brief Enable the delayed protection DMA request for a given timer. 10383 * @rmtoll TIMxDIER DLYPRTDE LL_HRTIM_EnableDMAReq_DLYPRT 10384 * @param HRTIMx High Resolution Timer instance 10385 * @param Timer This parameter can be one of the following values: 10386 * @arg @ref LL_HRTIM_TIMER_A 10387 * @arg @ref LL_HRTIM_TIMER_B 10388 * @arg @ref LL_HRTIM_TIMER_C 10389 * @arg @ref LL_HRTIM_TIMER_D 10390 * @arg @ref LL_HRTIM_TIMER_E 10391 * @retval None 10392 */ 10393 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10394 { 10395 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10396 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10397 REG_OFFSET_TAB_TIMER[iTimer])); 10398 SET_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE); 10399 } 10400 10401 /** 10402 * @brief Disable the delayed protection DMA request for a given timer. 10403 * @rmtoll TIMxDIER DLYPRTDE LL_HRTIM_DisableDMAReq_DLYPRT 10404 * @param HRTIMx High Resolution Timer instance 10405 * @param Timer This parameter can be one of the following values: 10406 * @arg @ref LL_HRTIM_TIMER_A 10407 * @arg @ref LL_HRTIM_TIMER_B 10408 * @arg @ref LL_HRTIM_TIMER_C 10409 * @arg @ref LL_HRTIM_TIMER_D 10410 * @arg @ref LL_HRTIM_TIMER_E 10411 * @retval None 10412 */ 10413 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10414 { 10415 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10416 __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10417 REG_OFFSET_TAB_TIMER[iTimer])); 10418 CLEAR_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE); 10419 } 10420 10421 /** 10422 * @brief Indicate whether the delayed protection DMA request is enabled for a given timer. 10423 * @rmtoll TIMxDIER DLYPRTDE LL_HRTIM_IsEnabledDMAReq_DLYPRT 10424 * @param HRTIMx High Resolution Timer instance 10425 * @param Timer This parameter can be one of the following values: 10426 * @arg @ref LL_HRTIM_TIMER_A 10427 * @arg @ref LL_HRTIM_TIMER_B 10428 * @arg @ref LL_HRTIM_TIMER_C 10429 * @arg @ref LL_HRTIM_TIMER_D 10430 * @arg @ref LL_HRTIM_TIMER_E 10431 * @retval State of DLYPRTDE bit in HRTIM_TIMxDIER register (1 or 0). 10432 */ 10433 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer) 10434 { 10435 uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos); 10436 const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) + 10437 REG_OFFSET_TAB_TIMER[iTimer])); 10438 10439 return ((READ_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE) == (HRTIM_TIMDIER_DLYPRTDE)) ? 1UL : 0UL); 10440 } 10441 10442 /** 10443 * @} 10444 */ 10445 10446 #if defined(USE_FULL_LL_DRIVER) 10447 /** @defgroup HRTIM_LL_LL_EF_Init In-initialization and de-initialization functions 10448 * @{ 10449 */ 10450 ErrorStatus LL_HRTIM_DeInit(HRTIM_TypeDef* HRTIMx); 10451 /** 10452 * @} 10453 */ 10454 #endif /* USE_FULL_LL_DRIVER */ 10455 10456 /** 10457 * @} 10458 */ 10459 10460 /** 10461 * @} 10462 */ 10463 10464 #endif /* HRTIM1 */ 10465 10466 /** 10467 * @} 10468 */ 10469 10470 #ifdef __cplusplus 10471 } 10472 #endif 10473 10474 #endif /* STM32H7xx_LL_HRTIM_H */ 10475 10476