You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3772 lines
242 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32h7xx_hal_hrtim.h
  4. * @author MCD Application Team
  5. * @brief Header file of HRTIM HAL module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  10. * All rights reserved.</center></h2>
  11. *
  12. * This software component is licensed by ST under BSD 3-Clause license,
  13. * the "License"; You may not use this file except in compliance with the
  14. * License. You may obtain a copy of the License at:
  15. * opensource.org/licenses/BSD-3-Clause
  16. *
  17. ******************************************************************************
  18. */
  19. /* Define to prevent recursive inclusion -------------------------------------*/
  20. #ifndef STM32H7xx_HAL_HRTIM_H
  21. #define STM32H7xx_HAL_HRTIM_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* Includes ------------------------------------------------------------------*/
  26. #include "stm32h7xx_hal_def.h"
  27. /** @addtogroup STM32H7xx_HAL_Driver
  28. * @{
  29. */
  30. /** @addtogroup HRTIM HRTIM
  31. * @{
  32. */
  33. /* Exported types ------------------------------------------------------------*/
  34. /** @addtogroup HRTIM_Exported_Constants HRTIM Exported Constants
  35. * @{
  36. */
  37. /** @defgroup HRTIM_Max_Timer HRTIM Max Timer
  38. * @{
  39. */
  40. #define MAX_HRTIM_TIMER 6U
  41. /**
  42. * @}
  43. */
  44. /**
  45. * @}
  46. */
  47. /** @defgroup HRTIM_Exported_Types HRTIM Exported Types
  48. * @{
  49. */
  50. /**
  51. * @brief HRTIM Configuration Structure definition - Time base related parameters
  52. */
  53. typedef struct
  54. {
  55. uint32_t HRTIMInterruptResquests; /*!< Specifies which interrupts requests must enabled for the HRTIM instance.
  56. This parameter can be any combination of @ref HRTIM_Common_Interrupt_Enable */
  57. uint32_t SyncOptions; /*!< Specifies how the HRTIM instance handles the external synchronization signals.
  58. The HRTIM instance can be configured to act as a slave (waiting for a trigger
  59. to be synchronized) or a master (generating a synchronization signal) or both.
  60. This parameter can be a combination of @ref HRTIM_Synchronization_Options.*/
  61. uint32_t SyncInputSource; /*!< Specifies the external synchronization input source (significant only when
  62. the HRTIM instance is configured as a slave).
  63. This parameter can be a value of @ref HRTIM_Synchronization_Input_Source. */
  64. uint32_t SyncOutputSource; /*!< Specifies the source and event to be sent on the external synchronization outputs
  65. (significant only when the HRTIM instance is configured as a master).
  66. This parameter can be a value of @ref HRTIM_Synchronization_Output_Source */
  67. uint32_t SyncOutputPolarity; /*!< Specifies the conditioning of the event to be sent on the external synchronization
  68. outputs (significant only when the HRTIM instance is configured as a master).
  69. This parameter can be a value of @ref HRTIM_Synchronization_Output_Polarity */
  70. } HRTIM_InitTypeDef;
  71. /**
  72. * @brief HAL State structures definition
  73. */
  74. typedef enum
  75. {
  76. HAL_HRTIM_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized */
  77. HAL_HRTIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
  78. HAL_HRTIM_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */
  79. HAL_HRTIM_STATE_TIMEOUT = 0x06U, /*!< Timeout state */
  80. HAL_HRTIM_STATE_ERROR = 0x07U, /*!< Error state */
  81. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  82. HAL_HRTIM_STATE_INVALID_CALLBACK = 0x08U /*!< Invalid Callback error */
  83. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  84. } HAL_HRTIM_StateTypeDef;
  85. /**
  86. * @brief HRTIM Timer Structure definition
  87. */
  88. typedef struct
  89. {
  90. uint32_t CaptureTrigger1; /*!< Event(s) triggering capture unit 1.
  91. When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
  92. When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  93. uint32_t CaptureTrigger2; /*!< Event(s) triggering capture unit 2.
  94. When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
  95. When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  96. uint32_t InterruptRequests; /*!< Interrupts requests enabled for the timer. */
  97. uint32_t DMARequests; /*!< DMA requests enabled for the timer. */
  98. uint32_t DMASrcAddress; /*!< Address of the source address of the DMA transfer. */
  99. uint32_t DMADstAddress; /*!< Address of the destination address of the DMA transfer. */
  100. uint32_t DMASize; /*!< Size of the DMA transfer */
  101. } HRTIM_TimerParamTypeDef;
  102. /**
  103. * @brief HRTIM Handle Structure definition
  104. */
  105. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  106. typedef struct __HRTIM_HandleTypeDef
  107. #else
  108. typedef struct
  109. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  110. {
  111. HRTIM_TypeDef * Instance; /*!< Register base address */
  112. HRTIM_InitTypeDef Init; /*!< HRTIM required parameters */
  113. HRTIM_TimerParamTypeDef TimerParam[MAX_HRTIM_TIMER]; /*!< HRTIM timers - including the master - parameters */
  114. HAL_LockTypeDef Lock; /*!< Locking object */
  115. __IO HAL_HRTIM_StateTypeDef State; /*!< HRTIM communication state */
  116. DMA_HandleTypeDef * hdmaMaster; /*!< Master timer DMA handle parameters */
  117. DMA_HandleTypeDef * hdmaTimerA; /*!< Timer A DMA handle parameters */
  118. DMA_HandleTypeDef * hdmaTimerB; /*!< Timer B DMA handle parameters */
  119. DMA_HandleTypeDef * hdmaTimerC; /*!< Timer C DMA handle parameters */
  120. DMA_HandleTypeDef * hdmaTimerD; /*!< Timer D DMA handle parameters */
  121. DMA_HandleTypeDef * hdmaTimerE; /*!< Timer E DMA handle parameters */
  122. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  123. void (* Fault1Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 1 interrupt callback function pointer */
  124. void (* Fault2Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 2 interrupt callback function pointer */
  125. void (* Fault3Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 3 interrupt callback function pointer */
  126. void (* Fault4Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 4 interrupt callback function pointer */
  127. void (* Fault5Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 5 interrupt callback function pointer */
  128. void (* SystemFaultCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< System fault interrupt callback function pointer */
  129. void (* BurstModePeriodCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Burst mode period interrupt callback function pointer */
  130. void (* SynchronizationEventCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Sync Input interrupt callback function pointer */
  131. void (* ErrorCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< DMA error callback function pointer */
  132. void (* RegistersUpdateCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Update interrupt callback function pointer */
  133. void (* RepetitionEventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Repetition interrupt callback function pointer */
  134. void (* Compare1EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 1 match interrupt callback function pointer */
  135. void (* Compare2EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 2 match interrupt callback function pointer */
  136. void (* Compare3EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 3 match interrupt callback function pointer */
  137. void (* Compare4EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 4 match interrupt callback function pointer */
  138. void (* Capture1EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Capture 1 interrupts callback function pointer */
  139. void (* Capture2EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Capture 2 interrupts callback function pointer */
  140. void (* DelayedProtectionCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Delayed protection interrupt callback function pointer */
  141. void (* CounterResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x counter reset/roll-over interrupt callback function pointer */
  142. void (* Output1SetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 1 set interrupt callback function pointer */
  143. void (* Output1ResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 1 reset interrupt callback function pointer */
  144. void (* Output2SetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 2 set interrupt callback function pointer */
  145. void (* Output2ResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 2 reset interrupt callback function pointer */
  146. void (* BurstDMATransferCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Burst DMA completed interrupt callback function pointer */
  147. void (* MspInitCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< HRTIM MspInit callback function pointer */
  148. void (* MspDeInitCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< HRTIM MspInit callback function pointer */
  149. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  150. } HRTIM_HandleTypeDef;
  151. /**
  152. * @brief Simple output compare mode configuration definition
  153. */
  154. typedef struct
  155. {
  156. uint32_t Period; /*!< Specifies the timer period.
  157. The period value must be above 3 periods of the fHRTIM clock.
  158. Maximum value is = 0xFFDFU */
  159. uint32_t RepetitionCounter; /*!< Specifies the timer repetition period.
  160. This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
  161. uint32_t PrescalerRatio; /*!< Specifies the timer clock prescaler ratio.
  162. This parameter can be any value of @ref HRTIM_Prescaler_Ratio */
  163. uint32_t Mode; /*!< Specifies the counter operating mode.
  164. This parameter can be any value of @ref HRTIM_Counter_Operating_Mode */
  165. } HRTIM_TimeBaseCfgTypeDef;
  166. /**
  167. * @brief Simple output compare mode configuration definition
  168. */
  169. typedef struct
  170. {
  171. uint32_t Mode; /*!< Specifies the output compare mode (toggle, active, inactive).
  172. This parameter can be any value of of @ref HRTIM_Simple_OC_Mode */
  173. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  174. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  175. uint32_t Polarity; /*!< Specifies the output polarity.
  176. This parameter can be any value of @ref HRTIM_Output_Polarity */
  177. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  178. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  179. } HRTIM_SimpleOCChannelCfgTypeDef;
  180. /**
  181. * @brief Simple PWM output mode configuration definition
  182. */
  183. typedef struct
  184. {
  185. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  186. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  187. uint32_t Polarity; /*!< Specifies the output polarity.
  188. This parameter can be any value of @ref HRTIM_Output_Polarity */
  189. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  190. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  191. } HRTIM_SimplePWMChannelCfgTypeDef;
  192. /**
  193. * @brief Simple capture mode configuration definition
  194. */
  195. typedef struct
  196. {
  197. uint32_t Event; /*!< Specifies the external event triggering the capture.
  198. This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  199. uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
  200. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  201. uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event.
  202. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  203. uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
  204. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  205. } HRTIM_SimpleCaptureChannelCfgTypeDef;
  206. /**
  207. * @brief Simple One Pulse mode configuration definition
  208. */
  209. typedef struct
  210. {
  211. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  212. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  213. uint32_t OutputPolarity; /*!< Specifies the output polarity.
  214. This parameter can be any value of @ref HRTIM_Output_Polarity */
  215. uint32_t OutputIdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  216. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  217. uint32_t Event; /*!< Specifies the external event triggering the pulse generation.
  218. This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  219. uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
  220. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  221. uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event.
  222. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity. */
  223. uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
  224. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  225. } HRTIM_SimpleOnePulseChannelCfgTypeDef;
  226. /**
  227. * @brief Timer configuration definition
  228. */
  229. typedef struct
  230. {
  231. uint32_t InterruptRequests; /*!< Relevant for all HRTIM timers, including the master.
  232. Specifies which interrupts requests must enabled for the timer.
  233. This parameter can be any combination of @ref HRTIM_Master_Interrupt_Enable
  234. or @ref HRTIM_Timing_Unit_Interrupt_Enable */
  235. uint32_t DMARequests; /*!< Relevant for all HRTIM timers, including the master.
  236. Specifies which DMA requests must be enabled for the timer.
  237. This parameter can be any combination of @ref HRTIM_Master_DMA_Request_Enable
  238. or @ref HRTIM_Timing_Unit_DMA_Request_Enable */
  239. uint32_t DMASrcAddress; /*!< Relevant for all HRTIM timers, including the master.
  240. Specifies the address of the source address of the DMA transfer */
  241. uint32_t DMADstAddress; /*!< Relevant for all HRTIM timers, including the master.
  242. Specifies the address of the destination address of the DMA transfer */
  243. uint32_t DMASize; /*!< Relevant for all HRTIM timers, including the master.
  244. Specifies the size of the DMA transfer */
  245. uint32_t HalfModeEnable; /*!< Relevant for all HRTIM timers, including the master.
  246. Specifies whether or not half mode is enabled
  247. This parameter can be any value of @ref HRTIM_Half_Mode_Enable */
  248. uint32_t StartOnSync; /*!< Relevant for all HRTIM timers, including the master.
  249. Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
  250. This parameter can be any value of @ref HRTIM_Start_On_Sync_Input_Event */
  251. uint32_t ResetOnSync; /*!< Relevant for all HRTIM timers, including the master.
  252. Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
  253. This parameter can be any value of @ref HRTIM_Reset_On_Sync_Input_Event */
  254. uint32_t DACSynchro; /*!< Relevant for all HRTIM timers, including the master.
  255. Indicates whether or not the a DAC synchronization event is generated.
  256. This parameter can be any value of @ref HRTIM_DAC_Synchronization */
  257. uint32_t PreloadEnable; /*!< Relevant for all HRTIM timers, including the master.
  258. Specifies whether or not register preload is enabled.
  259. This parameter can be any value of @ref HRTIM_Register_Preload_Enable */
  260. uint32_t UpdateGating; /*!< Relevant for all HRTIM timers, including the master.
  261. Specifies how the update occurs with respect to a burst DMA transaction or
  262. update enable inputs (Slave timers only).
  263. This parameter can be any value of @ref HRTIM_Update_Gating */
  264. uint32_t BurstMode; /*!< Relevant for all HRTIM timers, including the master.
  265. Specifies how the timer behaves during a burst mode operation.
  266. This parameter can be any value of @ref HRTIM_Timer_Burst_Mode */
  267. uint32_t RepetitionUpdate; /*!< Relevant for all HRTIM timers, including the master.
  268. Specifies whether or not registers update is triggered by the repetition event.
  269. This parameter can be any value of @ref HRTIM_Timer_Repetition_Update */
  270. uint32_t PushPull; /*!< Relevant for Timer A to Timer E.
  271. Specifies whether or not the push-pull mode is enabled.
  272. This parameter can be any value of @ref HRTIM_Timer_Push_Pull_Mode */
  273. uint32_t FaultEnable; /*!< Relevant for Timer A to Timer E.
  274. Specifies which fault channels are enabled for the timer.
  275. This parameter can be a combination of @ref HRTIM_Timer_Fault_Enabling */
  276. uint32_t FaultLock; /*!< Relevant for Timer A to Timer E.
  277. Specifies whether or not fault enabling status is write protected.
  278. This parameter can be a value of @ref HRTIM_Timer_Fault_Lock */
  279. uint32_t DeadTimeInsertion; /*!< Relevant for Timer A to Timer E.
  280. Specifies whether or not dead-time insertion is enabled for the timer.
  281. This parameter can be a value of @ref HRTIM_Timer_Deadtime_Insertion */
  282. uint32_t DelayedProtectionMode; /*!< Relevant for Timer A to Timer E.
  283. Specifies the delayed protection mode.
  284. This parameter can be a value of @ref HRTIM_Timer_Delayed_Protection_Mode */
  285. uint32_t UpdateTrigger; /*!< Relevant for Timer A to Timer E.
  286. Specifies source(s) triggering the timer registers update.
  287. This parameter can be a combination of @ref HRTIM_Timer_Update_Trigger */
  288. uint32_t ResetTrigger; /*!< Relevant for Timer A to Timer E.
  289. Specifies source(s) triggering the timer counter reset.
  290. This parameter can be a combination of @ref HRTIM_Timer_Reset_Trigger */
  291. uint32_t ResetUpdate; /*!< Relevant for Timer A to Timer E.
  292. Specifies whether or not registers update is triggered when the timer counter is reset.
  293. This parameter can be a value of @ref HRTIM_Timer_Reset_Update */
  294. } HRTIM_TimerCfgTypeDef;
  295. /**
  296. * @brief Compare unit configuration definition
  297. */
  298. typedef struct
  299. {
  300. uint32_t CompareValue; /*!< Specifies the compare value of the timer compare unit.
  301. The minimum value must be greater than or equal to 3 periods of the fHRTIM clock.
  302. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRTIM clock */
  303. uint32_t AutoDelayedMode; /*!< Specifies the auto delayed mode for compare unit 2 or 4.
  304. This parameter can be a value of @ref HRTIM_Compare_Unit_Auto_Delayed_Mode */
  305. uint32_t AutoDelayedTimeout; /*!< Specifies compare value for timing unit 1 or 3 when auto delayed mode with time out is selected.
  306. CompareValue + AutoDelayedTimeout must be less than 0xFFFFU */
  307. } HRTIM_CompareCfgTypeDef;
  308. /**
  309. * @brief Capture unit configuration definition
  310. */
  311. typedef struct
  312. {
  313. uint32_t Trigger; /*!< Specifies source(s) triggering the capture.
  314. This parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger */
  315. } HRTIM_CaptureCfgTypeDef;
  316. /**
  317. * @brief Output configuration definition
  318. */
  319. typedef struct
  320. {
  321. uint32_t Polarity; /*!< Specifies the output polarity.
  322. This parameter can be any value of @ref HRTIM_Output_Polarity */
  323. uint32_t SetSource; /*!< Specifies the event(s) transitioning the output from its inactive level to its active level.
  324. This parameter can be a combination of @ref HRTIM_Output_Set_Source */
  325. uint32_t ResetSource; /*!< Specifies the event(s) transitioning the output from its active level to its inactive level.
  326. This parameter can be a combination of @ref HRTIM_Output_Reset_Source */
  327. uint32_t IdleMode; /*!< Specifies whether or not the output is affected by a burst mode operation.
  328. This parameter can be any value of @ref HRTIM_Output_Idle_Mode */
  329. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  330. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  331. uint32_t FaultLevel; /*!< Specifies whether the output level is active or inactive when in FAULT state.
  332. This parameter can be any value of @ref HRTIM_Output_FAULT_Level */
  333. uint32_t ChopperModeEnable; /*!< Indicates whether or not the chopper mode is enabled
  334. This parameter can be any value of @ref HRTIM_Output_Chopper_Mode_Enable */
  335. uint32_t BurstModeEntryDelayed; /*!< Indicates whether or not dead-time is inserted when entering the IDLE state during a burst mode operation.
  336. This parameters can be any value of @ref HRTIM_Output_Burst_Mode_Entry_Delayed */
  337. } HRTIM_OutputCfgTypeDef;
  338. /**
  339. * @brief External event filtering in timing units configuration definition
  340. */
  341. typedef struct
  342. {
  343. uint32_t Filter; /*!< Specifies the type of event filtering within the timing unit.
  344. This parameter can be a value of @ref HRTIM_Timer_External_Event_Filter */
  345. uint32_t Latch; /*!< Specifies whether or not the signal is latched.
  346. This parameter can be a value of @ref HRTIM_Timer_External_Event_Latch */
  347. } HRTIM_TimerEventFilteringCfgTypeDef;
  348. /**
  349. * @brief Dead time feature configuration definition
  350. */
  351. typedef struct
  352. {
  353. uint32_t Prescaler; /*!< Specifies the dead-time prescaler.
  354. This parameter can be a value of @ref HRTIM_Deadtime_Prescaler_Ratio */
  355. uint32_t RisingValue; /*!< Specifies the dead-time following a rising edge.
  356. This parameter can be a number between 0x0 and 0x1FFU */
  357. uint32_t RisingSign; /*!< Specifies whether the dead-time is positive or negative on rising edge.
  358. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign */
  359. uint32_t RisingLock; /*!< Specifies whether or not dead-time rising settings (value and sign) are write protected.
  360. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Lock */
  361. uint32_t RisingSignLock; /*!< Specifies whether or not dead-time rising sign is write protected.
  362. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign_Lock */
  363. uint32_t FallingValue; /*!< Specifies the dead-time following a falling edge.
  364. This parameter can be a number between 0x0 and 0x1FFU */
  365. uint32_t FallingSign; /*!< Specifies whether the dead-time is positive or negative on falling edge.
  366. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign */
  367. uint32_t FallingLock; /*!< Specifies whether or not dead-time falling settings (value and sign) are write protected.
  368. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Lock */
  369. uint32_t FallingSignLock; /*!< Specifies whether or not dead-time falling sign is write protected.
  370. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign_Lock */
  371. } HRTIM_DeadTimeCfgTypeDef;
  372. /**
  373. * @brief Chopper mode configuration definition
  374. */
  375. typedef struct
  376. {
  377. uint32_t CarrierFreq; /*!< Specifies the Timer carrier frequency value.
  378. This parameter can be a value of @ref HRTIM_Chopper_Frequency */
  379. uint32_t DutyCycle; /*!< Specifies the Timer chopper duty cycle value.
  380. This parameter can be a value of @ref HRTIM_Chopper_Duty_Cycle */
  381. uint32_t StartPulse; /*!< Specifies the Timer pulse width value.
  382. This parameter can be a value of @ref HRTIM_Chopper_Start_Pulse_Width */
  383. } HRTIM_ChopperModeCfgTypeDef;
  384. /**
  385. * @brief External event channel configuration definition
  386. */
  387. typedef struct
  388. {
  389. uint32_t Source; /*!< Identifies the source of the external event.
  390. This parameter can be a value of @ref HRTIM_External_Event_Sources */
  391. uint32_t Polarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
  392. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  393. uint32_t Sensitivity; /*!< Specifies the sensitivity of the external event.
  394. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  395. uint32_t Filter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
  396. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  397. uint32_t FastMode; /*!< Indicates whether or not low latency mode is enabled for the external event.
  398. This parameter can be a value of @ref HRTIM_External_Event_Fast_Mode */
  399. } HRTIM_EventCfgTypeDef;
  400. /**
  401. * @brief Fault channel configuration definition
  402. */
  403. typedef struct
  404. {
  405. uint32_t Source; /*!< Identifies the source of the fault.
  406. This parameter can be a value of @ref HRTIM_Fault_Sources */
  407. uint32_t Polarity; /*!< Specifies the polarity of the fault event.
  408. This parameter can be a value of @ref HRTIM_Fault_Polarity */
  409. uint32_t Filter; /*!< Defines the frequency used to sample the Fault input and the length of the digital filter.
  410. This parameter can be a value of @ref HRTIM_Fault_Filter */
  411. uint32_t Lock; /*!< Indicates whether or not fault programming bits are write protected.
  412. This parameter can be a value of @ref HRTIM_Fault_Lock */
  413. } HRTIM_FaultCfgTypeDef;
  414. /**
  415. * @brief Burst mode configuration definition
  416. */
  417. typedef struct
  418. {
  419. uint32_t Mode; /*!< Specifies the burst mode operating mode.
  420. This parameter can be a value of @ref HRTIM_Burst_Mode_Operating_Mode */
  421. uint32_t ClockSource; /*!< Specifies the burst mode clock source.
  422. This parameter can be a value of @ref HRTIM_Burst_Mode_Clock_Source */
  423. uint32_t Prescaler; /*!< Specifies the burst mode prescaler.
  424. This parameter can be a value of @ref HRTIM_Burst_Mode_Prescaler */
  425. uint32_t PreloadEnable; /*!< Specifies whether or not preload is enabled for burst mode related registers (HRTIM_BMCMPR and HRTIM_BMPER).
  426. This parameter can be a combination of @ref HRTIM_Burst_Mode_Register_Preload_Enable */
  427. uint32_t Trigger; /*!< Specifies the event(s) triggering the burst operation.
  428. This parameter can be a combination of @ref HRTIM_Burst_Mode_Trigger */
  429. uint32_t IdleDuration; /*!< Specifies number of periods during which the selected timers are in idle state.
  430. This parameter can be a number between 0x0 and 0xFFFF */
  431. uint32_t Period; /*!< Specifies burst mode repetition period.
  432. This parameter can be a number between 0x1 and 0xFFFF */
  433. } HRTIM_BurstModeCfgTypeDef;
  434. /**
  435. * @brief ADC trigger configuration definition
  436. */
  437. typedef struct
  438. {
  439. uint32_t UpdateSource; /*!< Specifies the ADC trigger update source.
  440. This parameter can be a value of @ref HRTIM_ADC_Trigger_Update_Source */
  441. uint32_t Trigger; /*!< Specifies the event(s) triggering the ADC conversion.
  442. This parameter can be a combination of @ref HRTIM_ADC_Trigger_Event */
  443. } HRTIM_ADCTriggerCfgTypeDef;
  444. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  445. /**
  446. * @brief HAL HRTIM Callback ID enumeration definition
  447. */
  448. typedef enum {
  449. HAL_HRTIM_FAULT1CALLBACK_CB_ID = 0x00U, /*!< Fault 1 interrupt callback ID */
  450. HAL_HRTIM_FAULT2CALLBACK_CB_ID = 0x01U, /*!< Fault 2 interrupt callback ID */
  451. HAL_HRTIM_FAULT3CALLBACK_CB_ID = 0x02U, /*!< Fault 3 interrupt callback ID */
  452. HAL_HRTIM_FAULT4CALLBACK_CB_ID = 0x03U, /*!< Fault 4 interrupt callback ID */
  453. HAL_HRTIM_FAULT5CALLBACK_CB_ID = 0x04U, /*!< Fault 5 interrupt callback ID */
  454. HAL_HRTIM_SYSTEMFAULTCALLBACK_CB_ID = 0x05U, /*!< System fault interrupt callback ID */
  455. HAL_HRTIM_BURSTMODEPERIODCALLBACK_CB_ID = 0x07U, /*!< Burst mode period interrupt callback ID */
  456. HAL_HRTIM_SYNCHRONIZATIONEVENTCALLBACK_CB_ID = 0x08U, /*!< Sync Input interrupt callback ID */
  457. HAL_HRTIM_ERRORCALLBACK_CB_ID = 0x09U, /*!< DMA error callback ID */
  458. HAL_HRTIM_REGISTERSUPDATECALLBACK_CB_ID = 0x10U, /*!< Timer x Update interrupt callback ID */
  459. HAL_HRTIM_REPETITIONEVENTCALLBACK_CB_ID = 0x11U, /*!< Timer x Repetition interrupt callback ID */
  460. HAL_HRTIM_COMPARE1EVENTCALLBACK_CB_ID = 0x12U, /*!< Timer x Compare 1 match interrupt callback ID */
  461. HAL_HRTIM_COMPARE2EVENTCALLBACK_CB_ID = 0x13U, /*!< Timer x Compare 2 match interrupt callback ID */
  462. HAL_HRTIM_COMPARE3EVENTCALLBACK_CB_ID = 0x14U, /*!< Timer x Compare 3 match interrupt callback ID */
  463. HAL_HRTIM_COMPARE4EVENTCALLBACK_CB_ID = 0x15U, /*!< Timer x Compare 4 match interrupt callback ID */
  464. HAL_HRTIM_CAPTURE1EVENTCALLBACK_CB_ID = 0x16U, /*!< Timer x Capture 1 interrupts callback ID */
  465. HAL_HRTIM_CAPTURE2EVENTCALLBACK_CB_ID = 0x17U, /*!< Timer x Capture 2 interrupts callback ID */
  466. HAL_HRTIM_DELAYEDPROTECTIONCALLBACK_CB_ID = 0x18U, /*!< Timer x Delayed protection interrupt callback ID */
  467. HAL_HRTIM_COUNTERRESETCALLBACK_CB_ID = 0x19U, /*!< Timer x counter reset/roll-over interrupt callback ID */
  468. HAL_HRTIM_OUTPUT1SETCALLBACK_CB_ID = 0x1AU, /*!< Timer x output 1 set interrupt callback ID */
  469. HAL_HRTIM_OUTPUT1RESETCALLBACK_CB_ID = 0x1BU, /*!< Timer x output 1 reset interrupt callback ID */
  470. HAL_HRTIM_OUTPUT2SETCALLBACK_CB_ID = 0x1CU, /*!< Timer x output 2 set interrupt callback ID */
  471. HAL_HRTIM_OUTPUT2RESETCALLBACK_CB_ID = 0x1DU, /*!< Timer x output 2 reset interrupt callback ID */
  472. HAL_HRTIM_BURSTDMATRANSFERCALLBACK_CB_ID = 0x1EU, /*!< Timer x Burst DMA completed interrupt callback ID */
  473. HAL_HRTIM_MSPINIT_CB_ID = 0x20U, /*!< HRTIM MspInit callback ID */
  474. HAL_HRTIM_MSPDEINIT_CB_ID = 0x21U, /*!< HRTIM MspInit callback ID */
  475. }HAL_HRTIM_CallbackIDTypeDef;
  476. /**
  477. * @brief HAL HRTIM Callback function pointer definitions
  478. */
  479. typedef void (* pHRTIM_CallbackTypeDef)(HRTIM_HandleTypeDef *hhrtim); /*!< HRTIM related callback function pointer */
  480. typedef void (* pHRTIM_TIMxCallbackTypeDef)(HRTIM_HandleTypeDef *hhrtim, /*!< HRTIM Timer x related callback function pointer */
  481. uint32_t TimerIdx);
  482. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  483. /**
  484. * @}
  485. */
  486. /* Exported constants --------------------------------------------------------*/
  487. /** @defgroup HRTIM_Exported_Constants HRTIM Exported Constants
  488. * @{
  489. */
  490. /** @defgroup HRTIM_Timer_Index HRTIM Timer Index
  491. * @{
  492. * @brief Constants defining the timer indexes
  493. */
  494. #define HRTIM_TIMERINDEX_TIMER_A 0x0U /*!< Index used to access timer A registers */
  495. #define HRTIM_TIMERINDEX_TIMER_B 0x1U /*!< Index used to access timer B registers */
  496. #define HRTIM_TIMERINDEX_TIMER_C 0x2U /*!< Index used to access timer C registers */
  497. #define HRTIM_TIMERINDEX_TIMER_D 0x3U /*!< Index used to access timer D registers */
  498. #define HRTIM_TIMERINDEX_TIMER_E 0x4U /*!< Index used to access timer E registers */
  499. #define HRTIM_TIMERINDEX_MASTER 0x5U /*!< Index used to access master registers */
  500. #define HRTIM_TIMERINDEX_COMMON 0xFFU /*!< Index used to access HRTIM common registers */
  501. /**
  502. * @}
  503. */
  504. /** @defgroup HRTIM_Timer_identifier HRTIM Timer identifier
  505. * @{
  506. * @brief Constants defining timer identifiers
  507. */
  508. #define HRTIM_TIMERID_MASTER (HRTIM_MCR_MCEN) /*!< Master identifier */
  509. #define HRTIM_TIMERID_TIMER_A (HRTIM_MCR_TACEN) /*!< Timer A identifier */
  510. #define HRTIM_TIMERID_TIMER_B (HRTIM_MCR_TBCEN) /*!< Timer B identifier */
  511. #define HRTIM_TIMERID_TIMER_C (HRTIM_MCR_TCCEN) /*!< Timer C identifier */
  512. #define HRTIM_TIMERID_TIMER_D (HRTIM_MCR_TDCEN) /*!< Timer D identifier */
  513. #define HRTIM_TIMERID_TIMER_E (HRTIM_MCR_TECEN) /*!< Timer E identifier */
  514. /**
  515. * @}
  516. */
  517. /** @defgroup HRTIM_Compare_Unit HRTIM Compare Unit
  518. * @{
  519. * @brief Constants defining compare unit identifiers
  520. */
  521. #define HRTIM_COMPAREUNIT_1 0x00000001U /*!< Compare unit 1 identifier */
  522. #define HRTIM_COMPAREUNIT_2 0x00000002U /*!< Compare unit 2 identifier */
  523. #define HRTIM_COMPAREUNIT_3 0x00000004U /*!< Compare unit 3 identifier */
  524. #define HRTIM_COMPAREUNIT_4 0x00000008U /*!< Compare unit 4 identifier */
  525. /**
  526. * @}
  527. */
  528. /** @defgroup HRTIM_Capture_Unit HRTIM Capture Unit
  529. * @{
  530. * @brief Constants defining capture unit identifiers
  531. */
  532. #define HRTIM_CAPTUREUNIT_1 0x00000001U /*!< Capture unit 1 identifier */
  533. #define HRTIM_CAPTUREUNIT_2 0x00000002U /*!< Capture unit 2 identifier */
  534. /**
  535. * @}
  536. */
  537. /** @defgroup HRTIM_Timer_Output HRTIM Timer Output
  538. * @{
  539. * @brief Constants defining timer output identifiers
  540. */
  541. #define HRTIM_OUTPUT_TA1 0x00000001U /*!< Timer A - Output 1 identifier */
  542. #define HRTIM_OUTPUT_TA2 0x00000002U /*!< Timer A - Output 2 identifier */
  543. #define HRTIM_OUTPUT_TB1 0x00000004U /*!< Timer B - Output 1 identifier */
  544. #define HRTIM_OUTPUT_TB2 0x00000008U /*!< Timer B - Output 2 identifier */
  545. #define HRTIM_OUTPUT_TC1 0x00000010U /*!< Timer C - Output 1 identifier */
  546. #define HRTIM_OUTPUT_TC2 0x00000020U /*!< Timer C - Output 2 identifier */
  547. #define HRTIM_OUTPUT_TD1 0x00000040U /*!< Timer D - Output 1 identifier */
  548. #define HRTIM_OUTPUT_TD2 0x00000080U /*!< Timer D - Output 2 identifier */
  549. #define HRTIM_OUTPUT_TE1 0x00000100U /*!< Timer E - Output 1 identifier */
  550. #define HRTIM_OUTPUT_TE2 0x00000200U /*!< Timer E - Output 2 identifier */
  551. /**
  552. * @}
  553. */
  554. /** @defgroup HRTIM_ADC_Trigger HRTIM ADC Trigger
  555. * @{
  556. * @brief Constants defining ADC triggers identifiers
  557. */
  558. #define HRTIM_ADCTRIGGER_1 0x00000001U /*!< ADC trigger 1 identifier */
  559. #define HRTIM_ADCTRIGGER_2 0x00000002U /*!< ADC trigger 2 identifier */
  560. #define HRTIM_ADCTRIGGER_3 0x00000004U /*!< ADC trigger 3 identifier */
  561. #define HRTIM_ADCTRIGGER_4 0x00000008U /*!< ADC trigger 4 identifier */
  562. #define IS_HRTIM_ADCTRIGGER(ADCTRIGGER)\
  563. (((ADCTRIGGER) == HRTIM_ADCTRIGGER_1) || \
  564. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_2) || \
  565. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_3) || \
  566. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_4))
  567. /**
  568. * @}
  569. */
  570. /** @defgroup HRTIM_External_Event_Channels HRTIM External Event Channels
  571. * @{
  572. * @brief Constants defining external event channel identifiers
  573. */
  574. #define HRTIM_EVENT_NONE (0x00000000U) /*!< Undefined event channel */
  575. #define HRTIM_EVENT_1 (0x00000001U) /*!< External event channel 1 identifier */
  576. #define HRTIM_EVENT_2 (0x00000002U) /*!< External event channel 2 identifier */
  577. #define HRTIM_EVENT_3 (0x00000003U) /*!< External event channel 3 identifier */
  578. #define HRTIM_EVENT_4 (0x00000004U) /*!< External event channel 4 identifier */
  579. #define HRTIM_EVENT_5 (0x00000005U) /*!< External event channel 5 identifier */
  580. #define HRTIM_EVENT_6 (0x00000006U) /*!< External event channel 6 identifier */
  581. #define HRTIM_EVENT_7 (0x00000007U) /*!< External event channel 7 identifier */
  582. #define HRTIM_EVENT_8 (0x00000008U) /*!< External event channel 8 identifier */
  583. #define HRTIM_EVENT_9 (0x00000009U) /*!< External event channel 9 identifier */
  584. #define HRTIM_EVENT_10 (0x0000000AU) /*!< External event channel 10 identifier */
  585. /**
  586. * @}
  587. */
  588. /** @defgroup HRTIM_Fault_Channel HRTIM Fault Channel
  589. * @{
  590. * @brief Constants defining fault channel identifiers
  591. */
  592. #define HRTIM_FAULT_1 (0x01U) /*!< Fault channel 1 identifier */
  593. #define HRTIM_FAULT_2 (0x02U) /*!< Fault channel 2 identifier */
  594. #define HRTIM_FAULT_3 (0x04U) /*!< Fault channel 3 identifier */
  595. #define HRTIM_FAULT_4 (0x08U) /*!< Fault channel 4 identifier */
  596. #define HRTIM_FAULT_5 (0x10U) /*!< Fault channel 5 identifier */
  597. /**
  598. * @}
  599. */
  600. /** @defgroup HRTIM_Prescaler_Ratio HRTIM Prescaler Ratio
  601. * @{
  602. * @brief Constants defining timer high-resolution clock prescaler ratio.
  603. */
  604. #define HRTIM_PRESCALERRATIO_MUL32 (0x00000000U) /*!< fHRCK: fHRTIM x 32U = 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz) */
  605. #define HRTIM_PRESCALERRATIO_MUL16 (0x00000001U) /*!< fHRCK: fHRTIM x 16U = 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz) */
  606. #define HRTIM_PRESCALERRATIO_MUL8 (0x00000002U) /*!< fHRCK: fHRTIM x 8U = 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz) */
  607. #define HRTIM_PRESCALERRATIO_MUL4 (0x00000003U) /*!< fHRCK: fHRTIM x 4U = 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz) */
  608. #define HRTIM_PRESCALERRATIO_MUL2 (0x00000004U) /*!< fHRCK: fHRTIM x 2U = 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz) */
  609. #define HRTIM_PRESCALERRATIO_DIV1 (0x00000005U) /*!< fHRCK: fHRTIM = 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz) */
  610. #define HRTIM_PRESCALERRATIO_DIV2 (0x00000006U) /*!< fHRCK: fHRTIM / 2U = 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz) */
  611. #define HRTIM_PRESCALERRATIO_DIV4 (0x00000007U) /*!< fHRCK: fHRTIM / 4U = 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz) */
  612. /**
  613. * @}
  614. */
  615. /** @defgroup HRTIM_Counter_Operating_Mode HRTIM Counter Operating Mode
  616. * @{
  617. * @brief Constants defining timer counter operating mode.
  618. */
  619. #define HRTIM_MODE_CONTINUOUS (0x00000008U) /*!< The timer operates in continuous (free-running) mode */
  620. #define HRTIM_MODE_SINGLESHOT (0x00000000U) /*!< The timer operates in non retriggerable single-shot mode */
  621. #define HRTIM_MODE_SINGLESHOT_RETRIGGERABLE (0x00000010U) /*!< The timer operates in retriggerable single-shot mode */
  622. /**
  623. * @}
  624. */
  625. /** @defgroup HRTIM_Half_Mode_Enable HRTIM Half Mode Enable
  626. * @{
  627. * @brief Constants defining half mode enabling status.
  628. */
  629. #define HRTIM_HALFMODE_DISABLED (0x00000000U) /*!< Half mode is disabled */
  630. #define HRTIM_HALFMODE_ENABLED (0x00000020U) /*!< Half mode is enabled */
  631. /**
  632. * @}
  633. */
  634. /** @defgroup HRTIM_Start_On_Sync_Input_Event HRTIM Start On Sync Input Event
  635. * @{
  636. * @brief Constants defining the timer behavior following the synchronization event
  637. */
  638. #define HRTIM_SYNCSTART_DISABLED (0x00000000U) /*!< Synchronization input event has effect on the timer */
  639. #define HRTIM_SYNCSTART_ENABLED (HRTIM_MCR_SYNCSTRTM) /*!< Synchronization input event starts the timer */
  640. /**
  641. * @}
  642. */
  643. /** @defgroup HRTIM_Reset_On_Sync_Input_Event HRTIM Reset On Sync Input Event
  644. * @{
  645. * @brief Constants defining the timer behavior following the synchronization event
  646. */
  647. #define HRTIM_SYNCRESET_DISABLED (0x00000000U) /*!< Synchronization input event has effect on the timer */
  648. #define HRTIM_SYNCRESET_ENABLED (HRTIM_MCR_SYNCRSTM) /*!< Synchronization input event resets the timer */
  649. /**
  650. * @}
  651. */
  652. /** @defgroup HRTIM_DAC_Synchronization HRTIM DAC Synchronization
  653. * @{
  654. * @brief Constants defining on which output the DAC synchronization event is sent
  655. */
  656. #define HRTIM_DACSYNC_NONE 0x00000000U /*!< No DAC synchronization event generated */
  657. #define HRTIM_DACSYNC_DACTRIGOUT_1 (HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update */
  658. #define HRTIM_DACSYNC_DACTRIGOUT_2 (HRTIM_MCR_DACSYNC_1) /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update */
  659. #define HRTIM_DACSYNC_DACTRIGOUT_3 (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC update generated on DACTrigOut3 output upon timer update */
  660. /**
  661. * @}
  662. */
  663. /** @defgroup HRTIM_Register_Preload_Enable HRTIM Register Preload Enable
  664. * @{
  665. * @brief Constants defining whether a write access into a preloadable
  666. * register is done into the active or the preload register.
  667. */
  668. #define HRTIM_PRELOAD_DISABLED (0x00000000U) /*!< Preload disabled: the write access is directly done into the active register */
  669. #define HRTIM_PRELOAD_ENABLED (HRTIM_MCR_PREEN) /*!< Preload enabled: the write access is done into the preload register */
  670. /**
  671. * @}
  672. */
  673. /** @defgroup HRTIM_Update_Gating HRTIM Update Gating
  674. * @{
  675. * @brief Constants defining how the update occurs relatively to the burst DMA
  676. * transaction and the external update request on update enable inputs 1 to 3.
  677. */
  678. #define HRTIM_UPDATEGATING_INDEPENDENT 0x00000000U /*!< Update done independently from the DMA burst transfer completion */
  679. #define HRTIM_UPDATEGATING_DMABURST (HRTIM_TIMCR_UPDGAT_0) /*!< Update done when the DMA burst transfer is completed */
  680. #define HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1) /*!< Update done on timer roll-over following a DMA burst transfer completion*/
  681. #define 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 1U */
  682. #define HRTIM_UPDATEGATING_UPDEN2 (HRTIM_TIMCR_UPDGAT_2) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2U */
  683. #define 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 3U */
  684. #define 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 1U */
  685. #define 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 2U */
  686. #define 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 3U */
  687. /**
  688. * @}
  689. */
  690. /** @defgroup HRTIM_Timer_Burst_Mode HRTIM Timer Burst Mode
  691. * @{
  692. * @brief Constants defining how the timer behaves during a burst
  693. mode operation.
  694. */
  695. #define HRTIM_TIMERBURSTMODE_MAINTAINCLOCK 0x00000000U /*!< Timer counter clock is maintained and the timer operates normally */
  696. #define HRTIM_TIMERBURSTMODE_RESETCOUNTER (HRTIM_BMCR_MTBM) /*!< Timer counter clock is stopped and the counter is reset */
  697. /**
  698. * @}
  699. */
  700. /** @defgroup HRTIM_Timer_Repetition_Update HRTIM Timer Repetition Update
  701. * @{
  702. * @brief Constants defining whether registers are updated when the timer
  703. * repetition period is completed (either due to roll-over or
  704. * reset events)
  705. */
  706. #define HRTIM_UPDATEONREPETITION_DISABLED 0x00000000U /*!< Update on repetition disabled */
  707. #define HRTIM_UPDATEONREPETITION_ENABLED (HRTIM_MCR_MREPU) /*!< Update on repetition enabled */
  708. /**
  709. * @}
  710. */
  711. /** @defgroup HRTIM_Timer_Push_Pull_Mode HRTIM Timer Push Pull Mode
  712. * @{
  713. * @brief Constants defining whether or not the push-pull mode is enabled for
  714. * a timer.
  715. */
  716. #define HRTIM_TIMPUSHPULLMODE_DISABLED 0x00000000U /*!< Push-Pull mode disabled */
  717. #define HRTIM_TIMPUSHPULLMODE_ENABLED (HRTIM_TIMCR_PSHPLL) /*!< Push-Pull mode enabled */
  718. /**
  719. * @}
  720. */
  721. /** @defgroup HRTIM_Timer_Fault_Enabling HRTIM Timer Fault Enabling
  722. * @{
  723. * @brief Constants defining whether a fault channel is enabled for a timer
  724. */
  725. #define HRTIM_TIMFAULTENABLE_NONE 0x00000000U /*!< No fault enabled */
  726. #define HRTIM_TIMFAULTENABLE_FAULT1 (HRTIM_FLTR_FLT1EN) /*!< Fault 1 enabled */
  727. #define HRTIM_TIMFAULTENABLE_FAULT2 (HRTIM_FLTR_FLT2EN) /*!< Fault 2 enabled */
  728. #define HRTIM_TIMFAULTENABLE_FAULT3 (HRTIM_FLTR_FLT3EN) /*!< Fault 3 enabled */
  729. #define HRTIM_TIMFAULTENABLE_FAULT4 (HRTIM_FLTR_FLT4EN) /*!< Fault 4 enabled */
  730. #define HRTIM_TIMFAULTENABLE_FAULT5 (HRTIM_FLTR_FLT5EN) /*!< Fault 5 enabled */
  731. /**
  732. * @}
  733. */
  734. /** @defgroup HRTIM_Timer_Fault_Lock HRTIM Timer Fault Lock
  735. * @{
  736. * @brief Constants defining whether or not fault enabling bits are write
  737. * protected for a timer
  738. */
  739. #define HRTIM_TIMFAULTLOCK_READWRITE (0x00000000U) /*!< Timer fault enabling bits are read/write */
  740. #define HRTIM_TIMFAULTLOCK_READONLY (HRTIM_FLTR_FLTLCK) /*!< Timer fault enabling bits are read only */
  741. /**
  742. * @}
  743. */
  744. /** @defgroup HRTIM_Timer_Deadtime_Insertion HRTIM Timer Dead-time Insertion
  745. * @{
  746. * @brief Constants defining whether or not fault the dead time insertion
  747. * feature is enabled for a timer
  748. */
  749. #define HRTIM_TIMDEADTIMEINSERTION_DISABLED (0x00000000U) /*!< Output 1 and output 2 signals are independent */
  750. #define HRTIM_TIMDEADTIMEINSERTION_ENABLED HRTIM_OUTR_DTEN /*!< Dead-time is inserted between output 1 and output 2U */
  751. /**
  752. * @}
  753. */
  754. /** @defgroup HRTIM_Timer_Delayed_Protection_Mode HRTIM Timer Delayed Protection Mode
  755. * @{
  756. * @brief Constants defining all possible delayed protection modes
  757. * for a timer. Also define the source and outputs on which the delayed
  758. * protection schemes are applied
  759. */
  760. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED (0x00000000U) /*!< No action */
  761. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6 (HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6U */
  762. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 6U */
  763. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 and output 2 delayed Idle on external Event 6U */
  764. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Balanced Idle on external Event 6U */
  765. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 7U */
  766. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 7U */
  767. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 and output2 delayed Idle on external Event 7U */
  768. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Balanced Idle on external Event 7U */
  769. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DISABLED (0x00000000U) /*!< No action */
  770. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_EEV8 (HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 delayed Idle on external Event 6U */
  771. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT2_EEV8 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 2 delayed Idle on external Event 6U */
  772. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDBOTH_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 and output 2 delayed Idle on external Event 6U */
  773. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_BALANCED_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Balanced Idle on external Event 6U */
  774. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 delayed Idle on external Event 7U */
  775. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT2_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 2 delayed Idle on external Event 7U */
  776. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDBOTH_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 and output2 delayed Idle on external Event 7U */
  777. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_BALANCED_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Balanced Idle on external Event 7U */
  778. /**
  779. * @}
  780. */
  781. /** @defgroup HRTIM_Timer_Update_Trigger HRTIM Timer Update Trigger
  782. * @{
  783. * @brief Constants defining whether the registers update is done synchronously
  784. * with any other timer or master update
  785. */
  786. #define HRTIM_TIMUPDATETRIGGER_NONE 0x00000000U /*!< Register update is disabled */
  787. #define HRTIM_TIMUPDATETRIGGER_MASTER (HRTIM_TIMCR_MSTU) /*!< Register update is triggered by the master timer update */
  788. #define HRTIM_TIMUPDATETRIGGER_TIMER_A (HRTIM_TIMCR_TAU) /*!< Register update is triggered by the timer A update */
  789. #define HRTIM_TIMUPDATETRIGGER_TIMER_B (HRTIM_TIMCR_TBU) /*!< Register update is triggered by the timer B update */
  790. #define HRTIM_TIMUPDATETRIGGER_TIMER_C (HRTIM_TIMCR_TCU) /*!< Register update is triggered by the timer C update*/
  791. #define HRTIM_TIMUPDATETRIGGER_TIMER_D (HRTIM_TIMCR_TDU) /*!< Register update is triggered by the timer D update */
  792. #define HRTIM_TIMUPDATETRIGGER_TIMER_E (HRTIM_TIMCR_TEU) /*!< Register update is triggered by the timer E update */
  793. /**
  794. * @}
  795. */
  796. /** @defgroup HRTIM_Timer_Reset_Trigger HRTIM Timer Reset Trigger
  797. * @{
  798. * @brief Constants defining the events that can be selected to trigger the reset
  799. * of the timer counter
  800. */
  801. #define HRTIM_TIMRESETTRIGGER_NONE 0x00000000U /*!< No counter reset trigger */
  802. #define HRTIM_TIMRESETTRIGGER_UPDATE (HRTIM_RSTR_UPDATE) /*!< The timer counter is reset upon update event */
  803. #define HRTIM_TIMRESETTRIGGER_CMP2 (HRTIM_RSTR_CMP2) /*!< The timer counter is reset upon Timer Compare 2 event */
  804. #define HRTIM_TIMRESETTRIGGER_CMP4 (HRTIM_RSTR_CMP4) /*!< The timer counter is reset upon Timer Compare 4 event */
  805. #define HRTIM_TIMRESETTRIGGER_MASTER_PER (HRTIM_RSTR_MSTPER) /*!< The timer counter is reset upon master timer period event */
  806. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP1 (HRTIM_RSTR_MSTCMP1) /*!< The timer counter is reset upon master timer Compare 1 event */
  807. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP2 (HRTIM_RSTR_MSTCMP2) /*!< The timer counter is reset upon master timer Compare 2 event */
  808. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP3 (HRTIM_RSTR_MSTCMP3) /*!< The timer counter is reset upon master timer Compare 3 event */
  809. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP4 (HRTIM_RSTR_MSTCMP4) /*!< The timer counter is reset upon master timer Compare 4 event */
  810. #define HRTIM_TIMRESETTRIGGER_EEV_1 (HRTIM_RSTR_EXTEVNT1) /*!< The timer counter is reset upon external event 1U */
  811. #define HRTIM_TIMRESETTRIGGER_EEV_2 (HRTIM_RSTR_EXTEVNT2) /*!< The timer counter is reset upon external event 2U */
  812. #define HRTIM_TIMRESETTRIGGER_EEV_3 (HRTIM_RSTR_EXTEVNT3) /*!< The timer counter is reset upon external event 3U */
  813. #define HRTIM_TIMRESETTRIGGER_EEV_4 (HRTIM_RSTR_EXTEVNT4) /*!< The timer counter is reset upon external event 4U */
  814. #define HRTIM_TIMRESETTRIGGER_EEV_5 (HRTIM_RSTR_EXTEVNT5) /*!< The timer counter is reset upon external event 5U */
  815. #define HRTIM_TIMRESETTRIGGER_EEV_6 (HRTIM_RSTR_EXTEVNT6) /*!< The timer counter is reset upon external event 6U */
  816. #define HRTIM_TIMRESETTRIGGER_EEV_7 (HRTIM_RSTR_EXTEVNT7) /*!< The timer counter is reset upon external event 7U */
  817. #define HRTIM_TIMRESETTRIGGER_EEV_8 (HRTIM_RSTR_EXTEVNT8) /*!< The timer counter is reset upon external event 8U */
  818. #define HRTIM_TIMRESETTRIGGER_EEV_9 (HRTIM_RSTR_EXTEVNT9) /*!< The timer counter is reset upon external event 9U */
  819. #define HRTIM_TIMRESETTRIGGER_EEV_10 (HRTIM_RSTR_EXTEVNT10) /*!< The timer counter is reset upon external event 10U */
  820. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP1 (HRTIM_RSTR_TIMBCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  821. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP2 (HRTIM_RSTR_TIMBCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  822. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP4 (HRTIM_RSTR_TIMBCMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  823. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP1 (HRTIM_RSTR_TIMCCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  824. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP2 (HRTIM_RSTR_TIMCCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  825. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP4 (HRTIM_RSTR_TIMCCMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  826. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP1 (HRTIM_RSTR_TIMDCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  827. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP2 (HRTIM_RSTR_TIMDCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  828. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP4 (HRTIM_RSTR_TIMDCMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  829. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP1 (HRTIM_RSTR_TIMECMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  830. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP2 (HRTIM_RSTR_TIMECMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  831. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP4 (HRTIM_RSTR_TIMECMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  832. /**
  833. * @}
  834. */
  835. /** @defgroup HRTIM_Timer_Reset_Update HRTIM Timer Reset Update
  836. * @{
  837. * @brief Constants defining whether the register are updated upon Timerx
  838. * counter reset or roll-over to 0 after reaching the period value
  839. * in continuous mode
  840. */
  841. #define HRTIM_TIMUPDATEONRESET_DISABLED 0x00000000U /*!< Update by timer x reset / roll-over disabled */
  842. #define HRTIM_TIMUPDATEONRESET_ENABLED (HRTIM_TIMCR_TRSTU) /*!< Update by timer x reset / roll-over enabled */
  843. /**
  844. * @}
  845. */
  846. /** @defgroup HRTIM_Compare_Unit_Auto_Delayed_Mode HRTIM Compare Unit Auto Delayed Mode
  847. * @{
  848. * @brief Constants defining whether the compare register is behaving in
  849. * regular mode (compare match issued as soon as counter equal compare),
  850. * or in auto-delayed mode
  851. */
  852. #define HRTIM_AUTODELAYEDMODE_REGULAR (0x00000000U) /*!< standard compare mode */
  853. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT (HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated only if a capture has occurred */
  854. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1 (HRTIM_TIMCR_DELCMP2_1) /*!< Compare event generated if a capture has occurred or after a Compare 1 match (timeout if capture event is missing) */
  855. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3 (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) */
  856. /**
  857. * @}
  858. */
  859. /** @defgroup HRTIM_Simple_OC_Mode HRTIM Simple OC Mode
  860. * @{
  861. * @brief Constants defining the behavior of the output signal when the timer
  862. operates in basic output compare mode
  863. */
  864. #define HRTIM_BASICOCMODE_TOGGLE (0x00000001U) /*!< Output toggles when the timer counter reaches the compare value */
  865. #define HRTIM_BASICOCMODE_INACTIVE (0x00000002U) /*!< Output forced to active level when the timer counter reaches the compare value */
  866. #define HRTIM_BASICOCMODE_ACTIVE (0x00000003U) /*!< Output forced to inactive level when the timer counter reaches the compare value */
  867. #define IS_HRTIM_BASICOCMODE(BASICOCMODE)\
  868. (((BASICOCMODE) == HRTIM_BASICOCMODE_TOGGLE) || \
  869. ((BASICOCMODE) == HRTIM_BASICOCMODE_INACTIVE) || \
  870. ((BASICOCMODE) == HRTIM_BASICOCMODE_ACTIVE))
  871. /**
  872. * @}
  873. */
  874. /** @defgroup HRTIM_Output_Polarity HRTIM Output Polarity
  875. * @{
  876. * @brief Constants defining the polarity of a timer output
  877. */
  878. #define HRTIM_OUTPUTPOLARITY_HIGH (0x00000000U) /*!< Output is acitve HIGH */
  879. #define HRTIM_OUTPUTPOLARITY_LOW (HRTIM_OUTR_POL1) /*!< Output is active LOW */
  880. /**
  881. * @}
  882. */
  883. /** @defgroup HRTIM_Output_Set_Source HRTIM Output Set Source
  884. * @{
  885. * @brief Constants defining the events that can be selected to configure the
  886. * set crossbar of a timer output
  887. */
  888. #define HRTIM_OUTPUTSET_NONE 0x00000000U /*!< Reset the output set crossbar */
  889. #define HRTIM_OUTPUTSET_RESYNC (HRTIM_SET1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces the output to its active state */
  890. #define HRTIM_OUTPUTSET_TIMPER (HRTIM_SET1R_PER) /*!< Timer period event forces the output to its active state */
  891. #define HRTIM_OUTPUTSET_TIMCMP1 (HRTIM_SET1R_CMP1) /*!< Timer compare 1 event forces the output to its active state */
  892. #define HRTIM_OUTPUTSET_TIMCMP2 (HRTIM_SET1R_CMP2) /*!< Timer compare 2 event forces the output to its active state */
  893. #define HRTIM_OUTPUTSET_TIMCMP3 (HRTIM_SET1R_CMP3) /*!< Timer compare 3 event forces the output to its active state */
  894. #define HRTIM_OUTPUTSET_TIMCMP4 (HRTIM_SET1R_CMP4) /*!< Timer compare 4 event forces the output to its active state */
  895. #define HRTIM_OUTPUTSET_MASTERPER (HRTIM_SET1R_MSTPER) /*!< The master timer period event forces the output to its active state */
  896. #define HRTIM_OUTPUTSET_MASTERCMP1 (HRTIM_SET1R_MSTCMP1) /*!< Master Timer compare 1 event forces the output to its active state */
  897. #define HRTIM_OUTPUTSET_MASTERCMP2 (HRTIM_SET1R_MSTCMP2) /*!< Master Timer compare 2 event forces the output to its active state */
  898. #define HRTIM_OUTPUTSET_MASTERCMP3 (HRTIM_SET1R_MSTCMP3) /*!< Master Timer compare 3 event forces the output to its active state */
  899. #define HRTIM_OUTPUTSET_MASTERCMP4 (HRTIM_SET1R_MSTCMP4) /*!< Master Timer compare 4 event forces the output to its active state */
  900. /* Timer Events mapping for Timer A */
  901. #define HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  902. #define HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  903. #define HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  904. #define HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  905. #define HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  906. #define HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  907. #define HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  908. #define HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  909. #define HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  910. /* Timer Events mapping for Timer B */
  911. #define HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  912. #define HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  913. #define HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  914. #define HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  915. #define HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  916. #define HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  917. #define HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  918. #define HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  919. #define HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  920. /* Timer Events mapping for Timer C */
  921. #define HRTIM_OUTPUTSET_TIMCEV1_TIMACMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  922. #define HRTIM_OUTPUTSET_TIMCEV2_TIMACMP2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  923. #define HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  924. #define HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  925. #define HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  926. #define HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  927. #define HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  928. #define HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  929. #define HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  930. /* Timer Events mapping for Timer D */
  931. #define HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  932. #define HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  933. #define HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  934. #define HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  935. #define HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  936. #define HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  937. #define HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  938. #define HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  939. #define HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  940. /* Timer Events mapping for Timer E */
  941. #define HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  942. #define HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  943. #define HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  944. #define HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  945. #define HRTIM_OUTPUTSET_TIMEEV5_TIMDCMP2 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  946. #define HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  947. #define HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  948. #define HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  949. #define HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  950. /* Timer Events mapping for Timer F */
  951. #define HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  952. #define HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  953. #define HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  954. #define HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  955. #define HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  956. #define HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  957. #define HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  958. #define HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  959. #define HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  960. #define HRTIM_OUTPUTSET_EEV_1 (HRTIM_SET1R_EXTVNT1) /*!< External event 1 forces the output to its active state */
  961. #define HRTIM_OUTPUTSET_EEV_2 (HRTIM_SET1R_EXTVNT2) /*!< External event 2 forces the output to its active state */
  962. #define HRTIM_OUTPUTSET_EEV_3 (HRTIM_SET1R_EXTVNT3) /*!< External event 3 forces the output to its active state */
  963. #define HRTIM_OUTPUTSET_EEV_4 (HRTIM_SET1R_EXTVNT4) /*!< External event 4 forces the output to its active state */
  964. #define HRTIM_OUTPUTSET_EEV_5 (HRTIM_SET1R_EXTVNT5) /*!< External event 5 forces the output to its active state */
  965. #define HRTIM_OUTPUTSET_EEV_6 (HRTIM_SET1R_EXTVNT6) /*!< External event 6 forces the output to its active state */
  966. #define HRTIM_OUTPUTSET_EEV_7 (HRTIM_SET1R_EXTVNT7) /*!< External event 7 forces the output to its active state */
  967. #define HRTIM_OUTPUTSET_EEV_8 (HRTIM_SET1R_EXTVNT8) /*!< External event 8 forces the output to its active state */
  968. #define HRTIM_OUTPUTSET_EEV_9 (HRTIM_SET1R_EXTVNT9) /*!< External event 9 forces the output to its active state */
  969. #define HRTIM_OUTPUTSET_EEV_10 (HRTIM_SET1R_EXTVNT10) /*!< External event 10 forces the output to its active state */
  970. #define HRTIM_OUTPUTSET_UPDATE (HRTIM_SET1R_UPDATE) /*!< Timer register update event forces the output to its active state */
  971. /**
  972. * @}
  973. */
  974. /** @defgroup HRTIM_Output_Reset_Source HRTIM Output Reset Source
  975. * @{
  976. * @brief Constants defining the events that can be selected to configure the
  977. * set crossbar of a timer output
  978. */
  979. #define HRTIM_OUTPUTRESET_NONE 0x00000000U /*!< Reset the output reset crossbar */
  980. #define HRTIM_OUTPUTRESET_RESYNC (HRTIM_RST1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces the output to its inactive state */
  981. #define HRTIM_OUTPUTRESET_TIMPER (HRTIM_RST1R_PER) /*!< Timer period event forces the output to its inactive state */
  982. #define HRTIM_OUTPUTRESET_TIMCMP1 (HRTIM_RST1R_CMP1) /*!< Timer compare 1 event forces the output to its inactive state */
  983. #define HRTIM_OUTPUTRESET_TIMCMP2 (HRTIM_RST1R_CMP2) /*!< Timer compare 2 event forces the output to its inactive state */
  984. #define HRTIM_OUTPUTRESET_TIMCMP3 (HRTIM_RST1R_CMP3) /*!< Timer compare 3 event forces the output to its inactive state */
  985. #define HRTIM_OUTPUTRESET_TIMCMP4 (HRTIM_RST1R_CMP4) /*!< Timer compare 4 event forces the output to its inactive state */
  986. #define HRTIM_OUTPUTRESET_MASTERPER (HRTIM_RST1R_MSTPER) /*!< The master timer period event forces the output to its inactive state */
  987. #define HRTIM_OUTPUTRESET_MASTERCMP1 (HRTIM_RST1R_MSTCMP1) /*!< Master Timer compare 1 event forces the output to its inactive state */
  988. #define HRTIM_OUTPUTRESET_MASTERCMP2 (HRTIM_RST1R_MSTCMP2) /*!< Master Timer compare 2 event forces the output to its inactive state */
  989. #define HRTIM_OUTPUTRESET_MASTERCMP3 (HRTIM_RST1R_MSTCMP3) /*!< Master Timer compare 3 event forces the output to its inactive state */
  990. #define HRTIM_OUTPUTRESET_MASTERCMP4 (HRTIM_RST1R_MSTCMP4) /*!< Master Timer compare 4 event forces the output to its inactive state */
  991. /* Timer Events mapping for Timer A */
  992. #define HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  993. #define HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  994. #define HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  995. #define HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  996. #define HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  997. #define HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  998. #define HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  999. #define HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1000. #define HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1001. /* Timer Events mapping for Timer B */
  1002. #define HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1003. #define HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1004. #define HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1005. #define HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1006. #define HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1007. #define HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1008. #define HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1009. #define HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1010. #define HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1011. /* Timer Events mapping for Timer C */
  1012. #define HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1013. #define HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP2 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1014. #define HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1015. #define HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1016. #define HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1017. #define HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1018. #define HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1019. #define HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1020. #define HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1021. /* Timer Events mapping for Timer D */
  1022. #define HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1023. #define HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1024. #define HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1025. #define HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1026. #define HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1027. #define HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1028. #define HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1029. #define HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1030. #define HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1031. /* Timer Events mapping for Timer E */
  1032. #define HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1033. #define HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1034. #define HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1035. #define HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1036. #define HRTIM_OUTPUTRESET_TIMEEV5_TIMDCMP2 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1037. #define HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1038. #define HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1039. #define HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1040. #define HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1041. /* Timer Events mapping for Timer F */
  1042. #define HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1043. #define HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1044. #define HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1045. #define HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1046. #define HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1047. #define HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1048. #define HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1049. #define HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1050. #define HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1051. #define HRTIM_OUTPUTRESET_EEV_1 (HRTIM_RST1R_EXTVNT1) /*!< External event 1 forces the output to its inactive state */
  1052. #define HRTIM_OUTPUTRESET_EEV_2 (HRTIM_RST1R_EXTVNT2) /*!< External event 2 forces the output to its inactive state */
  1053. #define HRTIM_OUTPUTRESET_EEV_3 (HRTIM_RST1R_EXTVNT3) /*!< External event 3 forces the output to its inactive state */
  1054. #define HRTIM_OUTPUTRESET_EEV_4 (HRTIM_RST1R_EXTVNT4) /*!< External event 4 forces the output to its inactive state */
  1055. #define HRTIM_OUTPUTRESET_EEV_5 (HRTIM_RST1R_EXTVNT5) /*!< External event 5 forces the output to its inactive state */
  1056. #define HRTIM_OUTPUTRESET_EEV_6 (HRTIM_RST1R_EXTVNT6) /*!< External event 6 forces the output to its inactive state */
  1057. #define HRTIM_OUTPUTRESET_EEV_7 (HRTIM_RST1R_EXTVNT7) /*!< External event 7 forces the output to its inactive state */
  1058. #define HRTIM_OUTPUTRESET_EEV_8 (HRTIM_RST1R_EXTVNT8) /*!< External event 8 forces the output to its inactive state */
  1059. #define HRTIM_OUTPUTRESET_EEV_9 (HRTIM_RST1R_EXTVNT9) /*!< External event 9 forces the output to its inactive state */
  1060. #define HRTIM_OUTPUTRESET_EEV_10 (HRTIM_RST1R_EXTVNT10) /*!< External event 10 forces the output to its inactive state */
  1061. #define HRTIM_OUTPUTRESET_UPDATE (HRTIM_RST1R_UPDATE) /*!< Timer register update event forces the output to its inactive state */
  1062. /**
  1063. * @}
  1064. */
  1065. /** @defgroup HRTIM_Output_Idle_Mode HRTIM Output Idle Mode
  1066. * @{
  1067. * @brief Constants defining whether or not the timer output transition to its
  1068. IDLE state when burst mode is entered
  1069. */
  1070. #define HRTIM_OUTPUTIDLEMODE_NONE 0x00000000U /*!< The output is not affected by the burst mode operation */
  1071. #define HRTIM_OUTPUTIDLEMODE_IDLE (HRTIM_OUTR_IDLM1) /*!< The output is in idle state when requested by the burst mode controller */
  1072. /**
  1073. * @}
  1074. */
  1075. /** @defgroup HRTIM_Output_IDLE_Level HRTIM Output IDLE Level
  1076. * @{
  1077. * @brief Constants defining the output level when output is in IDLE state
  1078. */
  1079. #define HRTIM_OUTPUTIDLELEVEL_INACTIVE 0x00000000U /*!< Output at inactive level when in IDLE state */
  1080. #define HRTIM_OUTPUTIDLELEVEL_ACTIVE (HRTIM_OUTR_IDLES1) /*!< Output at active level when in IDLE state */
  1081. /**
  1082. * @}
  1083. */
  1084. /** @defgroup HRTIM_Output_FAULT_Level HRTIM Output FAULT Level
  1085. * @{
  1086. * @brief Constants defining the output level when output is in FAULT state
  1087. */
  1088. #define HRTIM_OUTPUTFAULTLEVEL_NONE 0x00000000U /*!< The output is not affected by the fault input */
  1089. #define HRTIM_OUTPUTFAULTLEVEL_ACTIVE (HRTIM_OUTR_FAULT1_0) /*!< Output at active level when in FAULT state */
  1090. #define HRTIM_OUTPUTFAULTLEVEL_INACTIVE (HRTIM_OUTR_FAULT1_1) /*!< Output at inactive level when in FAULT state */
  1091. #define HRTIM_OUTPUTFAULTLEVEL_HIGHZ (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0) /*!< Output is tri-stated when in FAULT state */
  1092. /**
  1093. * @}
  1094. */
  1095. /** @defgroup HRTIM_Output_Chopper_Mode_Enable HRTIM Output Chopper Mode Enable
  1096. * @{
  1097. * @brief Constants defining whether or not chopper mode is enabled for a timer
  1098. output
  1099. */
  1100. #define HRTIM_OUTPUTCHOPPERMODE_DISABLED 0x00000000U /*!< Output signal is not altered */
  1101. #define HRTIM_OUTPUTCHOPPERMODE_ENABLED (HRTIM_OUTR_CHP1) /*!< Output signal is chopped by a carrier signal */
  1102. /**
  1103. * @}
  1104. */
  1105. /** @defgroup HRTIM_Output_Burst_Mode_Entry_Delayed HRTIM Output Burst Mode Entry Delayed
  1106. * @{
  1107. * @brief Constants defining the idle mode entry is delayed by forcing a
  1108. dead-time insertion before switching the outputs to their idle state
  1109. */
  1110. #define HRTIM_OUTPUTBURSTMODEENTRY_REGULAR 0x00000000U /*!< The programmed Idle state is applied immediately to the Output */
  1111. #define HRTIM_OUTPUTBURSTMODEENTRY_DELAYED (HRTIM_OUTR_DIDL1) /*!< Dead-time is inserted on output before entering the idle mode */
  1112. /**
  1113. * @}
  1114. */
  1115. /** @defgroup HRTIM_Capture_Unit_Trigger HRTIM Capture Unit Trigger
  1116. * @{
  1117. * @brief Constants defining the events that can be selected to trigger the
  1118. * capture of the timing unit counter
  1119. */
  1120. #define HRTIM_CAPTURETRIGGER_NONE 0x00000000U /*!< Capture trigger is disabled */
  1121. #define HRTIM_CAPTURETRIGGER_UPDATE (HRTIM_CPT1CR_UPDCPT) /*!< The update event triggers the Capture */
  1122. #define HRTIM_CAPTURETRIGGER_EEV_1 (HRTIM_CPT1CR_EXEV1CPT) /*!< The External event 1 triggers the Capture */
  1123. #define HRTIM_CAPTURETRIGGER_EEV_2 (HRTIM_CPT1CR_EXEV2CPT) /*!< The External event 2 triggers the Capture */
  1124. #define HRTIM_CAPTURETRIGGER_EEV_3 (HRTIM_CPT1CR_EXEV3CPT) /*!< The External event 3 triggers the Capture */
  1125. #define HRTIM_CAPTURETRIGGER_EEV_4 (HRTIM_CPT1CR_EXEV4CPT) /*!< The External event 4 triggers the Capture */
  1126. #define HRTIM_CAPTURETRIGGER_EEV_5 (HRTIM_CPT1CR_EXEV5CPT) /*!< The External event 5 triggers the Capture */
  1127. #define HRTIM_CAPTURETRIGGER_EEV_6 (HRTIM_CPT1CR_EXEV6CPT) /*!< The External event 6 triggers the Capture */
  1128. #define HRTIM_CAPTURETRIGGER_EEV_7 (HRTIM_CPT1CR_EXEV7CPT) /*!< The External event 7 triggers the Capture */
  1129. #define HRTIM_CAPTURETRIGGER_EEV_8 (HRTIM_CPT1CR_EXEV8CPT) /*!< The External event 8 triggers the Capture */
  1130. #define HRTIM_CAPTURETRIGGER_EEV_9 (HRTIM_CPT1CR_EXEV9CPT) /*!< The External event 9 triggers the Capture */
  1131. #define HRTIM_CAPTURETRIGGER_EEV_10 (HRTIM_CPT1CR_EXEV10CPT) /*!< The External event 10 triggers the Capture */
  1132. #define HRTIM_CAPTURETRIGGER_TA1_SET (HRTIM_CPT1CR_TA1SET) /*!< Capture is triggered by TA1 output inactive to active transition */
  1133. #define HRTIM_CAPTURETRIGGER_TA1_RESET (HRTIM_CPT1CR_TA1RST) /*!< Capture is triggered by TA1 output active to inactive transition */
  1134. #define HRTIM_CAPTURETRIGGER_TIMERA_CMP1 (HRTIM_CPT1CR_TIMACMP1) /*!< Timer A Compare 1 triggers Capture */
  1135. #define HRTIM_CAPTURETRIGGER_TIMERA_CMP2 (HRTIM_CPT1CR_TIMACMP2) /*!< Timer A Compare 2 triggers Capture */
  1136. #define HRTIM_CAPTURETRIGGER_TB1_SET (HRTIM_CPT1CR_TB1SET) /*!< Capture is triggered by TB1 output inactive to active transition */
  1137. #define HRTIM_CAPTURETRIGGER_TB1_RESET (HRTIM_CPT1CR_TB1RST) /*!< Capture is triggered by TB1 output active to inactive transition */
  1138. #define HRTIM_CAPTURETRIGGER_TIMERB_CMP1 (HRTIM_CPT1CR_TIMBCMP1) /*!< Timer B Compare 1 triggers Capture */
  1139. #define HRTIM_CAPTURETRIGGER_TIMERB_CMP2 (HRTIM_CPT1CR_TIMBCMP2) /*!< Timer B Compare 2 triggers Capture */
  1140. #define HRTIM_CAPTURETRIGGER_TC1_SET (HRTIM_CPT1CR_TC1SET) /*!< Capture is triggered by TC1 output inactive to active transition */
  1141. #define HRTIM_CAPTURETRIGGER_TC1_RESET (HRTIM_CPT1CR_TC1RST) /*!< Capture is triggered by TC1 output active to inactive transition */
  1142. #define HRTIM_CAPTURETRIGGER_TIMERC_CMP1 (HRTIM_CPT1CR_TIMCCMP1) /*!< Timer C Compare 1 triggers Capture */
  1143. #define HRTIM_CAPTURETRIGGER_TIMERC_CMP2 (HRTIM_CPT1CR_TIMCCMP2) /*!< Timer C Compare 2 triggers Capture */
  1144. #define HRTIM_CAPTURETRIGGER_TD1_SET (HRTIM_CPT1CR_TD1SET) /*!< Capture is triggered by TD1 output inactive to active transition */
  1145. #define HRTIM_CAPTURETRIGGER_TD1_RESET (HRTIM_CPT1CR_TD1RST) /*!< Capture is triggered by TD1 output active to inactive transition */
  1146. #define HRTIM_CAPTURETRIGGER_TIMERD_CMP1 (HRTIM_CPT1CR_TIMDCMP1) /*!< Timer D Compare 1 triggers Capture */
  1147. #define HRTIM_CAPTURETRIGGER_TIMERD_CMP2 (HRTIM_CPT1CR_TIMDCMP2) /*!< Timer D Compare 2 triggers Capture */
  1148. #define HRTIM_CAPTURETRIGGER_TE1_SET (HRTIM_CPT1CR_TE1SET) /*!< Capture is triggered by TE1 output inactive to active transition */
  1149. #define HRTIM_CAPTURETRIGGER_TE1_RESET (HRTIM_CPT1CR_TE1RST) /*!< Capture is triggered by TE1 output active to inactive transition */
  1150. #define HRTIM_CAPTURETRIGGER_TIMERE_CMP1 (HRTIM_CPT1CR_TIMECMP1) /*!< Timer E Compare 1 triggers Capture */
  1151. #define HRTIM_CAPTURETRIGGER_TIMERE_CMP2 (HRTIM_CPT1CR_TIMECMP2) /*!< Timer E Compare 2 triggers Capture */
  1152. /**
  1153. * @}
  1154. */
  1155. /**
  1156. * @}
  1157. */
  1158. /** @defgroup HRTIM_Timer_External_Event_Filter HRTIM Timer External Event Filter
  1159. * @{
  1160. * @brief Constants defining the event filtering applied to external events
  1161. * by a timer
  1162. */
  1163. #define HRTIM_TIMEVENTFILTER_NONE (0x00000000U)
  1164. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP1 (HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 1U */
  1165. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP2 (HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from counter reset/roll-over to Compare 2U */
  1166. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP3 (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 3U */
  1167. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP4 (HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from counter reset/roll-over to Compare 4U */
  1168. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1169. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1170. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR3 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1171. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR4 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1172. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR5 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1173. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR6 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1174. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR7 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1175. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR8 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1176. #define HRTIM_TIMEVENTFILTER_WINDOWINGCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from counter reset/roll-over to Compare 2U */
  1177. #define HRTIM_TIMEVENTFILTER_WINDOWINGCMP3 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Windowing from counter reset/roll-over to Compare 3U */
  1178. #define HRTIM_TIMEVENTFILTER_WINDOWINGTIM (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from another timing unit: TIMWIN source */
  1179. /**
  1180. * @}
  1181. */
  1182. /** @defgroup HRTIM_Timer_External_Event_Latch HRTIM Timer External Event Latch
  1183. * @{
  1184. * @brief Constants defining whether or not the external event is
  1185. * memorized (latched) and generated as soon as the blanking period
  1186. * is completed or the window ends
  1187. */
  1188. #define HRTIM_TIMEVENTLATCH_DISABLED (0x00000000U) /*!< Event is ignored if it happens during a blank, or passed through during a window */
  1189. #define HRTIM_TIMEVENTLATCH_ENABLED HRTIM_EEFR1_EE1LTCH /*!< Event is latched and delayed till the end of the blanking or windowing period */
  1190. /**
  1191. * @}
  1192. */
  1193. /** @defgroup HRTIM_Deadtime_Prescaler_Ratio HRTIM Dead-time Prescaler Ratio
  1194. * @{
  1195. * @brief Constants defining division ratio between the timer clock frequency
  1196. * (fHRTIM) and the dead-time generator clock (fDTG)
  1197. */
  1198. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8 (0x00000000U) /*!< fDTG = fHRTIM * 8U */
  1199. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4 (HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM * 4U */
  1200. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2 (HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM * 2U */
  1201. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1 (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM */
  1202. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2 (HRTIM_DTR_DTPRSC_2) /*!< fDTG = fHRTIM / 2U */
  1203. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 4U */
  1204. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM / 8U */
  1205. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 16U */
  1206. /**
  1207. * @}
  1208. */
  1209. /** @defgroup HRTIM_Deadtime_Rising_Sign HRTIM Dead-time Rising Sign
  1210. * @{
  1211. * @brief Constants defining whether the dead-time is positive or negative
  1212. * (overlapping signal) on rising edge
  1213. */
  1214. #define HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE (0x00000000U) /*!< Positive dead-time on rising edge */
  1215. #define HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE (HRTIM_DTR_SDTR) /*!< Negative dead-time on rising edge */
  1216. /**
  1217. * @}
  1218. */
  1219. /** @defgroup HRTIM_Deadtime_Rising_Lock HRTIM Dead-time Rising Lock
  1220. * @{
  1221. * @brief Constants defining whether or not the dead-time (rising sign and
  1222. * value) is write protected
  1223. */
  1224. #define HRTIM_TIMDEADTIME_RISINGLOCK_WRITE (0x00000000U) /*!< Dead-time rising value and sign is writeable */
  1225. #define HRTIM_TIMDEADTIME_RISINGLOCK_READONLY (HRTIM_DTR_DTRLK) /*!< Dead-time rising value and sign is read-only */
  1226. /**
  1227. * @}
  1228. */
  1229. /** @defgroup HRTIM_Deadtime_Rising_Sign_Lock HRTIM Dead-time Rising Sign Lock
  1230. * @{
  1231. * @brief Constants defining whether or not the dead-time rising sign is write
  1232. * protected
  1233. */
  1234. #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE (0x00000000U) /*!< Dead-time rising sign is writeable */
  1235. #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY (HRTIM_DTR_DTRSLK) /*!< Dead-time rising sign is read-only */
  1236. /**
  1237. * @}
  1238. */
  1239. /** @defgroup HRTIM_Deadtime_Falling_Sign HRTIM Dead-time Falling Sign
  1240. * @{
  1241. * @brief Constants defining whether the dead-time is positive or negative
  1242. * (overlapping signal) on falling edge
  1243. */
  1244. #define HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE (0x00000000U) /*!< Positive dead-time on falling edge */
  1245. #define HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE (HRTIM_DTR_SDTF) /*!< Negative dead-time on falling edge */
  1246. /**
  1247. * @}
  1248. */
  1249. /** @defgroup HRTIM_Deadtime_Falling_Lock HRTIM Dead-time Falling Lock
  1250. * @{
  1251. * @brief Constants defining whether or not the dead-time (falling sign and
  1252. * value) is write protected
  1253. */
  1254. #define HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE (0x00000000U) /*!< Dead-time falling value and sign is writeable */
  1255. #define HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY (HRTIM_DTR_DTFLK) /*!< Dead-time falling value and sign is read-only */
  1256. /**
  1257. * @}
  1258. */
  1259. /** @defgroup HRTIM_Deadtime_Falling_Sign_Lock HRTIM Dead-time Falling Sign Lock
  1260. * @{
  1261. * @brief Constants defining whether or not the dead-time falling sign is write
  1262. * protected
  1263. */
  1264. #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE (0x00000000U) /*!< Dead-time falling sign is writeable */
  1265. #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY (HRTIM_DTR_DTFSLK) /*!< Dead-time falling sign is read-only */
  1266. /**
  1267. * @}
  1268. */
  1269. /** @defgroup HRTIM_Chopper_Frequency HRTIM Chopper Frequency
  1270. * @{
  1271. * @brief Constants defining the frequency of the generated high frequency carrier
  1272. */
  1273. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV16 (0x000000U) /*!< fCHPFRQ = fHRTIM / 16 */
  1274. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV32 (HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 32 */
  1275. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV48 (HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 48 */
  1276. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV64 (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 64 */
  1277. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV80 (HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 80 */
  1278. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV96 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 96 */
  1279. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 112 */
  1280. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 128 */
  1281. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV144 (HRTIM_CHPR_CARFRQ_3) /*!< fCHPFRQ = fHRTIM / 144 */
  1282. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 160 */
  1283. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 176 */
  1284. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 192 */
  1285. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 208 */
  1286. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 224 */
  1287. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 240 */
  1288. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV256 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 256 */
  1289. /**
  1290. * @}
  1291. */
  1292. /** @defgroup HRTIM_Chopper_Duty_Cycle HRTIM Chopper Duty Cycle
  1293. * @{
  1294. * @brief Constants defining the duty cycle of the generated high frequency carrier
  1295. * Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
  1296. */
  1297. #define HRTIM_CHOPPER_DUTYCYCLE_0 (0x000000U) /*!< Only 1st pulse is present */
  1298. #define HRTIM_CHOPPER_DUTYCYCLE_125 (HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 12.5U % */
  1299. #define HRTIM_CHOPPER_DUTYCYCLE_250 (HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 25U % */
  1300. #define HRTIM_CHOPPER_DUTYCYCLE_375 (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 37.5U % */
  1301. #define HRTIM_CHOPPER_DUTYCYCLE_500 (HRTIM_CHPR_CARDTY_2) /*!< Duty cycle of the carrier signal is 50U % */
  1302. #define HRTIM_CHOPPER_DUTYCYCLE_625 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 62.5U % */
  1303. #define HRTIM_CHOPPER_DUTYCYCLE_750 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 75U % */
  1304. #define HRTIM_CHOPPER_DUTYCYCLE_875 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 87.5U % */
  1305. /**
  1306. * @}
  1307. */
  1308. /** @defgroup HRTIM_Chopper_Start_Pulse_Width HRTIM Chopper Start Pulse Width
  1309. * @{
  1310. * @brief Constants defining the pulse width of the first pulse of the generated
  1311. * high frequency carrier
  1312. */
  1313. #define HRTIM_CHOPPER_PULSEWIDTH_16 (0x000000U) /*!< tSTPW = tHRTIM x 16 */
  1314. #define HRTIM_CHOPPER_PULSEWIDTH_32 (HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 32 */
  1315. #define HRTIM_CHOPPER_PULSEWIDTH_48 (HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 48 */
  1316. #define HRTIM_CHOPPER_PULSEWIDTH_64 (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 64 */
  1317. #define HRTIM_CHOPPER_PULSEWIDTH_80 (HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 80 */
  1318. #define HRTIM_CHOPPER_PULSEWIDTH_96 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 96 */
  1319. #define HRTIM_CHOPPER_PULSEWIDTH_112 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 112 */
  1320. #define HRTIM_CHOPPER_PULSEWIDTH_128 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 128 */
  1321. #define HRTIM_CHOPPER_PULSEWIDTH_144 (HRTIM_CHPR_STRPW_3) /*!< tSTPW = tHRTIM x 144 */
  1322. #define HRTIM_CHOPPER_PULSEWIDTH_160 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 160 */
  1323. #define HRTIM_CHOPPER_PULSEWIDTH_176 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 176 */
  1324. #define HRTIM_CHOPPER_PULSEWIDTH_192 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 192 */
  1325. #define HRTIM_CHOPPER_PULSEWIDTH_208 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 208 */
  1326. #define HRTIM_CHOPPER_PULSEWIDTH_224 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 224 */
  1327. #define HRTIM_CHOPPER_PULSEWIDTH_240 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 240 */
  1328. #define HRTIM_CHOPPER_PULSEWIDTH_256 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 256 */
  1329. /**
  1330. * @}
  1331. */
  1332. /** @defgroup HRTIM_Synchronization_Options HRTIM Synchronization Options
  1333. * @{
  1334. * @brief Constants defining the options for synchronizing multiple HRTIM
  1335. * instances, as a master unit (generating a synchronization signal)
  1336. * or as a slave (waiting for a trigger to be synchronized)
  1337. */
  1338. #define HRTIM_SYNCOPTION_NONE 0x00000000U /*!< HRTIM instance doesn't handle external synchronization signals (SYNCIN, SYNCOUT) */
  1339. #define HRTIM_SYNCOPTION_MASTER 0x00000001U /*!< HRTIM instance acts as a MASTER, i.e. generates external synchronization output (SYNCOUT)*/
  1340. #define HRTIM_SYNCOPTION_SLAVE 0x00000002U /*!< HRTIM instance acts as a SLAVE, i.e. it is synchronized by external sources (SYNCIN) */
  1341. /**
  1342. * @}
  1343. */
  1344. /** @defgroup HRTIM_Synchronization_Input_Source HRTIM Synchronization Input Source
  1345. * @{
  1346. * @brief Constants defining defining the synchronization input source
  1347. */
  1348. #define HRTIM_SYNCINPUTSOURCE_NONE 0x00000000U /*!< disabled. HRTIM is not synchronized and runs in standalone mode */
  1349. #define HRTIM_SYNCINPUTSOURCE_INTERNALEVENT HRTIM_MCR_SYNC_IN_1 /*!< The HRTIM is synchronized with the on-chip timer */
  1350. #define HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT (HRTIM_MCR_SYNC_IN_1 | HRTIM_MCR_SYNC_IN_0) /*!< A positive pulse on SYNCIN input triggers the HRTIM */
  1351. /**
  1352. * @}
  1353. */
  1354. /** @defgroup HRTIM_Synchronization_Output_Source HRTIM Synchronization Output Source
  1355. * @{
  1356. * @brief Constants defining the source and event to be sent on the
  1357. * synchronization outputs
  1358. */
  1359. #define HRTIM_SYNCOUTPUTSOURCE_MASTER_START 0x00000000U /*!< A pulse is sent on the SYNCOUT output upon master timer start event */
  1360. #define HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1 (HRTIM_MCR_SYNC_SRC_0) /*!< A pulse is sent on the SYNCOUT output upon master timer compare 1 event*/
  1361. #define HRTIM_SYNCOUTPUTSOURCE_TIMA_START (HRTIM_MCR_SYNC_SRC_1) /*!< A pulse is sent on the SYNCOUT output upon timer A start or reset events */
  1362. #define HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1 (HRTIM_MCR_SYNC_SRC_1 | HRTIM_MCR_SYNC_SRC_0) /*!< A pulse is sent on the SYNCOUT output upon timer A compare 1 event */
  1363. /**
  1364. * @}
  1365. */
  1366. /** @defgroup HRTIM_Synchronization_Output_Polarity HRTIM Synchronization Output Polarity
  1367. * @{
  1368. * @brief Constants defining the routing and conditioning of the synchronization output event
  1369. */
  1370. #define HRTIM_SYNCOUTPUTPOLARITY_NONE 0x00000000U /*!< Synchronization output event is disabled */
  1371. #define HRTIM_SYNCOUTPUTPOLARITY_POSITIVE (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 */
  1372. #define HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE (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 */
  1373. /**
  1374. * @}
  1375. */
  1376. /** @defgroup HRTIM_External_Event_Sources HRTIM External Event Sources
  1377. * @{
  1378. * @brief Constants defining available sources associated to external events
  1379. */
  1380. #define HRTIM_EVENTSRC_1 (0x00000000U) /*!< External event source 1U */
  1381. #define HRTIM_EVENTSRC_2 (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U */
  1382. #define HRTIM_EVENTSRC_3 (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U */
  1383. #define HRTIM_EVENTSRC_4 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U */
  1384. /**
  1385. * @}
  1386. */
  1387. /** @defgroup HRTIM_External_Event_Polarity HRTIM External Event Polarity
  1388. * @{
  1389. * @brief Constants defining the polarity of an external event
  1390. */
  1391. #define HRTIM_EVENTPOLARITY_HIGH (0x00000000U) /*!< External event is active high */
  1392. #define HRTIM_EVENTPOLARITY_LOW (HRTIM_EECR1_EE1POL) /*!< External event is active low */
  1393. /**
  1394. * @}
  1395. */
  1396. /** @defgroup HRTIM_External_Event_Sensitivity HRTIM External Event Sensitivity
  1397. * @{
  1398. * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive)
  1399. * of an external event
  1400. */
  1401. #define HRTIM_EVENTSENSITIVITY_LEVEL (0x00000000U) /*!< External event is active on level */
  1402. #define HRTIM_EVENTSENSITIVITY_RISINGEDGE (HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising edge */
  1403. #define HRTIM_EVENTSENSITIVITY_FALLINGEDGE (HRTIM_EECR1_EE1SNS_1) /*!< External event is active on Falling edge */
  1404. #define HRTIM_EVENTSENSITIVITY_BOTHEDGES (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising and Falling edges */
  1405. /**
  1406. * @}
  1407. */
  1408. /** @defgroup HRTIM_External_Event_Fast_Mode HRTIM External Event Fast Mode
  1409. * @{
  1410. * @brief Constants defining whether or not an external event is programmed in
  1411. fast mode
  1412. */
  1413. #define HRTIM_EVENTFASTMODE_DISABLE (0x00000000U) /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs */
  1414. #define HRTIM_EVENTFASTMODE_ENABLE (HRTIM_EECR1_EE1FAST) /*!< External Event is acting asynchronously on outputs (low latency mode) */
  1415. /**
  1416. * @}
  1417. */
  1418. /** @defgroup HRTIM_External_Event_Filter HRTIM External Event Filter
  1419. * @{
  1420. * @brief Constants defining the frequency used to sample an external event 6
  1421. * input and the length (N) of the digital filter applied
  1422. */
  1423. #define HRTIM_EVENTFILTER_NONE (0x00000000U) /*!< Filter disabled */
  1424. #define HRTIM_EVENTFILTER_1 (HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fHRTIM, N=2U */
  1425. #define HRTIM_EVENTFILTER_2 (HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fHRTIM, N=4U */
  1426. #define HRTIM_EVENTFILTER_3 (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fHRTIM, N=8U */
  1427. #define HRTIM_EVENTFILTER_4 (HRTIM_EECR3_EE6F_2) /*!< fSAMPLING= fEEVS/2U, N=6U */
  1428. #define HRTIM_EVENTFILTER_5 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/2U, N=8U */
  1429. #define HRTIM_EVENTFILTER_6 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/4U, N=6U */
  1430. #define HRTIM_EVENTFILTER_7 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/4U, N=8U */
  1431. #define HRTIM_EVENTFILTER_8 (HRTIM_EECR3_EE6F_3) /*!< fSAMPLING= fEEVS/8U, N=6U */
  1432. #define HRTIM_EVENTFILTER_9 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/8U, N=8U */
  1433. #define HRTIM_EVENTFILTER_10 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/16U, N=5U */
  1434. #define HRTIM_EVENTFILTER_11 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/16U, N=6U */
  1435. #define HRTIM_EVENTFILTER_12 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2) /*!< fSAMPLING= fEEVS/16U, N=8U */
  1436. #define HRTIM_EVENTFILTER_13 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/32U, N=5U */
  1437. #define HRTIM_EVENTFILTER_14 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/32U, N=6U */
  1438. #define HRTIM_EVENTFILTER_15 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/32U, N=8U */
  1439. /**
  1440. * @}
  1441. */
  1442. /** @defgroup HRTIM_External_Event_Prescaler HRTIM External Event Prescaler
  1443. * @{
  1444. * @brief Constants defining division ratio between the timer clock frequency
  1445. * fHRTIM) and the external event signal sampling clock (fEEVS)
  1446. * used by the digital filters
  1447. */
  1448. #define HRTIM_EVENTPRESCALER_DIV1 (0x00000000U) /*!< fEEVS=fHRTIM */
  1449. #define HRTIM_EVENTPRESCALER_DIV2 (HRTIM_EECR3_EEVSD_0) /*!< fEEVS=fHRTIM / 2U */
  1450. #define HRTIM_EVENTPRESCALER_DIV4 (HRTIM_EECR3_EEVSD_1) /*!< fEEVS=fHRTIM / 4U */
  1451. #define HRTIM_EVENTPRESCALER_DIV8 (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0) /*!< fEEVS=fHRTIM / 8U */
  1452. /**
  1453. * @}
  1454. */
  1455. /** @defgroup HRTIM_Fault_Sources HRTIM Fault Sources
  1456. * @{
  1457. * @brief Constants defining whether a fault is triggered by any external
  1458. * or internal fault source
  1459. */
  1460. #define HRTIM_FAULTSOURCE_DIGITALINPUT (0x00000000U) /*!< Fault input is FLT input pin */
  1461. #define HRTIM_FAULTSOURCE_INTERNAL (HRTIM_FLTINR1_FLT1SRC) /*!< Fault input is FLT_Int signal (e.g. internal comparator) */
  1462. /**
  1463. * @}
  1464. */
  1465. /** @defgroup HRTIM_Fault_Polarity HRTIM Fault Polarity
  1466. * @{
  1467. * @brief Constants defining the polarity of a fault event
  1468. */
  1469. #define HRTIM_FAULTPOLARITY_LOW (0x00000000U) /*!< Fault input is active low */
  1470. #define HRTIM_FAULTPOLARITY_HIGH (HRTIM_FLTINR1_FLT1P) /*!< Fault input is active high */
  1471. /**
  1472. * @}
  1473. */
  1474. /** @defgroup HRTIM_Fault_Filter HRTIM Fault Filter
  1475. * @{
  1476. * @ brief Constants defining the frequency used to sample the fault input and
  1477. * the length (N) of the digital filter applied
  1478. */
  1479. #define HRTIM_FAULTFILTER_NONE (0x00000000U) /*!< Filter disabled */
  1480. #define HRTIM_FAULTFILTER_1 (HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=2U */
  1481. #define HRTIM_FAULTFILTER_2 (HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fHRTIM, N=4U */
  1482. #define HRTIM_FAULTFILTER_3 (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=8U */
  1483. #define HRTIM_FAULTFILTER_4 (HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/2U, N=6U */
  1484. #define HRTIM_FAULTFILTER_5 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/2U, N=8U */
  1485. #define HRTIM_FAULTFILTER_6 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/4U, N=6U */
  1486. #define HRTIM_FAULTFILTER_7 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/4U, N=8U */
  1487. #define HRTIM_FAULTFILTER_8 (HRTIM_FLTINR1_FLT1F_3) /*!< fSAMPLING= fFLTS/8U, N=6U */
  1488. #define HRTIM_FAULTFILTER_9 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/8U, N=8U */
  1489. #define HRTIM_FAULTFILTER_10 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/16U, N=5U */
  1490. #define HRTIM_FAULTFILTER_11 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/16U, N=6U */
  1491. #define HRTIM_FAULTFILTER_12 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/16U, N=8U */
  1492. #define HRTIM_FAULTFILTER_13 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32U, N=5U */
  1493. #define HRTIM_FAULTFILTER_14 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/32U, N=6U */
  1494. #define HRTIM_FAULTFILTER_15 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32U, N=8U */
  1495. /**
  1496. * @}
  1497. */
  1498. /** @defgroup HRTIM_Fault_Lock HRTIM Fault Lock
  1499. * @{
  1500. * @brief Constants defining whether or not the fault programming bits are
  1501. write protected
  1502. */
  1503. #define HRTIM_FAULTLOCK_READWRITE (0x00000000U) /*!< Fault settings bits are read/write */
  1504. #define HRTIM_FAULTLOCK_READONLY (HRTIM_FLTINR1_FLT1LCK) /*!< Fault settings bits are read only */
  1505. /**
  1506. * @}
  1507. */
  1508. /** @defgroup HRTIM_External_Fault_Prescaler HRTIM External Fault Prescaler
  1509. * @{
  1510. * @brief Constants defining the division ratio between the timer clock
  1511. * frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used
  1512. * by the digital filters.
  1513. */
  1514. #define HRTIM_FAULTPRESCALER_DIV1 (0x00000000U) /*!< fFLTS=fHRTIM */
  1515. #define HRTIM_FAULTPRESCALER_DIV2 (HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS=fHRTIM / 2U */
  1516. #define HRTIM_FAULTPRESCALER_DIV4 (HRTIM_FLTINR2_FLTSD_1) /*!< fFLTS=fHRTIM / 4U */
  1517. #define HRTIM_FAULTPRESCALER_DIV8 (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS=fHRTIM / 8U */
  1518. /**
  1519. * @}
  1520. */
  1521. /** @defgroup HRTIM_Burst_Mode_Operating_Mode HRTIM Burst Mode Operating Mode
  1522. * @{
  1523. * @brief Constants defining if the burst mode is entered once or if it is
  1524. * continuously operating
  1525. */
  1526. #define HRTIM_BURSTMODE_SINGLESHOT (0x00000000U) /*!< Burst mode operates in single shot mode */
  1527. #define HRTIM_BURSTMODE_CONTINOUS (HRTIM_BMCR_BMOM) /*!< Burst mode operates in continuous mode */
  1528. /**
  1529. * @}
  1530. */
  1531. /** @defgroup HRTIM_Burst_Mode_Clock_Source HRTIM Burst Mode Clock Source
  1532. * @{
  1533. * @brief Constants defining the clock source for the burst mode counter
  1534. */
  1535. #define HRTIM_BURSTMODECLOCKSOURCE_MASTER (0x00000000U) /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter */
  1536. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_A (HRTIM_BMCR_BMCLK_0) /*!< Timer A counter reset/roll-over is used as clock source for the burst mode counter */
  1537. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_B (HRTIM_BMCR_BMCLK_1) /*!< Timer B counter reset/roll-over is used as clock source for the burst mode counter */
  1538. #define HRTIM_BURSTMODECLOCKSOURCE_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 */
  1539. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_D (HRTIM_BMCR_BMCLK_2) /*!< Timer D counter reset/roll-over is used as clock source for the burst mode counter */
  1540. #define HRTIM_BURSTMODECLOCKSOURCE_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 */
  1541. #define HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1) /*!< On-chip Event 1 (BMClk[1]), acting as a burst mode counter clock */
  1542. #define HRTIM_BURSTMODECLOCKSOURCE_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 */
  1543. #define HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO (HRTIM_BMCR_BMCLK_3) /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock */
  1544. #define HRTIM_BURSTMODECLOCKSOURCE_FHRTIM (HRTIM_BMCR_BMCLK_3 | HRTIM_BMCR_BMCLK_1) /*!< Prescaled fHRTIM clock is used as clock source for the burst mode counter */
  1545. /**
  1546. * @}
  1547. */
  1548. /** @defgroup HRTIM_Burst_Mode_Prescaler HRTIM Burst Mode Prescaler
  1549. * @{
  1550. * @brief Constants defining the prescaling ratio of the fHRTIM clock
  1551. * for the burst mode controller
  1552. */
  1553. #define HRTIM_BURSTMODEPRESCALER_DIV1 (0x00000000U) /*!< fBRST = fHRTIM */
  1554. #define HRTIM_BURSTMODEPRESCALER_DIV2 (HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2U */
  1555. #define HRTIM_BURSTMODEPRESCALER_DIV4 (HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/4U */
  1556. #define HRTIM_BURSTMODEPRESCALER_DIV8 (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8U */
  1557. #define HRTIM_BURSTMODEPRESCALER_DIV16 (HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/16U */
  1558. #define HRTIM_BURSTMODEPRESCALER_DIV32 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32U */
  1559. #define HRTIM_BURSTMODEPRESCALER_DIV64 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/64U */
  1560. #define HRTIM_BURSTMODEPRESCALER_DIV128 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/128U */
  1561. #define HRTIM_BURSTMODEPRESCALER_DIV256 (HRTIM_BMCR_BMPRSC_3) /*!< fBRST = fHRTIM/256U */
  1562. #define HRTIM_BURSTMODEPRESCALER_DIV512 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/512U */
  1563. #define HRTIM_BURSTMODEPRESCALER_DIV1024 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/1024U */
  1564. #define HRTIM_BURSTMODEPRESCALER_DIV2048 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2048U*/
  1565. #define HRTIM_BURSTMODEPRESCALER_DIV4096 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/4096U */
  1566. #define HRTIM_BURSTMODEPRESCALER_DIV8192 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8192U */
  1567. #define HRTIM_BURSTMODEPRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/16384U */
  1568. #define HRTIM_BURSTMODEPRESCALER_DIV32768 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32768U */
  1569. /**
  1570. * @}
  1571. */
  1572. /** @defgroup HRTIM_Burst_Mode_Register_Preload_Enable HRTIM Burst Mode Register Preload Enable
  1573. * @{
  1574. * @brief Constants defining whether or not burst mode registers preload
  1575. mechanism is enabled, i.e. a write access into a preloadable register
  1576. (HRTIM_BMCMPR, HRTIM_BMPER) is done into the active or the preload register
  1577. */
  1578. #define HRIM_BURSTMODEPRELOAD_DISABLED (0x00000000U) /*!< Preload disabled: the write access is directly done into active registers */
  1579. #define HRIM_BURSTMODEPRELOAD_ENABLED (HRTIM_BMCR_BMPREN) /*!< Preload enabled: the write access is done into preload registers */
  1580. /**
  1581. * @}
  1582. */
  1583. /** @defgroup HRTIM_Burst_Mode_Trigger HRTIM Burst Mode Trigger
  1584. * @{
  1585. * @brief Constants defining the events that can be used to trig the burst
  1586. * mode operation
  1587. */
  1588. #define HRTIM_BURSTMODETRIGGER_NONE 0x00000000U /*!< No trigger */
  1589. #define HRTIM_BURSTMODETRIGGER_MASTER_RESET (HRTIM_BMTRGR_MSTRST) /*!< Master reset */
  1590. #define HRTIM_BURSTMODETRIGGER_MASTER_REPETITION (HRTIM_BMTRGR_MSTREP) /*!< Master repetition */
  1591. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP1 (HRTIM_BMTRGR_MSTCMP1) /*!< Master compare 1U */
  1592. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP2 (HRTIM_BMTRGR_MSTCMP2) /*!< Master compare 2U */
  1593. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP3 (HRTIM_BMTRGR_MSTCMP3) /*!< Master compare 3U */
  1594. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP4 (HRTIM_BMTRGR_MSTCMP4) /*!< Master compare 4U */
  1595. #define HRTIM_BURSTMODETRIGGER_TIMERA_RESET (HRTIM_BMTRGR_TARST) /*!< Timer A reset */
  1596. #define HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION (HRTIM_BMTRGR_TAREP) /*!< Timer A repetition */
  1597. #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP1 (HRTIM_BMTRGR_TACMP1) /*!< Timer A compare 1 */
  1598. #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP2 (HRTIM_BMTRGR_TACMP2) /*!< Timer A compare 2 */
  1599. #define HRTIM_BURSTMODETRIGGER_TIMERB_RESET (HRTIM_BMTRGR_TBRST) /*!< Timer B reset */
  1600. #define HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION (HRTIM_BMTRGR_TBREP) /*!< Timer B repetition */
  1601. #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP1 (HRTIM_BMTRGR_TBCMP1) /*!< Timer B compare 1 */
  1602. #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP2 (HRTIM_BMTRGR_TBCMP2) /*!< Timer B compare 2 */
  1603. #define HRTIM_BURSTMODETRIGGER_TIMERC_RESET (HRTIM_BMTRGR_TCRST) /*!< Timer C reset */
  1604. #define HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION (HRTIM_BMTRGR_TCREP) /*!< Timer C repetition */
  1605. #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP1 (HRTIM_BMTRGR_TCCMP1) /*!< Timer C compare 1 */
  1606. #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP2 (HRTIM_BMTRGR_TCCMP2) /*!< Timer C compare 2 */
  1607. #define HRTIM_BURSTMODETRIGGER_TIMERD_RESET (HRTIM_BMTRGR_TDRST) /*!< Timer D reset */
  1608. #define HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION (HRTIM_BMTRGR_TDREP) /*!< Timer D repetition */
  1609. #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP1 (HRTIM_BMTRGR_TDCMP1) /*!< Timer D compare 1 */
  1610. #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP2 (HRTIM_BMTRGR_TDCMP2) /*!< Timer D compare 2 */
  1611. #define HRTIM_BURSTMODETRIGGER_TIMERE_RESET (HRTIM_BMTRGR_TERST) /*!< Timer E reset */
  1612. #define HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION (HRTIM_BMTRGR_TEREP) /*!< Timer E repetition */
  1613. #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP1 (HRTIM_BMTRGR_TECMP1) /*!< Timer E compare 1 */
  1614. #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP2 (HRTIM_BMTRGR_TECMP2) /*!< Timer E compare 2 */
  1615. #define HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7 (HRTIM_BMTRGR_TAEEV7) /*!< Timer A period following External Event 7 */
  1616. #define HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8 (HRTIM_BMTRGR_TDEEV8) /*!< Timer D period following External Event 8 */
  1617. #define HRTIM_BURSTMODETRIGGER_EVENT_7 (HRTIM_BMTRGR_EEV7) /*!< External Event 7 (timer A filters applied) */
  1618. #define HRTIM_BURSTMODETRIGGER_EVENT_8 (HRTIM_BMTRGR_EEV8) /*!< External Event 8 (timer D filters applied)*/
  1619. #define HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP (HRTIM_BMTRGR_OCHPEV) /*!< On-chip Event */
  1620. /**
  1621. * @}
  1622. */
  1623. /** @defgroup HRTIM_ADC_Trigger_Update_Source HRTIM ADC Trigger Update Source
  1624. * @{
  1625. * @brief constants defining the source triggering the update of the
  1626. HRTIM_ADCxR register (transfer from preload to active register).
  1627. */
  1628. #define HRTIM_ADCTRIGGERUPDATE_MASTER 0x00000000U /*!< Master timer */
  1629. #define HRTIM_ADCTRIGGERUPDATE_TIMER_A (HRTIM_CR1_ADC1USRC_0) /*!< Timer A */
  1630. #define HRTIM_ADCTRIGGERUPDATE_TIMER_B (HRTIM_CR1_ADC1USRC_1) /*!< Timer B */
  1631. #define HRTIM_ADCTRIGGERUPDATE_TIMER_C (HRTIM_CR1_ADC1USRC_1 | HRTIM_CR1_ADC1USRC_0) /*!< Timer C */
  1632. #define HRTIM_ADCTRIGGERUPDATE_TIMER_D (HRTIM_CR1_ADC1USRC_2) /*!< Timer D */
  1633. #define HRTIM_ADCTRIGGERUPDATE_TIMER_E (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_0) /*!< Timer E */
  1634. /**
  1635. * @}
  1636. */
  1637. /** @defgroup HRTIM_ADC_Trigger_Event HRTIM ADC Trigger Event
  1638. * @{
  1639. * @brief constants defining the events triggering ADC conversion.
  1640. * HRTIM_ADCTRIGGEREVENT13_*: ADC Triggers 1 and 3
  1641. * HRTIM_ADCTRIGGEREVENT24_*: ADC Triggers 2 and 4
  1642. */
  1643. #define HRTIM_ADCTRIGGEREVENT13_NONE 0x00000000U /*!< No ADC trigger event */
  1644. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP1 (HRTIM_ADC1R_AD1MC1) /*!< ADC Trigger on master compare 1U */
  1645. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP2 (HRTIM_ADC1R_AD1MC2) /*!< ADC Trigger on master compare 2U */
  1646. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP3 (HRTIM_ADC1R_AD1MC3) /*!< ADC Trigger on master compare 3U */
  1647. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP4 (HRTIM_ADC1R_AD1MC4) /*!< ADC Trigger on master compare 4U */
  1648. #define HRTIM_ADCTRIGGEREVENT13_MASTER_PERIOD (HRTIM_ADC1R_AD1MPER) /*!< ADC Trigger on master period */
  1649. #define HRTIM_ADCTRIGGEREVENT13_EVENT_1 (HRTIM_ADC1R_AD1EEV1) /*!< ADC Trigger on external event 1U */
  1650. #define HRTIM_ADCTRIGGEREVENT13_EVENT_2 (HRTIM_ADC1R_AD1EEV2) /*!< ADC Trigger on external event 2U */
  1651. #define HRTIM_ADCTRIGGEREVENT13_EVENT_3 (HRTIM_ADC1R_AD1EEV3) /*!< ADC Trigger on external event 3U */
  1652. #define HRTIM_ADCTRIGGEREVENT13_EVENT_4 (HRTIM_ADC1R_AD1EEV4) /*!< ADC Trigger on external event 4U */
  1653. #define HRTIM_ADCTRIGGEREVENT13_EVENT_5 (HRTIM_ADC1R_AD1EEV5) /*!< ADC Trigger on external event 5U */
  1654. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP2 (HRTIM_ADC1R_AD1TAC2) /*!< ADC Trigger on Timer A compare 2U */
  1655. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP3 (HRTIM_ADC1R_AD1TAC3) /*!< ADC Trigger on Timer A compare 3U */
  1656. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP4 (HRTIM_ADC1R_AD1TAC4) /*!< ADC Trigger on Timer A compare 4U */
  1657. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_PERIOD (HRTIM_ADC1R_AD1TAPER) /*!< ADC Trigger on Timer A period */
  1658. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_RESET (HRTIM_ADC1R_AD1TARST) /*!< ADC Trigger on Timer A reset */
  1659. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP2 (HRTIM_ADC1R_AD1TBC2) /*!< ADC Trigger on Timer B compare 2U */
  1660. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP3 (HRTIM_ADC1R_AD1TBC3) /*!< ADC Trigger on Timer B compare 3U */
  1661. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP4 (HRTIM_ADC1R_AD1TBC4) /*!< ADC Trigger on Timer B compare 4U */
  1662. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_PERIOD (HRTIM_ADC1R_AD1TBPER) /*!< ADC Trigger on Timer B period */
  1663. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_RESET (HRTIM_ADC1R_AD1TBRST) /*!< ADC Trigger on Timer B reset */
  1664. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP2 (HRTIM_ADC1R_AD1TCC2) /*!< ADC Trigger on Timer C compare 2U */
  1665. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP3 (HRTIM_ADC1R_AD1TCC3) /*!< ADC Trigger on Timer C compare 3U */
  1666. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP4 (HRTIM_ADC1R_AD1TCC4) /*!< ADC Trigger on Timer C compare 4U */
  1667. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_PERIOD (HRTIM_ADC1R_AD1TCPER) /*!< ADC Trigger on Timer C period */
  1668. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP2 (HRTIM_ADC1R_AD1TDC2) /*!< ADC Trigger on Timer D compare 2U */
  1669. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP3 (HRTIM_ADC1R_AD1TDC3) /*!< ADC Trigger on Timer D compare 3U */
  1670. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP4 (HRTIM_ADC1R_AD1TDC4) /*!< ADC Trigger on Timer D compare 4U */
  1671. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_PERIOD (HRTIM_ADC1R_AD1TDPER) /*!< ADC Trigger on Timer D period */
  1672. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP2 (HRTIM_ADC1R_AD1TEC2) /*!< ADC Trigger on Timer E compare 2U */
  1673. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP3 (HRTIM_ADC1R_AD1TEC3) /*!< ADC Trigger on Timer E compare 3U */
  1674. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP4 (HRTIM_ADC1R_AD1TEC4) /*!< ADC Trigger on Timer E compare 4U */
  1675. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_PERIOD (HRTIM_ADC1R_AD1TEPER) /*!< ADC Trigger on Timer E period */
  1676. #define HRTIM_ADCTRIGGEREVENT24_NONE 0x00000000U /*!< No ADC trigger event */
  1677. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP1 (HRTIM_ADC2R_AD2MC1) /*!< ADC Trigger on master compare 1U */
  1678. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP2 (HRTIM_ADC2R_AD2MC2) /*!< ADC Trigger on master compare 2U */
  1679. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP3 (HRTIM_ADC2R_AD2MC3) /*!< ADC Trigger on master compare 3U */
  1680. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP4 (HRTIM_ADC2R_AD2MC4) /*!< ADC Trigger on master compare 4U */
  1681. #define HRTIM_ADCTRIGGEREVENT24_MASTER_PERIOD (HRTIM_ADC2R_AD2MPER) /*!< ADC Trigger on master period */
  1682. #define HRTIM_ADCTRIGGEREVENT24_EVENT_6 (HRTIM_ADC2R_AD2EEV6) /*!< ADC Trigger on external event 6U */
  1683. #define HRTIM_ADCTRIGGEREVENT24_EVENT_7 (HRTIM_ADC2R_AD2EEV7) /*!< ADC Trigger on external event 7U */
  1684. #define HRTIM_ADCTRIGGEREVENT24_EVENT_8 (HRTIM_ADC2R_AD2EEV8) /*!< ADC Trigger on external event 8U */
  1685. #define HRTIM_ADCTRIGGEREVENT24_EVENT_9 (HRTIM_ADC2R_AD2EEV9) /*!< ADC Trigger on external event 9U */
  1686. #define HRTIM_ADCTRIGGEREVENT24_EVENT_10 (HRTIM_ADC2R_AD2EEV10) /*!< ADC Trigger on external event 10U */
  1687. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP2 (HRTIM_ADC2R_AD2TAC2) /*!< ADC Trigger on Timer A compare 2U */
  1688. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP3 (HRTIM_ADC2R_AD2TAC3) /*!< ADC Trigger on Timer A compare 3U */
  1689. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP4 (HRTIM_ADC2R_AD2TAC4) /*!< ADC Trigger on Timer A compare 4U */
  1690. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_PERIOD (HRTIM_ADC2R_AD2TAPER) /*!< ADC Trigger on Timer A period */
  1691. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP2 (HRTIM_ADC2R_AD2TBC2) /*!< ADC Trigger on Timer B compare 2U */
  1692. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP3 (HRTIM_ADC2R_AD2TBC3) /*!< ADC Trigger on Timer B compare 3U */
  1693. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP4 (HRTIM_ADC2R_AD2TBC4) /*!< ADC Trigger on Timer B compare 4U */
  1694. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_PERIOD (HRTIM_ADC2R_AD2TBPER) /*!< ADC Trigger on Timer B period */
  1695. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP2 (HRTIM_ADC2R_AD2TCC2) /*!< ADC Trigger on Timer C compare 2U */
  1696. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP3 (HRTIM_ADC2R_AD2TCC3) /*!< ADC Trigger on Timer C compare 3U */
  1697. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP4 (HRTIM_ADC2R_AD2TCC4) /*!< ADC Trigger on Timer C compare 4U */
  1698. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_PERIOD (HRTIM_ADC2R_AD2TCPER) /*!< ADC Trigger on Timer C period */
  1699. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_RESET (HRTIM_ADC2R_AD2TCRST) /*!< ADC Trigger on Timer C reset */
  1700. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP2 (HRTIM_ADC2R_AD2TDC2) /*!< ADC Trigger on Timer D compare 2U */
  1701. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP3 (HRTIM_ADC2R_AD2TDC3) /*!< ADC Trigger on Timer D compare 3U */
  1702. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP4 (HRTIM_ADC2R_AD2TDC4) /*!< ADC Trigger on Timer D compare 4U */
  1703. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_PERIOD (HRTIM_ADC2R_AD2TDPER) /*!< ADC Trigger on Timer D period */
  1704. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_RESET (HRTIM_ADC2R_AD2TDRST) /*!< ADC Trigger on Timer D reset */
  1705. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP2 (HRTIM_ADC2R_AD2TEC2) /*!< ADC Trigger on Timer E compare 2U */
  1706. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP3 (HRTIM_ADC2R_AD2TEC3) /*!< ADC Trigger on Timer E compare 3U */
  1707. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP4 (HRTIM_ADC2R_AD2TEC4) /*!< ADC Trigger on Timer E compare 4U */
  1708. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_RESET (HRTIM_ADC2R_AD2TERST) /*!< ADC Trigger on Timer E reset */
  1709. /**
  1710. * @}
  1711. */
  1712. /** @defgroup HRTIM_Burst_DMA_Registers_Update HRTIM Burst DMA Registers Update
  1713. * @{
  1714. * @brief Constants defining the registers that can be written during a burst
  1715. * DMA operation
  1716. */
  1717. #define HRTIM_BURSTDMA_NONE 0x00000000U /*!< No register is updated by Burst DMA accesses */
  1718. #define HRTIM_BURSTDMA_CR (HRTIM_BDTUPR_TIMCR) /*!< MCR or TIMxCR register is updated by Burst DMA accesses */
  1719. #define HRTIM_BURSTDMA_ICR (HRTIM_BDTUPR_TIMICR) /*!< MICR or TIMxICR register is updated by Burst DMA accesses */
  1720. #define HRTIM_BURSTDMA_DIER (HRTIM_BDTUPR_TIMDIER) /*!< MDIER or TIMxDIER register is updated by Burst DMA accesses */
  1721. #define HRTIM_BURSTDMA_CNT (HRTIM_BDTUPR_TIMCNT) /*!< MCNTR or CNTxCR register is updated by Burst DMA accesses */
  1722. #define HRTIM_BURSTDMA_PER (HRTIM_BDTUPR_TIMPER) /*!< MPER or PERxR register is updated by Burst DMA accesses */
  1723. #define HRTIM_BURSTDMA_REP (HRTIM_BDTUPR_TIMREP) /*!< MREPR or REPxR register is updated by Burst DMA accesses */
  1724. #define HRTIM_BURSTDMA_CMP1 (HRTIM_BDTUPR_TIMCMP1) /*!< MCMP1R or CMP1xR register is updated by Burst DMA accesses */
  1725. #define HRTIM_BURSTDMA_CMP2 (HRTIM_BDTUPR_TIMCMP2) /*!< MCMP2R or CMP2xR register is updated by Burst DMA accesses */
  1726. #define HRTIM_BURSTDMA_CMP3 (HRTIM_BDTUPR_TIMCMP3) /*!< MCMP3R or CMP3xR register is updated by Burst DMA accesses */
  1727. #define HRTIM_BURSTDMA_CMP4 (HRTIM_BDTUPR_TIMCMP4) /*!< MCMP4R or CMP4xR register is updated by Burst DMA accesses */
  1728. #define HRTIM_BURSTDMA_DTR (HRTIM_BDTUPR_TIMDTR) /*!< TDxR register is updated by Burst DMA accesses */
  1729. #define HRTIM_BURSTDMA_SET1R (HRTIM_BDTUPR_TIMSET1R) /*!< SET1R register is updated by Burst DMA accesses */
  1730. #define HRTIM_BURSTDMA_RST1R (HRTIM_BDTUPR_TIMRST1R) /*!< RST1R register is updated by Burst DMA accesses */
  1731. #define HRTIM_BURSTDMA_SET2R (HRTIM_BDTUPR_TIMSET2R) /*!< SET2R register is updated by Burst DMA accesses */
  1732. #define HRTIM_BURSTDMA_RST2R (HRTIM_BDTUPR_TIMRST2R) /*!< RST1R register is updated by Burst DMA accesses */
  1733. #define HRTIM_BURSTDMA_EEFR1 (HRTIM_BDTUPR_TIMEEFR1) /*!< EEFxR1 register is updated by Burst DMA accesses */
  1734. #define HRTIM_BURSTDMA_EEFR2 (HRTIM_BDTUPR_TIMEEFR2) /*!< EEFxR2 register is updated by Burst DMA accesses */
  1735. #define HRTIM_BURSTDMA_RSTR (HRTIM_BDTUPR_TIMRSTR) /*!< RSTxR register is updated by Burst DMA accesses */
  1736. #define HRTIM_BURSTDMA_CHPR (HRTIM_BDTUPR_TIMCHPR) /*!< CHPxR register is updated by Burst DMA accesses */
  1737. #define HRTIM_BURSTDMA_OUTR (HRTIM_BDTUPR_TIMOUTR) /*!< OUTxR register is updated by Burst DMA accesses */
  1738. #define HRTIM_BURSTDMA_FLTR (HRTIM_BDTUPR_TIMFLTR) /*!< FLTxR register is updated by Burst DMA accesses */
  1739. /**
  1740. * @}
  1741. */
  1742. /** @defgroup HRTIM_Burst_Mode_Control HRTIM Burst Mode Control
  1743. * @{
  1744. * @brief Constants used to enable or disable the burst mode controller
  1745. */
  1746. #define HRTIM_BURSTMODECTL_DISABLED 0x00000000U /*!< Burst mode disabled */
  1747. #define HRTIM_BURSTMODECTL_ENABLED (HRTIM_BMCR_BME) /*!< Burst mode enabled */
  1748. /**
  1749. * @}
  1750. */
  1751. /** @defgroup HRTIM_Fault_Mode_Control HRTIM Fault Mode Control
  1752. * @{
  1753. * @brief Constants used to enable or disable a fault channel
  1754. */
  1755. #define HRTIM_FAULTMODECTL_DISABLED 0x00000000U /*!< Fault channel is disabled */
  1756. #define HRTIM_FAULTMODECTL_ENABLED 0x00000001U /*!< Fault channel is enabled */
  1757. /**
  1758. * @}
  1759. */
  1760. /** @defgroup HRTIM_Software_Timer_Update HRTIM Software Timer Update
  1761. * @{
  1762. * @brief Constants used to force timer registers update
  1763. */
  1764. #define HRTIM_TIMERUPDATE_MASTER (HRTIM_CR2_MSWU) /*!< Force an immediate transfer from the preload to the active register in the master timer */
  1765. #define HRTIM_TIMERUPDATE_A (HRTIM_CR2_TASWU) /*!< Force an immediate transfer from the preload to the active register in the timer A */
  1766. #define HRTIM_TIMERUPDATE_B (HRTIM_CR2_TBSWU) /*!< Force an immediate transfer from the preload to the active register in the timer B */
  1767. #define HRTIM_TIMERUPDATE_C (HRTIM_CR2_TCSWU) /*!< Force an immediate transfer from the preload to the active register in the timer C */
  1768. #define HRTIM_TIMERUPDATE_D (HRTIM_CR2_TDSWU) /*!< Force an immediate transfer from the preload to the active register in the timer D */
  1769. #define HRTIM_TIMERUPDATE_E (HRTIM_CR2_TESWU) /*!< Force an immediate transfer from the preload to the active register in the timer E */
  1770. /**
  1771. * @}
  1772. */
  1773. /** @defgroup HRTIM_Software_Timer_Reset HRTIM Software Timer Reset
  1774. * @{
  1775. * @brief Constants used to force timer counter reset
  1776. */
  1777. #define HRTIM_TIMERRESET_MASTER (HRTIM_CR2_MRST) /*!< Reset the master timer counter */
  1778. #define HRTIM_TIMERRESET_TIMER_A (HRTIM_CR2_TARST) /*!< Reset the timer A counter */
  1779. #define HRTIM_TIMERRESET_TIMER_B (HRTIM_CR2_TBRST) /*!< Reset the timer B counter */
  1780. #define HRTIM_TIMERRESET_TIMER_C (HRTIM_CR2_TCRST) /*!< Reset the timer C counter */
  1781. #define HRTIM_TIMERRESET_TIMER_D (HRTIM_CR2_TDRST) /*!< Reset the timer D counter */
  1782. #define HRTIM_TIMERRESET_TIMER_E (HRTIM_CR2_TERST) /*!< Reset the timer E counter */
  1783. /**
  1784. * @}
  1785. */
  1786. /** @defgroup HRTIM_Output_Level HRTIM Output Level
  1787. * @{
  1788. * @brief Constants defining the level of a timer output
  1789. */
  1790. #define HRTIM_OUTPUTLEVEL_ACTIVE (0x00000001U) /*!< Force the output to its active state */
  1791. #define HRTIM_OUTPUTLEVEL_INACTIVE (0x00000002U) /*!< Force the output to its inactive state */
  1792. #define IS_HRTIM_OUTPUTLEVEL(OUTPUTLEVEL)\
  1793. (((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_ACTIVE) || \
  1794. ((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_INACTIVE))
  1795. /**
  1796. * @}
  1797. */
  1798. /** @defgroup HRTIM_Output_State HRTIM Output State
  1799. * @{
  1800. * @brief Constants defining the state of a timer output
  1801. */
  1802. #define HRTIM_OUTPUTSTATE_IDLE (0x00000001U) /*!< Main operating mode, where the output can take the active or
  1803. inactive level as programmed in the crossbar unit */
  1804. #define HRTIM_OUTPUTSTATE_RUN (0x00000002U) /*!< Default operating state (e.g. after an HRTIM reset, when the
  1805. outputs are disabled by software or during a burst mode operation */
  1806. #define HRTIM_OUTPUTSTATE_FAULT (0x00000003U) /*!< Safety state, entered in case of a shut-down request on
  1807. FAULTx inputs */
  1808. /**
  1809. * @}
  1810. */
  1811. /** @defgroup HRTIM_Burst_Mode_Status HRTIM Burst Mode Status
  1812. * @{
  1813. * @brief Constants defining the operating state of the burst mode controller
  1814. */
  1815. #define HRTIM_BURSTMODESTATUS_NORMAL 0x00000000U /*!< Normal operation */
  1816. #define HRTIM_BURSTMODESTATUS_ONGOING (HRTIM_BMCR_BMSTAT) /*!< Burst operation on-going */
  1817. /**
  1818. * @}
  1819. */
  1820. /** @defgroup HRTIM_Current_Push_Pull_Status HRTIM Current Push Pull Status
  1821. * @{
  1822. * @brief Constants defining on which output the signal is currently applied
  1823. * in push-pull mode
  1824. */
  1825. #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT1 0x00000000U /*!< Signal applied on output 1 and output 2 forced inactive */
  1826. #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT2 (HRTIM_TIMISR_CPPSTAT) /*!< Signal applied on output 2 and output 1 forced inactive */
  1827. /**
  1828. * @}
  1829. */
  1830. /** @defgroup HRTIM_Idle_Push_Pull_Status HRTIM Idle Push Pull Status
  1831. * @{
  1832. * @brief Constants defining on which output the signal was applied, in
  1833. * push-pull mode balanced fault mode or delayed idle mode, when the
  1834. * protection was triggered
  1835. */
  1836. #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT1 0x00000000U /*!< Protection occurred when the output 1 was active and output 2 forced inactive */
  1837. #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT2 (HRTIM_TIMISR_IPPSTAT) /*!< Protection occurred when the output 2 was active and output 1 forced inactive */
  1838. /**
  1839. * @}
  1840. */
  1841. /** @defgroup HRTIM_Common_Interrupt_Enable HRTIM Common Interrupt Enable
  1842. * @{
  1843. */
  1844. #define HRTIM_IT_NONE 0x00000000U /*!< No interrupt enabled */
  1845. #define HRTIM_IT_FLT1 HRTIM_IER_FLT1 /*!< Fault 1 interrupt enable */
  1846. #define HRTIM_IT_FLT2 HRTIM_IER_FLT2 /*!< Fault 2 interrupt enable */
  1847. #define HRTIM_IT_FLT3 HRTIM_IER_FLT3 /*!< Fault 3 interrupt enable */
  1848. #define HRTIM_IT_FLT4 HRTIM_IER_FLT4 /*!< Fault 4 interrupt enable */
  1849. #define HRTIM_IT_FLT5 HRTIM_IER_FLT5 /*!< Fault 5 interrupt enable */
  1850. #define HRTIM_IT_SYSFLT HRTIM_IER_SYSFLT /*!< System Fault interrupt enable */
  1851. #define HRTIM_IT_BMPER HRTIM_IER_BMPER /*!< Burst mode period interrupt enable */
  1852. /**
  1853. * @}
  1854. */
  1855. /** @defgroup HRTIM_Master_Interrupt_Enable HRTIM Master Interrupt Enable
  1856. * @{
  1857. */
  1858. #define HRTIM_MASTER_IT_NONE 0x00000000U /*!< No interrupt enabled */
  1859. #define HRTIM_MASTER_IT_MCMP1 HRTIM_MDIER_MCMP1IE /*!< Master compare 1 interrupt enable */
  1860. #define HRTIM_MASTER_IT_MCMP2 HRTIM_MDIER_MCMP2IE /*!< Master compare 2 interrupt enable */
  1861. #define HRTIM_MASTER_IT_MCMP3 HRTIM_MDIER_MCMP3IE /*!< Master compare 3 interrupt enable */
  1862. #define HRTIM_MASTER_IT_MCMP4 HRTIM_MDIER_MCMP4IE /*!< Master compare 4 interrupt enable */
  1863. #define HRTIM_MASTER_IT_MREP HRTIM_MDIER_MREPIE /*!< Master Repetition interrupt enable */
  1864. #define HRTIM_MASTER_IT_SYNC HRTIM_MDIER_SYNCIE /*!< Synchronization input interrupt enable */
  1865. #define HRTIM_MASTER_IT_MUPD HRTIM_MDIER_MUPDIE /*!< Master update interrupt enable */
  1866. /**
  1867. * @}
  1868. */
  1869. /** @defgroup HRTIM_Timing_Unit_Interrupt_Enable HRTIM Timing Unit Interrupt Enable
  1870. * @{
  1871. */
  1872. #define HRTIM_TIM_IT_NONE 0x00000000U /*!< No interrupt enabled */
  1873. #define HRTIM_TIM_IT_CMP1 HRTIM_TIMDIER_CMP1IE /*!< Timer compare 1 interrupt enable */
  1874. #define HRTIM_TIM_IT_CMP2 HRTIM_TIMDIER_CMP2IE /*!< Timer compare 2 interrupt enable */
  1875. #define HRTIM_TIM_IT_CMP3 HRTIM_TIMDIER_CMP3IE /*!< Timer compare 3 interrupt enable */
  1876. #define HRTIM_TIM_IT_CMP4 HRTIM_TIMDIER_CMP4IE /*!< Timer compare 4 interrupt enable */
  1877. #define HRTIM_TIM_IT_REP HRTIM_TIMDIER_REPIE /*!< Timer repetition interrupt enable */
  1878. #define HRTIM_TIM_IT_UPD HRTIM_TIMDIER_UPDIE /*!< Timer update interrupt enable */
  1879. #define HRTIM_TIM_IT_CPT1 HRTIM_TIMDIER_CPT1IE /*!< Timer capture 1 interrupt enable */
  1880. #define HRTIM_TIM_IT_CPT2 HRTIM_TIMDIER_CPT2IE /*!< Timer capture 2 interrupt enable */
  1881. #define HRTIM_TIM_IT_SET1 HRTIM_TIMDIER_SET1IE /*!< Timer output 1 set interrupt enable */
  1882. #define HRTIM_TIM_IT_RST1 HRTIM_TIMDIER_RST1IE /*!< Timer output 1 reset interrupt enable */
  1883. #define HRTIM_TIM_IT_SET2 HRTIM_TIMDIER_SET2IE /*!< Timer output 2 set interrupt enable */
  1884. #define HRTIM_TIM_IT_RST2 HRTIM_TIMDIER_RST2IE /*!< Timer output 2 reset interrupt enable */
  1885. #define HRTIM_TIM_IT_RST HRTIM_TIMDIER_RSTIE /*!< Timer reset interrupt enable */
  1886. #define HRTIM_TIM_IT_DLYPRT HRTIM_TIMDIER_DLYPRTIE /*!< Timer delay protection interrupt enable */
  1887. /**
  1888. * @}
  1889. */
  1890. /** @defgroup HRTIM_Common_Interrupt_Flag HRTIM Common Interrupt Flag
  1891. * @{
  1892. */
  1893. #define HRTIM_FLAG_FLT1 HRTIM_ISR_FLT1 /*!< Fault 1 interrupt flag */
  1894. #define HRTIM_FLAG_FLT2 HRTIM_ISR_FLT2 /*!< Fault 2 interrupt flag */
  1895. #define HRTIM_FLAG_FLT3 HRTIM_ISR_FLT3 /*!< Fault 3 interrupt flag */
  1896. #define HRTIM_FLAG_FLT4 HRTIM_ISR_FLT4 /*!< Fault 4 interrupt flag */
  1897. #define HRTIM_FLAG_FLT5 HRTIM_ISR_FLT5 /*!< Fault 5 interrupt flag */
  1898. #define HRTIM_FLAG_SYSFLT HRTIM_ISR_SYSFLT /*!< System Fault interrupt flag */
  1899. #define HRTIM_FLAG_BMPER HRTIM_ISR_BMPER /*!< Burst mode period interrupt flag */
  1900. /**
  1901. * @}
  1902. */
  1903. /** @defgroup HRTIM_Master_Interrupt_Flag HRTIM Master Interrupt Flag
  1904. * @{
  1905. */
  1906. #define HRTIM_MASTER_FLAG_MCMP1 HRTIM_MISR_MCMP1 /*!< Master compare 1 interrupt flag */
  1907. #define HRTIM_MASTER_FLAG_MCMP2 HRTIM_MISR_MCMP2 /*!< Master compare 2 interrupt flag */
  1908. #define HRTIM_MASTER_FLAG_MCMP3 HRTIM_MISR_MCMP3 /*!< Master compare 3 interrupt flag */
  1909. #define HRTIM_MASTER_FLAG_MCMP4 HRTIM_MISR_MCMP4 /*!< Master compare 4 interrupt flag */
  1910. #define HRTIM_MASTER_FLAG_MREP HRTIM_MISR_MREP /*!< Master Repetition interrupt flag */
  1911. #define HRTIM_MASTER_FLAG_SYNC HRTIM_MISR_SYNC /*!< Synchronization input interrupt flag */
  1912. #define HRTIM_MASTER_FLAG_MUPD HRTIM_MISR_MUPD /*!< Master update interrupt flag */
  1913. /**
  1914. * @}
  1915. */
  1916. /** @defgroup HRTIM_Timing_Unit_Interrupt_Flag HRTIM Timing Unit Interrupt Flag
  1917. * @{
  1918. */
  1919. #define HRTIM_TIM_FLAG_CMP1 HRTIM_TIMISR_CMP1 /*!< Timer compare 1 interrupt flag */
  1920. #define HRTIM_TIM_FLAG_CMP2 HRTIM_TIMISR_CMP2 /*!< Timer compare 2 interrupt flag */
  1921. #define HRTIM_TIM_FLAG_CMP3 HRTIM_TIMISR_CMP3 /*!< Timer compare 3 interrupt flag */
  1922. #define HRTIM_TIM_FLAG_CMP4 HRTIM_TIMISR_CMP4 /*!< Timer compare 4 interrupt flag */
  1923. #define HRTIM_TIM_FLAG_REP HRTIM_TIMISR_REP /*!< Timer repetition interrupt flag */
  1924. #define HRTIM_TIM_FLAG_UPD HRTIM_TIMISR_UPD /*!< Timer update interrupt flag */
  1925. #define HRTIM_TIM_FLAG_CPT1 HRTIM_TIMISR_CPT1 /*!< Timer capture 1 interrupt flag */
  1926. #define HRTIM_TIM_FLAG_CPT2 HRTIM_TIMISR_CPT2 /*!< Timer capture 2 interrupt flag */
  1927. #define HRTIM_TIM_FLAG_SET1 HRTIM_TIMISR_SET1 /*!< Timer output 1 set interrupt flag */
  1928. #define HRTIM_TIM_FLAG_RST1 HRTIM_TIMISR_RST1 /*!< Timer output 1 reset interrupt flag */
  1929. #define HRTIM_TIM_FLAG_SET2 HRTIM_TIMISR_SET2 /*!< Timer output 2 set interrupt flag */
  1930. #define HRTIM_TIM_FLAG_RST2 HRTIM_TIMISR_RST2 /*!< Timer output 2 reset interrupt flag */
  1931. #define HRTIM_TIM_FLAG_RST HRTIM_TIMISR_RST /*!< Timer reset interrupt flag */
  1932. #define HRTIM_TIM_FLAG_DLYPRT HRTIM_TIMISR_DLYPRT /*!< Timer delay protection interrupt flag */
  1933. /**
  1934. * @}
  1935. */
  1936. /** @defgroup HRTIM_Master_DMA_Request_Enable HRTIM Master DMA Request Enable
  1937. * @{
  1938. */
  1939. #define HRTIM_MASTER_DMA_NONE 0x00000000U /*!< No DMA request enable */
  1940. #define HRTIM_MASTER_DMA_MCMP1 HRTIM_MDIER_MCMP1DE /*!< Master compare 1 DMA request enable */
  1941. #define HRTIM_MASTER_DMA_MCMP2 HRTIM_MDIER_MCMP2DE /*!< Master compare 2 DMA request enable */
  1942. #define HRTIM_MASTER_DMA_MCMP3 HRTIM_MDIER_MCMP3DE /*!< Master compare 3 DMA request enable */
  1943. #define HRTIM_MASTER_DMA_MCMP4 HRTIM_MDIER_MCMP4DE /*!< Master compare 4 DMA request enable */
  1944. #define HRTIM_MASTER_DMA_MREP HRTIM_MDIER_MREPDE /*!< Master Repetition DMA request enable */
  1945. #define HRTIM_MASTER_DMA_SYNC HRTIM_MDIER_SYNCDE /*!< Synchronization input DMA request enable */
  1946. #define HRTIM_MASTER_DMA_MUPD HRTIM_MDIER_MUPDDE /*!< Master update DMA request enable */
  1947. /**
  1948. * @}
  1949. */
  1950. /** @defgroup HRTIM_Timing_Unit_DMA_Request_Enable HRTIM Timing Unit DMA Request Enable
  1951. * @{
  1952. */
  1953. #define HRTIM_TIM_DMA_NONE 0x00000000U /*!< No DMA request enable */
  1954. #define HRTIM_TIM_DMA_CMP1 HRTIM_TIMDIER_CMP1DE /*!< Timer compare 1 DMA request enable */
  1955. #define HRTIM_TIM_DMA_CMP2 HRTIM_TIMDIER_CMP2DE /*!< Timer compare 2 DMA request enable */
  1956. #define HRTIM_TIM_DMA_CMP3 HRTIM_TIMDIER_CMP3DE /*!< Timer compare 3 DMA request enable */
  1957. #define HRTIM_TIM_DMA_CMP4 HRTIM_TIMDIER_CMP4DE /*!< Timer compare 4 DMA request enable */
  1958. #define HRTIM_TIM_DMA_REP HRTIM_TIMDIER_REPDE /*!< Timer repetition DMA request enable */
  1959. #define HRTIM_TIM_DMA_UPD HRTIM_TIMDIER_UPDDE /*!< Timer update DMA request enable */
  1960. #define HRTIM_TIM_DMA_CPT1 HRTIM_TIMDIER_CPT1DE /*!< Timer capture 1 DMA request enable */
  1961. #define HRTIM_TIM_DMA_CPT2 HRTIM_TIMDIER_CPT2DE /*!< Timer capture 2 DMA request enable */
  1962. #define HRTIM_TIM_DMA_SET1 HRTIM_TIMDIER_SET1DE /*!< Timer output 1 set DMA request enable */
  1963. #define HRTIM_TIM_DMA_RST1 HRTIM_TIMDIER_RST1DE /*!< Timer output 1 reset DMA request enable */
  1964. #define HRTIM_TIM_DMA_SET2 HRTIM_TIMDIER_SET2DE /*!< Timer output 2 set DMA request enable */
  1965. #define HRTIM_TIM_DMA_RST2 HRTIM_TIMDIER_RST2DE /*!< Timer output 2 reset DMA request enable */
  1966. #define HRTIM_TIM_DMA_RST HRTIM_TIMDIER_RSTDE /*!< Timer reset DMA request enable */
  1967. #define HRTIM_TIM_DMA_DLYPRT HRTIM_TIMDIER_DLYPRTDE /*!< Timer delay protection DMA request enable */
  1968. /**
  1969. * @}
  1970. */
  1971. /**
  1972. * @}
  1973. */
  1974. /* Private macros --------------------------------------------------------*/
  1975. /** @addtogroup HRTIM_Private_Macros HRTIM Private Macros
  1976. * @{
  1977. */
  1978. #define IS_HRTIM_TIMERINDEX(TIMERINDEX)\
  1979. (((TIMERINDEX) == HRTIM_TIMERINDEX_MASTER) || \
  1980. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A) || \
  1981. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B) || \
  1982. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C) || \
  1983. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D) || \
  1984. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E))
  1985. #define IS_HRTIM_TIMING_UNIT(TIMERINDEX)\
  1986. (((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A) || \
  1987. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B) || \
  1988. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C) || \
  1989. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D) || \
  1990. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E))
  1991. #define IS_HRTIM_TIMERID(TIMERID) (((TIMERID) & 0xFFC0FFFFU) == 0x00000000U)
  1992. #define IS_HRTIM_COMPAREUNIT(COMPAREUNIT)\
  1993. (((COMPAREUNIT) == HRTIM_COMPAREUNIT_1) || \
  1994. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) || \
  1995. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_3) || \
  1996. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_4))
  1997. #define IS_HRTIM_CAPTUREUNIT(CAPTUREUNIT)\
  1998. (((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_1) || \
  1999. ((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_2))
  2000. #define IS_HRTIM_OUTPUT(OUTPUT) (((OUTPUT) & 0xFFFFFC00U) == 0x00000000U)
  2001. #define IS_HRTIM_TIMER_OUTPUT(TIMER, OUTPUT)\
  2002. ((((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  2003. (((OUTPUT) == HRTIM_OUTPUT_TA1) || \
  2004. ((OUTPUT) == HRTIM_OUTPUT_TA2))) \
  2005. || \
  2006. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  2007. (((OUTPUT) == HRTIM_OUTPUT_TB1) || \
  2008. ((OUTPUT) == HRTIM_OUTPUT_TB2))) \
  2009. || \
  2010. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  2011. (((OUTPUT) == HRTIM_OUTPUT_TC1) || \
  2012. ((OUTPUT) == HRTIM_OUTPUT_TC2))) \
  2013. || \
  2014. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  2015. (((OUTPUT) == HRTIM_OUTPUT_TD1) || \
  2016. ((OUTPUT) == HRTIM_OUTPUT_TD2))) \
  2017. || \
  2018. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  2019. (((OUTPUT) == HRTIM_OUTPUT_TE1) || \
  2020. ((OUTPUT) == HRTIM_OUTPUT_TE2))))
  2021. #define IS_HRTIM_EVENT(EVENT)\
  2022. (((EVENT) == HRTIM_EVENT_NONE)|| \
  2023. ((EVENT) == HRTIM_EVENT_1) || \
  2024. ((EVENT) == HRTIM_EVENT_2) || \
  2025. ((EVENT) == HRTIM_EVENT_3) || \
  2026. ((EVENT) == HRTIM_EVENT_4) || \
  2027. ((EVENT) == HRTIM_EVENT_5) || \
  2028. ((EVENT) == HRTIM_EVENT_6) || \
  2029. ((EVENT) == HRTIM_EVENT_7) || \
  2030. ((EVENT) == HRTIM_EVENT_8) || \
  2031. ((EVENT) == HRTIM_EVENT_9) || \
  2032. ((EVENT) == HRTIM_EVENT_10))
  2033. #define IS_HRTIM_FAULT(FAULT)\
  2034. (((FAULT) == HRTIM_FAULT_1) || \
  2035. ((FAULT) == HRTIM_FAULT_2) || \
  2036. ((FAULT) == HRTIM_FAULT_3) || \
  2037. ((FAULT) == HRTIM_FAULT_4) || \
  2038. ((FAULT) == HRTIM_FAULT_5))
  2039. #define IS_HRTIM_PRESCALERRATIO(PRESCALERRATIO)\
  2040. (((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL32) || \
  2041. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL16) || \
  2042. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL8) || \
  2043. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL4) || \
  2044. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL2) || \
  2045. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV1) || \
  2046. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV2) || \
  2047. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV4))
  2048. #define IS_HRTIM_MODE(MODE)\
  2049. (((MODE) == HRTIM_MODE_CONTINUOUS) || \
  2050. ((MODE) == HRTIM_MODE_SINGLESHOT) || \
  2051. ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
  2052. #define IS_HRTIM_MODE_ONEPULSE(MODE)\
  2053. (((MODE) == HRTIM_MODE_SINGLESHOT) || \
  2054. ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
  2055. #define IS_HRTIM_HALFMODE(HALFMODE)\
  2056. (((HALFMODE) == HRTIM_HALFMODE_DISABLED) || \
  2057. ((HALFMODE) == HRTIM_HALFMODE_ENABLED))
  2058. #define IS_HRTIM_SYNCSTART(SYNCSTART)\
  2059. (((SYNCSTART) == HRTIM_SYNCSTART_DISABLED) || \
  2060. ((SYNCSTART) == HRTIM_SYNCSTART_ENABLED))
  2061. #define IS_HRTIM_SYNCRESET(SYNCRESET)\
  2062. (((SYNCRESET) == HRTIM_SYNCRESET_DISABLED) || \
  2063. ((SYNCRESET) == HRTIM_SYNCRESET_ENABLED))
  2064. #define IS_HRTIM_DACSYNC(DACSYNC)\
  2065. (((DACSYNC) == HRTIM_DACSYNC_NONE) || \
  2066. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_1) || \
  2067. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_2) || \
  2068. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_3))
  2069. #define IS_HRTIM_PRELOAD(PRELOAD)\
  2070. (((PRELOAD) == HRTIM_PRELOAD_DISABLED) || \
  2071. ((PRELOAD) == HRTIM_PRELOAD_ENABLED))
  2072. #define IS_HRTIM_UPDATEGATING_MASTER(UPDATEGATING)\
  2073. (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT) || \
  2074. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST) || \
  2075. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE))
  2076. #define IS_HRTIM_UPDATEGATING_TIM(UPDATEGATING)\
  2077. (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT) || \
  2078. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST) || \
  2079. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE) || \
  2080. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1) || \
  2081. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2) || \
  2082. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3) || \
  2083. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1_UPDATE) || \
  2084. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2_UPDATE) || \
  2085. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3_UPDATE))
  2086. #define IS_HRTIM_TIMERBURSTMODE(MODE) \
  2087. (((MODE) == HRTIM_TIMERBURSTMODE_MAINTAINCLOCK) || \
  2088. ((MODE) == HRTIM_TIMERBURSTMODE_RESETCOUNTER))
  2089. #define IS_HRTIM_UPDATEONREPETITION(UPDATEONREPETITION) \
  2090. (((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_DISABLED) || \
  2091. ((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_ENABLED))
  2092. #define IS_HRTIM_TIMPUSHPULLMODE(TIMPUSHPULLMODE)\
  2093. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) || \
  2094. ((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED))
  2095. #define IS_HRTIM_TIMFAULTENABLE(TIMFAULTENABLE) (((TIMFAULTENABLE) & 0xFFFFFFE0U) == 0x00000000U)
  2096. #define IS_HRTIM_TIMFAULTLOCK(TIMFAULTLOCK)\
  2097. (((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READWRITE) || \
  2098. ((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READONLY))
  2099. #define IS_HRTIM_TIMDEADTIMEINSERTION(TIMPUSHPULLMODE, TIMDEADTIMEINSERTION)\
  2100. ((((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) && \
  2101. ((((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED) || \
  2102. ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_ENABLED)))) \
  2103. || \
  2104. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED) && \
  2105. ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED)))
  2106. #define IS_HRTIM_TIMDELAYEDPROTECTION(TIMPUSHPULLMODE, TIMDELAYEDPROTECTION)\
  2107. ((((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED) || \
  2108. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6) || \
  2109. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6) || \
  2110. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6) || \
  2111. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7) || \
  2112. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7) || \
  2113. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7)) \
  2114. || \
  2115. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED) && \
  2116. (((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6) || \
  2117. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7))))
  2118. #define IS_HRTIM_TIMUPDATETRIGGER(TIMUPDATETRIGGER) (((TIMUPDATETRIGGER) & 0xFE07FFFFU) == 0x00000000U)
  2119. #define IS_HRTIM_TIMRESETTRIGGER(TIMRESETTRIGGER) (((TIMRESETTRIGGER) & 0x80000001U) == 0x00000000U)
  2120. #define IS_HRTIM_TIMUPDATEONRESET(TIMUPDATEONRESET) \
  2121. (((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_DISABLED) || \
  2122. ((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_ENABLED))
  2123. #define IS_HRTIM_AUTODELAYEDMODE(AUTODELAYEDMODE)\
  2124. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  2125. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  2126. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  2127. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))
  2128. /* Auto delayed mode is only available for compare units 2 and 4U */
  2129. #define IS_HRTIM_COMPAREUNIT_AUTODELAYEDMODE(COMPAREUNIT, AUTODELAYEDMODE) \
  2130. ((((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) && \
  2131. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  2132. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  2133. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  2134. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))) \
  2135. || \
  2136. (((COMPAREUNIT) == HRTIM_COMPAREUNIT_4) && \
  2137. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  2138. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  2139. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  2140. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))))
  2141. #define IS_HRTIM_OUTPUTPOLARITY(OUTPUTPOLARITY)\
  2142. (((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_HIGH) || \
  2143. ((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_LOW))
  2144. #define IS_HRTIM_OUTPUTPULSE(OUTPUTPULSE) ((OUTPUTPULSE) <= 0x0000FFFFU)
  2145. #define IS_HRTIM_OUTPUTSET(OUTPUTSET)\
  2146. (((OUTPUTSET) == HRTIM_OUTPUTSET_NONE) || \
  2147. ((OUTPUTSET) == HRTIM_OUTPUTSET_RESYNC) || \
  2148. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMPER) || \
  2149. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP1) || \
  2150. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP2) || \
  2151. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP3) || \
  2152. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP4) || \
  2153. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERPER) || \
  2154. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP1) || \
  2155. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP2) || \
  2156. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP3) || \
  2157. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP4) || \
  2158. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_1) || \
  2159. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_2) || \
  2160. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_3) || \
  2161. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_4) || \
  2162. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_5) || \
  2163. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_6) || \
  2164. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_7) || \
  2165. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_8) || \
  2166. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_9) || \
  2167. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_1) || \
  2168. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_2) || \
  2169. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_3) || \
  2170. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_4) || \
  2171. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_5) || \
  2172. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_6) || \
  2173. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_7) || \
  2174. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_8) || \
  2175. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_9) || \
  2176. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_10) || \
  2177. ((OUTPUTSET) == HRTIM_OUTPUTSET_UPDATE))
  2178. #define IS_HRTIM_OUTPUTRESET(OUTPUTRESET)\
  2179. (((OUTPUTRESET) == HRTIM_OUTPUTRESET_NONE) || \
  2180. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_RESYNC) || \
  2181. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMPER) || \
  2182. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP1) || \
  2183. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP2) || \
  2184. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP3) || \
  2185. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP4) || \
  2186. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERPER) || \
  2187. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP1) || \
  2188. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP2) || \
  2189. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP3) || \
  2190. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP4) || \
  2191. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_1) || \
  2192. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_2) || \
  2193. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_3) || \
  2194. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_4) || \
  2195. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_5) || \
  2196. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_6) || \
  2197. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_7) || \
  2198. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_8) || \
  2199. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_9) || \
  2200. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_1) || \
  2201. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_2) || \
  2202. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_3) || \
  2203. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_4) || \
  2204. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_5) || \
  2205. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_6) || \
  2206. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_7) || \
  2207. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_8) || \
  2208. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_9) || \
  2209. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_10) || \
  2210. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_UPDATE))
  2211. #define IS_HRTIM_OUTPUTIDLEMODE(OUTPUTIDLEMODE)\
  2212. (((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_NONE) || \
  2213. ((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_IDLE))
  2214. #define IS_HRTIM_OUTPUTIDLELEVEL(OUTPUTIDLELEVEL)\
  2215. (((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_INACTIVE) || \
  2216. ((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_ACTIVE))
  2217. #define IS_HRTIM_OUTPUTFAULTLEVEL(OUTPUTFAULTLEVEL)\
  2218. (((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_NONE) || \
  2219. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_ACTIVE) || \
  2220. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_INACTIVE) || \
  2221. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_HIGHZ))
  2222. #define IS_HRTIM_OUTPUTCHOPPERMODE(OUTPUTCHOPPERMODE)\
  2223. (((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_DISABLED) || \
  2224. ((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_ENABLED))
  2225. #define IS_HRTIM_OUTPUTBURSTMODEENTRY(OUTPUTBURSTMODEENTRY)\
  2226. (((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_REGULAR) || \
  2227. ((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_DELAYED))
  2228. #define IS_HRTIM_TIMER_CAPTURETRIGGER(TIMER, CAPTURETRIGGER) \
  2229. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_NONE) || \
  2230. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_UPDATE) || \
  2231. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_1) || \
  2232. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_2) || \
  2233. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_3) || \
  2234. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_4) || \
  2235. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_5) || \
  2236. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_6) || \
  2237. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_7) || \
  2238. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_8) || \
  2239. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_9) || \
  2240. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_10) \
  2241. || \
  2242. (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  2243. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2244. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2245. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2246. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2247. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2248. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2249. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2250. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2251. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2252. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2253. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2254. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2255. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2256. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2257. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2258. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2259. || \
  2260. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  2261. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2262. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2263. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2264. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2265. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2266. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2267. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2268. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2269. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2270. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2271. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2272. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2273. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2274. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2275. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2276. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2277. || \
  2278. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  2279. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2280. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2281. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2282. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2283. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2284. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2285. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2286. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2287. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2288. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2289. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2290. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2291. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2292. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2293. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2294. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2295. || \
  2296. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  2297. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2298. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2299. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2300. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2301. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2302. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2303. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2304. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2305. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2306. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2307. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2308. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2309. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2310. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2311. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2312. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2313. || \
  2314. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  2315. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2316. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2317. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2318. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2319. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2320. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2321. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2322. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2323. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2324. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2325. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2326. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2327. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2328. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2329. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2330. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2))))
  2331. #define IS_HRTIM_TIMEVENTFILTER(TIMEVENTFILTER)\
  2332. (((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_NONE) || \
  2333. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP1) || \
  2334. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP2) || \
  2335. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP3) || \
  2336. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP4) || \
  2337. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR1) || \
  2338. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR2) || \
  2339. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR3) || \
  2340. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR4) || \
  2341. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR5) || \
  2342. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR6) || \
  2343. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR7) || \
  2344. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR8) || \
  2345. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGCMP2) || \
  2346. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGCMP3) || \
  2347. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGTIM))
  2348. #define IS_HRTIM_TIMEVENTLATCH(TIMEVENTLATCH)\
  2349. (((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_DISABLED) || \
  2350. ((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_ENABLED))
  2351. #define IS_HRTIM_TIMDEADTIME_PRESCALERRATIO(PRESCALERRATIO)\
  2352. (((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8) || \
  2353. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4) || \
  2354. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2) || \
  2355. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1) || \
  2356. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2) || \
  2357. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4) || \
  2358. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8) || \
  2359. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16))
  2360. #define IS_HRTIM_TIMDEADTIME_RISINGSIGN(RISINGSIGN)\
  2361. (((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE) || \
  2362. ((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE))
  2363. #define IS_HRTIM_TIMDEADTIME_RISINGLOCK(RISINGLOCK)\
  2364. (((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_WRITE) || \
  2365. ((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_READONLY))
  2366. #define IS_HRTIM_TIMDEADTIME_RISINGSIGNLOCK(RISINGSIGNLOCK)\
  2367. (((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE) || \
  2368. ((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY))
  2369. #define IS_HRTIM_TIMDEADTIME_FALLINGSIGN(FALLINGSIGN)\
  2370. (((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE) || \
  2371. ((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE))
  2372. #define IS_HRTIM_TIMDEADTIME_FALLINGLOCK(FALLINGLOCK)\
  2373. (((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE) || \
  2374. ((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY))
  2375. #define IS_HRTIM_TIMDEADTIME_FALLINGSIGNLOCK(FALLINGSIGNLOCK)\
  2376. (((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE) || \
  2377. ((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY))
  2378. #define IS_HRTIM_CHOPPER_PRESCALERRATIO(PRESCALERRATIO)\
  2379. (((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV16) || \
  2380. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV32) || \
  2381. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV48) || \
  2382. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV64) || \
  2383. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV80) || \
  2384. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV96) || \
  2385. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV112) || \
  2386. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV128) || \
  2387. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV144) || \
  2388. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV160) || \
  2389. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV176) || \
  2390. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV192) || \
  2391. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV208) || \
  2392. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV224) || \
  2393. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV240) || \
  2394. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV256))
  2395. #define IS_HRTIM_CHOPPER_DUTYCYCLE(DUTYCYCLE)\
  2396. (((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_0) || \
  2397. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_125) || \
  2398. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_250) || \
  2399. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_375) || \
  2400. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_500) || \
  2401. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_625) || \
  2402. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_750) || \
  2403. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_875))
  2404. #define IS_HRTIM_CHOPPER_PULSEWIDTH(PULSEWIDTH)\
  2405. (((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_16) || \
  2406. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_32) || \
  2407. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_48) || \
  2408. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_64) || \
  2409. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_80) || \
  2410. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_96) || \
  2411. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_112) || \
  2412. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_128) || \
  2413. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_144) || \
  2414. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_160) || \
  2415. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_176) || \
  2416. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_192) || \
  2417. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_208) || \
  2418. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_224) || \
  2419. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_240) || \
  2420. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_256))
  2421. #define IS_HRTIM_SYNCINPUTSOURCE(SYNCINPUTSOURCE)\
  2422. (((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_NONE) || \
  2423. ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_INTERNALEVENT) || \
  2424. ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT))
  2425. #define IS_HRTIM_SYNCOUTPUTSOURCE(SYNCOUTPUTSOURCE)\
  2426. (((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_START) || \
  2427. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1) || \
  2428. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_START) || \
  2429. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1))
  2430. #define IS_HRTIM_SYNCOUTPUTPOLARITY(SYNCOUTPUTPOLARITY)\
  2431. (((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NONE) || \
  2432. ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_POSITIVE) || \
  2433. ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE))
  2434. #define IS_HRTIM_EVENTSRC(EVENTSRC)\
  2435. (((EVENTSRC) == HRTIM_EVENTSRC_1) || \
  2436. ((EVENTSRC) == HRTIM_EVENTSRC_2) || \
  2437. ((EVENTSRC) == HRTIM_EVENTSRC_3) || \
  2438. ((EVENTSRC) == HRTIM_EVENTSRC_4))
  2439. #define IS_HRTIM_EVENTPOLARITY(EVENTSENSITIVITY, EVENTPOLARITY)\
  2440. ((((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL) && \
  2441. (((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_HIGH) || \
  2442. ((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_LOW))) \
  2443. || \
  2444. (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
  2445. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE)|| \
  2446. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES)))
  2447. #define IS_HRTIM_EVENTSENSITIVITY(EVENTSENSITIVITY)\
  2448. (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL) || \
  2449. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
  2450. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE) || \
  2451. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES))
  2452. #define IS_HRTIM_EVENTFASTMODE(EVENT, FASTMODE)\
  2453. (((((EVENT) == HRTIM_EVENT_1) || \
  2454. ((EVENT) == HRTIM_EVENT_2) || \
  2455. ((EVENT) == HRTIM_EVENT_3) || \
  2456. ((EVENT) == HRTIM_EVENT_4) || \
  2457. ((EVENT) == HRTIM_EVENT_5)) && \
  2458. (((FASTMODE) == HRTIM_EVENTFASTMODE_ENABLE) || \
  2459. ((FASTMODE) == HRTIM_EVENTFASTMODE_DISABLE))) \
  2460. || \
  2461. (((EVENT) == HRTIM_EVENT_6) || \
  2462. ((EVENT) == HRTIM_EVENT_7) || \
  2463. ((EVENT) == HRTIM_EVENT_8) || \
  2464. ((EVENT) == HRTIM_EVENT_9) || \
  2465. ((EVENT) == HRTIM_EVENT_10)))
  2466. #define IS_HRTIM_EVENTFILTER(EVENT, FILTER)\
  2467. ((((EVENT) == HRTIM_EVENT_1) || \
  2468. ((EVENT) == HRTIM_EVENT_2) || \
  2469. ((EVENT) == HRTIM_EVENT_3) || \
  2470. ((EVENT) == HRTIM_EVENT_4) || \
  2471. ((EVENT) == HRTIM_EVENT_5)) \
  2472. || \
  2473. ((((EVENT) == HRTIM_EVENT_6) || \
  2474. ((EVENT) == HRTIM_EVENT_7) || \
  2475. ((EVENT) == HRTIM_EVENT_8) || \
  2476. ((EVENT) == HRTIM_EVENT_9) || \
  2477. ((EVENT) == HRTIM_EVENT_10)) && \
  2478. (((FILTER) == HRTIM_EVENTFILTER_NONE) || \
  2479. ((FILTER) == HRTIM_EVENTFILTER_1) || \
  2480. ((FILTER) == HRTIM_EVENTFILTER_2) || \
  2481. ((FILTER) == HRTIM_EVENTFILTER_3) || \
  2482. ((FILTER) == HRTIM_EVENTFILTER_4) || \
  2483. ((FILTER) == HRTIM_EVENTFILTER_5) || \
  2484. ((FILTER) == HRTIM_EVENTFILTER_6) || \
  2485. ((FILTER) == HRTIM_EVENTFILTER_7) || \
  2486. ((FILTER) == HRTIM_EVENTFILTER_8) || \
  2487. ((FILTER) == HRTIM_EVENTFILTER_9) || \
  2488. ((FILTER) == HRTIM_EVENTFILTER_10) || \
  2489. ((FILTER) == HRTIM_EVENTFILTER_11) || \
  2490. ((FILTER) == HRTIM_EVENTFILTER_12) || \
  2491. ((FILTER) == HRTIM_EVENTFILTER_13) || \
  2492. ((FILTER) == HRTIM_EVENTFILTER_14) || \
  2493. ((FILTER) == HRTIM_EVENTFILTER_15))))
  2494. #define IS_HRTIM_EVENTPRESCALER(EVENTPRESCALER)\
  2495. (((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV1) || \
  2496. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV2) || \
  2497. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV4) || \
  2498. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV8))
  2499. #define IS_HRTIM_FAULTSOURCE(FAULTSOURCE)\
  2500. (((FAULTSOURCE) == HRTIM_FAULTSOURCE_DIGITALINPUT) || \
  2501. ((FAULTSOURCE) == HRTIM_FAULTSOURCE_INTERNAL))
  2502. #define IS_HRTIM_FAULTPOLARITY(HRTIM_FAULTPOLARITY)\
  2503. (((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_LOW) || \
  2504. ((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_HIGH))
  2505. #define IS_HRTIM_FAULTMODECTL(FAULTMODECTL)\
  2506. (((FAULTMODECTL) == HRTIM_FAULTMODECTL_DISABLED) || \
  2507. ((FAULTMODECTL) == HRTIM_FAULTMODECTL_ENABLED))
  2508. #define IS_HRTIM_FAULTFILTER(FAULTFILTER)\
  2509. (((FAULTFILTER) == HRTIM_FAULTFILTER_NONE) || \
  2510. ((FAULTFILTER) == HRTIM_FAULTFILTER_1) || \
  2511. ((FAULTFILTER) == HRTIM_FAULTFILTER_2) || \
  2512. ((FAULTFILTER) == HRTIM_FAULTFILTER_3) || \
  2513. ((FAULTFILTER) == HRTIM_FAULTFILTER_4) || \
  2514. ((FAULTFILTER) == HRTIM_FAULTFILTER_5) || \
  2515. ((FAULTFILTER) == HRTIM_FAULTFILTER_6) || \
  2516. ((FAULTFILTER) == HRTIM_FAULTFILTER_7) || \
  2517. ((FAULTFILTER) == HRTIM_FAULTFILTER_8) || \
  2518. ((FAULTFILTER) == HRTIM_FAULTFILTER_9) || \
  2519. ((FAULTFILTER) == HRTIM_FAULTFILTER_10) || \
  2520. ((FAULTFILTER) == HRTIM_FAULTFILTER_11) || \
  2521. ((FAULTFILTER) == HRTIM_FAULTFILTER_12) || \
  2522. ((FAULTFILTER) == HRTIM_FAULTFILTER_13) || \
  2523. ((FAULTFILTER) == HRTIM_FAULTFILTER_14) || \
  2524. ((FAULTFILTER) == HRTIM_FAULTFILTER_15))
  2525. #define IS_HRTIM_FAULTLOCK(FAULTLOCK)\
  2526. (((FAULTLOCK) == HRTIM_FAULTLOCK_READWRITE) || \
  2527. ((FAULTLOCK) == HRTIM_FAULTLOCK_READONLY))
  2528. #define IS_HRTIM_FAULTPRESCALER(FAULTPRESCALER)\
  2529. (((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV1) || \
  2530. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV2) || \
  2531. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV4) || \
  2532. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV8))
  2533. #define IS_HRTIM_BURSTMODE(BURSTMODE)\
  2534. (((BURSTMODE) == HRTIM_BURSTMODE_SINGLESHOT) || \
  2535. ((BURSTMODE) == HRTIM_BURSTMODE_CONTINOUS))
  2536. #define IS_HRTIM_BURSTMODECLOCKSOURCE(BURSTMODECLOCKSOURCE)\
  2537. (((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_MASTER) || \
  2538. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_A) || \
  2539. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_B) || \
  2540. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_C) || \
  2541. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_D) || \
  2542. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_E) || \
  2543. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC) || \
  2544. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM17_OC) || \
  2545. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO) || \
  2546. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_FHRTIM))
  2547. #define IS_HRTIM_HRTIM_BURSTMODEPRESCALER(BURSTMODEPRESCALER)\
  2548. (((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1) || \
  2549. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2) || \
  2550. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4) || \
  2551. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8) || \
  2552. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16) || \
  2553. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32) || \
  2554. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV64) || \
  2555. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV128) || \
  2556. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV256) || \
  2557. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV512) || \
  2558. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1024) || \
  2559. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2048) || \
  2560. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4096) || \
  2561. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8192) || \
  2562. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16384) || \
  2563. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32768))
  2564. #define IS_HRTIM_BURSTMODEPRELOAD(BURSTMODEPRELOAD)\
  2565. (((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_DISABLED) || \
  2566. ((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_ENABLED))
  2567. #define IS_HRTIM_BURSTMODETRIGGER(BURSTMODETRIGGER)\
  2568. (((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_NONE) || \
  2569. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_RESET) || \
  2570. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_REPETITION) || \
  2571. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP1) || \
  2572. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP2) || \
  2573. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP3) || \
  2574. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP4) || \
  2575. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_RESET) || \
  2576. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION) || \
  2577. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_CMP1) || \
  2578. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_CMP2) || \
  2579. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_RESET) || \
  2580. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION) || \
  2581. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_CMP1) || \
  2582. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_CMP2) || \
  2583. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_RESET) || \
  2584. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION) || \
  2585. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_CMP1) || \
  2586. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_CMP2) || \
  2587. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_RESET) || \
  2588. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION) || \
  2589. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_CMP1) || \
  2590. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_CMP2) || \
  2591. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_RESET) || \
  2592. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION) || \
  2593. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_CMP1) || \
  2594. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_CMP2) || \
  2595. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7) || \
  2596. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8) || \
  2597. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_7) || \
  2598. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_8) || \
  2599. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP))
  2600. #define IS_HRTIM_ADCTRIGGERUPDATE(ADCTRIGGERUPDATE)\
  2601. (((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_MASTER) || \
  2602. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_A) || \
  2603. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_B) || \
  2604. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_C) || \
  2605. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_D) || \
  2606. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_E))
  2607. #define IS_HRTIM_CALIBRATIONRATE(CALIBRATIONRATE)\
  2608. (((CALIBRATIONRATE) == HRTIM_SINGLE_CALIBRATION) || \
  2609. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_7300) || \
  2610. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_910) || \
  2611. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_114) || \
  2612. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_14))
  2613. #define IS_HRTIM_TIMER_BURSTDMA(TIMER, BURSTDMA) \
  2614. ((((TIMER) == HRTIM_TIMERINDEX_MASTER) && (((BURSTDMA) & 0xFFFFFC000U) == 0x00000000U)) \
  2615. || \
  2616. (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2617. || \
  2618. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2619. || \
  2620. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2621. || \
  2622. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2623. || \
  2624. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)))
  2625. #define IS_HRTIM_BURSTMODECTL(BURSTMODECTL)\
  2626. (((BURSTMODECTL) == HRTIM_BURSTMODECTL_DISABLED) || \
  2627. ((BURSTMODECTL) == HRTIM_BURSTMODECTL_ENABLED))
  2628. #define IS_HRTIM_TIMERUPDATE(TIMERUPDATE) (((TIMERUPDATE) & 0xFFFFFFC0U) == 0x00000000U)
  2629. #define IS_HRTIM_TIMERRESET(TIMERRESET) (((TIMERRESET) & 0xFFFFC0FFU) == 0x00000000U)
  2630. #define IS_HRTIM_IT(IT) (((IT) & 0xFFFCFFC0U) == 0x00000000U)
  2631. #define IS_HRTIM_MASTER_IT(MASTER_IT) (((MASTER_IT) & 0xFFFFFF80U) == 0x00000000U)
  2632. #define IS_HRTIM_TIM_IT(TIM_IT) (((TIM_IT) & 0xFFFF8020U) == 0x00000000U)
  2633. #define IS_HRTIM_MASTER_DMA(MASTER_DMA) (((MASTER_DMA) & 0xFF80FFFFU) == 0x00000000U)
  2634. #define IS_HRTIM_TIM_DMA(TIM_DMA) (((TIM_DMA) & 0x8020FFFFU) == 0x00000000U)
  2635. /**
  2636. * @}
  2637. */
  2638. /* Exported macros -----------------------------------------------------------*/
  2639. /** @defgroup HRTIM_Exported_Macros HRTIM Exported Macros
  2640. * @{
  2641. */
  2642. /** @brief Reset HRTIM handle state
  2643. * @param __HANDLE__ HRTIM handle.
  2644. * @retval None
  2645. */
  2646. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  2647. #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__) do{ \
  2648. (__HANDLE__)->State = HAL_HRTIM_STATE_RESET; \
  2649. (__HANDLE__)->MspInitCallback = NULL; \
  2650. (__HANDLE__)->MspDeInitCallback = NULL; \
  2651. } while(0)
  2652. #else
  2653. #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_HRTIM_STATE_RESET)
  2654. #endif
  2655. /** @brief Enables or disables the timer counter(s)
  2656. * @param __HANDLE__ specifies the HRTIM Handle.
  2657. * @param __TIMERS__ timers to enable/disable
  2658. * This parameter can be any combinations of the following values:
  2659. * @arg HRTIM_TIMERID_MASTER: Master timer identifier
  2660. * @arg HRTIM_TIMERID_TIMER_A: Timer A identifier
  2661. * @arg HRTIM_TIMERID_TIMER_B: Timer B identifier
  2662. * @arg HRTIM_TIMERID_TIMER_C: Timer C identifier
  2663. * @arg HRTIM_TIMERID_TIMER_D: Timer D identifier
  2664. * @arg HRTIM_TIMERID_TIMER_E: Timer E identifier
  2665. * @retval None
  2666. */
  2667. #define __HAL_HRTIM_ENABLE(__HANDLE__, __TIMERS__) ((__HANDLE__)->Instance->sMasterRegs.MCR |= (__TIMERS__))
  2668. /* The counter of a timing unit is disabled only if all the timer outputs */
  2669. /* are disabled and no capture is configured */
  2670. #define HRTIM_TAOEN_MASK (HRTIM_OENR_TA2OEN | HRTIM_OENR_TA1OEN)
  2671. #define HRTIM_TBOEN_MASK (HRTIM_OENR_TB2OEN | HRTIM_OENR_TB1OEN)
  2672. #define HRTIM_TCOEN_MASK (HRTIM_OENR_TC2OEN | HRTIM_OENR_TC1OEN)
  2673. #define HRTIM_TDOEN_MASK (HRTIM_OENR_TD2OEN | HRTIM_OENR_TD1OEN)
  2674. #define HRTIM_TEOEN_MASK (HRTIM_OENR_TE2OEN | HRTIM_OENR_TE1OEN)
  2675. #define __HAL_HRTIM_DISABLE(__HANDLE__, __TIMERS__)\
  2676. do {\
  2677. if (((__TIMERS__) & HRTIM_TIMERID_MASTER) == HRTIM_TIMERID_MASTER)\
  2678. {\
  2679. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_MASTER);\
  2680. }\
  2681. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_A) == HRTIM_TIMERID_TIMER_A)\
  2682. {\
  2683. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TAOEN_MASK) == (uint32_t)RESET)\
  2684. {\
  2685. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_A);\
  2686. }\
  2687. }\
  2688. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_B) == HRTIM_TIMERID_TIMER_B)\
  2689. {\
  2690. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TBOEN_MASK) == (uint32_t)RESET)\
  2691. {\
  2692. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_B);\
  2693. }\
  2694. }\
  2695. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_C) == HRTIM_TIMERID_TIMER_C)\
  2696. {\
  2697. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TCOEN_MASK) == (uint32_t)RESET)\
  2698. {\
  2699. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_C);\
  2700. }\
  2701. }\
  2702. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_D) == HRTIM_TIMERID_TIMER_D)\
  2703. {\
  2704. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TDOEN_MASK) == (uint32_t)RESET)\
  2705. {\
  2706. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_D);\
  2707. }\
  2708. }\
  2709. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_E) == HRTIM_TIMERID_TIMER_E)\
  2710. {\
  2711. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TEOEN_MASK) == (uint32_t)RESET)\
  2712. {\
  2713. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_E);\
  2714. }\
  2715. }\
  2716. } while(0U)
  2717. /** @brief Enables or disables the specified HRTIM common interrupts.
  2718. * @param __HANDLE__ specifies the HRTIM Handle.
  2719. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  2720. * This parameter can be one of the following values:
  2721. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  2722. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  2723. * @arg HRTIM_IT_FLT3: Fault 3 interrupt enable
  2724. * @arg HRTIM_IT_FLT4: Fault 4 interrupt enable
  2725. * @arg HRTIM_IT_FLT5: Fault 5 interrupt enable
  2726. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  2727. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  2728. * @retval None
  2729. */
  2730. #define __HAL_HRTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER |= (__INTERRUPT__))
  2731. #define __HAL_HRTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER &= ~(__INTERRUPT__))
  2732. /** @brief Enables or disables the specified HRTIM Master timer interrupts.
  2733. * @param __HANDLE__ specifies the HRTIM Handle.
  2734. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  2735. * This parameter can be one of the following values:
  2736. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  2737. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  2738. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  2739. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  2740. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  2741. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  2742. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  2743. * @retval None
  2744. */
  2745. #define __HAL_HRTIM_MASTER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__INTERRUPT__))
  2746. #define __HAL_HRTIM_MASTER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__INTERRUPT__))
  2747. /** @brief Enables or disables the specified HRTIM Timerx interrupts.
  2748. * @param __HANDLE__ specifies the HRTIM Handle.
  2749. * @param __TIMER__ specified the timing unit (Timer A to E)
  2750. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  2751. * This parameter can be one of the following values:
  2752. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  2753. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  2754. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  2755. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  2756. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  2757. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  2758. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  2759. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  2760. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  2761. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  2762. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  2763. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  2764. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  2765. * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  2766. * @retval None
  2767. */
  2768. #define __HAL_HRTIM_TIMER_ENABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__INTERRUPT__))
  2769. #define __HAL_HRTIM_TIMER_DISABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__INTERRUPT__))
  2770. /** @brief Checks if the specified HRTIM common interrupt source is enabled or disabled.
  2771. * @param __HANDLE__ specifies the HRTIM Handle.
  2772. * @param __INTERRUPT__ specifies the interrupt source to check.
  2773. * This parameter can be one of the following values:
  2774. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  2775. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  2776. * @arg HRTIM_IT_FLT3: Fault 3 enable
  2777. * @arg HRTIM_IT_FLT4: Fault 4 enable
  2778. * @arg HRTIM_IT_FLT5: Fault 5 enable
  2779. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  2780. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  2781. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2782. */
  2783. #define __HAL_HRTIM_GET_ITSTATUS(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->sCommonRegs.IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  2784. /** @brief Checks if the specified HRTIM Master interrupt source is enabled or disabled.
  2785. * @param __HANDLE__ specifies the HRTIM Handle.
  2786. * @param __INTERRUPT__ specifies the interrupt source to check.
  2787. * This parameter can be one of the following values:
  2788. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  2789. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  2790. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  2791. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  2792. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  2793. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  2794. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  2795. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2796. */
  2797. #define __HAL_HRTIM_MASTER_GET_ITSTATUS(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->sMasterRegs.MDIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  2798. /** @brief Checks if the specified HRTIM Timerx interrupt source is enabled or disabled.
  2799. * @param __HANDLE__ specifies the HRTIM Handle.
  2800. * @param __TIMER__ specified the timing unit (Timer A to E)
  2801. * @param __INTERRUPT__ specifies the interrupt source to check.
  2802. * This parameter can be one of the following values:
  2803. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  2804. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  2805. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  2806. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  2807. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  2808. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  2809. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  2810. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  2811. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  2812. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  2813. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  2814. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  2815. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  2816. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  2817. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  2818. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  2819. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  2820. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  2821. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  2822. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  2823. * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  2824. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2825. */
  2826. #define __HAL_HRTIM_TIMER_GET_ITSTATUS(__HANDLE__, __TIMER__, __INTERRUPT__) ((((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  2827. /** @brief Clears the specified HRTIM common pending flag.
  2828. * @param __HANDLE__ specifies the HRTIM Handle.
  2829. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  2830. * This parameter can be one of the following values:
  2831. * @arg HRTIM_IT_FLT1: Fault 1 interrupt clear flag
  2832. * @arg HRTIM_IT_FLT2: Fault 2 interrupt clear flag
  2833. * @arg HRTIM_IT_FLT3: Fault 3 clear flag
  2834. * @arg HRTIM_IT_FLT4: Fault 4 clear flag
  2835. * @arg HRTIM_IT_FLT5: Fault 5 clear flag
  2836. * @arg HRTIM_IT_SYSFLT: System Fault interrupt clear flag
  2837. * @arg HRTIM_IT_BMPER: Burst mode period interrupt clear flag
  2838. * @retval None
  2839. */
  2840. #define __HAL_HRTIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.ICR = (__INTERRUPT__))
  2841. /** @brief Clears the specified HRTIM Master pending flag.
  2842. * @param __HANDLE__ specifies the HRTIM Handle.
  2843. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  2844. * This parameter can be one of the following values:
  2845. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt clear flag
  2846. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt clear flag
  2847. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt clear flag
  2848. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt clear flag
  2849. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt clear flag
  2850. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt clear flag
  2851. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt clear flag
  2852. * @retval None
  2853. */
  2854. #define __HAL_HRTIM_MASTER_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MICR = (__INTERRUPT__))
  2855. /** @brief Clears the specified HRTIM Timerx pending flag.
  2856. * @param __HANDLE__ specifies the HRTIM Handle.
  2857. * @param __TIMER__ specified the timing unit (Timer A to E)
  2858. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  2859. * This parameter can be one of the following values:
  2860. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt clear flag
  2861. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt clear flag
  2862. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt clear flag
  2863. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt clear flag
  2864. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt clear flag
  2865. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt clear flag
  2866. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt clear flag
  2867. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt clear flag
  2868. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt clear flag
  2869. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt clear flag
  2870. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt clear flag
  2871. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt clear flag
  2872. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt clear flag
  2873. * @arg HRTIM_TIM_IT_DLYPRT: Timer output 1 delay protection interrupt clear flag
  2874. * @retval None
  2875. */
  2876. #define __HAL_HRTIM_TIMER_CLEAR_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR = (__INTERRUPT__))
  2877. /* DMA HANDLING */
  2878. /** @brief Enables or disables the specified HRTIM Master timer DMA requests.
  2879. * @param __HANDLE__ specifies the HRTIM Handle.
  2880. * @param __DMA__ specifies the DMA request to enable or disable.
  2881. * This parameter can be one of the following values:
  2882. * @arg HRTIM_MASTER_DMA_MCMP1: Master compare 1 DMA request enable
  2883. * @arg HRTIM_MASTER_DMA_MCMP2: Master compare 2 DMA request enable
  2884. * @arg HRTIM_MASTER_DMA_MCMP3: Master compare 3 DMA request enable
  2885. * @arg HRTIM_MASTER_DMA_MCMP4: Master compare 4 DMA request enable
  2886. * @arg HRTIM_MASTER_DMA_MREP: Master Repetition DMA request enable
  2887. * @arg HRTIM_MASTER_DMA_SYNC: Synchronization input DMA request enable
  2888. * @arg HRTIM_MASTER_DMA_MUPD: Master update DMA request enable
  2889. * @retval None
  2890. */
  2891. #define __HAL_HRTIM_MASTER_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__DMA__))
  2892. #define __HAL_HRTIM_MASTER_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__DMA__))
  2893. /** @brief Enables or disables the specified HRTIM Timerx DMA requests.
  2894. * @param __HANDLE__ specifies the HRTIM Handle.
  2895. * @param __TIMER__ specified the timing unit (Timer A to E)
  2896. * @param __DMA__ specifies the DMA request to enable or disable.
  2897. * This parameter can be one of the following values:
  2898. * @arg HRTIM_TIM_DMA_CMP1: Timer compare 1 DMA request enable
  2899. * @arg HRTIM_TIM_DMA_CMP2: Timer compare 2 DMA request enable
  2900. * @arg HRTIM_TIM_DMA_CMP3: Timer compare 3 DMA request enable
  2901. * @arg HRTIM_TIM_DMA_CMP4: Timer compare 4 DMA request enable
  2902. * @arg HRTIM_TIM_DMA_REP: Timer repetition DMA request enable
  2903. * @arg HRTIM_TIM_DMA_UPD: Timer update DMA request enable
  2904. * @arg HRTIM_TIM_DMA_CPT1: Timer capture 1 DMA request enable
  2905. * @arg HRTIM_TIM_DMA_CPT2: Timer capture 2 DMA request enable
  2906. * @arg HRTIM_TIM_DMA_SET1: Timer output 1 set DMA request enable
  2907. * @arg HRTIM_TIM_DMA_RST1: Timer output 1 reset DMA request enable
  2908. * @arg HRTIM_TIM_DMA_SET2: Timer output 2 set DMA request enable
  2909. * @arg HRTIM_TIM_DMA_RST2: Timer output 2 reset DMA request enable
  2910. * @arg HRTIM_TIM_DMA_RST: Timer reset DMA request enable
  2911. * @arg HRTIM_TIM_DMA_DLYPRT: Timer delay protection DMA request enable
  2912. * @retval None
  2913. */
  2914. #define __HAL_HRTIM_TIMER_ENABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__DMA__))
  2915. #define __HAL_HRTIM_TIMER_DISABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__DMA__))
  2916. #define __HAL_HRTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->sCommonRegs.ISR & (__FLAG__)) == (__FLAG__))
  2917. #define __HAL_HRTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->sCommonRegs.ICR = (__FLAG__))
  2918. #define __HAL_HRTIM_MASTER_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->sMasterRegs.MISR & (__FLAG__)) == (__FLAG__))
  2919. #define __HAL_HRTIM_MASTER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->sMasterRegs.MICR = (__FLAG__))
  2920. #define __HAL_HRTIM_TIMER_GET_FLAG(__HANDLE__, __TIMER__, __FLAG__) (((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxISR & (__FLAG__)) == (__FLAG__))
  2921. #define __HAL_HRTIM_TIMER_CLEAR_FLAG(__HANDLE__, __TIMER__, __FLAG__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR = (__FLAG__))
  2922. /** @brief Sets the HRTIM timer Counter Register value on runtime
  2923. * @param __HANDLE__ HRTIM Handle.
  2924. * @param __TIMER__ HRTIM timer
  2925. * This parameter can be one of the following values:
  2926. * @arg 0x5 for master timer
  2927. * @arg 0x0 to 0x4 for timers A to E
  2928. * @param __COUNTER__ specifies the Counter Register new value.
  2929. * @retval None
  2930. */
  2931. #define __HAL_HRTIM_SETCOUNTER(__HANDLE__, __TIMER__, __COUNTER__) \
  2932. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR = (__COUNTER__)) :\
  2933. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR = (__COUNTER__)))
  2934. /** @brief Gets the HRTIM timer Counter Register value on runtime
  2935. * @param __HANDLE__ HRTIM Handle.
  2936. * @param __TIMER__ HRTIM timer
  2937. * This parameter can be one of the following values:
  2938. * @arg 0x5 for master timer
  2939. * @arg 0x0 to 0x4 for timers A to E
  2940. * @retval HRTIM timer Counter Register value
  2941. */
  2942. #define __HAL_HRTIM_GETCOUNTER(__HANDLE__, __TIMER__) \
  2943. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR) :\
  2944. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR))
  2945. /** @brief Sets the HRTIM timer Period value on runtime
  2946. * @param __HANDLE__ HRTIM Handle.
  2947. * @param __TIMER__ HRTIM timer
  2948. * This parameter can be one of the following values:
  2949. * @arg 0x5 for master timer
  2950. * @arg 0x0 to 0x4 for timers A to E
  2951. * @param __PERIOD__ specifies the Period Register new value.
  2952. * @retval None
  2953. */
  2954. #define __HAL_HRTIM_SETPERIOD(__HANDLE__, __TIMER__, __PERIOD__) \
  2955. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER = (__PERIOD__)) :\
  2956. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR = (__PERIOD__)))
  2957. /** @brief Gets the HRTIM timer Period Register value on runtime
  2958. * @param __HANDLE__ HRTIM Handle.
  2959. * @param __TIMER__ HRTIM timer
  2960. * This parameter can be one of the following values:
  2961. * @arg 0x5 for master timer
  2962. * @arg 0x0 to 0x4 for timers A to E
  2963. * @retval timer Period Register
  2964. */
  2965. #define __HAL_HRTIM_GETPERIOD(__HANDLE__, __TIMER__) \
  2966. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER) :\
  2967. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR))
  2968. /** @brief Sets the HRTIM timer clock prescaler value on runtime
  2969. * @param __HANDLE__ HRTIM Handle.
  2970. * @param __TIMER__ HRTIM timer
  2971. * This parameter can be one of the following values:
  2972. * @arg 0x5 for master timer
  2973. * @arg 0x0 to 0x4 for timers A to E
  2974. * @param __PRESCALER__ specifies the clock prescaler new value.
  2975. * This parameter can be one of the following values:
  2976. * @arg HRTIM_PRESCALERRATIO_MUL32: fHRCK: 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz)
  2977. * @arg HRTIM_PRESCALERRATIO_MUL16: fHRCK: 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz)
  2978. * @arg HRTIM_PRESCALERRATIO_MUL8: fHRCK: 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz)
  2979. * @arg HRTIM_PRESCALERRATIO_MUL4: fHRCK: 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz)
  2980. * @arg HRTIM_PRESCALERRATIO_MUL2: fHRCK: 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz)
  2981. * @arg HRTIM_PRESCALERRATIO_DIV1: fHRCK: 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)
  2982. * @arg HRTIM_PRESCALERRATIO_DIV2: fHRCK: 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)
  2983. * @arg HRTIM_PRESCALERRATIO_DIV4: fHRCK: 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)
  2984. * @retval None
  2985. */
  2986. #define __HAL_HRTIM_SETCLOCKPRESCALER(__HANDLE__, __TIMER__, __PRESCALER__) \
  2987. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? (MODIFY_REG((__HANDLE__)->Instance->sMasterRegs.MCR, HRTIM_MCR_CK_PSC, (__PRESCALER__))) :\
  2988. (MODIFY_REG((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR, HRTIM_TIMCR_CK_PSC, (__PRESCALER__))))
  2989. /** @brief Gets the HRTIM timer clock prescaler value on runtime
  2990. * @param __HANDLE__ HRTIM Handle.
  2991. * @param __TIMER__ HRTIM timer
  2992. * This parameter can be one of the following values:
  2993. * @arg 0x5 for master timer
  2994. * @arg 0x0 to 0x4 for timers A to E
  2995. * @retval timer clock prescaler value
  2996. */
  2997. #define __HAL_HRTIM_GETCLOCKPRESCALER(__HANDLE__, __TIMER__) \
  2998. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCR & HRTIM_MCR_CK_PSC) :\
  2999. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR & HRTIM_TIMCR_CK_PSC))
  3000. /** @brief Sets the HRTIM timer Compare Register value on runtime
  3001. * @param __HANDLE__ HRTIM Handle.
  3002. * @param __TIMER__ HRTIM timer
  3003. * This parameter can be one of the following values:
  3004. * @arg 0x0 to 0x4 for timers A to E
  3005. * @param __COMPAREUNIT__ timer compare unit
  3006. * This parameter can be one of the following values:
  3007. * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  3008. * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  3009. * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  3010. * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  3011. * @param __COMPARE__ specifies the Compare new value.
  3012. * @retval None
  3013. */
  3014. #define __HAL_HRTIM_SETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__, __COMPARE__) \
  3015. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
  3016. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R = (__COMPARE__)) :\
  3017. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R = (__COMPARE__)) :\
  3018. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R = (__COMPARE__)) :\
  3019. ((__HANDLE__)->Instance->sMasterRegs.MCMP4R = (__COMPARE__))) \
  3020. : \
  3021. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR = (__COMPARE__)) :\
  3022. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR = (__COMPARE__)) :\
  3023. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR = (__COMPARE__)) :\
  3024. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR = (__COMPARE__))))
  3025. /** @brief Gets the HRTIM timer Compare Register value on runtime
  3026. * @param __HANDLE__ HRTIM Handle.
  3027. * @param __TIMER__ HRTIM timer
  3028. * This parameter can be one of the following values:
  3029. * @arg 0x0 to 0x4 for timers A to E
  3030. * @param __COMPAREUNIT__ timer compare unit
  3031. * This parameter can be one of the following values:
  3032. * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  3033. * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  3034. * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  3035. * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  3036. * @retval Compare value
  3037. */
  3038. #define __HAL_HRTIM_GETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__) \
  3039. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
  3040. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R) :\
  3041. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R) :\
  3042. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R) :\
  3043. ((__HANDLE__)->Instance->sMasterRegs.MCMP4R)) \
  3044. : \
  3045. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR) :\
  3046. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR) :\
  3047. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR) :\
  3048. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR)))
  3049. /**
  3050. * @}
  3051. */
  3052. /* Exported functions --------------------------------------------------------*/
  3053. /** @addtogroup HRTIM_Exported_Functions
  3054. * @{
  3055. */
  3056. /** @addtogroup HRTIM_Exported_Functions_Group1
  3057. * @{
  3058. */
  3059. /* Initialization and Configuration functions ********************************/
  3060. HAL_StatusTypeDef HAL_HRTIM_Init(HRTIM_HandleTypeDef *hhrtim);
  3061. HAL_StatusTypeDef HAL_HRTIM_DeInit (HRTIM_HandleTypeDef *hhrtim);
  3062. void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef *hhrtim);
  3063. void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef *hhrtim);
  3064. HAL_StatusTypeDef HAL_HRTIM_TimeBaseConfig(HRTIM_HandleTypeDef *hhrtim,
  3065. uint32_t TimerIdx,
  3066. HRTIM_TimeBaseCfgTypeDef * pTimeBaseCfg);
  3067. /**
  3068. * @}
  3069. */
  3070. /** @addtogroup HRTIM_Exported_Functions_Group2
  3071. * @{
  3072. */
  3073. /* Simple time base related functions *****************************************/
  3074. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart(HRTIM_HandleTypeDef *hhrtim,
  3075. uint32_t TimerIdx);
  3076. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop(HRTIM_HandleTypeDef *hhrtim,
  3077. uint32_t TimerIdx);
  3078. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3079. uint32_t TimerIdx);
  3080. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3081. uint32_t TimerIdx);
  3082. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  3083. uint32_t TimerIdx,
  3084. uint32_t SrcAddr,
  3085. uint32_t DestAddr,
  3086. uint32_t Length);
  3087. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3088. uint32_t TimerIdx);
  3089. /**
  3090. * @}
  3091. */
  3092. /** @addtogroup HRTIM_Exported_Functions_Group3
  3093. * @{
  3094. */
  3095. /* Simple output compare related functions ************************************/
  3096. HAL_StatusTypeDef HAL_HRTIM_SimpleOCChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  3097. uint32_t TimerIdx,
  3098. uint32_t OCChannel,
  3099. HRTIM_SimpleOCChannelCfgTypeDef* pSimpleOCChannelCfg);
  3100. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart(HRTIM_HandleTypeDef *hhrtim,
  3101. uint32_t TimerIdx,
  3102. uint32_t OCChannel);
  3103. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop(HRTIM_HandleTypeDef *hhrtim,
  3104. uint32_t TimerIdx,
  3105. uint32_t OCChannel);
  3106. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3107. uint32_t TimerIdx,
  3108. uint32_t OCChannel);
  3109. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3110. uint32_t TimerIdx,
  3111. uint32_t OCChannel);
  3112. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  3113. uint32_t TimerIdx,
  3114. uint32_t OCChannel,
  3115. uint32_t SrcAddr,
  3116. uint32_t DestAddr,
  3117. uint32_t Length);
  3118. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3119. uint32_t TimerIdx,
  3120. uint32_t OCChannel);
  3121. /**
  3122. * @}
  3123. */
  3124. /** @addtogroup HRTIM_Exported_Functions_Group4
  3125. * @{
  3126. */
  3127. /* Simple PWM output related functions ****************************************/
  3128. HAL_StatusTypeDef HAL_HRTIM_SimplePWMChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  3129. uint32_t TimerIdx,
  3130. uint32_t PWMChannel,
  3131. HRTIM_SimplePWMChannelCfgTypeDef* pSimplePWMChannelCfg);
  3132. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart(HRTIM_HandleTypeDef *hhrtim,
  3133. uint32_t TimerIdx,
  3134. uint32_t PWMChannel);
  3135. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop(HRTIM_HandleTypeDef *hhrtim,
  3136. uint32_t TimerIdx,
  3137. uint32_t PWMChannel);
  3138. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3139. uint32_t TimerIdx,
  3140. uint32_t PWMChannel);
  3141. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3142. uint32_t TimerIdx,
  3143. uint32_t PWMChannel);
  3144. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  3145. uint32_t TimerIdx,
  3146. uint32_t PWMChannel,
  3147. uint32_t SrcAddr,
  3148. uint32_t DestAddr,
  3149. uint32_t Length);
  3150. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3151. uint32_t TimerIdx,
  3152. uint32_t PWMChannel);
  3153. /**
  3154. * @}
  3155. */
  3156. /** @addtogroup HRTIM_Exported_Functions_Group5
  3157. * @{
  3158. */
  3159. /* Simple capture related functions *******************************************/
  3160. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  3161. uint32_t TimerIdx,
  3162. uint32_t CaptureChannel,
  3163. HRTIM_SimpleCaptureChannelCfgTypeDef* pSimpleCaptureChannelCfg);
  3164. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart(HRTIM_HandleTypeDef *hhrtim,
  3165. uint32_t TimerIdx,
  3166. uint32_t CaptureChannel);
  3167. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop(HRTIM_HandleTypeDef *hhrtim,
  3168. uint32_t TimerIdx,
  3169. uint32_t CaptureChannel);
  3170. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3171. uint32_t TimerIdx,
  3172. uint32_t CaptureChannel);
  3173. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3174. uint32_t TimerIdx,
  3175. uint32_t CaptureChannel);
  3176. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  3177. uint32_t TimerIdx,
  3178. uint32_t CaptureChannel,
  3179. uint32_t SrcAddr,
  3180. uint32_t DestAddr,
  3181. uint32_t Length);
  3182. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3183. uint32_t TimerIdx,
  3184. uint32_t CaptureChannel);
  3185. /**
  3186. * @}
  3187. */
  3188. /** @addtogroup HRTIM_Exported_Functions_Group6
  3189. * @{
  3190. */
  3191. /* Simple one pulse related functions *****************************************/
  3192. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  3193. uint32_t TimerIdx,
  3194. uint32_t OnePulseChannel,
  3195. HRTIM_SimpleOnePulseChannelCfgTypeDef* pSimpleOnePulseChannelCfg);
  3196. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart(HRTIM_HandleTypeDef *hhrtim,
  3197. uint32_t TimerIdx,
  3198. uint32_t OnePulseChannel);
  3199. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop(HRTIM_HandleTypeDef *hhrtim,
  3200. uint32_t TimerIdx,
  3201. uint32_t OnePulseChannel);
  3202. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3203. uint32_t TimerIdx,
  3204. uint32_t OnePulseChannel);
  3205. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3206. uint32_t TimerIdx,
  3207. uint32_t OnePulseChannel);
  3208. /**
  3209. * @}
  3210. */
  3211. /** @addtogroup HRTIM_Exported_Functions_Group7
  3212. * @{
  3213. */
  3214. HAL_StatusTypeDef HAL_HRTIM_BurstModeConfig(HRTIM_HandleTypeDef *hhrtim,
  3215. HRTIM_BurstModeCfgTypeDef* pBurstModeCfg);
  3216. HAL_StatusTypeDef HAL_HRTIM_EventConfig(HRTIM_HandleTypeDef *hhrtim,
  3217. uint32_t Event,
  3218. HRTIM_EventCfgTypeDef* pEventCfg);
  3219. HAL_StatusTypeDef HAL_HRTIM_EventPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
  3220. uint32_t Prescaler);
  3221. HAL_StatusTypeDef HAL_HRTIM_FaultConfig(HRTIM_HandleTypeDef *hhrtim,
  3222. uint32_t Fault,
  3223. HRTIM_FaultCfgTypeDef* pFaultCfg);
  3224. HAL_StatusTypeDef HAL_HRTIM_FaultPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
  3225. uint32_t Prescaler);
  3226. void HAL_HRTIM_FaultModeCtl(HRTIM_HandleTypeDef * hhrtim,
  3227. uint32_t Faults,
  3228. uint32_t Enable);
  3229. HAL_StatusTypeDef HAL_HRTIM_ADCTriggerConfig(HRTIM_HandleTypeDef *hhrtim,
  3230. uint32_t ADCTrigger,
  3231. HRTIM_ADCTriggerCfgTypeDef* pADCTriggerCfg);
  3232. /**
  3233. * @}
  3234. */
  3235. /** @addtogroup HRTIM_Exported_Functions_Group8
  3236. * @{
  3237. */
  3238. /* Waveform related functions *************************************************/
  3239. HAL_StatusTypeDef HAL_HRTIM_WaveformTimerConfig(HRTIM_HandleTypeDef *hhrtim,
  3240. uint32_t TimerIdx,
  3241. HRTIM_TimerCfgTypeDef * pTimerCfg);
  3242. HAL_StatusTypeDef HAL_HRTIM_WaveformCompareConfig(HRTIM_HandleTypeDef *hhrtim,
  3243. uint32_t TimerIdx,
  3244. uint32_t CompareUnit,
  3245. HRTIM_CompareCfgTypeDef* pCompareCfg);
  3246. HAL_StatusTypeDef HAL_HRTIM_WaveformCaptureConfig(HRTIM_HandleTypeDef *hhrtim,
  3247. uint32_t TimerIdx,
  3248. uint32_t CaptureUnit,
  3249. HRTIM_CaptureCfgTypeDef* pCaptureCfg);
  3250. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputConfig(HRTIM_HandleTypeDef *hhrtim,
  3251. uint32_t TimerIdx,
  3252. uint32_t Output,
  3253. HRTIM_OutputCfgTypeDef * pOutputCfg);
  3254. HAL_StatusTypeDef HAL_HRTIM_WaveformSetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
  3255. uint32_t TimerIdx,
  3256. uint32_t Output,
  3257. uint32_t OutputLevel);
  3258. HAL_StatusTypeDef HAL_HRTIM_TimerEventFilteringConfig(HRTIM_HandleTypeDef *hhrtim,
  3259. uint32_t TimerIdx,
  3260. uint32_t Event,
  3261. HRTIM_TimerEventFilteringCfgTypeDef * pTimerEventFilteringCfg);
  3262. HAL_StatusTypeDef HAL_HRTIM_DeadTimeConfig(HRTIM_HandleTypeDef *hhrtim,
  3263. uint32_t TimerIdx,
  3264. HRTIM_DeadTimeCfgTypeDef* pDeadTimeCfg);
  3265. HAL_StatusTypeDef HAL_HRTIM_ChopperModeConfig(HRTIM_HandleTypeDef *hhrtim,
  3266. uint32_t TimerIdx,
  3267. HRTIM_ChopperModeCfgTypeDef* pChopperModeCfg);
  3268. HAL_StatusTypeDef HAL_HRTIM_BurstDMAConfig(HRTIM_HandleTypeDef *hhrtim,
  3269. uint32_t TimerIdx,
  3270. uint32_t RegistersToUpdate);
  3271. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart(HRTIM_HandleTypeDef *hhrtim,
  3272. uint32_t Timers);
  3273. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop(HRTIM_HandleTypeDef *hhrtim,
  3274. uint32_t Timers);
  3275. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3276. uint32_t Timers);
  3277. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3278. uint32_t Timers);
  3279. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  3280. uint32_t Timers);
  3281. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3282. uint32_t Timers);
  3283. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStart(HRTIM_HandleTypeDef *hhrtim,
  3284. uint32_t OutputsToStart);
  3285. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStop(HRTIM_HandleTypeDef *hhrtim,
  3286. uint32_t OutputsToStop);
  3287. HAL_StatusTypeDef HAL_HRTIM_BurstModeCtl(HRTIM_HandleTypeDef *hhrtim,
  3288. uint32_t Enable);
  3289. HAL_StatusTypeDef HAL_HRTIM_BurstModeSoftwareTrigger(HRTIM_HandleTypeDef *hhrtim);
  3290. HAL_StatusTypeDef HAL_HRTIM_SoftwareCapture(HRTIM_HandleTypeDef *hhrtim,
  3291. uint32_t TimerIdx,
  3292. uint32_t CaptureUnit);
  3293. HAL_StatusTypeDef HAL_HRTIM_SoftwareUpdate(HRTIM_HandleTypeDef *hhrtim,
  3294. uint32_t Timers);
  3295. HAL_StatusTypeDef HAL_HRTIM_SoftwareReset(HRTIM_HandleTypeDef *hhrtim,
  3296. uint32_t Timers);
  3297. HAL_StatusTypeDef HAL_HRTIM_BurstDMATransfer(HRTIM_HandleTypeDef *hhrtim,
  3298. uint32_t TimerIdx,
  3299. uint32_t BurstBufferAddress,
  3300. uint32_t BurstBufferLength);
  3301. HAL_StatusTypeDef HAL_HRTIM_UpdateEnable(HRTIM_HandleTypeDef *hhrtim,
  3302. uint32_t Timers);
  3303. HAL_StatusTypeDef HAL_HRTIM_UpdateDisable(HRTIM_HandleTypeDef *hhrtim,
  3304. uint32_t Timers);
  3305. /**
  3306. * @}
  3307. */
  3308. /** @addtogroup HRTIM_Exported_Functions_Group9
  3309. * @{
  3310. */
  3311. /* HRTIM peripheral state functions */
  3312. HAL_HRTIM_StateTypeDef HAL_HRTIM_GetState(HRTIM_HandleTypeDef* hhrtim);
  3313. uint32_t HAL_HRTIM_GetCapturedValue(HRTIM_HandleTypeDef * hhrtim,
  3314. uint32_t TimerIdx,
  3315. uint32_t CaptureUnit);
  3316. uint32_t HAL_HRTIM_WaveformGetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
  3317. uint32_t TimerIdx,
  3318. uint32_t Output);
  3319. uint32_t HAL_HRTIM_WaveformGetOutputState(HRTIM_HandleTypeDef * hhrtim,
  3320. uint32_t TimerIdx,
  3321. uint32_t Output);
  3322. uint32_t HAL_HRTIM_GetDelayedProtectionStatus(HRTIM_HandleTypeDef *hhrtim,
  3323. uint32_t TimerIdx,
  3324. uint32_t Output);
  3325. uint32_t HAL_HRTIM_GetBurstStatus(HRTIM_HandleTypeDef *hhrtim);
  3326. uint32_t HAL_HRTIM_GetCurrentPushPullStatus(HRTIM_HandleTypeDef *hhrtim,
  3327. uint32_t TimerIdx);
  3328. uint32_t HAL_HRTIM_GetIdlePushPullStatus(HRTIM_HandleTypeDef *hhrtim,
  3329. uint32_t TimerIdx);
  3330. /**
  3331. * @}
  3332. */
  3333. /** @addtogroup HRTIM_Exported_Functions_Group10
  3334. * @{
  3335. */
  3336. /* IRQ handler */
  3337. void HAL_HRTIM_IRQHandler(HRTIM_HandleTypeDef *hhrtim,
  3338. uint32_t TimerIdx);
  3339. /* HRTIM events related callback functions */
  3340. void HAL_HRTIM_Fault1Callback(HRTIM_HandleTypeDef *hhrtim);
  3341. void HAL_HRTIM_Fault2Callback(HRTIM_HandleTypeDef *hhrtim);
  3342. void HAL_HRTIM_Fault3Callback(HRTIM_HandleTypeDef *hhrtim);
  3343. void HAL_HRTIM_Fault4Callback(HRTIM_HandleTypeDef *hhrtim);
  3344. void HAL_HRTIM_Fault5Callback(HRTIM_HandleTypeDef *hhrtim);
  3345. void HAL_HRTIM_SystemFaultCallback(HRTIM_HandleTypeDef *hhrtim);
  3346. void HAL_HRTIM_BurstModePeriodCallback(HRTIM_HandleTypeDef *hhrtim);
  3347. void HAL_HRTIM_SynchronizationEventCallback(HRTIM_HandleTypeDef *hhrtim);
  3348. /* Timer events related callback functions */
  3349. void HAL_HRTIM_RegistersUpdateCallback(HRTIM_HandleTypeDef *hhrtim,
  3350. uint32_t TimerIdx);
  3351. void HAL_HRTIM_RepetitionEventCallback(HRTIM_HandleTypeDef *hhrtim,
  3352. uint32_t TimerIdx);
  3353. void HAL_HRTIM_Compare1EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3354. uint32_t TimerIdx);
  3355. void HAL_HRTIM_Compare2EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3356. uint32_t TimerIdx);
  3357. void HAL_HRTIM_Compare3EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3358. uint32_t TimerIdx);
  3359. void HAL_HRTIM_Compare4EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3360. uint32_t TimerIdx);
  3361. void HAL_HRTIM_Capture1EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3362. uint32_t TimerIdx);
  3363. void HAL_HRTIM_Capture2EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3364. uint32_t TimerIdx);
  3365. void HAL_HRTIM_DelayedProtectionCallback(HRTIM_HandleTypeDef *hhrtim,
  3366. uint32_t TimerIdx);
  3367. void HAL_HRTIM_CounterResetCallback(HRTIM_HandleTypeDef *hhrtim,
  3368. uint32_t TimerIdx);
  3369. void HAL_HRTIM_Output1SetCallback(HRTIM_HandleTypeDef *hhrtim,
  3370. uint32_t TimerIdx);
  3371. void HAL_HRTIM_Output1ResetCallback(HRTIM_HandleTypeDef *hhrtim,
  3372. uint32_t TimerIdx);
  3373. void HAL_HRTIM_Output2SetCallback(HRTIM_HandleTypeDef *hhrtim,
  3374. uint32_t TimerIdx);
  3375. void HAL_HRTIM_Output2ResetCallback(HRTIM_HandleTypeDef *hhrtim,
  3376. uint32_t TimerIdx);
  3377. void HAL_HRTIM_BurstDMATransferCallback(HRTIM_HandleTypeDef *hhrtim,
  3378. uint32_t TimerIdx);
  3379. void HAL_HRTIM_ErrorCallback(HRTIM_HandleTypeDef *hhrtim);
  3380. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  3381. HAL_StatusTypeDef HAL_HRTIM_RegisterCallback(HRTIM_HandleTypeDef * hhrtim,
  3382. HAL_HRTIM_CallbackIDTypeDef CallbackID,
  3383. pHRTIM_CallbackTypeDef pCallback);
  3384. HAL_StatusTypeDef HAL_HRTIM_UnRegisterCallback(HRTIM_HandleTypeDef * hhrtim,
  3385. HAL_HRTIM_CallbackIDTypeDef CallbackID);
  3386. HAL_StatusTypeDef HAL_HRTIM_TIMxRegisterCallback(HRTIM_HandleTypeDef * hhrtim,
  3387. HAL_HRTIM_CallbackIDTypeDef CallbackID,
  3388. pHRTIM_TIMxCallbackTypeDef pCallback);
  3389. HAL_StatusTypeDef HAL_HRTIM_TIMxUnRegisterCallback(HRTIM_HandleTypeDef * hhrtim,
  3390. HAL_HRTIM_CallbackIDTypeDef CallbackID);
  3391. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  3392. /**
  3393. * @}
  3394. */
  3395. /**
  3396. * @}
  3397. */
  3398. /**
  3399. * @}
  3400. */
  3401. /**
  3402. * @}
  3403. */
  3404. #ifdef __cplusplus
  3405. }
  3406. #endif
  3407. #endif /* STM32H7xx_HAL_HRTIM_H */
  3408. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/