STM32H735xx HAL User Manual
stm32h7xx_hal_hrtim.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_hal_hrtim.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of HRTIM HAL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32H7xx_HAL_HRTIM_H
00021 #define STM32H7xx_HAL_HRTIM_H
00022 
00023 #ifdef __cplusplus
00024  extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32h7xx_hal_def.h"
00029 
00030 #if defined(HRTIM1)
00031 /** @addtogroup STM32H7xx_HAL_Driver
00032   * @{
00033   */
00034 
00035 /** @addtogroup HRTIM HRTIM
00036   * @{
00037   */
00038 
00039 /* Exported types ------------------------------------------------------------*/
00040 /** @addtogroup HRTIM_Exported_Constants HRTIM Exported Constants
00041   * @{
00042   */
00043 /** @defgroup HRTIM_Max_Timer HRTIM Max Timer
00044   * @{
00045   */
00046 #define MAX_HRTIM_TIMER 6U
00047 /**
00048   * @}
00049   */
00050 /**
00051   * @}
00052   */
00053 
00054 /** @defgroup HRTIM_Exported_Types HRTIM Exported Types
00055   * @{
00056   */
00057 
00058 /**
00059   * @brief  HRTIM Configuration Structure definition - Time base related parameters
00060   */
00061 typedef struct
00062 {
00063   uint32_t HRTIMInterruptResquests;  /*!< Specifies which interrupts requests must enabled for the HRTIM instance.
00064                                           This parameter can be any combination of  @ref HRTIM_Common_Interrupt_Enable */
00065   uint32_t SyncOptions;              /*!< Specifies how the HRTIM instance handles the external synchronization signals.
00066                                           The HRTIM instance can be configured to act as a slave (waiting for a trigger
00067                                           to be synchronized) or a master (generating a synchronization signal) or both.
00068                                           This parameter can be a combination of @ref HRTIM_Synchronization_Options.*/
00069   uint32_t SyncInputSource;          /*!< Specifies the external synchronization input source (significant only when
00070                                           the HRTIM instance is configured as a slave).
00071                                           This parameter can be a value of @ref HRTIM_Synchronization_Input_Source. */
00072   uint32_t SyncOutputSource;         /*!< Specifies the source and event to be sent on the external synchronization outputs
00073                                          (significant only when the HRTIM instance is configured as a master).
00074                                           This parameter can be a value of @ref HRTIM_Synchronization_Output_Source */
00075   uint32_t SyncOutputPolarity;       /*!< Specifies the conditioning of the event to be sent on the external synchronization
00076                                           outputs (significant only when the HRTIM instance is configured as a master).
00077                                           This parameter can be a value of @ref HRTIM_Synchronization_Output_Polarity */
00078 } HRTIM_InitTypeDef;
00079 
00080 /**
00081   * @brief  HAL State structures definition
00082   */
00083 typedef enum
00084 {
00085   HAL_HRTIM_STATE_RESET            = 0x00U,    /*!< Peripheral is not yet Initialized                  */
00086   HAL_HRTIM_STATE_READY            = 0x01U,    /*!< Peripheral Initialized and ready for use           */
00087   HAL_HRTIM_STATE_BUSY             = 0x02U,    /*!< an internal process is ongoing                     */
00088   HAL_HRTIM_STATE_TIMEOUT          = 0x06U,    /*!< Timeout state                                      */
00089   HAL_HRTIM_STATE_ERROR            = 0x07U,    /*!< Error state                                        */
00090 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
00091   HAL_HRTIM_STATE_INVALID_CALLBACK = 0x08U    /*!< Invalid Callback error */
00092 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
00093 } HAL_HRTIM_StateTypeDef;
00094 
00095 /**
00096   * @brief HRTIM Timer Structure definition
00097   */
00098 typedef struct
00099 {
00100   uint32_t CaptureTrigger1;       /*!< Event(s) triggering capture unit 1.
00101                                        When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
00102                                        When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
00103   uint32_t CaptureTrigger2;       /*!< Event(s) triggering capture unit 2.
00104                                        When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
00105                                        When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
00106   uint32_t InterruptRequests;     /*!< Interrupts requests enabled for the timer. */
00107   uint32_t DMARequests;           /*!< DMA requests enabled for the timer. */
00108   uint32_t DMASrcAddress;          /*!< Address of the source address of the DMA transfer. */
00109   uint32_t DMADstAddress;          /*!< Address of the destination address of the DMA transfer. */
00110   uint32_t DMASize;                /*!< Size of the DMA transfer */
00111 } HRTIM_TimerParamTypeDef;
00112 
00113 /**
00114   * @brief  HRTIM Handle Structure definition
00115   */
00116 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
00117 typedef struct __HRTIM_HandleTypeDef
00118 #else
00119 typedef struct
00120 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
00121 {
00122   HRTIM_TypeDef *              Instance;                     /*!< Register base address */
00123 
00124   HRTIM_InitTypeDef            Init;                         /*!< HRTIM required parameters */
00125 
00126   HRTIM_TimerParamTypeDef      TimerParam[MAX_HRTIM_TIMER];  /*!< HRTIM timers - including the master - parameters */
00127 
00128   HAL_LockTypeDef              Lock;                         /*!< Locking object          */
00129 
00130   __IO HAL_HRTIM_StateTypeDef  State;                        /*!< HRTIM communication state */
00131 
00132   DMA_HandleTypeDef *          hdmaMaster;                   /*!< Master timer DMA handle parameters */
00133   DMA_HandleTypeDef *          hdmaTimerA;                   /*!< Timer A DMA handle parameters */
00134   DMA_HandleTypeDef *          hdmaTimerB;                   /*!< Timer B DMA handle parameters */
00135   DMA_HandleTypeDef *          hdmaTimerC;                   /*!< Timer C DMA handle parameters */
00136   DMA_HandleTypeDef *          hdmaTimerD;                   /*!< Timer D DMA handle parameters */
00137   DMA_HandleTypeDef *          hdmaTimerE;                   /*!< Timer E DMA handle parameters */
00138 
00139 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
00140   void (* Fault1Callback)(struct __HRTIM_HandleTypeDef *hhrtim);                               /*!< Fault 1 interrupt callback function pointer                         */
00141   void (* Fault2Callback)(struct __HRTIM_HandleTypeDef *hhrtim);                               /*!< Fault 2 interrupt callback function pointer                         */
00142   void (* Fault3Callback)(struct __HRTIM_HandleTypeDef *hhrtim);                               /*!< Fault 3 interrupt callback function pointer                         */
00143   void (* Fault4Callback)(struct __HRTIM_HandleTypeDef *hhrtim);                               /*!< Fault 4 interrupt callback function pointer                         */
00144   void (* Fault5Callback)(struct __HRTIM_HandleTypeDef *hhrtim);                               /*!< Fault 5 interrupt callback function pointer                         */
00145   void (* SystemFaultCallback)(struct __HRTIM_HandleTypeDef *hhrtim);                          /*!< System fault interrupt callback function pointer                    */
00146   void (* BurstModePeriodCallback)(struct __HRTIM_HandleTypeDef *hhrtim);                      /*!< Burst mode period interrupt callback function pointer               */
00147   void (* SynchronizationEventCallback)(struct __HRTIM_HandleTypeDef *hhrtim);                 /*!< Sync Input interrupt callback function pointer                      */
00148   void (* ErrorCallback)(struct __HRTIM_HandleTypeDef *hhrtim);                                /*!< DMA error callback function pointer                                 */
00149 
00150   void (* RegistersUpdateCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);   /*!< Timer x Update interrupt callback function pointer                  */
00151   void (* RepetitionEventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);   /*!< Timer x Repetition interrupt callback function pointer              */
00152   void (* Compare1EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);     /*!< Timer x Compare 1 match interrupt callback function pointer         */
00153   void (* Compare2EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);     /*!< Timer x Compare 2 match interrupt callback function pointer         */
00154   void (* Compare3EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);     /*!< Timer x Compare 3 match interrupt callback function pointer         */
00155   void (* Compare4EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);     /*!< Timer x Compare 4 match interrupt callback function pointer         */
00156   void (* Capture1EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);     /*!< Timer x Capture 1 interrupts callback function pointer              */
00157   void (* Capture2EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);     /*!< Timer x Capture 2 interrupts callback function pointer              */
00158   void (* DelayedProtectionCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Delayed protection interrupt callback function pointer      */
00159   void (* CounterResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);      /*!< Timer x counter reset/roll-over interrupt callback function pointer */
00160   void (* Output1SetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);        /*!< Timer x output 1 set interrupt callback function pointer            */
00161   void (* Output1ResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);      /*!< Timer x output 1 reset interrupt callback function pointer          */
00162   void (* Output2SetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);        /*!< Timer x output 2 set interrupt callback function pointer            */
00163   void (* Output2ResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);      /*!< Timer x output 2 reset interrupt callback function pointer          */
00164   void (* BurstDMATransferCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx);  /*!< Timer x Burst DMA completed interrupt callback function pointer     */
00165 
00166   void (* MspInitCallback)(struct __HRTIM_HandleTypeDef *hhrtim);                              /*!< HRTIM MspInit callback function pointer                             */
00167   void (* MspDeInitCallback)(struct __HRTIM_HandleTypeDef *hhrtim);                            /*!< HRTIM MspInit callback function pointer                             */
00168 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
00169 } HRTIM_HandleTypeDef;
00170 
00171 /**
00172   * @brief  Simple output compare mode configuration definition
00173   */
00174 typedef struct
00175 {
00176   uint32_t Period;                   /*!< Specifies the timer period.
00177                                           The period value must be above 3 periods of the fHRTIM clock.
00178                                           Maximum value is = 0xFFDFU */
00179   uint32_t RepetitionCounter;        /*!< Specifies the timer repetition period.
00180                                           This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
00181   uint32_t PrescalerRatio;           /*!< Specifies the timer clock prescaler ratio.
00182                                           This parameter can be any value of @ref HRTIM_Prescaler_Ratio   */
00183   uint32_t Mode;                     /*!< Specifies the counter operating mode.
00184                                           This parameter can be any value of @ref HRTIM_Counter_Operating_Mode   */
00185 } HRTIM_TimeBaseCfgTypeDef;
00186 
00187 /**
00188   * @brief  Simple output compare mode configuration definition
00189   */
00190 typedef struct
00191 {
00192   uint32_t Mode;       /*!< Specifies the output compare mode (toggle, active, inactive).
00193                             This parameter can be any value of of @ref HRTIM_Simple_OC_Mode */
00194   uint32_t Pulse;      /*!< Specifies the compare value to be loaded into the Compare Register.
00195                             The compare value must be above or equal to 3 periods of the fHRTIM clock */
00196   uint32_t Polarity;   /*!< Specifies the output polarity.
00197                             This parameter can be any value of @ref HRTIM_Output_Polarity */
00198   uint32_t IdleLevel;  /*!< Specifies whether the output level is active or inactive when in IDLE state.
00199                             This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
00200 } HRTIM_SimpleOCChannelCfgTypeDef;
00201 
00202 /**
00203   * @brief  Simple PWM output mode configuration definition
00204   */
00205 typedef struct
00206 {
00207   uint32_t Pulse;            /*!< Specifies the compare value to be loaded into the Compare Register.
00208                                   The compare value must be above or equal to 3 periods of the fHRTIM clock */
00209   uint32_t Polarity;        /*!< Specifies the output polarity.
00210                                  This parameter can be any value of @ref HRTIM_Output_Polarity */
00211   uint32_t IdleLevel;       /*!< Specifies whether the output level is active or inactive when in IDLE state.
00212                                  This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
00213 } HRTIM_SimplePWMChannelCfgTypeDef;
00214 
00215 /**
00216   * @brief  Simple capture mode configuration definition
00217   */
00218 typedef struct
00219 {
00220   uint32_t Event;             /*!< Specifies the external event triggering the capture.
00221                                    This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
00222   uint32_t EventPolarity;     /*!< Specifies the polarity of the external event (in case of level sensitivity).
00223                                    This parameter can be a value of @ref HRTIM_External_Event_Polarity */
00224   uint32_t EventSensitivity;  /*!< Specifies the sensitivity of the external event.
00225                                    This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
00226   uint32_t EventFilter;       /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
00227                                    This parameter can be a value of @ref HRTIM_External_Event_Filter */
00228 } HRTIM_SimpleCaptureChannelCfgTypeDef;
00229 
00230 /**
00231   * @brief  Simple One Pulse mode configuration definition
00232   */
00233 typedef struct
00234 {
00235   uint32_t Pulse;             /*!< Specifies the compare value to be loaded into the Compare Register.
00236                                    The compare value must be above or equal to 3 periods of the fHRTIM clock */
00237   uint32_t OutputPolarity;    /*!< Specifies the output polarity.
00238                                    This parameter can be any value of @ref HRTIM_Output_Polarity */
00239   uint32_t OutputIdleLevel;   /*!< Specifies whether the output level is active or inactive when in IDLE state.
00240                                    This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
00241   uint32_t Event;             /*!< Specifies the external event triggering the pulse generation.
00242                                    This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
00243   uint32_t EventPolarity;     /*!< Specifies the polarity of the external event (in case of level sensitivity).
00244                                    This parameter can be a value of @ref HRTIM_External_Event_Polarity */
00245   uint32_t EventSensitivity;  /*!< Specifies the sensitivity of the external event.
00246                                    This parameter can be a value of @ref HRTIM_External_Event_Sensitivity. */
00247   uint32_t EventFilter;       /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
00248                                    This parameter can be a value of @ref HRTIM_External_Event_Filter */
00249 } HRTIM_SimpleOnePulseChannelCfgTypeDef;
00250 
00251 /**
00252   * @brief  Timer configuration definition
00253   */
00254 typedef struct
00255 {
00256   uint32_t InterruptRequests;      /*!< Relevant for all HRTIM timers, including the master.
00257                                        Specifies which interrupts requests must enabled for the timer.
00258                                        This parameter can be any combination of  @ref HRTIM_Master_Interrupt_Enable
00259                                        or @ref HRTIM_Timing_Unit_Interrupt_Enable */
00260   uint32_t DMARequests;            /*!< Relevant for all HRTIM timers, including the master.
00261                                        Specifies which DMA requests must be enabled for the timer.
00262                                        This parameter can be any combination of  @ref HRTIM_Master_DMA_Request_Enable
00263                                        or @ref HRTIM_Timing_Unit_DMA_Request_Enable */
00264   uint32_t DMASrcAddress;          /*!< Relevant for all HRTIM timers, including the master.
00265                                        Specifies the address of the source address of the DMA transfer */
00266   uint32_t DMADstAddress;          /*!< Relevant for all HRTIM timers, including the master.
00267                                        Specifies the address of the destination address of the DMA transfer */
00268   uint32_t DMASize;                /*!< Relevant for all HRTIM timers, including the master.
00269                                        Specifies the size of the DMA transfer */
00270   uint32_t HalfModeEnable;         /*!< Relevant for all HRTIM timers, including the master.
00271                                         Specifies whether or not half mode is enabled
00272                                         This parameter can be any value of @ref HRTIM_Half_Mode_Enable  */
00273   uint32_t StartOnSync;            /*!< Relevant for all HRTIM timers, including the master.
00274                                        Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
00275                                         This parameter can be any value of @ref HRTIM_Start_On_Sync_Input_Event  */
00276   uint32_t ResetOnSync;            /*!< Relevant for all HRTIM timers, including the master.
00277                                         Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
00278                                         This parameter can be any value of @ref HRTIM_Reset_On_Sync_Input_Event  */
00279   uint32_t DACSynchro;             /*!< Relevant for all HRTIM timers, including the master.
00280                                         Indicates whether or not the a DAC synchronization event is generated.
00281                                         This parameter can be any value of @ref HRTIM_DAC_Synchronization   */
00282   uint32_t PreloadEnable;          /*!< Relevant for all HRTIM timers, including the master.
00283                                         Specifies whether or not register preload is enabled.
00284                                         This parameter can be any value of @ref HRTIM_Register_Preload_Enable  */
00285   uint32_t UpdateGating;           /*!< Relevant for all HRTIM timers, including the master.
00286                                         Specifies how the update occurs with respect to a burst DMA transaction or
00287                                         update enable inputs (Slave timers only).
00288                                         This parameter can be any value of @ref HRTIM_Update_Gating   */
00289   uint32_t BurstMode;              /*!< Relevant for all HRTIM timers, including the master.
00290                                         Specifies how the timer behaves during a burst mode operation.
00291                                         This parameter can be any value of @ref HRTIM_Timer_Burst_Mode  */
00292   uint32_t RepetitionUpdate;       /*!< Relevant for all HRTIM timers, including the master.
00293                                         Specifies whether or not registers update is triggered by the repetition event.
00294                                         This parameter can be any value of @ref HRTIM_Timer_Repetition_Update */
00295   uint32_t PushPull;               /*!< Relevant for Timer A to Timer E.
00296                                         Specifies whether or not the push-pull mode is enabled.
00297                                         This parameter can be any value of @ref HRTIM_Timer_Push_Pull_Mode */
00298   uint32_t FaultEnable;            /*!< Relevant for Timer A to Timer E.
00299                                         Specifies which fault channels are enabled for the timer.
00300                                         This parameter can be a combination of @ref HRTIM_Timer_Fault_Enabling  */
00301   uint32_t FaultLock;              /*!< Relevant for Timer A to Timer E.
00302                                         Specifies whether or not fault enabling status is write protected.
00303                                         This parameter can be a value of @ref HRTIM_Timer_Fault_Lock */
00304   uint32_t DeadTimeInsertion;      /*!< Relevant for Timer A to Timer E.
00305                                         Specifies whether or not dead-time insertion is enabled for the timer.
00306                                         This parameter can be a value of @ref HRTIM_Timer_Deadtime_Insertion */
00307   uint32_t DelayedProtectionMode;  /*!< Relevant for Timer A to Timer E.
00308                                         Specifies the delayed protection mode.
00309                                         This parameter can be a value of @ref HRTIM_Timer_Delayed_Protection_Mode */
00310   uint32_t UpdateTrigger;          /*!< Relevant for Timer A to Timer E.
00311                                         Specifies source(s) triggering the timer registers update.
00312                                         This parameter can be a combination of @ref HRTIM_Timer_Update_Trigger */
00313   uint32_t ResetTrigger;           /*!< Relevant for Timer A to Timer E.
00314                                         Specifies source(s) triggering the timer counter reset.
00315                                         This parameter can be a combination of @ref HRTIM_Timer_Reset_Trigger */
00316   uint32_t ResetUpdate;           /*!<  Relevant for Timer A to Timer E.
00317                                         Specifies whether or not registers update is triggered when the timer counter is reset.
00318                                         This parameter can be a value of @ref HRTIM_Timer_Reset_Update */
00319 } HRTIM_TimerCfgTypeDef;
00320 
00321 /**
00322   * @brief  Compare unit configuration definition
00323   */
00324 typedef struct
00325 {
00326   uint32_t CompareValue;         /*!< Specifies the compare value of the timer compare unit.
00327                                       The minimum value must be greater than or equal to 3 periods of the fHRTIM clock.
00328                                       The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRTIM clock */
00329   uint32_t AutoDelayedMode;      /*!< Specifies the auto delayed mode for compare unit 2 or 4.
00330                                       This parameter can be a value of @ref HRTIM_Compare_Unit_Auto_Delayed_Mode */
00331   uint32_t AutoDelayedTimeout;   /*!< Specifies compare value for timing unit 1 or 3 when auto delayed mode with time out is selected.
00332                                       CompareValue +  AutoDelayedTimeout must be less than 0xFFFFU */
00333 } HRTIM_CompareCfgTypeDef;
00334 
00335 /**
00336   * @brief  Capture unit configuration definition
00337   */
00338 typedef struct
00339 {
00340   uint32_t Trigger;          /*!< Specifies source(s) triggering the capture.
00341                                   This parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger */
00342 } HRTIM_CaptureCfgTypeDef;
00343 
00344 /**
00345   * @brief  Output configuration definition
00346   */
00347 typedef struct
00348 {
00349   uint32_t Polarity;                    /*!< Specifies the output polarity.
00350                                              This parameter can be any value of @ref HRTIM_Output_Polarity */
00351   uint32_t SetSource;                   /*!< Specifies the event(s) transitioning the output from its inactive level to its active level.
00352                                              This parameter can be a combination of @ref HRTIM_Output_Set_Source */
00353   uint32_t ResetSource;                 /*!< Specifies the event(s) transitioning the output from its active level to its inactive level.
00354                                              This parameter can be a combination of @ref HRTIM_Output_Reset_Source */
00355   uint32_t IdleMode;                    /*!< Specifies whether or not the output is affected by a burst mode operation.
00356                                              This parameter can be any value of @ref HRTIM_Output_Idle_Mode */
00357   uint32_t IdleLevel;                   /*!< Specifies whether the output level is active or inactive when in IDLE state.
00358                                              This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
00359   uint32_t FaultLevel;                  /*!< Specifies whether the output level is active or inactive when in FAULT state.
00360                                              This parameter can be any value of @ref HRTIM_Output_FAULT_Level */
00361   uint32_t ChopperModeEnable;           /*!< Indicates whether or not the chopper mode is enabled
00362                                              This parameter can be any value of @ref HRTIM_Output_Chopper_Mode_Enable */
00363   uint32_t BurstModeEntryDelayed;       /*!< Indicates whether or not dead-time is inserted when entering the IDLE state during a burst mode operation.
00364                                              This parameters can be any value of @ref HRTIM_Output_Burst_Mode_Entry_Delayed */
00365 } HRTIM_OutputCfgTypeDef;
00366 
00367 /**
00368   * @brief  External event filtering in timing units configuration definition
00369   */
00370 typedef struct
00371 {
00372   uint32_t Filter;       /*!< Specifies the type of event filtering within the timing unit.
00373                              This parameter can be a value of @ref HRTIM_Timer_External_Event_Filter */
00374   uint32_t Latch;       /*!< Specifies whether or not the signal is latched.
00375                              This parameter can be a value of @ref HRTIM_Timer_External_Event_Latch */
00376 } HRTIM_TimerEventFilteringCfgTypeDef;
00377 
00378 /**
00379   * @brief  Dead time feature configuration definition
00380   */
00381 typedef struct
00382 {
00383   uint32_t Prescaler;        /*!< Specifies the dead-time prescaler.
00384                                   This parameter can be a value of @ref  HRTIM_Deadtime_Prescaler_Ratio */
00385   uint32_t RisingValue;      /*!< Specifies the dead-time following a rising edge.
00386                                   This parameter can be a number between 0x0 and 0x1FFU */
00387   uint32_t RisingSign;       /*!< Specifies whether the dead-time is positive or negative on rising edge.
00388                                   This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign */
00389   uint32_t RisingLock;       /*!< Specifies whether or not dead-time rising settings (value and sign) are write protected.
00390                                   This parameter can be a value of @ref HRTIM_Deadtime_Rising_Lock */
00391   uint32_t RisingSignLock;   /*!< Specifies whether or not dead-time rising sign is write protected.
00392                                   This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign_Lock */
00393   uint32_t FallingValue;     /*!< Specifies the dead-time following a falling edge.
00394                                   This parameter can be a number between 0x0 and 0x1FFU */
00395   uint32_t FallingSign;      /*!< Specifies whether the dead-time is positive or negative on falling edge.
00396                                   This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign */
00397   uint32_t FallingLock;      /*!< Specifies whether or not dead-time falling settings (value and sign) are write protected.
00398                                   This parameter can be a value of @ref HRTIM_Deadtime_Falling_Lock */
00399   uint32_t FallingSignLock;  /*!< Specifies whether or not dead-time falling sign is write protected.
00400                                   This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign_Lock */
00401 } HRTIM_DeadTimeCfgTypeDef;
00402 
00403 /**
00404   * @brief  Chopper mode configuration definition
00405   */
00406 typedef struct
00407 {
00408   uint32_t CarrierFreq;  /*!< Specifies the Timer carrier frequency value.
00409                               This parameter can be a value of @ref HRTIM_Chopper_Frequency */
00410   uint32_t DutyCycle;    /*!< Specifies the Timer chopper duty cycle value.
00411                               This parameter can be a value of @ref HRTIM_Chopper_Duty_Cycle */
00412   uint32_t StartPulse;   /*!< Specifies the Timer pulse width value.
00413                               This parameter can be a value of @ref HRTIM_Chopper_Start_Pulse_Width */
00414 } HRTIM_ChopperModeCfgTypeDef;
00415 
00416 /**
00417   * @brief  External event channel configuration definition
00418   */
00419 typedef struct
00420 {
00421   uint32_t Source;        /*!< Identifies the source of the external event.
00422                                This parameter can be a value of @ref HRTIM_External_Event_Sources */
00423   uint32_t Polarity;      /*!< Specifies the polarity of the external event (in case of level sensitivity).
00424                                This parameter can be a value of @ref HRTIM_External_Event_Polarity */
00425   uint32_t Sensitivity;   /*!< Specifies the sensitivity of the external event.
00426                                This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
00427   uint32_t Filter;        /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
00428                                This parameter can be a value of @ref HRTIM_External_Event_Filter */
00429   uint32_t FastMode;      /*!< Indicates whether or not low latency mode is enabled for the external event.
00430                                This parameter can be a value of @ref HRTIM_External_Event_Fast_Mode */
00431 } HRTIM_EventCfgTypeDef;
00432 
00433 /**
00434   * @brief  Fault channel configuration definition
00435   */
00436 typedef struct
00437 {
00438   uint32_t Source;        /*!< Identifies the source of the fault.
00439                                This parameter can be a value of @ref HRTIM_Fault_Sources */
00440   uint32_t Polarity;      /*!< Specifies the polarity of the fault event.
00441                                This parameter can be a value of @ref HRTIM_Fault_Polarity */
00442   uint32_t Filter;        /*!< Defines the frequency used to sample the Fault input and the length of the digital filter.
00443                                This parameter can be a value of @ref HRTIM_Fault_Filter */
00444   uint32_t Lock;          /*!< Indicates whether or not fault programming bits are write protected.
00445                                This parameter can be a value of @ref HRTIM_Fault_Lock */
00446 } HRTIM_FaultCfgTypeDef;
00447 
00448 /**
00449   * @brief  Burst mode configuration definition
00450   */
00451 typedef struct
00452 {
00453   uint32_t Mode;           /*!< Specifies the burst mode operating mode.
00454                                 This parameter can be a value of @ref HRTIM_Burst_Mode_Operating_Mode */
00455   uint32_t ClockSource;    /*!< Specifies the burst mode clock source.
00456                                 This parameter can be a value of @ref HRTIM_Burst_Mode_Clock_Source */
00457   uint32_t Prescaler;      /*!< Specifies the burst mode prescaler.
00458                                 This parameter can be a value of @ref HRTIM_Burst_Mode_Prescaler */
00459   uint32_t PreloadEnable;  /*!< Specifies whether or not preload is enabled for burst mode related registers (HRTIM_BMCMPR and HRTIM_BMPER).
00460                                 This parameter can be a combination of @ref HRTIM_Burst_Mode_Register_Preload_Enable  */
00461   uint32_t Trigger;        /*!< Specifies the event(s) triggering the burst operation.
00462                                 This parameter can be a combination of @ref HRTIM_Burst_Mode_Trigger  */
00463   uint32_t IdleDuration;   /*!< Specifies number of periods during which the selected timers are in idle state.
00464                                 This parameter can be a number between 0x0 and 0xFFFF  */
00465   uint32_t Period;         /*!< Specifies burst mode repetition period.
00466                                 This parameter can be a number between 0x1 and 0xFFFF  */
00467 } HRTIM_BurstModeCfgTypeDef;
00468 
00469 /**
00470   * @brief  ADC trigger configuration definition
00471   */
00472 typedef struct
00473 {
00474   uint32_t UpdateSource;  /*!< Specifies the ADC trigger update source.
00475                                This parameter can be a value of @ref HRTIM_ADC_Trigger_Update_Source  */
00476   uint32_t Trigger;       /*!< Specifies the event(s) triggering the ADC conversion.
00477                                This parameter can be a combination of @ref HRTIM_ADC_Trigger_Event  */
00478 } HRTIM_ADCTriggerCfgTypeDef;
00479 
00480 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
00481 /**
00482   * @brief  HAL HRTIM Callback ID enumeration definition
00483   */
00484 typedef enum {
00485   HAL_HRTIM_FAULT1CALLBACK_CB_ID               = 0x00U, /*!< Fault 1 interrupt callback ID                         */
00486   HAL_HRTIM_FAULT2CALLBACK_CB_ID               = 0x01U, /*!< Fault 2 interrupt callback ID                         */
00487   HAL_HRTIM_FAULT3CALLBACK_CB_ID               = 0x02U, /*!< Fault 3 interrupt callback ID                         */
00488   HAL_HRTIM_FAULT4CALLBACK_CB_ID               = 0x03U, /*!< Fault 4 interrupt callback ID                         */
00489   HAL_HRTIM_FAULT5CALLBACK_CB_ID               = 0x04U, /*!< Fault 5 interrupt callback ID                         */
00490   HAL_HRTIM_SYSTEMFAULTCALLBACK_CB_ID          = 0x05U, /*!< System fault interrupt callback ID                    */
00491   HAL_HRTIM_BURSTMODEPERIODCALLBACK_CB_ID      = 0x07U, /*!< Burst mode period interrupt callback ID               */
00492   HAL_HRTIM_SYNCHRONIZATIONEVENTCALLBACK_CB_ID = 0x08U, /*!< Sync Input interrupt callback ID                      */
00493   HAL_HRTIM_ERRORCALLBACK_CB_ID                = 0x09U, /*!< DMA error callback ID                                 */
00494 
00495   HAL_HRTIM_REGISTERSUPDATECALLBACK_CB_ID      = 0x10U, /*!< Timer x Update interrupt callback ID                  */
00496   HAL_HRTIM_REPETITIONEVENTCALLBACK_CB_ID      = 0x11U, /*!< Timer x Repetition interrupt callback ID              */
00497   HAL_HRTIM_COMPARE1EVENTCALLBACK_CB_ID        = 0x12U, /*!< Timer x Compare 1 match interrupt callback ID         */
00498   HAL_HRTIM_COMPARE2EVENTCALLBACK_CB_ID        = 0x13U, /*!< Timer x Compare 2 match interrupt callback ID         */
00499   HAL_HRTIM_COMPARE3EVENTCALLBACK_CB_ID        = 0x14U, /*!< Timer x Compare 3 match interrupt callback ID         */
00500   HAL_HRTIM_COMPARE4EVENTCALLBACK_CB_ID        = 0x15U, /*!< Timer x Compare 4 match interrupt callback ID         */
00501   HAL_HRTIM_CAPTURE1EVENTCALLBACK_CB_ID        = 0x16U, /*!< Timer x Capture 1 interrupts callback ID              */
00502   HAL_HRTIM_CAPTURE2EVENTCALLBACK_CB_ID        = 0x17U, /*!< Timer x Capture 2 interrupts callback ID              */
00503   HAL_HRTIM_DELAYEDPROTECTIONCALLBACK_CB_ID    = 0x18U, /*!< Timer x Delayed protection interrupt callback ID      */
00504   HAL_HRTIM_COUNTERRESETCALLBACK_CB_ID         = 0x19U, /*!< Timer x counter reset/roll-over interrupt callback ID */
00505   HAL_HRTIM_OUTPUT1SETCALLBACK_CB_ID           = 0x1AU, /*!< Timer x output 1 set interrupt callback ID            */
00506   HAL_HRTIM_OUTPUT1RESETCALLBACK_CB_ID         = 0x1BU, /*!< Timer x output 1 reset interrupt callback ID          */
00507   HAL_HRTIM_OUTPUT2SETCALLBACK_CB_ID           = 0x1CU, /*!< Timer x output 2 set interrupt callback ID            */
00508   HAL_HRTIM_OUTPUT2RESETCALLBACK_CB_ID         = 0x1DU, /*!< Timer x output 2 reset interrupt callback ID          */
00509   HAL_HRTIM_BURSTDMATRANSFERCALLBACK_CB_ID     = 0x1EU, /*!< Timer x Burst DMA completed interrupt callback ID     */
00510 
00511   HAL_HRTIM_MSPINIT_CB_ID                      = 0x20U, /*!< HRTIM MspInit callback ID                             */
00512   HAL_HRTIM_MSPDEINIT_CB_ID                    = 0x21U, /*!< HRTIM MspInit callback ID                             */
00513 }HAL_HRTIM_CallbackIDTypeDef;
00514 
00515 /**
00516   * @brief  HAL HRTIM Callback function pointer definitions
00517   */
00518 typedef void (* pHRTIM_CallbackTypeDef)(HRTIM_HandleTypeDef *hhrtim);       /*!< HRTIM related callback function pointer         */
00519 
00520 typedef void (* pHRTIM_TIMxCallbackTypeDef)(HRTIM_HandleTypeDef *hhrtim,    /*!< HRTIM Timer x related callback function pointer */
00521                                             uint32_t TimerIdx);
00522 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
00523 
00524 /**
00525   * @}
00526   */
00527 
00528 /* Exported constants --------------------------------------------------------*/
00529 /** @defgroup HRTIM_Exported_Constants HRTIM Exported Constants
00530   * @{
00531   */
00532 
00533 /** @defgroup HRTIM_Timer_Index HRTIM Timer Index
00534   * @{
00535   * @brief Constants defining the timer indexes
00536   */
00537 #define HRTIM_TIMERINDEX_TIMER_A 0x0U   /*!< Index used to access timer A registers */
00538 #define HRTIM_TIMERINDEX_TIMER_B 0x1U   /*!< Index used to access timer B registers */
00539 #define HRTIM_TIMERINDEX_TIMER_C 0x2U   /*!< Index used to access timer C registers */
00540 #define HRTIM_TIMERINDEX_TIMER_D 0x3U   /*!< Index used to access timer D registers */
00541 #define HRTIM_TIMERINDEX_TIMER_E 0x4U   /*!< Index used to access timer E registers */
00542 #define HRTIM_TIMERINDEX_MASTER  0x5U   /*!< Index used to access master registers  */
00543 #define HRTIM_TIMERINDEX_COMMON  0xFFU  /*!< Index used to access HRTIM common registers */
00544 /**
00545   * @}
00546   */
00547 
00548 /** @defgroup HRTIM_Timer_identifier HRTIM Timer identifier
00549   * @{
00550   * @brief Constants defining timer identifiers
00551   */
00552 #define HRTIM_TIMERID_MASTER  (HRTIM_MCR_MCEN)   /*!< Master identifier  */
00553 #define HRTIM_TIMERID_TIMER_A (HRTIM_MCR_TACEN)  /*!< Timer A identifier */
00554 #define HRTIM_TIMERID_TIMER_B (HRTIM_MCR_TBCEN)  /*!< Timer B identifier */
00555 #define HRTIM_TIMERID_TIMER_C (HRTIM_MCR_TCCEN)  /*!< Timer C identifier */
00556 #define HRTIM_TIMERID_TIMER_D (HRTIM_MCR_TDCEN)  /*!< Timer D identifier */
00557 #define HRTIM_TIMERID_TIMER_E (HRTIM_MCR_TECEN)  /*!< Timer E identifier */
00558 /**
00559  * @}
00560  */
00561 
00562 /** @defgroup HRTIM_Compare_Unit HRTIM Compare Unit
00563   * @{
00564   * @brief Constants defining compare unit identifiers
00565   */
00566 #define HRTIM_COMPAREUNIT_1 0x00000001U  /*!< Compare unit 1 identifier */
00567 #define HRTIM_COMPAREUNIT_2 0x00000002U  /*!< Compare unit 2 identifier */
00568 #define HRTIM_COMPAREUNIT_3 0x00000004U  /*!< Compare unit 3 identifier */
00569 #define HRTIM_COMPAREUNIT_4 0x00000008U  /*!< Compare unit 4 identifier */
00570  /**
00571   * @}
00572   */
00573 
00574 /** @defgroup HRTIM_Capture_Unit HRTIM Capture Unit
00575   * @{
00576   * @brief Constants defining capture unit identifiers
00577   */
00578 #define HRTIM_CAPTUREUNIT_1 0x00000001U  /*!< Capture unit 1 identifier */
00579 #define HRTIM_CAPTUREUNIT_2 0x00000002U  /*!< Capture unit 2 identifier */
00580 /**
00581   * @}
00582   */
00583 
00584 /** @defgroup HRTIM_Timer_Output HRTIM Timer Output
00585   * @{
00586   * @brief Constants defining timer output identifiers
00587   */
00588 #define HRTIM_OUTPUT_TA1  0x00000001U  /*!< Timer A - Output 1 identifier */
00589 #define HRTIM_OUTPUT_TA2  0x00000002U  /*!< Timer A - Output 2 identifier */
00590 #define HRTIM_OUTPUT_TB1  0x00000004U  /*!< Timer B - Output 1 identifier */
00591 #define HRTIM_OUTPUT_TB2  0x00000008U  /*!< Timer B - Output 2 identifier */
00592 #define HRTIM_OUTPUT_TC1  0x00000010U  /*!< Timer C - Output 1 identifier */
00593 #define HRTIM_OUTPUT_TC2  0x00000020U  /*!< Timer C - Output 2 identifier */
00594 #define HRTIM_OUTPUT_TD1  0x00000040U  /*!< Timer D - Output 1 identifier */
00595 #define HRTIM_OUTPUT_TD2  0x00000080U  /*!< Timer D - Output 2 identifier */
00596 #define HRTIM_OUTPUT_TE1  0x00000100U  /*!< Timer E - Output 1 identifier */
00597 #define HRTIM_OUTPUT_TE2  0x00000200U  /*!< Timer E - Output 2 identifier */
00598 /**
00599   * @}
00600   */
00601 
00602 /** @defgroup HRTIM_ADC_Trigger HRTIM ADC Trigger
00603   * @{
00604   * @brief Constants defining ADC triggers identifiers
00605   */
00606 #define HRTIM_ADCTRIGGER_1  0x00000001U  /*!< ADC trigger 1 identifier */
00607 #define HRTIM_ADCTRIGGER_2  0x00000002U  /*!< ADC trigger 2 identifier */
00608 #define HRTIM_ADCTRIGGER_3  0x00000004U  /*!< ADC trigger 3 identifier */
00609 #define HRTIM_ADCTRIGGER_4  0x00000008U  /*!< ADC trigger 4 identifier */
00610 
00611 #define IS_HRTIM_ADCTRIGGER(ADCTRIGGER)\
00612     (((ADCTRIGGER) == HRTIM_ADCTRIGGER_1)   || \
00613      ((ADCTRIGGER) == HRTIM_ADCTRIGGER_2)   || \
00614      ((ADCTRIGGER) == HRTIM_ADCTRIGGER_3)   || \
00615      ((ADCTRIGGER) == HRTIM_ADCTRIGGER_4))
00616 /**
00617   * @}
00618   */
00619 /** @defgroup HRTIM_External_Event_Channels HRTIM External Event Channels
00620   * @{
00621   * @brief Constants defining external event channel identifiers
00622   */
00623 #define HRTIM_EVENT_NONE    (0x00000000U)     /*!< Undefined event channel */
00624 #define HRTIM_EVENT_1       (0x00000001U)     /*!< External event channel 1  identifier */
00625 #define HRTIM_EVENT_2       (0x00000002U)     /*!< External event channel 2  identifier */
00626 #define HRTIM_EVENT_3       (0x00000003U)     /*!< External event channel 3  identifier */
00627 #define HRTIM_EVENT_4       (0x00000004U)     /*!< External event channel 4  identifier */
00628 #define HRTIM_EVENT_5       (0x00000005U)     /*!< External event channel 5  identifier */
00629 #define HRTIM_EVENT_6       (0x00000006U)     /*!< External event channel 6  identifier */
00630 #define HRTIM_EVENT_7       (0x00000007U)     /*!< External event channel 7  identifier */
00631 #define HRTIM_EVENT_8       (0x00000008U)     /*!< External event channel 8  identifier */
00632 #define HRTIM_EVENT_9       (0x00000009U)     /*!< External event channel 9  identifier */
00633 #define HRTIM_EVENT_10      (0x0000000AU)     /*!< External event channel 10 identifier */
00634 /**
00635   * @}
00636   */
00637 
00638 /** @defgroup HRTIM_Fault_Channel HRTIM Fault Channel
00639   * @{
00640   * @brief Constants defining fault channel identifiers
00641   */
00642 #define HRTIM_FAULT_1      (0x01U)     /*!< Fault channel 1 identifier */
00643 #define HRTIM_FAULT_2      (0x02U)     /*!< Fault channel 2 identifier */
00644 #define HRTIM_FAULT_3      (0x04U)     /*!< Fault channel 3 identifier */
00645 #define HRTIM_FAULT_4      (0x08U)     /*!< Fault channel 4 identifier */
00646 #define HRTIM_FAULT_5      (0x10U)     /*!< Fault channel 5 identifier */
00647 /**
00648   * @}
00649   */
00650 
00651 
00652  /** @defgroup HRTIM_Prescaler_Ratio HRTIM Prescaler Ratio
00653   * @{
00654   * @brief Constants defining timer high-resolution clock prescaler ratio.
00655   */
00656 #define HRTIM_PRESCALERRATIO_DIV1     (0x00000005U)  /*!< fHRCK: fHRTIM = 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)         */
00657 #define HRTIM_PRESCALERRATIO_DIV2     (0x00000006U)  /*!< fHRCK: fHRTIM / 2U = 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)     */
00658 #define HRTIM_PRESCALERRATIO_DIV4     (0x00000007U)  /*!< fHRCK: fHRTIM / 4U = 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)        */
00659 /**
00660   * @}
00661   */
00662 
00663 /** @defgroup HRTIM_Counter_Operating_Mode HRTIM Counter Operating Mode
00664   * @{
00665   * @brief Constants defining timer counter operating mode.
00666   */
00667 #define HRTIM_MODE_CONTINUOUS               (0x00000008U)  /*!< The timer operates in continuous (free-running) mode */
00668 #define HRTIM_MODE_SINGLESHOT               (0x00000000U)  /*!< The timer operates in non retriggerable single-shot mode */
00669 #define HRTIM_MODE_SINGLESHOT_RETRIGGERABLE (0x00000010U)  /*!< The timer operates in retriggerable single-shot mode */
00670 /**
00671   * @}
00672   */
00673 
00674 /** @defgroup HRTIM_Half_Mode_Enable HRTIM Half Mode Enable
00675   * @{
00676   * @brief Constants defining half mode enabling status.
00677   */
00678 #define HRTIM_HALFMODE_DISABLED (0x00000000U)  /*!< Half mode is disabled */
00679 #define HRTIM_HALFMODE_ENABLED  (0x00000020U)  /*!< Half mode is enabled */
00680 /**
00681   * @}
00682   */
00683 
00684 /** @defgroup HRTIM_Start_On_Sync_Input_Event HRTIM Start On Sync Input Event
00685   * @{
00686   * @brief Constants defining the timer behavior following the synchronization event
00687   */
00688 #define HRTIM_SYNCSTART_DISABLED (0x00000000U)           /*!< Synchronization input event has effect on the timer */
00689 #define HRTIM_SYNCSTART_ENABLED  (HRTIM_MCR_SYNCSTRTM)   /*!< Synchronization input event starts the timer */
00690 /**
00691   * @}
00692   */
00693 
00694 /** @defgroup HRTIM_Reset_On_Sync_Input_Event HRTIM Reset On Sync Input Event
00695   * @{
00696   * @brief Constants defining the timer behavior following the synchronization event
00697   */
00698 #define HRTIM_SYNCRESET_DISABLED (0x00000000U)           /*!< Synchronization input event has effect on the timer */
00699 #define HRTIM_SYNCRESET_ENABLED  (HRTIM_MCR_SYNCRSTM)    /*!< Synchronization input event resets the timer */
00700 /**
00701   * @}
00702   */
00703 
00704 /** @defgroup HRTIM_DAC_Synchronization HRTIM DAC Synchronization
00705   * @{
00706   * @brief Constants defining on which output the DAC synchronization event is sent
00707   */
00708 #define HRTIM_DACSYNC_NONE          0x00000000U                                 /*!< No DAC synchronization event generated */
00709 #define HRTIM_DACSYNC_DACTRIGOUT_1  (HRTIM_MCR_DACSYNC_0)                       /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update */
00710 #define HRTIM_DACSYNC_DACTRIGOUT_2  (HRTIM_MCR_DACSYNC_1)                       /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update */
00711 #define HRTIM_DACSYNC_DACTRIGOUT_3  (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC update generated on DACTrigOut3 output upon timer update */
00712 /**
00713   * @}
00714   */
00715 
00716 /** @defgroup HRTIM_Register_Preload_Enable HRTIM Register Preload Enable
00717   * @{
00718   * @brief Constants defining whether a write access into a preloadable
00719   *        register is done into the active or the preload register.
00720   */
00721 #define HRTIM_PRELOAD_DISABLED (0x00000000U)           /*!< Preload disabled: the write access is directly done into the active register */
00722 #define HRTIM_PRELOAD_ENABLED  (HRTIM_MCR_PREEN)       /*!< Preload enabled: the write access is done into the preload register */
00723 /**
00724   * @}
00725   */
00726 
00727 /** @defgroup HRTIM_Update_Gating HRTIM Update Gating
00728   * @{
00729   * @brief Constants defining how the update occurs relatively to the burst DMA
00730   *        transaction and the external update request on update enable inputs 1 to 3.
00731   */
00732 #define HRTIM_UPDATEGATING_INDEPENDENT     0x00000000U                                                           /*!< Update done independently from the DMA burst transfer completion */
00733 #define HRTIM_UPDATEGATING_DMABURST        (HRTIM_TIMCR_UPDGAT_0)                                                /*!< Update done when the DMA burst transfer is completed */
00734 #define HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1)                                                /*!< Update done on timer roll-over following a DMA burst transfer completion*/
00735 #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 */
00736 #define HRTIM_UPDATEGATING_UPDEN2          (HRTIM_TIMCR_UPDGAT_2)                                                /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2U */
00737 #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 */
00738 #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 */
00739 #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 */
00740 #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 */
00741 /**
00742   * @}
00743   */
00744 
00745 /** @defgroup HRTIM_Timer_Burst_Mode HRTIM Timer Burst Mode
00746   * @{
00747   * @brief Constants defining how the timer behaves during a burst
00748             mode operation.
00749   */
00750 #define HRTIM_TIMERBURSTMODE_MAINTAINCLOCK 0x00000000U           /*!< Timer counter clock is maintained and the timer operates normally */
00751 #define HRTIM_TIMERBURSTMODE_RESETCOUNTER  (HRTIM_BMCR_MTBM)     /*!< Timer counter clock is stopped and the counter is reset */
00752 /**
00753   * @}
00754   */
00755 
00756 /** @defgroup HRTIM_Timer_Repetition_Update HRTIM Timer Repetition Update
00757   * @{
00758   * @brief Constants defining whether registers are updated when the timer
00759   *        repetition period is completed (either due to roll-over or
00760   *        reset events)
00761   */
00762 #define HRTIM_UPDATEONREPETITION_DISABLED  0x00000000U           /*!< Update on repetition disabled */
00763 #define HRTIM_UPDATEONREPETITION_ENABLED   (HRTIM_MCR_MREPU)     /*!< Update on repetition enabled */
00764 /**
00765   * @}
00766   */
00767 
00768 
00769 /** @defgroup HRTIM_Timer_Push_Pull_Mode HRTIM Timer Push Pull Mode
00770   * @{
00771   * @brief Constants defining whether or not the push-pull mode is enabled for
00772   *        a timer.
00773   */
00774 #define HRTIM_TIMPUSHPULLMODE_DISABLED     0x00000000U           /*!< Push-Pull mode disabled */
00775 #define HRTIM_TIMPUSHPULLMODE_ENABLED      (HRTIM_TIMCR_PSHPLL)  /*!< Push-Pull mode enabled */
00776 /**
00777   * @}
00778   */
00779 
00780 /** @defgroup HRTIM_Timer_Fault_Enabling HRTIM Timer Fault Enabling
00781   * @{
00782   * @brief Constants defining whether a fault channel is enabled for a timer
00783   */
00784 #define HRTIM_TIMFAULTENABLE_NONE     0x00000000U           /*!< No fault enabled */
00785 #define HRTIM_TIMFAULTENABLE_FAULT1   (HRTIM_FLTR_FLT1EN)   /*!< Fault 1 enabled */
00786 #define HRTIM_TIMFAULTENABLE_FAULT2   (HRTIM_FLTR_FLT2EN)   /*!< Fault 2 enabled */
00787 #define HRTIM_TIMFAULTENABLE_FAULT3   (HRTIM_FLTR_FLT3EN)   /*!< Fault 3 enabled */
00788 #define HRTIM_TIMFAULTENABLE_FAULT4   (HRTIM_FLTR_FLT4EN)   /*!< Fault 4 enabled */
00789 #define HRTIM_TIMFAULTENABLE_FAULT5   (HRTIM_FLTR_FLT5EN)   /*!< Fault 5 enabled */
00790 /**
00791   * @}
00792   */
00793 
00794 /** @defgroup HRTIM_Timer_Fault_Lock HRTIM Timer Fault Lock
00795   * @{
00796   * @brief Constants defining whether or not fault enabling bits are write
00797   *        protected for a timer
00798   */
00799 #define HRTIM_TIMFAULTLOCK_READWRITE (0x00000000U)           /*!< Timer fault enabling bits are read/write */
00800 #define HRTIM_TIMFAULTLOCK_READONLY  (HRTIM_FLTR_FLTLCK)     /*!< Timer fault enabling bits are read only */
00801 /**
00802   * @}
00803   */
00804 
00805 /** @defgroup HRTIM_Timer_Deadtime_Insertion HRTIM Timer Dead-time Insertion
00806   * @{
00807   * @brief Constants defining whether or not fault the dead time insertion
00808   *        feature is enabled for a timer
00809   */
00810 #define HRTIM_TIMDEADTIMEINSERTION_DISABLED   (0x00000000U)           /*!< Output 1 and output 2 signals are independent */
00811 #define HRTIM_TIMDEADTIMEINSERTION_ENABLED    HRTIM_OUTR_DTEN         /*!< Dead-time is inserted between output 1 and output 2U */
00812 /**
00813   * @}
00814   */
00815 
00816 /** @defgroup HRTIM_Timer_Delayed_Protection_Mode HRTIM Timer Delayed Protection Mode
00817   * @{
00818   * @brief Constants defining all possible delayed protection modes
00819   *        for a timer. Also define the source and outputs on which the delayed
00820   *        protection schemes are applied
00821   */
00822 #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED          (0x00000000U)                                                                           /*!< No action */
00823 #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6  (HRTIM_OUTR_DLYPRTEN)                                                                   /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6U */
00824 #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 */
00825 #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 */
00826 #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 */
00827 #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 */
00828 #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 */
00829 #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 */
00830 #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 */
00831 
00832 #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DISABLED            (0x00000000U)                                                                             /*!< No action */
00833 #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_EEV8    (HRTIM_OUTR_DLYPRTEN)                                                                     /*!< Timers D, E: Output 1 delayed Idle on external Event 6U */
00834 #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 */
00835 #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 */
00836 #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 */
00837 #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 */
00838 #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 */
00839 #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 */
00840 #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 */
00841 /**
00842   * @}
00843   */
00844 
00845 /** @defgroup HRTIM_Timer_Update_Trigger HRTIM Timer Update Trigger
00846   * @{
00847   * @brief Constants defining whether the registers update is done synchronously
00848   *        with any other timer or master update
00849   */
00850 #define HRTIM_TIMUPDATETRIGGER_NONE     0x00000000U          /*!< Register update is disabled */
00851 #define HRTIM_TIMUPDATETRIGGER_MASTER   (HRTIM_TIMCR_MSTU)   /*!< Register update is triggered by the master timer update */
00852 #define HRTIM_TIMUPDATETRIGGER_TIMER_A  (HRTIM_TIMCR_TAU)    /*!< Register update is triggered by the timer A update */
00853 #define HRTIM_TIMUPDATETRIGGER_TIMER_B  (HRTIM_TIMCR_TBU)    /*!< Register update is triggered by the timer B update */
00854 #define HRTIM_TIMUPDATETRIGGER_TIMER_C  (HRTIM_TIMCR_TCU)    /*!< Register update is triggered by the timer C update*/
00855 #define HRTIM_TIMUPDATETRIGGER_TIMER_D  (HRTIM_TIMCR_TDU)    /*!< Register update is triggered by the timer D update */
00856 #define HRTIM_TIMUPDATETRIGGER_TIMER_E  (HRTIM_TIMCR_TEU)    /*!< Register update is triggered by the timer E update */
00857 /**
00858   * @}
00859   */
00860 
00861 /** @defgroup HRTIM_Timer_Reset_Trigger HRTIM Timer Reset Trigger
00862   * @{
00863   * @brief Constants defining the events that can be selected to trigger the reset
00864   *        of the timer counter
00865   */
00866 #define HRTIM_TIMRESETTRIGGER_NONE        0x00000000U            /*!< No counter reset trigger */
00867 #define HRTIM_TIMRESETTRIGGER_UPDATE      (HRTIM_RSTR_UPDATE)    /*!< The timer counter is reset upon update event */
00868 #define HRTIM_TIMRESETTRIGGER_CMP2        (HRTIM_RSTR_CMP2)      /*!< The timer counter is reset upon Timer Compare 2 event */
00869 #define HRTIM_TIMRESETTRIGGER_CMP4        (HRTIM_RSTR_CMP4)      /*!< The timer counter is reset upon Timer Compare 4 event */
00870 #define HRTIM_TIMRESETTRIGGER_MASTER_PER  (HRTIM_RSTR_MSTPER)    /*!< The timer counter is reset upon master timer period event */
00871 #define HRTIM_TIMRESETTRIGGER_MASTER_CMP1 (HRTIM_RSTR_MSTCMP1)   /*!< The timer counter is reset upon master timer Compare 1 event */
00872 #define HRTIM_TIMRESETTRIGGER_MASTER_CMP2 (HRTIM_RSTR_MSTCMP2)   /*!< The timer counter is reset upon master timer Compare 2 event */
00873 #define HRTIM_TIMRESETTRIGGER_MASTER_CMP3 (HRTIM_RSTR_MSTCMP3)   /*!< The timer counter is reset upon master timer Compare 3 event */
00874 #define HRTIM_TIMRESETTRIGGER_MASTER_CMP4 (HRTIM_RSTR_MSTCMP4)   /*!< The timer counter is reset upon master timer Compare 4 event */
00875 #define HRTIM_TIMRESETTRIGGER_EEV_1       (HRTIM_RSTR_EXTEVNT1)  /*!< The timer counter is reset upon external event 1U */
00876 #define HRTIM_TIMRESETTRIGGER_EEV_2       (HRTIM_RSTR_EXTEVNT2)  /*!< The timer counter is reset upon external event 2U */
00877 #define HRTIM_TIMRESETTRIGGER_EEV_3       (HRTIM_RSTR_EXTEVNT3)  /*!< The timer counter is reset upon external event 3U */
00878 #define HRTIM_TIMRESETTRIGGER_EEV_4       (HRTIM_RSTR_EXTEVNT4)  /*!< The timer counter is reset upon external event 4U */
00879 #define HRTIM_TIMRESETTRIGGER_EEV_5       (HRTIM_RSTR_EXTEVNT5)  /*!< The timer counter is reset upon external event 5U */
00880 #define HRTIM_TIMRESETTRIGGER_EEV_6       (HRTIM_RSTR_EXTEVNT6)  /*!< The timer counter is reset upon external event 6U */
00881 #define HRTIM_TIMRESETTRIGGER_EEV_7       (HRTIM_RSTR_EXTEVNT7)  /*!< The timer counter is reset upon external event 7U */
00882 #define HRTIM_TIMRESETTRIGGER_EEV_8       (HRTIM_RSTR_EXTEVNT8)  /*!< The timer counter is reset upon external event 8U */
00883 #define HRTIM_TIMRESETTRIGGER_EEV_9       (HRTIM_RSTR_EXTEVNT9)  /*!< The timer counter is reset upon external event 9U */
00884 #define HRTIM_TIMRESETTRIGGER_EEV_10      (HRTIM_RSTR_EXTEVNT10) /*!< The timer counter is reset upon external event 10U */
00885 #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP1 (HRTIM_RSTR_TIMBCMP1)  /*!< The timer counter is reset upon other timer Compare 1 event */
00886 #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP2 (HRTIM_RSTR_TIMBCMP2)  /*!< The timer counter is reset upon other timer Compare 2 event */
00887 #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP4 (HRTIM_RSTR_TIMBCMP4)  /*!< The timer counter is reset upon other timer Compare 4 event */
00888 #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP1 (HRTIM_RSTR_TIMCCMP1)  /*!< The timer counter is reset upon other timer Compare 1 event */
00889 #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP2 (HRTIM_RSTR_TIMCCMP2)  /*!< The timer counter is reset upon other timer Compare 2 event */
00890 #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP4 (HRTIM_RSTR_TIMCCMP4)  /*!< The timer counter is reset upon other timer Compare 4 event */
00891 #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP1 (HRTIM_RSTR_TIMDCMP1)  /*!< The timer counter is reset upon other timer Compare 1 event */
00892 #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP2 (HRTIM_RSTR_TIMDCMP2)  /*!< The timer counter is reset upon other timer Compare 2 event */
00893 #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP4 (HRTIM_RSTR_TIMDCMP4)  /*!< The timer counter is reset upon other timer Compare 4 event */
00894 #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP1 (HRTIM_RSTR_TIMECMP1)  /*!< The timer counter is reset upon other timer Compare 1 event */
00895 #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP2 (HRTIM_RSTR_TIMECMP2)  /*!< The timer counter is reset upon other timer Compare 2 event */
00896 #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP4 (HRTIM_RSTR_TIMECMP4)  /*!< The timer counter is reset upon other timer Compare 4 event */
00897 /**
00898   * @}
00899   */
00900 
00901 /** @defgroup HRTIM_Timer_Reset_Update HRTIM Timer Reset Update
00902   * @{
00903   * @brief Constants defining whether the register are updated upon Timerx
00904   *        counter reset or roll-over to 0 after reaching the period value
00905   *        in continuous mode
00906   */
00907 #define HRTIM_TIMUPDATEONRESET_DISABLED 0x00000000U           /*!< Update by timer x reset / roll-over disabled */
00908 #define HRTIM_TIMUPDATEONRESET_ENABLED (HRTIM_TIMCR_TRSTU)    /*!< Update by timer x reset / roll-over enabled */
00909 /**
00910   * @}
00911   */
00912 
00913 /** @defgroup HRTIM_Compare_Unit_Auto_Delayed_Mode HRTIM Compare Unit Auto Delayed Mode
00914   * @{
00915   * @brief Constants defining whether the compare register is behaving in
00916   *        regular mode (compare match issued as soon as counter equal compare),
00917   *        or in auto-delayed mode
00918   */
00919 #define HRTIM_AUTODELAYEDMODE_REGULAR                 (0x00000000U)                                   /*!< standard compare mode */
00920 #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT   (HRTIM_TIMCR_DELCMP2_0)                         /*!< Compare event generated only if a capture has occurred */
00921 #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) */
00922 #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) */
00923 /**
00924   * @}
00925   */
00926 
00927 /** @defgroup HRTIM_Simple_OC_Mode HRTIM Simple OC Mode
00928   * @{
00929   * @brief Constants defining the behavior of the output signal when the timer
00930            operates in basic output compare mode
00931   */
00932 #define HRTIM_BASICOCMODE_TOGGLE    (0x00000001U)  /*!< Output toggles when the timer counter reaches the compare value */
00933 #define HRTIM_BASICOCMODE_INACTIVE  (0x00000002U)  /*!< Output forced to active level when the timer counter reaches the compare value */
00934 #define HRTIM_BASICOCMODE_ACTIVE    (0x00000003U)  /*!< Output forced to inactive level when the timer counter reaches the compare value */
00935 
00936 #define IS_HRTIM_BASICOCMODE(BASICOCMODE)\
00937               (((BASICOCMODE) == HRTIM_BASICOCMODE_TOGGLE)   || \
00938                ((BASICOCMODE) == HRTIM_BASICOCMODE_INACTIVE) || \
00939                ((BASICOCMODE) == HRTIM_BASICOCMODE_ACTIVE))
00940 /**
00941   * @}
00942   */
00943 
00944 /** @defgroup HRTIM_Output_Polarity HRTIM Output Polarity
00945   * @{
00946   * @brief Constants defining the polarity of a timer output
00947   */
00948 #define HRTIM_OUTPUTPOLARITY_HIGH    (0x00000000U)           /*!< Output is active HIGH */
00949 #define HRTIM_OUTPUTPOLARITY_LOW     (HRTIM_OUTR_POL1)       /*!< Output is active LOW */
00950 /**
00951   * @}
00952   */
00953 
00954 /** @defgroup HRTIM_Output_Set_Source HRTIM Output Set Source
00955   * @{
00956   * @brief Constants defining the events that can be selected to configure the
00957   *        set crossbar of a timer output
00958   */
00959 #define HRTIM_OUTPUTSET_NONE       0x00000000U                      /*!< Reset the output set crossbar */
00960 #define HRTIM_OUTPUTSET_RESYNC     (HRTIM_SET1R_RESYNC)             /*!< Timer reset event coming solely from software or SYNC input forces the output to its active state */
00961 #define HRTIM_OUTPUTSET_TIMPER     (HRTIM_SET1R_PER)                /*!< Timer period event forces the output to its active state */
00962 #define HRTIM_OUTPUTSET_TIMCMP1    (HRTIM_SET1R_CMP1)               /*!< Timer compare 1 event forces the output to its active state */
00963 #define HRTIM_OUTPUTSET_TIMCMP2    (HRTIM_SET1R_CMP2)               /*!< Timer compare 2 event forces the output to its active state */
00964 #define HRTIM_OUTPUTSET_TIMCMP3    (HRTIM_SET1R_CMP3)               /*!< Timer compare 3 event forces the output to its active state */
00965 #define HRTIM_OUTPUTSET_TIMCMP4    (HRTIM_SET1R_CMP4)               /*!< Timer compare 4 event forces the output to its active state */
00966 #define HRTIM_OUTPUTSET_MASTERPER  (HRTIM_SET1R_MSTPER)             /*!< The master timer period event forces the output to its active state */
00967 #define HRTIM_OUTPUTSET_MASTERCMP1 (HRTIM_SET1R_MSTCMP1)            /*!< Master Timer compare 1 event forces the output to its active state */
00968 #define HRTIM_OUTPUTSET_MASTERCMP2 (HRTIM_SET1R_MSTCMP2)            /*!< Master Timer compare 2 event forces the output to its active state */
00969 #define HRTIM_OUTPUTSET_MASTERCMP3 (HRTIM_SET1R_MSTCMP3)            /*!< Master Timer compare 3 event forces the output to its active state */
00970 #define HRTIM_OUTPUTSET_MASTERCMP4 (HRTIM_SET1R_MSTCMP4)            /*!< Master Timer compare 4 event forces the output to its active state */
00971 #define HRTIM_OUTPUTSET_TIMEV_1    (HRTIM_SET1R_TIMEVNT1)           /*!< Timer event 1 forces the output to its active state */
00972 #define HRTIM_OUTPUTSET_TIMEV_2    (HRTIM_SET1R_TIMEVNT2)           /*!< Timer event 2 forces the output to its active state */
00973 #define HRTIM_OUTPUTSET_TIMEV_3    (HRTIM_SET1R_TIMEVNT3)           /*!< Timer event 3 forces the output to its active state */
00974 #define HRTIM_OUTPUTSET_TIMEV_4    (HRTIM_SET1R_TIMEVNT4)           /*!< Timer event 4 forces the output to its active state */
00975 #define HRTIM_OUTPUTSET_TIMEV_5    (HRTIM_SET1R_TIMEVNT5)           /*!< Timer event 5 forces the output to its active state */
00976 #define HRTIM_OUTPUTSET_TIMEV_6    (HRTIM_SET1R_TIMEVNT6)           /*!< Timer event 6 forces the output to its active state */
00977 #define HRTIM_OUTPUTSET_TIMEV_7    (HRTIM_SET1R_TIMEVNT7)           /*!< Timer event 7 forces the output to its active state */
00978 #define HRTIM_OUTPUTSET_TIMEV_8    (HRTIM_SET1R_TIMEVNT8)           /*!< Timer event 8 forces the output to its active state */
00979 #define HRTIM_OUTPUTSET_TIMEV_9    (HRTIM_SET1R_TIMEVNT9)           /*!< Timer event 9 forces the output to its active state */
00980 #define HRTIM_OUTPUTSET_EEV_1      (HRTIM_SET1R_EXTVNT1)            /*!< External event 1 forces the output to its active state */
00981 #define HRTIM_OUTPUTSET_EEV_2      (HRTIM_SET1R_EXTVNT2)            /*!< External event 2 forces the output to its active state */
00982 #define HRTIM_OUTPUTSET_EEV_3      (HRTIM_SET1R_EXTVNT3)            /*!< External event 3 forces the output to its active state */
00983 #define HRTIM_OUTPUTSET_EEV_4      (HRTIM_SET1R_EXTVNT4)            /*!< External event 4 forces the output to its active state */
00984 #define HRTIM_OUTPUTSET_EEV_5      (HRTIM_SET1R_EXTVNT5)            /*!< External event 5 forces the output to its active state */
00985 #define HRTIM_OUTPUTSET_EEV_6      (HRTIM_SET1R_EXTVNT6)            /*!< External event 6 forces the output to its active state */
00986 #define HRTIM_OUTPUTSET_EEV_7      (HRTIM_SET1R_EXTVNT7)            /*!< External event 7 forces the output to its active state */
00987 #define HRTIM_OUTPUTSET_EEV_8      (HRTIM_SET1R_EXTVNT8)            /*!< External event 8 forces the output to its active state */
00988 #define HRTIM_OUTPUTSET_EEV_9      (HRTIM_SET1R_EXTVNT9)            /*!< External event 9 forces the output to its active state */
00989 #define HRTIM_OUTPUTSET_EEV_10     (HRTIM_SET1R_EXTVNT10)           /*!< External event 10 forces the output to its active state */
00990 #define HRTIM_OUTPUTSET_UPDATE     (HRTIM_SET1R_UPDATE)             /*!< Timer register update event forces the output to its active state */
00991 /**
00992   * @}
00993   */
00994 
00995 /** @defgroup HRTIM_Output_Reset_Source HRTIM Output Reset Source
00996   * @{
00997   * @brief Constants defining the events that can be selected to configure the
00998   *        reset crossbar of a timer output
00999   */
01000 #define HRTIM_OUTPUTRESET_NONE       0x00000000U                      /*!< Reset the output reset crossbar */
01001 #define HRTIM_OUTPUTRESET_RESYNC     (HRTIM_RST1R_RESYNC)             /*!< Timer reset event coming solely from software or SYNC input forces the output to its inactive state */
01002 #define HRTIM_OUTPUTRESET_TIMPER     (HRTIM_RST1R_PER)                /*!< Timer period event forces the output to its inactive state */
01003 #define HRTIM_OUTPUTRESET_TIMCMP1    (HRTIM_RST1R_CMP1)               /*!< Timer compare 1 event forces the output to its inactive state */
01004 #define HRTIM_OUTPUTRESET_TIMCMP2    (HRTIM_RST1R_CMP2)               /*!< Timer compare 2 event forces the output to its inactive state */
01005 #define HRTIM_OUTPUTRESET_TIMCMP3    (HRTIM_RST1R_CMP3)               /*!< Timer compare 3 event forces the output to its inactive state */
01006 #define HRTIM_OUTPUTRESET_TIMCMP4    (HRTIM_RST1R_CMP4)               /*!< Timer compare 4 event forces the output to its inactive state */
01007 #define HRTIM_OUTPUTRESET_MASTERPER  (HRTIM_RST1R_MSTPER)             /*!< The master timer period event forces the output to its inactive state */
01008 #define HRTIM_OUTPUTRESET_MASTERCMP1 (HRTIM_RST1R_MSTCMP1)            /*!< Master Timer compare 1 event forces the output to its inactive state */
01009 #define HRTIM_OUTPUTRESET_MASTERCMP2 (HRTIM_RST1R_MSTCMP2)            /*!< Master Timer compare 2 event forces the output to its inactive state */
01010 #define HRTIM_OUTPUTRESET_MASTERCMP3 (HRTIM_RST1R_MSTCMP3)            /*!< Master Timer compare 3 event forces the output to its inactive state */
01011 #define HRTIM_OUTPUTRESET_MASTERCMP4 (HRTIM_RST1R_MSTCMP4)            /*!< Master Timer compare 4 event forces the output to its inactive state */
01012 #define HRTIM_OUTPUTRESET_TIMEV_1    (HRTIM_RST1R_TIMEVNT1)           /*!< Timer event 1 forces the output to its active state */
01013 #define HRTIM_OUTPUTRESET_TIMEV_2    (HRTIM_RST1R_TIMEVNT2)           /*!< Timer event 2 forces the output to its active state */
01014 #define HRTIM_OUTPUTRESET_TIMEV_3    (HRTIM_RST1R_TIMEVNT3)           /*!< Timer event 3 forces the output to its active state */
01015 #define HRTIM_OUTPUTRESET_TIMEV_4    (HRTIM_RST1R_TIMEVNT4)           /*!< Timer event 4 forces the output to its active state */
01016 #define HRTIM_OUTPUTRESET_TIMEV_5    (HRTIM_RST1R_TIMEVNT5)           /*!< Timer event 5 forces the output to its active state */
01017 #define HRTIM_OUTPUTRESET_TIMEV_6    (HRTIM_RST1R_TIMEVNT6)           /*!< Timer event 6 forces the output to its active state */
01018 #define HRTIM_OUTPUTRESET_TIMEV_7    (HRTIM_RST1R_TIMEVNT7)           /*!< Timer event 7 forces the output to its active state */
01019 #define HRTIM_OUTPUTRESET_TIMEV_8    (HRTIM_RST1R_TIMEVNT8)           /*!< Timer event 8 forces the output to its active state */
01020 #define HRTIM_OUTPUTRESET_TIMEV_9    (HRTIM_RST1R_TIMEVNT9)           /*!< Timer event 9 forces the output to its active state */
01021 #define HRTIM_OUTPUTRESET_EEV_1      (HRTIM_RST1R_EXTVNT1)            /*!< External event 1 forces the output to its inactive state */
01022 #define HRTIM_OUTPUTRESET_EEV_2      (HRTIM_RST1R_EXTVNT2)            /*!< External event 2 forces the output to its inactive state */
01023 #define HRTIM_OUTPUTRESET_EEV_3      (HRTIM_RST1R_EXTVNT3)            /*!< External event 3 forces the output to its inactive state */
01024 #define HRTIM_OUTPUTRESET_EEV_4      (HRTIM_RST1R_EXTVNT4)            /*!< External event 4 forces the output to its inactive state */
01025 #define HRTIM_OUTPUTRESET_EEV_5      (HRTIM_RST1R_EXTVNT5)            /*!< External event 5 forces the output to its inactive state */
01026 #define HRTIM_OUTPUTRESET_EEV_6      (HRTIM_RST1R_EXTVNT6)            /*!< External event 6 forces the output to its inactive state */
01027 #define HRTIM_OUTPUTRESET_EEV_7      (HRTIM_RST1R_EXTVNT7)            /*!< External event 7 forces the output to its inactive state */
01028 #define HRTIM_OUTPUTRESET_EEV_8      (HRTIM_RST1R_EXTVNT8)            /*!< External event 8 forces the output to its inactive state */
01029 #define HRTIM_OUTPUTRESET_EEV_9      (HRTIM_RST1R_EXTVNT9)            /*!< External event 9 forces the output to its inactive state */
01030 #define HRTIM_OUTPUTRESET_EEV_10     (HRTIM_RST1R_EXTVNT10)           /*!< External event 10 forces the output to its inactive state */
01031 #define HRTIM_OUTPUTRESET_UPDATE     (HRTIM_RST1R_UPDATE)             /*!< Timer register update event forces the output to its inactive state */
01032 /**
01033   * @}
01034   */
01035 
01036 /** @defgroup HRTIM_Output_Idle_Mode HRTIM Output Idle Mode
01037   * @{
01038   * @brief Constants defining whether or not the timer output transition to its
01039            IDLE state when burst mode is entered
01040   */
01041 #define HRTIM_OUTPUTIDLEMODE_NONE     0x00000000U           /*!< The output is not affected by the burst mode operation */
01042 #define HRTIM_OUTPUTIDLEMODE_IDLE     (HRTIM_OUTR_IDLM1)    /*!< The output is in idle state when requested by the burst mode controller */
01043  /**
01044   * @}
01045   */
01046 
01047 /** @defgroup HRTIM_Output_IDLE_Level HRTIM Output IDLE Level
01048   * @{
01049   * @brief Constants defining the output level when output is in IDLE state
01050   */
01051 #define HRTIM_OUTPUTIDLELEVEL_INACTIVE   0x00000000U           /*!< Output at inactive level when in IDLE state */
01052 #define HRTIM_OUTPUTIDLELEVEL_ACTIVE     (HRTIM_OUTR_IDLES1)   /*!< Output at active level when in IDLE state */
01053 /**
01054   * @}
01055   */
01056 
01057 /** @defgroup HRTIM_Output_FAULT_Level HRTIM Output FAULT Level
01058   * @{
01059   * @brief Constants defining the output level when output is in FAULT state
01060   */
01061 #define HRTIM_OUTPUTFAULTLEVEL_NONE      0x00000000U                                  /*!< The output is not affected by the fault input */
01062 #define HRTIM_OUTPUTFAULTLEVEL_ACTIVE    (HRTIM_OUTR_FAULT1_0)                        /*!< Output at active level when in FAULT state */
01063 #define HRTIM_OUTPUTFAULTLEVEL_INACTIVE  (HRTIM_OUTR_FAULT1_1)                        /*!< Output at inactive level when in FAULT state */
01064 #define HRTIM_OUTPUTFAULTLEVEL_HIGHZ     (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0)  /*!< Output is tri-stated when in FAULT state */
01065 /**
01066   * @}
01067   */
01068 
01069 /** @defgroup HRTIM_Output_Chopper_Mode_Enable HRTIM Output Chopper Mode Enable
01070   * @{
01071   * @brief Constants defining whether or not chopper mode is enabled for a timer
01072            output
01073   */
01074 #define HRTIM_OUTPUTCHOPPERMODE_DISABLED   0x00000000U           /*!< Output signal is not altered  */
01075 #define HRTIM_OUTPUTCHOPPERMODE_ENABLED    (HRTIM_OUTR_CHP1)     /*!< Output signal is chopped by a carrier signal  */
01076 /**
01077   * @}
01078   */
01079 
01080 /** @defgroup HRTIM_Output_Burst_Mode_Entry_Delayed HRTIM Output Burst Mode Entry Delayed
01081   * @{
01082   * @brief Constants defining the idle mode entry is delayed by forcing a
01083            dead-time insertion before switching the outputs to their idle state
01084   */
01085 #define HRTIM_OUTPUTBURSTMODEENTRY_REGULAR   0x00000000U           /*!< The programmed Idle state is applied immediately to the Output */
01086 #define HRTIM_OUTPUTBURSTMODEENTRY_DELAYED   (HRTIM_OUTR_DIDL1)    /*!< Dead-time is inserted on output before entering the idle mode */
01087 /**
01088   * @}
01089   */
01090 
01091 
01092 /** @defgroup HRTIM_Capture_Unit_Trigger HRTIM Capture Unit Trigger
01093   * @{
01094   * @brief Constants defining the events that can be selected to trigger the
01095   *        capture of the timing unit counter
01096   */
01097 #define HRTIM_CAPTURETRIGGER_NONE         0x00000000U              /*!< Capture trigger is disabled */
01098 #define HRTIM_CAPTURETRIGGER_UPDATE       (HRTIM_CPT1CR_UPDCPT)    /*!< The update event triggers the Capture */
01099 #define HRTIM_CAPTURETRIGGER_EEV_1        (HRTIM_CPT1CR_EXEV1CPT)  /*!< The External event 1 triggers the Capture */
01100 #define HRTIM_CAPTURETRIGGER_EEV_2        (HRTIM_CPT1CR_EXEV2CPT)  /*!< The External event 2 triggers the Capture */
01101 #define HRTIM_CAPTURETRIGGER_EEV_3        (HRTIM_CPT1CR_EXEV3CPT)  /*!< The External event 3 triggers the Capture */
01102 #define HRTIM_CAPTURETRIGGER_EEV_4        (HRTIM_CPT1CR_EXEV4CPT)  /*!< The External event 4 triggers the Capture */
01103 #define HRTIM_CAPTURETRIGGER_EEV_5        (HRTIM_CPT1CR_EXEV5CPT)  /*!< The External event 5 triggers the Capture */
01104 #define HRTIM_CAPTURETRIGGER_EEV_6        (HRTIM_CPT1CR_EXEV6CPT)  /*!< The External event 6 triggers the Capture */
01105 #define HRTIM_CAPTURETRIGGER_EEV_7        (HRTIM_CPT1CR_EXEV7CPT)  /*!< The External event 7 triggers the Capture */
01106 #define HRTIM_CAPTURETRIGGER_EEV_8        (HRTIM_CPT1CR_EXEV8CPT)  /*!< The External event 8 triggers the Capture */
01107 #define HRTIM_CAPTURETRIGGER_EEV_9        (HRTIM_CPT1CR_EXEV9CPT)  /*!< The External event 9 triggers the Capture */
01108 #define HRTIM_CAPTURETRIGGER_EEV_10       (HRTIM_CPT1CR_EXEV10CPT) /*!< The External event 10 triggers the Capture */
01109 #define HRTIM_CAPTURETRIGGER_TA1_SET      (HRTIM_CPT1CR_TA1SET)    /*!< Capture is triggered by TA1 output inactive to active transition */
01110 #define HRTIM_CAPTURETRIGGER_TA1_RESET    (HRTIM_CPT1CR_TA1RST)    /*!< Capture is triggered by TA1 output active to inactive transition */
01111 #define HRTIM_CAPTURETRIGGER_TIMERA_CMP1  (HRTIM_CPT1CR_TIMACMP1)  /*!< Timer A Compare 1 triggers Capture */
01112 #define HRTIM_CAPTURETRIGGER_TIMERA_CMP2  (HRTIM_CPT1CR_TIMACMP2)  /*!< Timer A Compare 2 triggers Capture */
01113 #define HRTIM_CAPTURETRIGGER_TB1_SET      (HRTIM_CPT1CR_TB1SET)    /*!< Capture is triggered by TB1 output inactive to active transition */
01114 #define HRTIM_CAPTURETRIGGER_TB1_RESET    (HRTIM_CPT1CR_TB1RST)    /*!< Capture is triggered by TB1 output active to inactive transition */
01115 #define HRTIM_CAPTURETRIGGER_TIMERB_CMP1  (HRTIM_CPT1CR_TIMBCMP1)  /*!< Timer B Compare 1 triggers Capture */
01116 #define HRTIM_CAPTURETRIGGER_TIMERB_CMP2  (HRTIM_CPT1CR_TIMBCMP2)  /*!< Timer B Compare 2 triggers Capture */
01117 #define HRTIM_CAPTURETRIGGER_TC1_SET      (HRTIM_CPT1CR_TC1SET)    /*!< Capture is triggered by TC1 output inactive to active transition */
01118 #define HRTIM_CAPTURETRIGGER_TC1_RESET    (HRTIM_CPT1CR_TC1RST)    /*!< Capture is triggered by TC1 output active to inactive transition */
01119 #define HRTIM_CAPTURETRIGGER_TIMERC_CMP1  (HRTIM_CPT1CR_TIMCCMP1)  /*!< Timer C Compare 1 triggers Capture */
01120 #define HRTIM_CAPTURETRIGGER_TIMERC_CMP2  (HRTIM_CPT1CR_TIMCCMP2)  /*!< Timer C Compare 2 triggers Capture */
01121 #define HRTIM_CAPTURETRIGGER_TD1_SET      (HRTIM_CPT1CR_TD1SET)    /*!< Capture is triggered by TD1 output inactive to active transition */
01122 #define HRTIM_CAPTURETRIGGER_TD1_RESET    (HRTIM_CPT1CR_TD1RST)    /*!< Capture is triggered by TD1 output active to inactive transition */
01123 #define HRTIM_CAPTURETRIGGER_TIMERD_CMP1  (HRTIM_CPT1CR_TIMDCMP1)  /*!< Timer D Compare 1 triggers Capture */
01124 #define HRTIM_CAPTURETRIGGER_TIMERD_CMP2  (HRTIM_CPT1CR_TIMDCMP2)  /*!< Timer D Compare 2 triggers Capture */
01125 #define HRTIM_CAPTURETRIGGER_TE1_SET      (HRTIM_CPT1CR_TE1SET)    /*!< Capture is triggered by TE1 output inactive to active transition */
01126 #define HRTIM_CAPTURETRIGGER_TE1_RESET    (HRTIM_CPT1CR_TE1RST)    /*!< Capture is triggered by TE1 output active to inactive transition */
01127 #define HRTIM_CAPTURETRIGGER_TIMERE_CMP1  (HRTIM_CPT1CR_TIMECMP1)  /*!< Timer E Compare 1 triggers Capture */
01128 #define HRTIM_CAPTURETRIGGER_TIMERE_CMP2  (HRTIM_CPT1CR_TIMECMP2)  /*!< Timer E Compare 2 triggers Capture */
01129 /**
01130   * @}
01131   */
01132 
01133 /** @defgroup HRTIM_Timer_External_Event_Filter HRTIM Timer External Event Filter
01134   * @{
01135   * @brief Constants defining the event filtering applied to external events
01136   *        by a timer
01137   */
01138 #define HRTIM_TIMEVENTFILTER_NONE             (0x00000000U)
01139 #define HRTIM_TIMEVENTFILTER_BLANKINGCMP1     (HRTIM_EEFR1_EE1FLTR_0)                                                                          /*!< Blanking from counter reset/roll-over to Compare 1U  */
01140 #define HRTIM_TIMEVENTFILTER_BLANKINGCMP2     (HRTIM_EEFR1_EE1FLTR_1)                                                                          /*!< Blanking from counter reset/roll-over to Compare 2U  */
01141 #define HRTIM_TIMEVENTFILTER_BLANKINGCMP3     (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                                                  /*!< Blanking from counter reset/roll-over to Compare 3U  */
01142 #define HRTIM_TIMEVENTFILTER_BLANKINGCMP4     (HRTIM_EEFR1_EE1FLTR_2)                                                                          /*!< Blanking from counter reset/roll-over to Compare 4U  */
01143 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR1    (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                                                  /*!< Blanking from another timing unit: TIMFLTR1 source   */
01144 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR2    (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                                                  /*!< Blanking from another timing unit: TIMFLTR2 source   */
01145 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR3    (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                          /*!< Blanking from another timing unit: TIMFLTR3 source   */
01146 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR4    (HRTIM_EEFR1_EE1FLTR_3)                                                                          /*!< Blanking from another timing unit: TIMFLTR4 source   */
01147 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR5    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                                                  /*!< Blanking from another timing unit: TIMFLTR5 source   */
01148 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR6    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                                                  /*!< Blanking from another timing unit: TIMFLTR6 source   */
01149 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR7    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                          /*!< Blanking from another timing unit: TIMFLTR7 source   */
01150 #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR8    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                                                  /*!< Blanking from another timing unit: TIMFLTR8 source   */
01151 #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 */
01152 #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 */
01153 #define HRTIM_TIMEVENTFILTER_WINDOWINGTIM     (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)  /*!< Windowing from another timing unit: TIMWIN source    */
01154 /**
01155   * @}
01156   */
01157 
01158 /** @defgroup HRTIM_Timer_External_Event_Latch HRTIM Timer External Event Latch
01159   * @{
01160   * @brief Constants defining whether or not the external event is
01161   *        memorized (latched) and generated as soon as the blanking period
01162   *        is completed or the window ends
01163   */
01164 #define HRTIM_TIMEVENTLATCH_DISABLED    (0x00000000U)           /*!< Event is ignored if it happens during a blank, or passed through during a window */
01165 #define HRTIM_TIMEVENTLATCH_ENABLED     HRTIM_EEFR1_EE1LTCH     /*!< Event is latched and delayed till the end of the blanking or windowing period */
01166 /**
01167   * @}
01168   */
01169 
01170 /** @defgroup HRTIM_Deadtime_Prescaler_Ratio HRTIM Dead-time Prescaler Ratio
01171   * @{
01172   * @brief Constants defining division ratio between the timer clock frequency
01173   *        (fHRTIM) and the dead-time generator clock (fDTG)
01174   */
01175 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8    (0x00000000U)                                                   /*!< fDTG = fHRTIM * 8U */
01176 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4    (HRTIM_DTR_DTPRSC_0)                                            /*!< fDTG = fHRTIM * 4U */
01177 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2    (HRTIM_DTR_DTPRSC_1)                                            /*!< fDTG = fHRTIM * 2U */
01178 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1    (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0)                       /*!< fDTG = fHRTIM */
01179 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2    (HRTIM_DTR_DTPRSC_2)                                            /*!< fDTG = fHRTIM / 2U */
01180 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4    (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0)                       /*!< fDTG = fHRTIM / 4U */
01181 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8    (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1)                       /*!< fDTG = fHRTIM / 8U */
01182 #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16   (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0)  /*!< fDTG = fHRTIM / 16U */
01183 /**
01184   * @}
01185   */
01186 
01187 /** @defgroup HRTIM_Deadtime_Rising_Sign HRTIM Dead-time Rising Sign
01188   * @{
01189   * @brief Constants defining whether the dead-time is positive or negative
01190   *        (overlapping signal) on rising edge
01191   */
01192 #define HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE    (0x00000000U)           /*!< Positive dead-time on rising edge */
01193 #define HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE    (HRTIM_DTR_SDTR)        /*!< Negative dead-time on rising edge */
01194 /**
01195   * @}
01196   */
01197 
01198 /** @defgroup HRTIM_Deadtime_Rising_Lock HRTIM Dead-time Rising Lock
01199   * @{
01200   * @brief Constants defining whether or not the dead-time (rising sign and
01201   *        value) is write protected
01202   */
01203 #define HRTIM_TIMDEADTIME_RISINGLOCK_WRITE    (0x00000000U)           /*!< Dead-time rising value and sign is writeable */
01204 #define HRTIM_TIMDEADTIME_RISINGLOCK_READONLY (HRTIM_DTR_DTRLK)       /*!< Dead-time rising value and sign is read-only */
01205 /**
01206   * @}
01207   */
01208 
01209 /** @defgroup HRTIM_Deadtime_Rising_Sign_Lock HRTIM Dead-time Rising Sign Lock
01210   * @{
01211   * @brief Constants defining whether or not the dead-time rising sign is write
01212   *        protected
01213   */
01214 #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE    (0x00000000U)           /*!< Dead-time rising sign is writeable */
01215 #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY (HRTIM_DTR_DTRSLK)      /*!< Dead-time rising sign is read-only */
01216 /**
01217   * @}
01218   */
01219 
01220 /** @defgroup HRTIM_Deadtime_Falling_Sign HRTIM Dead-time Falling Sign
01221   * @{
01222   * @brief Constants defining whether the dead-time is positive or negative
01223   *        (overlapping signal) on falling edge
01224   */
01225 #define HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE    (0x00000000U)           /*!< Positive dead-time on falling edge */
01226 #define HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE    (HRTIM_DTR_SDTF)        /*!< Negative dead-time on falling edge */
01227 /**
01228   * @}
01229   */
01230 
01231 /** @defgroup HRTIM_Deadtime_Falling_Lock HRTIM Dead-time Falling Lock
01232   * @{
01233   * @brief Constants defining whether or not the dead-time (falling sign and
01234   *        value) is write protected
01235   */
01236 #define HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE    (0x00000000U)           /*!< Dead-time falling value and sign is writeable */
01237 #define HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY (HRTIM_DTR_DTFLK)       /*!< Dead-time falling value and sign is read-only */
01238 /**
01239   * @}
01240   */
01241 
01242 /** @defgroup HRTIM_Deadtime_Falling_Sign_Lock HRTIM Dead-time Falling Sign Lock
01243   * @{
01244   * @brief Constants defining whether or not the dead-time falling sign is write
01245   *        protected
01246   */
01247 #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE    (0x00000000U)           /*!< Dead-time falling sign is writeable */
01248 #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY (HRTIM_DTR_DTFSLK)      /*!< Dead-time falling sign is read-only */
01249 /**
01250   * @}
01251   */
01252 
01253 /** @defgroup HRTIM_Chopper_Frequency HRTIM Chopper Frequency
01254   * @{
01255   * @brief Constants defining the frequency of the generated high frequency carrier
01256   */
01257 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV16  (0x000000U)                                                                     /*!< fCHPFRQ = fHRTIM / 16  */
01258 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV32  (HRTIM_CHPR_CARFRQ_0)                                                                    /*!< fCHPFRQ = fHRTIM / 32  */
01259 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV48  (HRTIM_CHPR_CARFRQ_1)                                                                    /*!< fCHPFRQ = fHRTIM / 48  */
01260 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV64  (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 64  */
01261 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV80  (HRTIM_CHPR_CARFRQ_2)                                                                    /*!< fCHPFRQ = fHRTIM / 80  */
01262 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV96  (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 96  */
01263 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1)                                              /*!< fCHPFRQ = fHRTIM / 112  */
01264 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 128  */
01265 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV144 (HRTIM_CHPR_CARFRQ_3)                                                                    /*!< fCHPFRQ = fHRTIM / 144  */
01266 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 160  */
01267 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1)                                              /*!< fCHPFRQ = fHRTIM / 176  */
01268 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 192  */
01269 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2)                                              /*!< fCHPFRQ = fHRTIM / 208  */
01270 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 224  */
01271 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1)                        /*!< fCHPFRQ = fHRTIM / 240  */
01272 #define HRTIM_CHOPPER_PRESCALERRATIO_DIV256 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)  /*!< fCHPFRQ = fHRTIM / 256  */
01273  /**
01274   * @}
01275   */
01276 
01277 /** @defgroup HRTIM_Chopper_Duty_Cycle HRTIM Chopper Duty Cycle
01278   * @{
01279   * @brief Constants defining the duty cycle of the generated high frequency carrier
01280   *        Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
01281   */
01282 #define HRTIM_CHOPPER_DUTYCYCLE_0    (0x000000U)                                                       /*!< Only 1st pulse is present */
01283 #define HRTIM_CHOPPER_DUTYCYCLE_125  (HRTIM_CHPR_CARDTY_0)                                             /*!< Duty cycle of the carrier signal is 12.5U % */
01284 #define HRTIM_CHOPPER_DUTYCYCLE_250  (HRTIM_CHPR_CARDTY_1)                                             /*!< Duty cycle of the carrier signal is 25U % */
01285 #define HRTIM_CHOPPER_DUTYCYCLE_375  (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0)                       /*!< Duty cycle of the carrier signal is 37.5U % */
01286 #define HRTIM_CHOPPER_DUTYCYCLE_500  (HRTIM_CHPR_CARDTY_2)                                             /*!< Duty cycle of the carrier signal is 50U % */
01287 #define HRTIM_CHOPPER_DUTYCYCLE_625  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0)                       /*!< Duty cycle of the carrier signal is 62.5U % */
01288 #define HRTIM_CHOPPER_DUTYCYCLE_750  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1)                       /*!< Duty cycle of the carrier signal is 75U % */
01289 #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 % */
01290 /**
01291   * @}
01292   */
01293 
01294 /** @defgroup HRTIM_Chopper_Start_Pulse_Width HRTIM Chopper Start Pulse Width
01295   * @{
01296   * @brief Constants defining the pulse width of the first pulse of the generated
01297   *        high frequency carrier
01298   */
01299 #define HRTIM_CHOPPER_PULSEWIDTH_16   (0x000000U)                                                                          /*!< tSTPW = tHRTIM x 16  */
01300 #define HRTIM_CHOPPER_PULSEWIDTH_32   (HRTIM_CHPR_STRPW_0)                                                                 /*!< tSTPW = tHRTIM x 32  */
01301 #define HRTIM_CHOPPER_PULSEWIDTH_48   (HRTIM_CHPR_STRPW_1)                                                                 /*!< tSTPW = tHRTIM x 48  */
01302 #define HRTIM_CHOPPER_PULSEWIDTH_64   (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 64  */
01303 #define HRTIM_CHOPPER_PULSEWIDTH_80   (HRTIM_CHPR_STRPW_2)                                                                 /*!< tSTPW = tHRTIM x 80  */
01304 #define HRTIM_CHOPPER_PULSEWIDTH_96   (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 96  */
01305 #define HRTIM_CHOPPER_PULSEWIDTH_112  (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1)                                            /*!< tSTPW = tHRTIM x 112  */
01306 #define HRTIM_CHOPPER_PULSEWIDTH_128  (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 128  */
01307 #define HRTIM_CHOPPER_PULSEWIDTH_144  (HRTIM_CHPR_STRPW_3)                                                                 /*!< tSTPW = tHRTIM x 144  */
01308 #define HRTIM_CHOPPER_PULSEWIDTH_160  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 160  */
01309 #define HRTIM_CHOPPER_PULSEWIDTH_176  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1)                                            /*!< tSTPW = tHRTIM x 176  */
01310 #define HRTIM_CHOPPER_PULSEWIDTH_192  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 192  */
01311 #define HRTIM_CHOPPER_PULSEWIDTH_208  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2)                                            /*!< tSTPW = tHRTIM x 208  */
01312 #define HRTIM_CHOPPER_PULSEWIDTH_224  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 224  */
01313 #define HRTIM_CHOPPER_PULSEWIDTH_240  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1)                       /*!< tSTPW = tHRTIM x 240  */
01314 #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  */
01315 /**
01316   * @}
01317   */
01318 
01319 /** @defgroup HRTIM_Synchronization_Options HRTIM Synchronization Options
01320   * @{
01321   * @brief Constants defining the options for synchronizing multiple HRTIM
01322   *        instances, as a master unit (generating a synchronization signal)
01323   *        or as a slave (waiting for a trigger to be synchronized)
01324   */
01325 #define HRTIM_SYNCOPTION_NONE   0x00000000U   /*!< HRTIM instance doesn't handle external synchronization signals (SYNCIN, SYNCOUT) */
01326 #define HRTIM_SYNCOPTION_MASTER 0x00000001U   /*!< HRTIM instance acts as a MASTER, i.e. generates external synchronization output (SYNCOUT)*/
01327 #define HRTIM_SYNCOPTION_SLAVE  0x00000002U   /*!< HRTIM instance acts as a SLAVE, i.e. it is synchronized by external sources (SYNCIN) */
01328 /**
01329   * @}
01330   */
01331 
01332 /** @defgroup HRTIM_Synchronization_Input_Source HRTIM Synchronization Input Source
01333   * @{
01334   * @brief Constants defining defining the synchronization input source
01335   */
01336 #define HRTIM_SYNCINPUTSOURCE_NONE           0x00000000U                                  /*!< disabled. HRTIM is not synchronized and runs in standalone mode */
01337 #define HRTIM_SYNCINPUTSOURCE_INTERNALEVENT  HRTIM_MCR_SYNC_IN_1                          /*!< The HRTIM is synchronized with the on-chip timer */
01338 #define HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT  (HRTIM_MCR_SYNC_IN_1 | HRTIM_MCR_SYNC_IN_0)  /*!< A positive pulse on SYNCIN input triggers the HRTIM */
01339 /**
01340   * @}
01341   */
01342 
01343 /** @defgroup HRTIM_Synchronization_Output_Source HRTIM Synchronization Output Source
01344   * @{
01345   * @brief Constants defining the source and event to be sent on the
01346   *        synchronization outputs
01347   */
01348 #define HRTIM_SYNCOUTPUTSOURCE_MASTER_START 0x00000000U                                    /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer start event      */
01349 #define HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1  (HRTIM_MCR_SYNC_SRC_0)                         /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer compare 1 event  */
01350 #define HRTIM_SYNCOUTPUTSOURCE_TIMA_START   (HRTIM_MCR_SYNC_SRC_1)                         /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A start or reset events */
01351 #define HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1    (HRTIM_MCR_SYNC_SRC_1 | HRTIM_MCR_SYNC_SRC_0)  /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A compare 1 event       */
01352 /**
01353   * @}
01354   */
01355 
01356 /** @defgroup HRTIM_Synchronization_Output_Polarity HRTIM Synchronization Output Polarity
01357   * @{
01358   * @brief Constants defining the routing and conditioning of the synchronization output event
01359   */
01360 #define HRTIM_SYNCOUTPUTPOLARITY_NONE      0x00000000U                                   /*!< Synchronization output event is disabled */
01361 #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 */
01362 #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 */
01363 /**
01364   * @}
01365   */
01366 
01367 /** @defgroup HRTIM_External_Event_Sources HRTIM External Event Sources
01368   * @{
01369   * @brief Constants defining available sources associated to external events
01370   */
01371 #define HRTIM_EVENTSRC_1         (0x00000000U)                                  /*!< External event source 1U */
01372 #define HRTIM_EVENTSRC_2         (HRTIM_EECR1_EE1SRC_0)                         /*!< External event source 2U */
01373 #define HRTIM_EVENTSRC_3         (HRTIM_EECR1_EE1SRC_1)                         /*!< External event source 3U */
01374 #define HRTIM_EVENTSRC_4         (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0)  /*!< External event source 4U */
01375 /**
01376   * @}
01377   */
01378 
01379 /** @defgroup HRTIM_External_Event_Polarity HRTIM External Event Polarity
01380   * @{
01381   * @brief Constants defining the polarity of an external event
01382   */
01383 #define HRTIM_EVENTPOLARITY_HIGH    (0x00000000U)           /*!< External event is active high */
01384 #define HRTIM_EVENTPOLARITY_LOW     (HRTIM_EECR1_EE1POL)    /*!< External event is active low */
01385 /**
01386   * @}
01387   */
01388 
01389 /** @defgroup HRTIM_External_Event_Sensitivity HRTIM External Event Sensitivity
01390   * @{
01391   * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive)
01392   *        of an external event
01393   */
01394 #define HRTIM_EVENTSENSITIVITY_LEVEL          (0x00000000U)                                  /*!< External event is active on level */
01395 #define HRTIM_EVENTSENSITIVITY_RISINGEDGE     (HRTIM_EECR1_EE1SNS_0)                         /*!< External event is active on Rising edge */
01396 #define HRTIM_EVENTSENSITIVITY_FALLINGEDGE    (HRTIM_EECR1_EE1SNS_1)                         /*!< External event is active on Falling edge */
01397 #define HRTIM_EVENTSENSITIVITY_BOTHEDGES      (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0)  /*!< External event is active on Rising and Falling edges */
01398 /**
01399   * @}
01400   */
01401 
01402 /** @defgroup HRTIM_External_Event_Fast_Mode HRTIM External Event Fast Mode
01403   * @{
01404   * @brief Constants defining whether or not an external event is programmed in
01405            fast mode
01406   */
01407 #define HRTIM_EVENTFASTMODE_DISABLE    (0x00000000U)               /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs */
01408 #define HRTIM_EVENTFASTMODE_ENABLE     (HRTIM_EECR1_EE1FAST)       /*!< External Event is acting asynchronously on outputs (low latency mode) */
01409 /**
01410   * @}
01411   */
01412 
01413 /** @defgroup HRTIM_External_Event_Filter HRTIM External Event Filter
01414   * @{
01415   * @brief Constants defining the frequency used to sample an external event 6
01416   *        input and the length (N) of the digital filter applied
01417   */
01418 #define HRTIM_EVENTFILTER_NONE      (0x00000000U)                                                                         /*!< Filter disabled */
01419 #define HRTIM_EVENTFILTER_1         (HRTIM_EECR3_EE6F_0)                                                                  /*!< fSAMPLING= fHRTIM, N=2U */
01420 #define HRTIM_EVENTFILTER_2         (HRTIM_EECR3_EE6F_1)                                                                  /*!< fSAMPLING= fHRTIM, N=4U */
01421 #define HRTIM_EVENTFILTER_3         (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING= fHRTIM, N=8U */
01422 #define HRTIM_EVENTFILTER_4         (HRTIM_EECR3_EE6F_2)                                                                  /*!< fSAMPLING= fEEVS/2U, N=6U */
01423 #define HRTIM_EVENTFILTER_5         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING= fEEVS/2U, N=8U */
01424 #define HRTIM_EVENTFILTER_6         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1)                                             /*!< fSAMPLING= fEEVS/4U, N=6U */
01425 #define HRTIM_EVENTFILTER_7         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                        /*!< fSAMPLING= fEEVS/4U, N=8U */
01426 #define HRTIM_EVENTFILTER_8         (HRTIM_EECR3_EE6F_3)                                                                  /*!< fSAMPLING= fEEVS/8U, N=6U */
01427 #define HRTIM_EVENTFILTER_9         (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING= fEEVS/8U, N=8U */
01428 #define HRTIM_EVENTFILTER_10        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1)                                             /*!< fSAMPLING= fEEVS/16U, N=5U */
01429 #define HRTIM_EVENTFILTER_11        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                        /*!< fSAMPLING= fEEVS/16U, N=6U */
01430 #define HRTIM_EVENTFILTER_12        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2)                                             /*!< fSAMPLING= fEEVS/16U, N=8U */
01431 #define HRTIM_EVENTFILTER_13        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_0)                       /*!< fSAMPLING= fEEVS/32U, N=5U */
01432 #define HRTIM_EVENTFILTER_14        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_1)                       /*!< fSAMPLING= fEEVS/32U, N=6U */
01433 #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 */
01434 /**
01435   * @}
01436   */
01437 
01438 /** @defgroup HRTIM_External_Event_Prescaler HRTIM External Event Prescaler
01439   * @{
01440   * @brief Constants defining division ratio between the timer clock frequency
01441   *        fHRTIM) and the external event signal sampling clock (fEEVS)
01442   *        used by the digital filters
01443   */
01444 #define HRTIM_EVENTPRESCALER_DIV1    (0x00000000U)                                   /*!< fEEVS=fHRTIM */
01445 #define HRTIM_EVENTPRESCALER_DIV2    (HRTIM_EECR3_EEVSD_0)                           /*!< fEEVS=fHRTIM / 2U */
01446 #define HRTIM_EVENTPRESCALER_DIV4    (HRTIM_EECR3_EEVSD_1)                           /*!< fEEVS=fHRTIM / 4U */
01447 #define HRTIM_EVENTPRESCALER_DIV8    (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0)     /*!< fEEVS=fHRTIM / 8U */
01448 /**
01449   * @}
01450   */
01451 
01452 /** @defgroup HRTIM_Fault_Sources HRTIM Fault Sources
01453   * @{
01454   * @brief Constants defining whether a fault is triggered by any external
01455   *        or internal fault source
01456   */
01457 #define HRTIM_FAULTSOURCE_DIGITALINPUT      (0x00000000U)              /*!< Fault input is FLT input pin */
01458 #define HRTIM_FAULTSOURCE_INTERNAL          (HRTIM_FLTINR1_FLT1SRC)    /*!< Fault input is FLT_Int signal (e.g. internal comparator) */
01459 /**
01460   * @}
01461   */
01462 
01463 /** @defgroup HRTIM_Fault_Polarity HRTIM Fault Polarity
01464   * @{
01465   * @brief Constants defining the polarity of a fault event
01466   */
01467 #define HRTIM_FAULTPOLARITY_LOW     (0x00000000U)            /*!< Fault input is active low */
01468 #define HRTIM_FAULTPOLARITY_HIGH    (HRTIM_FLTINR1_FLT1P)    /*!< Fault input is active high */
01469 /**
01470   * @}
01471   */
01472 
01473 /** @defgroup HRTIM_Fault_Filter HRTIM Fault Filter
01474   * @{
01475   * @ brief Constants defining the frequency used to sample the fault input and
01476   *         the length (N) of the digital filter applied
01477   */
01478 #define HRTIM_FAULTFILTER_NONE      (0x00000000U)                                                                                    /*!< Filter disabled */
01479 #define HRTIM_FAULTFILTER_1         (HRTIM_FLTINR1_FLT1F_0)                                                                          /*!< fSAMPLING= fHRTIM, N=2U */
01480 #define HRTIM_FAULTFILTER_2         (HRTIM_FLTINR1_FLT1F_1)                                                                          /*!< fSAMPLING= fHRTIM, N=4U */
01481 #define HRTIM_FAULTFILTER_3         (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fHRTIM, N=8U */
01482 #define HRTIM_FAULTFILTER_4         (HRTIM_FLTINR1_FLT1F_2)                                                                          /*!< fSAMPLING= fFLTS/2U, N=6U */
01483 #define HRTIM_FAULTFILTER_5         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fFLTS/2U, N=8U */
01484 #define HRTIM_FAULTFILTER_6         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1)                                                  /*!< fSAMPLING= fFLTS/4U, N=6U */
01485 #define HRTIM_FAULTFILTER_7         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/4U, N=8U */
01486 #define HRTIM_FAULTFILTER_8         (HRTIM_FLTINR1_FLT1F_3)                                                                          /*!< fSAMPLING= fFLTS/8U, N=6U */
01487 #define HRTIM_FAULTFILTER_9         (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fFLTS/8U, N=8U */
01488 #define HRTIM_FAULTFILTER_10        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1)                                                  /*!< fSAMPLING= fFLTS/16U, N=5U */
01489 #define HRTIM_FAULTFILTER_11        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/16U, N=6U */
01490 #define HRTIM_FAULTFILTER_12        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2)                                                  /*!< fSAMPLING= fFLTS/16U, N=8U */
01491 #define HRTIM_FAULTFILTER_13        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/32U, N=5U */
01492 #define HRTIM_FAULTFILTER_14        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1)                          /*!< fSAMPLING= fFLTS/32U, N=6U */
01493 #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 */
01494 /**
01495   * @}
01496   */
01497 
01498 /** @defgroup HRTIM_Fault_Lock HRTIM Fault Lock
01499   * @{
01500   * @brief Constants defining whether or not the fault programming bits are
01501            write protected
01502   */
01503 #define HRTIM_FAULTLOCK_READWRITE       (0x00000000U)               /*!< Fault settings bits are read/write */
01504 #define HRTIM_FAULTLOCK_READONLY        (HRTIM_FLTINR1_FLT1LCK)     /*!< Fault settings bits are read only */
01505 /**
01506   * @}
01507   */
01508 
01509 /** @defgroup HRTIM_External_Fault_Prescaler HRTIM External Fault Prescaler
01510   * @{
01511   * @brief Constants defining the division ratio between the timer clock
01512   *        frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used
01513   *        by the digital filters.
01514   */
01515 #define HRTIM_FAULTPRESCALER_DIV1    (0x00000000U)                                     /*!< fFLTS=fHRTIM */
01516 #define HRTIM_FAULTPRESCALER_DIV2    (HRTIM_FLTINR2_FLTSD_0)                           /*!< fFLTS=fHRTIM / 2U */
01517 #define HRTIM_FAULTPRESCALER_DIV4    (HRTIM_FLTINR2_FLTSD_1)                           /*!< fFLTS=fHRTIM / 4U */
01518 #define HRTIM_FAULTPRESCALER_DIV8    (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0)   /*!< fFLTS=fHRTIM / 8U */
01519 /**
01520   * @}
01521   */
01522 
01523 /** @defgroup HRTIM_Burst_Mode_Operating_Mode HRTIM Burst Mode Operating Mode
01524   * @{
01525   * @brief Constants defining if the burst mode is entered once or if it is
01526   *        continuously operating
01527   */
01528 #define HRTIM_BURSTMODE_SINGLESHOT (0x00000000U)           /*!< Burst mode operates in single shot mode */
01529 #define HRTIM_BURSTMODE_CONTINOUS   (HRTIM_BMCR_BMOM)      /*!< Burst mode operates in continuous mode */
01530 /**
01531   * @}
01532   */
01533 
01534 /** @defgroup HRTIM_Burst_Mode_Clock_Source HRTIM Burst Mode Clock Source
01535   * @{
01536   * @brief Constants defining the clock source for the burst mode counter
01537   */
01538 #define HRTIM_BURSTMODECLOCKSOURCE_MASTER     (0x00000000U)                                                   /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter */
01539 #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 */
01540 #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 */
01541 #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 */
01542 #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 */
01543 #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 */
01544 #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 */
01545 #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 */
01546 #define HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO  (HRTIM_BMCR_BMCLK_3)                                            /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock */
01547 #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 */
01548 /**
01549   * @}
01550   */
01551 
01552 /** @defgroup HRTIM_Burst_Mode_Prescaler HRTIM Burst Mode Prescaler
01553   * @{
01554   * @brief Constants defining the prescaling ratio of the fHRTIM clock
01555   *        for the burst mode controller
01556   */
01557 #define HRTIM_BURSTMODEPRESCALER_DIV1     (0x00000000U)                                                                           /*!< fBRST = fHRTIM */
01558 #define HRTIM_BURSTMODEPRESCALER_DIV2     (HRTIM_BMCR_BMPRSC_0)                                                                   /*!< fBRST = fHRTIM/2U */
01559 #define HRTIM_BURSTMODEPRESCALER_DIV4     (HRTIM_BMCR_BMPRSC_1)                                                                   /*!< fBRST = fHRTIM/4U */
01560 #define HRTIM_BURSTMODEPRESCALER_DIV8     (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/8U */
01561 #define HRTIM_BURSTMODEPRESCALER_DIV16    (HRTIM_BMCR_BMPRSC_2)                                                                   /*!< fBRST = fHRTIM/16U */
01562 #define HRTIM_BURSTMODEPRESCALER_DIV32    (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/32U */
01563 #define HRTIM_BURSTMODEPRESCALER_DIV64    (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1)                                             /*!< fBRST = fHRTIM/64U */
01564 #define HRTIM_BURSTMODEPRESCALER_DIV128   (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/128U */
01565 #define HRTIM_BURSTMODEPRESCALER_DIV256   (HRTIM_BMCR_BMPRSC_3)                                                                   /*!< fBRST = fHRTIM/256U */
01566 #define HRTIM_BURSTMODEPRESCALER_DIV512   (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/512U */
01567 #define HRTIM_BURSTMODEPRESCALER_DIV1024  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1)                                             /*!< fBRST = fHRTIM/1024U */
01568 #define HRTIM_BURSTMODEPRESCALER_DIV2048  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/2048U*/
01569 #define HRTIM_BURSTMODEPRESCALER_DIV4096  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2)                                             /*!< fBRST = fHRTIM/4096U */
01570 #define HRTIM_BURSTMODEPRESCALER_DIV8192  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/8192U */
01571 #define HRTIM_BURSTMODEPRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1)                       /*!< fBRST = fHRTIM/16384U */
01572 #define HRTIM_BURSTMODEPRESCALER_DIV32768 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32768U */
01573 /**
01574   * @}
01575   */
01576 
01577 /** @defgroup HRTIM_Burst_Mode_Register_Preload_Enable HRTIM Burst Mode Register Preload Enable
01578   * @{
01579   * @brief Constants defining whether or not burst mode registers preload
01580            mechanism is enabled, i.e. a write access into a preloadable register
01581           (HRTIM_BMCMPR, HRTIM_BMPER) is done into the active or the preload register
01582   */
01583 #define HRIM_BURSTMODEPRELOAD_DISABLED (0x00000000U)  /*!< Preload disabled: the write access is directly done into active registers */
01584 #define HRIM_BURSTMODEPRELOAD_ENABLED  (HRTIM_BMCR_BMPREN)     /*!< Preload enabled: the write access is done into preload registers */
01585 /**
01586   * @}
01587   */
01588 
01589 /** @defgroup HRTIM_Burst_Mode_Trigger HRTIM Burst Mode Trigger
01590   * @{
01591   * @brief Constants defining the events that can be used to trig the burst
01592   *        mode operation
01593   */
01594 #define HRTIM_BURSTMODETRIGGER_NONE               0x00000000U             /*!<  No trigger */
01595 #define HRTIM_BURSTMODETRIGGER_MASTER_RESET       (HRTIM_BMTRGR_MSTRST)   /*!<  Master reset */
01596 #define HRTIM_BURSTMODETRIGGER_MASTER_REPETITION  (HRTIM_BMTRGR_MSTREP)   /*!<  Master repetition */
01597 #define HRTIM_BURSTMODETRIGGER_MASTER_CMP1        (HRTIM_BMTRGR_MSTCMP1)  /*!<  Master compare 1U */
01598 #define HRTIM_BURSTMODETRIGGER_MASTER_CMP2        (HRTIM_BMTRGR_MSTCMP2)  /*!<  Master compare 2U */
01599 #define HRTIM_BURSTMODETRIGGER_MASTER_CMP3        (HRTIM_BMTRGR_MSTCMP3)  /*!<  Master compare 3U */
01600 #define HRTIM_BURSTMODETRIGGER_MASTER_CMP4        (HRTIM_BMTRGR_MSTCMP4)  /*!<  Master compare 4U */
01601 #define HRTIM_BURSTMODETRIGGER_TIMERA_RESET       (HRTIM_BMTRGR_TARST)    /*!< Timer A reset  */
01602 #define HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION  (HRTIM_BMTRGR_TAREP)    /*!< Timer A repetition  */
01603 #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP1        (HRTIM_BMTRGR_TACMP1)   /*!< Timer A compare 1  */
01604 #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP2        (HRTIM_BMTRGR_TACMP2)   /*!< Timer A compare 2  */
01605 #define HRTIM_BURSTMODETRIGGER_TIMERB_RESET       (HRTIM_BMTRGR_TBRST)    /*!< Timer B reset  */
01606 #define HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION  (HRTIM_BMTRGR_TBREP)    /*!< Timer B repetition  */
01607 #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP1        (HRTIM_BMTRGR_TBCMP1)   /*!< Timer B compare 1  */
01608 #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP2        (HRTIM_BMTRGR_TBCMP2)   /*!< Timer B compare 2  */
01609 #define HRTIM_BURSTMODETRIGGER_TIMERC_RESET       (HRTIM_BMTRGR_TCRST)    /*!< Timer C reset  */
01610 #define HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION  (HRTIM_BMTRGR_TCREP)    /*!< Timer C repetition  */
01611 #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP1        (HRTIM_BMTRGR_TCCMP1)   /*!< Timer C compare 1  */
01612 #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP2        (HRTIM_BMTRGR_TCCMP2)   /*!< Timer C compare 2  */
01613 #define HRTIM_BURSTMODETRIGGER_TIMERD_RESET       (HRTIM_BMTRGR_TDRST)    /*!< Timer D reset  */
01614 #define HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION  (HRTIM_BMTRGR_TDREP)    /*!< Timer D repetition  */
01615 #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP1        (HRTIM_BMTRGR_TDCMP1)   /*!< Timer D compare 1  */
01616 #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP2        (HRTIM_BMTRGR_TDCMP2)   /*!< Timer D compare 2  */
01617 #define HRTIM_BURSTMODETRIGGER_TIMERE_RESET       (HRTIM_BMTRGR_TERST)    /*!< Timer E reset  */
01618 #define HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION  (HRTIM_BMTRGR_TEREP)    /*!< Timer E repetition  */
01619 #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP1        (HRTIM_BMTRGR_TECMP1)   /*!< Timer E compare 1  */
01620 #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP2        (HRTIM_BMTRGR_TECMP2)   /*!< Timer E compare 2  */
01621 #define HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7      (HRTIM_BMTRGR_TAEEV7)   /*!< Timer A period following External Event 7  */
01622 #define HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8      (HRTIM_BMTRGR_TDEEV8)   /*!< Timer D period following External Event 8  */
01623 #define HRTIM_BURSTMODETRIGGER_EVENT_7            (HRTIM_BMTRGR_EEV7)     /*!< External Event 7 (timer A filters applied) */
01624 #define HRTIM_BURSTMODETRIGGER_EVENT_8            (HRTIM_BMTRGR_EEV8)     /*!< External Event 8 (timer D filters applied)*/
01625 #define HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP       (HRTIM_BMTRGR_OCHPEV)   /*!< On-chip Event */
01626 /**
01627   * @}
01628   */
01629 
01630 /** @defgroup HRTIM_ADC_Trigger_Update_Source HRTIM ADC Trigger Update Source
01631   * @{
01632   * @brief constants defining the source triggering the update of the
01633      HRTIM_ADCxR register (transfer from preload to active register).
01634   */
01635 #define HRTIM_ADCTRIGGERUPDATE_MASTER  0x00000000U                                   /*!< Master timer */
01636 #define HRTIM_ADCTRIGGERUPDATE_TIMER_A (HRTIM_CR1_ADC1USRC_0)                        /*!< Timer A */
01637 #define HRTIM_ADCTRIGGERUPDATE_TIMER_B (HRTIM_CR1_ADC1USRC_1)                        /*!< Timer B */
01638 #define HRTIM_ADCTRIGGERUPDATE_TIMER_C (HRTIM_CR1_ADC1USRC_1 | HRTIM_CR1_ADC1USRC_0) /*!< Timer C */
01639 #define HRTIM_ADCTRIGGERUPDATE_TIMER_D (HRTIM_CR1_ADC1USRC_2)                        /*!< Timer D */
01640 #define HRTIM_ADCTRIGGERUPDATE_TIMER_E (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_0) /*!< Timer E */
01641 /**
01642   * @}
01643   */
01644 
01645 /** @defgroup HRTIM_ADC_Trigger_Event HRTIM ADC Trigger Event
01646   * @{
01647   * @brief constants defining the events triggering ADC conversion.
01648   *        HRTIM_ADCTRIGGEREVENT13_*: ADC Triggers 1 and 3
01649   *        HRTIM_ADCTRIGGEREVENT24_*: ADC Triggers 2 and 4
01650   */
01651 #define HRTIM_ADCTRIGGEREVENT13_NONE           0x00000000U              /*!< No ADC trigger event */
01652 #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP1    (HRTIM_ADC1R_AD1MC1)     /*!< ADC Trigger on master compare 1U */
01653 #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP2    (HRTIM_ADC1R_AD1MC2)     /*!< ADC Trigger on master compare 2U */
01654 #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP3    (HRTIM_ADC1R_AD1MC3)     /*!< ADC Trigger on master compare 3U */
01655 #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP4    (HRTIM_ADC1R_AD1MC4)     /*!< ADC Trigger on master compare 4U */
01656 #define HRTIM_ADCTRIGGEREVENT13_MASTER_PERIOD  (HRTIM_ADC1R_AD1MPER)    /*!< ADC Trigger on master period */
01657 #define HRTIM_ADCTRIGGEREVENT13_EVENT_1        (HRTIM_ADC1R_AD1EEV1)    /*!< ADC Trigger on external event 1U */
01658 #define HRTIM_ADCTRIGGEREVENT13_EVENT_2        (HRTIM_ADC1R_AD1EEV2)    /*!< ADC Trigger on external event 2U */
01659 #define HRTIM_ADCTRIGGEREVENT13_EVENT_3        (HRTIM_ADC1R_AD1EEV3)    /*!< ADC Trigger on external event 3U */
01660 #define HRTIM_ADCTRIGGEREVENT13_EVENT_4        (HRTIM_ADC1R_AD1EEV4)    /*!< ADC Trigger on external event 4U */
01661 #define HRTIM_ADCTRIGGEREVENT13_EVENT_5        (HRTIM_ADC1R_AD1EEV5)    /*!< ADC Trigger on external event 5U */
01662 #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP2    (HRTIM_ADC1R_AD1TAC2)    /*!< ADC Trigger on Timer A compare 2U */
01663 #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP3    (HRTIM_ADC1R_AD1TAC3)    /*!< ADC Trigger on Timer A compare 3U */
01664 #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP4    (HRTIM_ADC1R_AD1TAC4)    /*!< ADC Trigger on Timer A compare 4U */
01665 #define HRTIM_ADCTRIGGEREVENT13_TIMERA_PERIOD  (HRTIM_ADC1R_AD1TAPER)   /*!< ADC Trigger on Timer A period */
01666 #define HRTIM_ADCTRIGGEREVENT13_TIMERA_RESET   (HRTIM_ADC1R_AD1TARST)   /*!< ADC Trigger on Timer A reset */
01667 #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP2    (HRTIM_ADC1R_AD1TBC2)    /*!< ADC Trigger on Timer B compare 2U */
01668 #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP3    (HRTIM_ADC1R_AD1TBC3)    /*!< ADC Trigger on Timer B compare 3U */
01669 #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP4    (HRTIM_ADC1R_AD1TBC4)    /*!< ADC Trigger on Timer B compare 4U */
01670 #define HRTIM_ADCTRIGGEREVENT13_TIMERB_PERIOD  (HRTIM_ADC1R_AD1TBPER)   /*!< ADC Trigger on Timer B period */
01671 #define HRTIM_ADCTRIGGEREVENT13_TIMERB_RESET   (HRTIM_ADC1R_AD1TBRST)   /*!< ADC Trigger on Timer B reset */
01672 #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP2    (HRTIM_ADC1R_AD1TCC2)    /*!< ADC Trigger on Timer C compare 2U */
01673 #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP3    (HRTIM_ADC1R_AD1TCC3)    /*!< ADC Trigger on Timer C compare 3U */
01674 #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP4    (HRTIM_ADC1R_AD1TCC4)    /*!< ADC Trigger on Timer C compare 4U */
01675 #define HRTIM_ADCTRIGGEREVENT13_TIMERC_PERIOD  (HRTIM_ADC1R_AD1TCPER)   /*!< ADC Trigger on Timer C period */
01676 #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP2    (HRTIM_ADC1R_AD1TDC2)    /*!< ADC Trigger on Timer D compare 2U */
01677 #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP3    (HRTIM_ADC1R_AD1TDC3)    /*!< ADC Trigger on Timer D compare 3U */
01678 #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP4    (HRTIM_ADC1R_AD1TDC4)    /*!< ADC Trigger on Timer D compare 4U */
01679 #define HRTIM_ADCTRIGGEREVENT13_TIMERD_PERIOD  (HRTIM_ADC1R_AD1TDPER)   /*!< ADC Trigger on Timer D period */
01680 #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP2    (HRTIM_ADC1R_AD1TEC2)    /*!< ADC Trigger on Timer E compare 2U */
01681 #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP3    (HRTIM_ADC1R_AD1TEC3)    /*!< ADC Trigger on Timer E compare 3U */
01682 #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP4    (HRTIM_ADC1R_AD1TEC4)    /*!< ADC Trigger on Timer E compare 4U */
01683 #define HRTIM_ADCTRIGGEREVENT13_TIMERE_PERIOD  (HRTIM_ADC1R_AD1TEPER)   /*!< ADC Trigger on Timer E period */
01684 
01685 #define HRTIM_ADCTRIGGEREVENT24_NONE           0x00000000U               /*!< No ADC trigger event */
01686 #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP1    (HRTIM_ADC2R_AD2MC1)     /*!< ADC Trigger on master compare 1U */
01687 #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP2    (HRTIM_ADC2R_AD2MC2)     /*!< ADC Trigger on master compare 2U */
01688 #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP3    (HRTIM_ADC2R_AD2MC3)     /*!< ADC Trigger on master compare 3U */
01689 #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP4    (HRTIM_ADC2R_AD2MC4)     /*!< ADC Trigger on master compare 4U */
01690 #define HRTIM_ADCTRIGGEREVENT24_MASTER_PERIOD  (HRTIM_ADC2R_AD2MPER)    /*!< ADC Trigger on master period */
01691 #define HRTIM_ADCTRIGGEREVENT24_EVENT_6        (HRTIM_ADC2R_AD2EEV6)    /*!< ADC Trigger on external event 6U */
01692 #define HRTIM_ADCTRIGGEREVENT24_EVENT_7        (HRTIM_ADC2R_AD2EEV7)    /*!< ADC Trigger on external event 7U */
01693 #define HRTIM_ADCTRIGGEREVENT24_EVENT_8        (HRTIM_ADC2R_AD2EEV8)    /*!< ADC Trigger on external event 8U */
01694 #define HRTIM_ADCTRIGGEREVENT24_EVENT_9        (HRTIM_ADC2R_AD2EEV9)    /*!< ADC Trigger on external event 9U */
01695 #define HRTIM_ADCTRIGGEREVENT24_EVENT_10       (HRTIM_ADC2R_AD2EEV10)   /*!< ADC Trigger on external event 10U */
01696 #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP2    (HRTIM_ADC2R_AD2TAC2)    /*!< ADC Trigger on Timer A compare 2U */
01697 #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP3    (HRTIM_ADC2R_AD2TAC3)    /*!< ADC Trigger on Timer A compare 3U */
01698 #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP4    (HRTIM_ADC2R_AD2TAC4)    /*!< ADC Trigger on Timer A compare 4U */
01699 #define HRTIM_ADCTRIGGEREVENT24_TIMERA_PERIOD  (HRTIM_ADC2R_AD2TAPER)   /*!< ADC Trigger on Timer A period */
01700 #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP2    (HRTIM_ADC2R_AD2TBC2)    /*!< ADC Trigger on Timer B compare 2U */
01701 #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP3    (HRTIM_ADC2R_AD2TBC3)    /*!< ADC Trigger on Timer B compare 3U */
01702 #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP4    (HRTIM_ADC2R_AD2TBC4)    /*!< ADC Trigger on Timer B compare 4U */
01703 #define HRTIM_ADCTRIGGEREVENT24_TIMERB_PERIOD  (HRTIM_ADC2R_AD2TBPER)   /*!< ADC Trigger on Timer B period */
01704 #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP2    (HRTIM_ADC2R_AD2TCC2)    /*!< ADC Trigger on Timer C compare 2U */
01705 #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP3    (HRTIM_ADC2R_AD2TCC3)    /*!< ADC Trigger on Timer C compare 3U */
01706 #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP4    (HRTIM_ADC2R_AD2TCC4)    /*!< ADC Trigger on Timer C compare 4U */
01707 #define HRTIM_ADCTRIGGEREVENT24_TIMERC_PERIOD  (HRTIM_ADC2R_AD2TCPER)   /*!< ADC Trigger on Timer C period */
01708 #define HRTIM_ADCTRIGGEREVENT24_TIMERC_RESET   (HRTIM_ADC2R_AD2TCRST)   /*!< ADC Trigger on Timer C reset */
01709 #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP2    (HRTIM_ADC2R_AD2TDC2)    /*!< ADC Trigger on Timer D compare 2U */
01710 #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP3    (HRTIM_ADC2R_AD2TDC3)    /*!< ADC Trigger on Timer D compare 3U */
01711 #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP4    (HRTIM_ADC2R_AD2TDC4)    /*!< ADC Trigger on Timer D compare 4U */
01712 #define HRTIM_ADCTRIGGEREVENT24_TIMERD_PERIOD  (HRTIM_ADC2R_AD2TDPER)   /*!< ADC Trigger on Timer D period */
01713 #define HRTIM_ADCTRIGGEREVENT24_TIMERD_RESET   (HRTIM_ADC2R_AD2TDRST)   /*!< ADC Trigger on Timer D reset */
01714 #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP2    (HRTIM_ADC2R_AD2TEC2)    /*!< ADC Trigger on Timer E compare 2U */
01715 #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP3    (HRTIM_ADC2R_AD2TEC3)    /*!< ADC Trigger on Timer E compare 3U */
01716 #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP4    (HRTIM_ADC2R_AD2TEC4)    /*!< ADC Trigger on Timer E compare 4U */
01717 #define HRTIM_ADCTRIGGEREVENT24_TIMERE_RESET   (HRTIM_ADC2R_AD2TERST)   /*!< ADC Trigger on Timer E reset */
01718 
01719 /**
01720   * @}
01721   */
01722 
01723 /** @defgroup HRTIM_Burst_DMA_Registers_Update HRTIM Burst DMA Registers Update
01724   * @{
01725   * @brief Constants defining the registers that can be written during a burst
01726   *        DMA operation
01727   */
01728 #define HRTIM_BURSTDMA_NONE  0x00000000U               /*!< No register is updated by Burst DMA accesses */
01729 #define HRTIM_BURSTDMA_CR    (HRTIM_BDTUPR_TIMCR)      /*!< MCR or TIMxCR register is updated by Burst DMA accesses */
01730 #define HRTIM_BURSTDMA_ICR   (HRTIM_BDTUPR_TIMICR)     /*!< MICR or TIMxICR register is updated by Burst DMA accesses */
01731 #define HRTIM_BURSTDMA_DIER  (HRTIM_BDTUPR_TIMDIER)    /*!< MDIER or TIMxDIER register is updated by Burst DMA accesses */
01732 #define HRTIM_BURSTDMA_CNT   (HRTIM_BDTUPR_TIMCNT)     /*!< MCNTR or CNTxCR register is updated by Burst DMA accesses */
01733 #define HRTIM_BURSTDMA_PER   (HRTIM_BDTUPR_TIMPER)     /*!< MPER or PERxR register is updated by Burst DMA accesses */
01734 #define HRTIM_BURSTDMA_REP   (HRTIM_BDTUPR_TIMREP)     /*!< MREPR or REPxR register is updated by Burst DMA accesses */
01735 #define HRTIM_BURSTDMA_CMP1  (HRTIM_BDTUPR_TIMCMP1)    /*!< MCMP1R or CMP1xR register is updated by Burst DMA accesses */
01736 #define HRTIM_BURSTDMA_CMP2  (HRTIM_BDTUPR_TIMCMP2)    /*!< MCMP2R or CMP2xR register is updated by Burst DMA accesses */
01737 #define HRTIM_BURSTDMA_CMP3  (HRTIM_BDTUPR_TIMCMP3)    /*!< MCMP3R or CMP3xR register is updated by Burst DMA accesses */
01738 #define HRTIM_BURSTDMA_CMP4  (HRTIM_BDTUPR_TIMCMP4)    /*!< MCMP4R or CMP4xR register is updated by Burst DMA accesses */
01739 #define HRTIM_BURSTDMA_DTR   (HRTIM_BDTUPR_TIMDTR)     /*!< TDxR register is updated by Burst DMA accesses */
01740 #define HRTIM_BURSTDMA_SET1R (HRTIM_BDTUPR_TIMSET1R)   /*!< SET1R register is updated by Burst DMA accesses */
01741 #define HRTIM_BURSTDMA_RST1R (HRTIM_BDTUPR_TIMRST1R)   /*!< RST1R register is updated by Burst DMA accesses */
01742 #define HRTIM_BURSTDMA_SET2R (HRTIM_BDTUPR_TIMSET2R)   /*!< SET2R register is updated by Burst DMA accesses */
01743 #define HRTIM_BURSTDMA_RST2R (HRTIM_BDTUPR_TIMRST2R)   /*!< RST1R register is updated by Burst DMA accesses */
01744 #define HRTIM_BURSTDMA_EEFR1 (HRTIM_BDTUPR_TIMEEFR1)   /*!< EEFxR1 register is updated by Burst DMA accesses */
01745 #define HRTIM_BURSTDMA_EEFR2 (HRTIM_BDTUPR_TIMEEFR2)   /*!< EEFxR2 register is updated by Burst DMA accesses */
01746 #define HRTIM_BURSTDMA_RSTR  (HRTIM_BDTUPR_TIMRSTR)    /*!< RSTxR register is updated by Burst DMA accesses */
01747 #define HRTIM_BURSTDMA_CHPR  (HRTIM_BDTUPR_TIMCHPR)    /*!< CHPxR register is updated by Burst DMA accesses */
01748 #define HRTIM_BURSTDMA_OUTR  (HRTIM_BDTUPR_TIMOUTR)    /*!< OUTxR register is updated by Burst DMA accesses */
01749 #define HRTIM_BURSTDMA_FLTR  (HRTIM_BDTUPR_TIMFLTR)    /*!< FLTxR register is updated by Burst DMA accesses */
01750 /**
01751   * @}
01752   */
01753 
01754 /** @defgroup HRTIM_Burst_Mode_Control HRTIM Burst Mode Control
01755   * @{
01756   * @brief Constants used to enable or disable the burst mode controller
01757   */
01758 #define HRTIM_BURSTMODECTL_DISABLED 0x00000000U          /*!< Burst mode disabled */
01759 #define HRTIM_BURSTMODECTL_ENABLED  (HRTIM_BMCR_BME)     /*!< Burst mode enabled */
01760 /**
01761   * @}
01762   */
01763 
01764 /** @defgroup HRTIM_Fault_Mode_Control  HRTIM Fault Mode Control
01765   * @{
01766   * @brief Constants used to enable or disable a fault channel
01767   */
01768 #define HRTIM_FAULTMODECTL_DISABLED 0x00000000U /*!< Fault channel is disabled */
01769 #define HRTIM_FAULTMODECTL_ENABLED  0x00000001U /*!< Fault channel is  enabled */
01770 /**
01771   * @}
01772   */
01773 
01774 /** @defgroup HRTIM_Software_Timer_Update HRTIM Software Timer Update
01775   * @{
01776   * @brief Constants used to force timer registers update
01777   */
01778 #define HRTIM_TIMERUPDATE_MASTER    (HRTIM_CR2_MSWU)     /*!< Force an immediate transfer from the preload to the active register in the master timer */
01779 #define HRTIM_TIMERUPDATE_A         (HRTIM_CR2_TASWU)    /*!< Force an immediate transfer from the preload to the active register in the timer A */
01780 #define HRTIM_TIMERUPDATE_B         (HRTIM_CR2_TBSWU)    /*!< Force an immediate transfer from the preload to the active register in the timer B */
01781 #define HRTIM_TIMERUPDATE_C         (HRTIM_CR2_TCSWU)    /*!< Force an immediate transfer from the preload to the active register in the timer C */
01782 #define HRTIM_TIMERUPDATE_D         (HRTIM_CR2_TDSWU)    /*!< Force an immediate transfer from the preload to the active register in the timer D */
01783 #define HRTIM_TIMERUPDATE_E         (HRTIM_CR2_TESWU)    /*!< Force an immediate transfer from the preload to the active register in the timer E */
01784 /**
01785   * @}
01786   */
01787 
01788 /** @defgroup HRTIM_Software_Timer_Reset HRTIM Software Timer Reset
01789   * @{
01790   * @brief Constants used to force timer counter reset
01791   */
01792 #define HRTIM_TIMERRESET_MASTER    (HRTIM_CR2_MRST)     /*!< Reset the master timer counter */
01793 #define HRTIM_TIMERRESET_TIMER_A   (HRTIM_CR2_TARST)    /*!< Reset the timer A counter */
01794 #define HRTIM_TIMERRESET_TIMER_B   (HRTIM_CR2_TBRST)    /*!< Reset the timer B counter */
01795 #define HRTIM_TIMERRESET_TIMER_C   (HRTIM_CR2_TCRST)    /*!< Reset the timer C counter */
01796 #define HRTIM_TIMERRESET_TIMER_D   (HRTIM_CR2_TDRST)    /*!< Reset the timer D counter */
01797 #define HRTIM_TIMERRESET_TIMER_E   (HRTIM_CR2_TERST)    /*!< Reset the timer E counter */
01798 /**
01799   * @}
01800   */
01801 
01802 /** @defgroup HRTIM_Output_Level HRTIM Output Level
01803   * @{
01804   * @brief Constants defining the level of a timer output
01805   */
01806 #define HRTIM_OUTPUTLEVEL_ACTIVE     (0x00000001U) /*!< Force the output to its active state */
01807 #define HRTIM_OUTPUTLEVEL_INACTIVE   (0x00000002U) /*!< Force the output to its inactive state */
01808 
01809 #define IS_HRTIM_OUTPUTLEVEL(OUTPUTLEVEL)\
01810     (((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_ACTIVE)  || \
01811      ((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_INACTIVE))
01812 /**
01813   * @}
01814   */
01815 
01816 /** @defgroup HRTIM_Output_State HRTIM Output State
01817   * @{
01818   * @brief Constants defining the state of a timer output
01819   */
01820 #define HRTIM_OUTPUTSTATE_IDLE     (0x00000001U)  /*!< Main operating mode, where the output can take the active or
01821                                                               inactive level as programmed in the crossbar unit */
01822 #define HRTIM_OUTPUTSTATE_RUN      (0x00000002U)  /*!< Default operating state (e.g. after an HRTIM reset, when the
01823                                                               outputs are disabled by software or during a burst mode operation */
01824 #define HRTIM_OUTPUTSTATE_FAULT    (0x00000003U)  /*!< Safety state, entered in case of a shut-down request on
01825                                                               FAULTx inputs */
01826 /**
01827   * @}
01828   */
01829 
01830 /** @defgroup HRTIM_Burst_Mode_Status HRTIM Burst Mode Status
01831   * @{
01832   * @brief Constants defining the operating state of the burst mode controller
01833   */
01834 #define HRTIM_BURSTMODESTATUS_NORMAL   0x00000000U          /*!< Normal operation */
01835 #define HRTIM_BURSTMODESTATUS_ONGOING (HRTIM_BMCR_BMSTAT)   /*!< Burst operation on-going */
01836 /**
01837   * @}
01838   */
01839 
01840 /** @defgroup HRTIM_Current_Push_Pull_Status HRTIM Current Push Pull Status
01841   * @{
01842   * @brief Constants defining on which output the signal is currently applied
01843   *        in push-pull mode
01844   */
01845 #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT1    0x00000000U            /*!< Signal applied on output 1 and output 2 forced inactive */
01846 #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT2   (HRTIM_TIMISR_CPPSTAT)  /*!< Signal applied on output 2 and output 1 forced inactive */
01847 /**
01848   * @}
01849   */
01850 
01851 /** @defgroup HRTIM_Idle_Push_Pull_Status HRTIM Idle Push Pull Status
01852   * @{
01853   * @brief Constants defining on which output the signal was applied, in
01854   *        push-pull mode balanced fault mode or delayed idle mode, when the
01855   *        protection was triggered
01856   */
01857 #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT1    0x00000000U               /*!< Protection occurred when the output 1 was active and output 2 forced inactive */
01858 #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT2   (HRTIM_TIMISR_IPPSTAT)     /*!< Protection occurred when the output 2 was active and output 1 forced inactive */
01859 /**
01860   * @}
01861   */
01862 
01863 /** @defgroup HRTIM_Common_Interrupt_Enable HRTIM Common Interrupt Enable
01864   * @{
01865   */
01866 #define HRTIM_IT_NONE           0x00000000U           /*!< No interrupt enabled */
01867 #define HRTIM_IT_FLT1           HRTIM_IER_FLT1        /*!< Fault 1 interrupt enable */
01868 #define HRTIM_IT_FLT2           HRTIM_IER_FLT2        /*!< Fault 2 interrupt enable */
01869 #define HRTIM_IT_FLT3           HRTIM_IER_FLT3        /*!< Fault 3 interrupt enable */
01870 #define HRTIM_IT_FLT4           HRTIM_IER_FLT4        /*!< Fault 4 interrupt enable */
01871 #define HRTIM_IT_FLT5           HRTIM_IER_FLT5        /*!< Fault 5 interrupt enable */
01872 #define HRTIM_IT_SYSFLT         HRTIM_IER_SYSFLT      /*!< System Fault interrupt enable */
01873 #define HRTIM_IT_BMPER          HRTIM_IER_BMPER       /*!<  Burst mode period interrupt enable */
01874 /**
01875   * @}
01876   */
01877 
01878 /** @defgroup HRTIM_Master_Interrupt_Enable HRTIM Master Interrupt Enable
01879   * @{
01880   */
01881 #define HRTIM_MASTER_IT_NONE         0x00000000U           /*!< No interrupt enabled */
01882 #define HRTIM_MASTER_IT_MCMP1        HRTIM_MDIER_MCMP1IE   /*!< Master compare 1 interrupt enable */
01883 #define HRTIM_MASTER_IT_MCMP2        HRTIM_MDIER_MCMP2IE   /*!< Master compare 2 interrupt enable */
01884 #define HRTIM_MASTER_IT_MCMP3        HRTIM_MDIER_MCMP3IE   /*!< Master compare 3 interrupt enable */
01885 #define HRTIM_MASTER_IT_MCMP4        HRTIM_MDIER_MCMP4IE   /*!< Master compare 4 interrupt enable */
01886 #define HRTIM_MASTER_IT_MREP         HRTIM_MDIER_MREPIE    /*!< Master Repetition interrupt enable */
01887 #define HRTIM_MASTER_IT_SYNC         HRTIM_MDIER_SYNCIE    /*!< Synchronization input interrupt enable */
01888 #define HRTIM_MASTER_IT_MUPD         HRTIM_MDIER_MUPDIE    /*!< Master update interrupt enable */
01889 /**
01890   * @}
01891   */
01892 
01893 /** @defgroup HRTIM_Timing_Unit_Interrupt_Enable HRTIM Timing Unit Interrupt Enable
01894   * @{
01895   */
01896 #define HRTIM_TIM_IT_NONE       0x00000000U               /*!< No interrupt enabled */
01897 #define HRTIM_TIM_IT_CMP1       HRTIM_TIMDIER_CMP1IE      /*!< Timer compare 1 interrupt enable */
01898 #define HRTIM_TIM_IT_CMP2       HRTIM_TIMDIER_CMP2IE      /*!< Timer compare 2 interrupt enable */
01899 #define HRTIM_TIM_IT_CMP3       HRTIM_TIMDIER_CMP3IE      /*!< Timer compare 3 interrupt enable */
01900 #define HRTIM_TIM_IT_CMP4       HRTIM_TIMDIER_CMP4IE      /*!< Timer compare 4 interrupt enable */
01901 #define HRTIM_TIM_IT_REP        HRTIM_TIMDIER_REPIE       /*!< Timer repetition interrupt enable */
01902 #define HRTIM_TIM_IT_UPD        HRTIM_TIMDIER_UPDIE       /*!< Timer update interrupt enable */
01903 #define HRTIM_TIM_IT_CPT1       HRTIM_TIMDIER_CPT1IE      /*!< Timer capture 1 interrupt enable */
01904 #define HRTIM_TIM_IT_CPT2       HRTIM_TIMDIER_CPT2IE      /*!< Timer capture 2 interrupt enable */
01905 #define HRTIM_TIM_IT_SET1       HRTIM_TIMDIER_SET1IE      /*!< Timer output 1 set interrupt enable */
01906 #define HRTIM_TIM_IT_RST1       HRTIM_TIMDIER_RST1IE      /*!< Timer output 1 reset interrupt enable */
01907 #define HRTIM_TIM_IT_SET2       HRTIM_TIMDIER_SET2IE      /*!< Timer output 2 set interrupt enable */
01908 #define HRTIM_TIM_IT_RST2       HRTIM_TIMDIER_RST2IE      /*!< Timer output 2 reset interrupt enable */
01909 #define HRTIM_TIM_IT_RST        HRTIM_TIMDIER_RSTIE       /*!< Timer reset interrupt enable */
01910 #define HRTIM_TIM_IT_DLYPRT     HRTIM_TIMDIER_DLYPRTIE    /*!< Timer delay protection interrupt enable */
01911 /**
01912   * @}
01913   */
01914 
01915 /** @defgroup HRTIM_Common_Interrupt_Flag HRTIM Common Interrupt Flag
01916   * @{
01917   */
01918 #define HRTIM_FLAG_FLT1           HRTIM_ISR_FLT1    /*!< Fault 1 interrupt flag */
01919 #define HRTIM_FLAG_FLT2           HRTIM_ISR_FLT2    /*!< Fault 2 interrupt flag */
01920 #define HRTIM_FLAG_FLT3           HRTIM_ISR_FLT3    /*!< Fault 3 interrupt flag */
01921 #define HRTIM_FLAG_FLT4           HRTIM_ISR_FLT4    /*!< Fault 4 interrupt flag */
01922 #define HRTIM_FLAG_FLT5           HRTIM_ISR_FLT5    /*!< Fault 5 interrupt flag */
01923 #define HRTIM_FLAG_SYSFLT         HRTIM_ISR_SYSFLT  /*!< System Fault interrupt flag */
01924 #define HRTIM_FLAG_BMPER          HRTIM_ISR_BMPER   /*!< Burst mode period interrupt flag */
01925 /**
01926   * @}
01927   */
01928 
01929 /** @defgroup HRTIM_Master_Interrupt_Flag HRTIM Master Interrupt Flag
01930   * @{
01931   */
01932 #define HRTIM_MASTER_FLAG_MCMP1        HRTIM_MISR_MCMP1    /*!< Master compare 1 interrupt flag */
01933 #define HRTIM_MASTER_FLAG_MCMP2        HRTIM_MISR_MCMP2    /*!< Master compare 2 interrupt flag */
01934 #define HRTIM_MASTER_FLAG_MCMP3        HRTIM_MISR_MCMP3    /*!< Master compare 3 interrupt flag */
01935 #define HRTIM_MASTER_FLAG_MCMP4        HRTIM_MISR_MCMP4    /*!< Master compare 4 interrupt flag */
01936 #define HRTIM_MASTER_FLAG_MREP         HRTIM_MISR_MREP     /*!< Master Repetition interrupt flag */
01937 #define HRTIM_MASTER_FLAG_SYNC         HRTIM_MISR_SYNC     /*!< Synchronization input interrupt flag */
01938 #define HRTIM_MASTER_FLAG_MUPD         HRTIM_MISR_MUPD     /*!< Master update interrupt flag */
01939 /**
01940   * @}
01941   */
01942 
01943 /** @defgroup HRTIM_Timing_Unit_Interrupt_Flag HRTIM Timing Unit Interrupt Flag
01944   * @{
01945   */
01946 #define HRTIM_TIM_FLAG_CMP1       HRTIM_TIMISR_CMP1      /*!< Timer compare 1 interrupt flag */
01947 #define HRTIM_TIM_FLAG_CMP2       HRTIM_TIMISR_CMP2      /*!< Timer compare 2 interrupt flag */
01948 #define HRTIM_TIM_FLAG_CMP3       HRTIM_TIMISR_CMP3      /*!< Timer compare 3 interrupt flag */
01949 #define HRTIM_TIM_FLAG_CMP4       HRTIM_TIMISR_CMP4      /*!< Timer compare 4 interrupt flag */
01950 #define HRTIM_TIM_FLAG_REP        HRTIM_TIMISR_REP       /*!< Timer repetition interrupt flag */
01951 #define HRTIM_TIM_FLAG_UPD        HRTIM_TIMISR_UPD       /*!< Timer update interrupt flag */
01952 #define HRTIM_TIM_FLAG_CPT1       HRTIM_TIMISR_CPT1      /*!< Timer capture 1 interrupt flag */
01953 #define HRTIM_TIM_FLAG_CPT2       HRTIM_TIMISR_CPT2      /*!< Timer capture 2 interrupt flag */
01954 #define HRTIM_TIM_FLAG_SET1       HRTIM_TIMISR_SET1      /*!< Timer output 1 set interrupt flag */
01955 #define HRTIM_TIM_FLAG_RST1       HRTIM_TIMISR_RST1      /*!< Timer output 1 reset interrupt flag */
01956 #define HRTIM_TIM_FLAG_SET2       HRTIM_TIMISR_SET2      /*!< Timer output 2 set interrupt flag */
01957 #define HRTIM_TIM_FLAG_RST2       HRTIM_TIMISR_RST2      /*!< Timer output 2 reset interrupt flag */
01958 #define HRTIM_TIM_FLAG_RST        HRTIM_TIMISR_RST       /*!< Timer reset interrupt flag */
01959 #define HRTIM_TIM_FLAG_DLYPRT     HRTIM_TIMISR_DLYPRT    /*!< Timer delay protection interrupt flag */
01960 /**
01961   * @}
01962   */
01963 
01964 /** @defgroup HRTIM_Master_DMA_Request_Enable HRTIM Master DMA Request Enable
01965   * @{
01966   */
01967 #define HRTIM_MASTER_DMA_NONE         0x00000000U            /*!< No DMA request enable */
01968 #define HRTIM_MASTER_DMA_MCMP1        HRTIM_MDIER_MCMP1DE    /*!< Master compare 1 DMA request enable */
01969 #define HRTIM_MASTER_DMA_MCMP2        HRTIM_MDIER_MCMP2DE    /*!< Master compare 2 DMA request enable */
01970 #define HRTIM_MASTER_DMA_MCMP3        HRTIM_MDIER_MCMP3DE    /*!< Master compare 3 DMA request enable */
01971 #define HRTIM_MASTER_DMA_MCMP4        HRTIM_MDIER_MCMP4DE    /*!< Master compare 4 DMA request enable */
01972 #define HRTIM_MASTER_DMA_MREP         HRTIM_MDIER_MREPDE     /*!< Master Repetition DMA request enable */
01973 #define HRTIM_MASTER_DMA_SYNC         HRTIM_MDIER_SYNCDE     /*!< Synchronization input DMA request enable */
01974 #define HRTIM_MASTER_DMA_MUPD         HRTIM_MDIER_MUPDDE     /*!< Master update DMA request enable */
01975 /**
01976   * @}
01977   */
01978 
01979 /** @defgroup HRTIM_Timing_Unit_DMA_Request_Enable HRTIM Timing Unit DMA Request Enable
01980   * @{
01981   */
01982 #define HRTIM_TIM_DMA_NONE       0x00000000U               /*!< No DMA request enable */
01983 #define HRTIM_TIM_DMA_CMP1       HRTIM_TIMDIER_CMP1DE      /*!< Timer compare 1 DMA request enable */
01984 #define HRTIM_TIM_DMA_CMP2       HRTIM_TIMDIER_CMP2DE      /*!< Timer compare 2 DMA request enable */
01985 #define HRTIM_TIM_DMA_CMP3       HRTIM_TIMDIER_CMP3DE      /*!< Timer compare 3 DMA request enable */
01986 #define HRTIM_TIM_DMA_CMP4       HRTIM_TIMDIER_CMP4DE      /*!< Timer compare 4 DMA request enable */
01987 #define HRTIM_TIM_DMA_REP        HRTIM_TIMDIER_REPDE       /*!< Timer repetition DMA request enable */
01988 #define HRTIM_TIM_DMA_UPD        HRTIM_TIMDIER_UPDDE       /*!< Timer update DMA request enable */
01989 #define HRTIM_TIM_DMA_CPT1       HRTIM_TIMDIER_CPT1DE      /*!< Timer capture 1 DMA request enable */
01990 #define HRTIM_TIM_DMA_CPT2       HRTIM_TIMDIER_CPT2DE      /*!< Timer capture 2 DMA request enable */
01991 #define HRTIM_TIM_DMA_SET1       HRTIM_TIMDIER_SET1DE      /*!< Timer output 1 set DMA request enable */
01992 #define HRTIM_TIM_DMA_RST1       HRTIM_TIMDIER_RST1DE      /*!< Timer output 1 reset DMA request enable */
01993 #define HRTIM_TIM_DMA_SET2       HRTIM_TIMDIER_SET2DE      /*!< Timer output 2 set DMA request enable */
01994 #define HRTIM_TIM_DMA_RST2       HRTIM_TIMDIER_RST2DE      /*!< Timer output 2 reset DMA request enable */
01995 #define HRTIM_TIM_DMA_RST        HRTIM_TIMDIER_RSTDE       /*!< Timer reset DMA request enable */
01996 #define HRTIM_TIM_DMA_DLYPRT     HRTIM_TIMDIER_DLYPRTDE    /*!< Timer delay protection DMA request enable */
01997 /**
01998   * @}
01999   */
02000 
02001 /**
02002   * @}
02003   */
02004 
02005   /* Private macros --------------------------------------------------------*/
02006 /** @addtogroup HRTIM_Private_Macros
02007   * @{
02008   */
02009 #define IS_HRTIM_TIMERINDEX(TIMERINDEX)\
02010     (((TIMERINDEX) == HRTIM_TIMERINDEX_MASTER)   || \
02011      ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A)  || \
02012      ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B)  || \
02013      ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C)  || \
02014      ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D)  || \
02015      ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E))
02016 
02017 #define IS_HRTIM_TIMING_UNIT(TIMERINDEX)\
02018      (((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A)  || \
02019       ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B)  || \
02020       ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C)  || \
02021       ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D)  || \
02022       ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E))
02023 
02024 #define IS_HRTIM_TIMERID(TIMERID) (((TIMERID) & 0xFFC0FFFFU) == 0x00000000U)
02025 
02026 #define IS_HRTIM_COMPAREUNIT(COMPAREUNIT)\
02027     (((COMPAREUNIT) == HRTIM_COMPAREUNIT_1)  || \
02028      ((COMPAREUNIT) == HRTIM_COMPAREUNIT_2)  || \
02029      ((COMPAREUNIT) == HRTIM_COMPAREUNIT_3)  || \
02030      ((COMPAREUNIT) == HRTIM_COMPAREUNIT_4))
02031 
02032 #define IS_HRTIM_CAPTUREUNIT(CAPTUREUNIT)\
02033     (((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_1)   || \
02034      ((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_2))
02035 
02036 #define IS_HRTIM_OUTPUT(OUTPUT) (((OUTPUT) & 0xFFFFFC00U) == 0x00000000U)
02037 
02038 #define IS_HRTIM_TIMER_OUTPUT(TIMER, OUTPUT)\
02039     ((((TIMER) == HRTIM_TIMERINDEX_TIMER_A) &&   \
02040      (((OUTPUT) == HRTIM_OUTPUT_TA1) ||          \
02041       ((OUTPUT) == HRTIM_OUTPUT_TA2)))           \
02042     ||                                           \
02043     (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) &&    \
02044      (((OUTPUT) == HRTIM_OUTPUT_TB1) ||          \
02045       ((OUTPUT) == HRTIM_OUTPUT_TB2)))           \
02046     ||                                           \
02047     (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) &&    \
02048      (((OUTPUT) == HRTIM_OUTPUT_TC1) ||          \
02049       ((OUTPUT) == HRTIM_OUTPUT_TC2)))           \
02050     ||                                           \
02051     (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) &&    \
02052      (((OUTPUT) == HRTIM_OUTPUT_TD1) ||          \
02053       ((OUTPUT) == HRTIM_OUTPUT_TD2)))           \
02054     ||                                           \
02055     (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) &&    \
02056      (((OUTPUT) == HRTIM_OUTPUT_TE1) ||          \
02057       ((OUTPUT) == HRTIM_OUTPUT_TE2))))
02058 
02059 #define IS_HRTIM_EVENT(EVENT)\
02060       (((EVENT) == HRTIM_EVENT_NONE)|| \
02061        ((EVENT) == HRTIM_EVENT_1)   || \
02062        ((EVENT) == HRTIM_EVENT_2)   || \
02063        ((EVENT) == HRTIM_EVENT_3)   || \
02064        ((EVENT) == HRTIM_EVENT_4)   || \
02065        ((EVENT) == HRTIM_EVENT_5)   || \
02066        ((EVENT) == HRTIM_EVENT_6)   || \
02067        ((EVENT) == HRTIM_EVENT_7)   || \
02068        ((EVENT) == HRTIM_EVENT_8)   || \
02069        ((EVENT) == HRTIM_EVENT_9)   || \
02070        ((EVENT) == HRTIM_EVENT_10))
02071 
02072 #define IS_HRTIM_FAULT(FAULT)\
02073       (((FAULT) == HRTIM_FAULT_1)   || \
02074        ((FAULT) == HRTIM_FAULT_2)   || \
02075        ((FAULT) == HRTIM_FAULT_3)   || \
02076        ((FAULT) == HRTIM_FAULT_4)   || \
02077        ((FAULT) == HRTIM_FAULT_5))
02078 
02079 #define IS_HRTIM_PRESCALERRATIO(PRESCALERRATIO)\
02080         (((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV1) || \
02081          ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV2)  || \
02082          ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV4))
02083 
02084 #define IS_HRTIM_MODE(MODE)\
02085           (((MODE) == HRTIM_MODE_CONTINUOUS)  ||  \
02086            ((MODE) == HRTIM_MODE_SINGLESHOT) || \
02087            ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
02088 
02089 #define IS_HRTIM_MODE_ONEPULSE(MODE)\
02090           (((MODE) == HRTIM_MODE_SINGLESHOT) || \
02091            ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
02092 
02093 
02094 #define IS_HRTIM_HALFMODE(HALFMODE)\
02095             (((HALFMODE) == HRTIM_HALFMODE_DISABLED)  ||  \
02096              ((HALFMODE) == HRTIM_HALFMODE_ENABLED))
02097 
02098 #define IS_HRTIM_SYNCSTART(SYNCSTART)\
02099               (((SYNCSTART) == HRTIM_SYNCSTART_DISABLED)  ||  \
02100                ((SYNCSTART) == HRTIM_SYNCSTART_ENABLED))
02101 
02102 #define IS_HRTIM_SYNCRESET(SYNCRESET)\
02103                 (((SYNCRESET) == HRTIM_SYNCRESET_DISABLED)  ||  \
02104                  ((SYNCRESET) == HRTIM_SYNCRESET_ENABLED))
02105 
02106 #define IS_HRTIM_DACSYNC(DACSYNC)\
02107                 (((DACSYNC) == HRTIM_DACSYNC_NONE)          ||  \
02108                  ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_1)  ||  \
02109                  ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_2)  ||  \
02110                  ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_3))
02111 
02112 #define IS_HRTIM_PRELOAD(PRELOAD)\
02113                 (((PRELOAD) == HRTIM_PRELOAD_DISABLED)  ||  \
02114                  ((PRELOAD) == HRTIM_PRELOAD_ENABLED))
02115 
02116 #define IS_HRTIM_UPDATEGATING_MASTER(UPDATEGATING)\
02117                 (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT)      ||  \
02118                  ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST)         ||  \
02119                  ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE))
02120 
02121 #define IS_HRTIM_UPDATEGATING_TIM(UPDATEGATING)\
02122                 (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT)      ||  \
02123                  ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST)         ||  \
02124                  ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE)  ||  \
02125                  ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1)           ||  \
02126                  ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2)           ||  \
02127                  ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3)           ||  \
02128                  ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1_UPDATE)    ||  \
02129                  ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2_UPDATE)    ||  \
02130                  ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3_UPDATE))
02131 
02132 #define IS_HRTIM_TIMERBURSTMODE(MODE)                               \
02133                 (((MODE) == HRTIM_TIMERBURSTMODE_MAINTAINCLOCK)  || \
02134                  ((MODE) == HRTIM_TIMERBURSTMODE_RESETCOUNTER))
02135 #define IS_HRTIM_UPDATEONREPETITION(UPDATEONREPETITION)                               \
02136                 (((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_DISABLED)  || \
02137                  ((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_ENABLED))
02138 
02139 #define IS_HRTIM_TIMPUSHPULLMODE(TIMPUSHPULLMODE)\
02140                   (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) || \
02141                    ((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED))
02142 #define IS_HRTIM_TIMFAULTENABLE(TIMFAULTENABLE) (((TIMFAULTENABLE) & 0xFFFFFFE0U) == 0x00000000U)
02143 
02144 #define IS_HRTIM_TIMFAULTLOCK(TIMFAULTLOCK)\
02145       (((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READWRITE) || \
02146        ((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READONLY))
02147 
02148 #define IS_HRTIM_TIMDEADTIMEINSERTION(TIMPUSHPULLMODE, TIMDEADTIMEINSERTION)\
02149     ((((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) &&               \
02150         ((((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED) || \
02151           ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_ENABLED))))  \
02152       ||                                                                     \
02153         (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED) &&             \
02154          ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED)))
02155 
02156 #define IS_HRTIM_TIMDELAYEDPROTECTION(TIMPUSHPULLMODE, TIMDELAYEDPROTECTION)\
02157           ((((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED)          || \
02158             ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6)  || \
02159             ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6)  || \
02160             ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6)  || \
02161             ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7) || \
02162             ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7) || \
02163             ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7))    \
02164             ||                                                                           \
02165             (((TIMPUSHPULLMODE) ==  HRTIM_TIMPUSHPULLMODE_ENABLED) &&                    \
02166              (((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6)     || \
02167              ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7))))
02168 
02169 #define IS_HRTIM_TIMUPDATETRIGGER(TIMUPDATETRIGGER) (((TIMUPDATETRIGGER) & 0xFE07FFFFU) == 0x00000000U)
02170 
02171 #define IS_HRTIM_TIMRESETTRIGGER(TIMRESETTRIGGER) (((TIMRESETTRIGGER) & 0x80000001U) == 0x00000000U)
02172 
02173 
02174 #define IS_HRTIM_TIMUPDATEONRESET(TIMUPDATEONRESET)                       \
02175               (((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_DISABLED) || \
02176                ((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_ENABLED))
02177 
02178 #define IS_HRTIM_AUTODELAYEDMODE(AUTODELAYEDMODE)\
02179               (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR)                  || \
02180                ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT)    || \
02181                ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1)  || \
02182                ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))
02183 
02184 /* Auto delayed mode is only available for compare units 2 and 4U */
02185 #define IS_HRTIM_COMPAREUNIT_AUTODELAYEDMODE(COMPAREUNIT, AUTODELAYEDMODE)     \
02186     ((((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) &&                                 \
02187      (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR)                 ||  \
02188       ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT)   ||  \
02189       ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) ||  \
02190       ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3)))   \
02191     ||                                                                         \
02192     (((COMPAREUNIT) == HRTIM_COMPAREUNIT_4) &&                                 \
02193      (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR)                 ||  \
02194       ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT)   ||  \
02195       ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) ||  \
02196       ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))))
02197 
02198 #define IS_HRTIM_OUTPUTPOLARITY(OUTPUTPOLARITY)\
02199               (((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_HIGH) || \
02200                ((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_LOW))
02201 
02202 #define IS_HRTIM_OUTPUTPULSE(OUTPUTPULSE) ((OUTPUTPULSE) <= 0x0000FFFFU)
02203 
02204 #define IS_HRTIM_OUTPUTSET(OUTPUTSET)\
02205               (((OUTPUTSET) == HRTIM_OUTPUTSET_NONE)       || \
02206                ((OUTPUTSET) == HRTIM_OUTPUTSET_RESYNC)     || \
02207                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMPER)     || \
02208                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP1)    || \
02209                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP2)    || \
02210                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP3)    || \
02211                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP4)    || \
02212                ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERPER)  || \
02213                ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP1) || \
02214                ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP2) || \
02215                ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP3) || \
02216                ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP4) || \
02217                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_1)    || \
02218                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_2)    || \
02219                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_3)    || \
02220                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_4)    || \
02221                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_5)    || \
02222                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_6)    || \
02223                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_7)    || \
02224                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_8)    || \
02225                ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_9)    || \
02226                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_1)      || \
02227                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_2)      || \
02228                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_3)      || \
02229                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_4)      || \
02230                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_5)      || \
02231                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_6)      || \
02232                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_7)      || \
02233                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_8)      || \
02234                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_9)      || \
02235                ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_10)     || \
02236                ((OUTPUTSET) == HRTIM_OUTPUTSET_UPDATE))
02237 
02238 #define IS_HRTIM_OUTPUTRESET(OUTPUTRESET)\
02239               (((OUTPUTRESET) == HRTIM_OUTPUTRESET_NONE)       || \
02240                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_RESYNC)     || \
02241                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMPER)     || \
02242                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP1)    || \
02243                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP2)    || \
02244                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP3)    || \
02245                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP4)    || \
02246                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERPER)  || \
02247                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP1) || \
02248                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP2) || \
02249                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP3) || \
02250                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP4) || \
02251                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_1)    || \
02252                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_2)    || \
02253                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_3)    || \
02254                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_4)    || \
02255                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_5)    || \
02256                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_6)    || \
02257                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_7)    || \
02258                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_8)    || \
02259                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_9)    || \
02260                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_1)      || \
02261                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_2)      || \
02262                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_3)      || \
02263                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_4)      || \
02264                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_5)      || \
02265                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_6)      || \
02266                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_7)      || \
02267                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_8)      || \
02268                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_9)      || \
02269                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_10)     || \
02270                ((OUTPUTRESET) == HRTIM_OUTPUTRESET_UPDATE))
02271 
02272 #define IS_HRTIM_OUTPUTIDLEMODE(OUTPUTIDLEMODE)\
02273               (((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_NONE) || \
02274                ((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_IDLE))
02275 
02276 #define IS_HRTIM_OUTPUTIDLELEVEL(OUTPUTIDLELEVEL)\
02277               (((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_INACTIVE) || \
02278                ((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_ACTIVE))
02279 
02280 #define IS_HRTIM_OUTPUTFAULTLEVEL(OUTPUTFAULTLEVEL)\
02281               (((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_NONE)     || \
02282                ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_ACTIVE)   || \
02283                ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_INACTIVE) || \
02284                ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_HIGHZ))
02285 
02286 #define IS_HRTIM_OUTPUTCHOPPERMODE(OUTPUTCHOPPERMODE)\
02287               (((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_DISABLED)  || \
02288                ((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_ENABLED))
02289 
02290 #define IS_HRTIM_OUTPUTBURSTMODEENTRY(OUTPUTBURSTMODEENTRY)\
02291               (((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_REGULAR)  || \
02292                ((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_DELAYED))
02293 
02294 
02295 #define IS_HRTIM_TIMER_CAPTURETRIGGER(TIMER, CAPTURETRIGGER)    \
02296    (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_NONE)          || \
02297    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_UPDATE)         || \
02298    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_1)          || \
02299    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_2)          || \
02300    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_3)          || \
02301    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_4)          || \
02302    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_5)          || \
02303    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_6)          || \
02304    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_7)          || \
02305    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_8)          || \
02306    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_9)          || \
02307    ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_10)            \
02308    ||                                                           \
02309    (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) &&                    \
02310      (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET)     || \
02311       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET)   || \
02312       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
02313       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
02314       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET)     || \
02315       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET)   || \
02316       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
02317       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
02318       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET)     || \
02319       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET)   || \
02320       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
02321       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
02322       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET)     || \
02323       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET)   || \
02324       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
02325       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2)))  \
02326     ||                                                          \
02327    (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) &&                    \
02328      (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET)     || \
02329       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET)   || \
02330       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
02331       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
02332       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET)     || \
02333       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET)   || \
02334       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
02335       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
02336       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET)     || \
02337       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET)   || \
02338       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
02339       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
02340       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET)     || \
02341       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET)   || \
02342       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
02343       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2)))  \
02344     ||                                                          \
02345    (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) &&                    \
02346      (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET)     || \
02347       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET)   || \
02348       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
02349       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
02350       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET)     || \
02351       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET)   || \
02352       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
02353       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
02354       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET)     || \
02355       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET)   || \
02356       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
02357       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
02358       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET)     || \
02359       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET)   || \
02360       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
02361       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2)))  \
02362     ||                                                          \
02363    (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) &&                    \
02364      (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET)     || \
02365       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET)   || \
02366       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
02367       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
02368       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET)     || \
02369       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET)   || \
02370       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
02371       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
02372       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET)     || \
02373       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET)   || \
02374       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
02375       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
02376       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET)     || \
02377       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET)   || \
02378       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
02379       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2)))  \
02380     ||                                                          \
02381    (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) &&                    \
02382      (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET)     || \
02383       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET)   || \
02384       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
02385       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
02386       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET)     || \
02387       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET)   || \
02388       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
02389       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
02390       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET)     || \
02391       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET)   || \
02392       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
02393       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
02394       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET)     || \
02395       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET)   || \
02396       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
02397       ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2))))
02398 
02399 #define IS_HRTIM_TIMEVENTFILTER(TIMEVENTFILTER)\
02400                 (((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_NONE)           || \
02401                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP1)   || \
02402                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP2)   || \
02403                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP3)   || \
02404                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP4)   || \
02405                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR1)  || \
02406                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR2)  || \
02407                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR3)  || \
02408                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR4)  || \
02409                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR5)  || \
02410                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR6)  || \
02411                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR7)  || \
02412                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR8)  || \
02413                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGCMP2)  || \
02414                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGCMP3)  || \
02415                  ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGTIM))
02416 
02417 #define IS_HRTIM_TIMEVENTLATCH(TIMEVENTLATCH)\
02418               (((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_DISABLED) || \
02419                ((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_ENABLED))
02420 
02421 #define IS_HRTIM_TIMDEADTIME_PRESCALERRATIO(PRESCALERRATIO)\
02422                 (((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8) || \
02423                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4) || \
02424                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2) || \
02425                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1) || \
02426                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2) || \
02427                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4) || \
02428                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8) || \
02429                  ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16))
02430 
02431 #define IS_HRTIM_TIMDEADTIME_RISINGSIGN(RISINGSIGN)\
02432                 (((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE)    || \
02433                  ((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE))
02434 
02435 #define IS_HRTIM_TIMDEADTIME_RISINGLOCK(RISINGLOCK)\
02436                     (((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_WRITE)    || \
02437                      ((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_READONLY))
02438 
02439 #define IS_HRTIM_TIMDEADTIME_RISINGSIGNLOCK(RISINGSIGNLOCK)\
02440                   (((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE)    || \
02441                    ((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY))
02442 
02443 #define IS_HRTIM_TIMDEADTIME_FALLINGSIGN(FALLINGSIGN)\
02444                       (((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE)    || \
02445                        ((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE))
02446 
02447 #define IS_HRTIM_TIMDEADTIME_FALLINGLOCK(FALLINGLOCK)\
02448                           (((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE)    || \
02449                            ((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY))
02450 
02451 #define IS_HRTIM_TIMDEADTIME_FALLINGSIGNLOCK(FALLINGSIGNLOCK)\
02452                         (((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE)    || \
02453                          ((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY))
02454 
02455 #define IS_HRTIM_CHOPPER_PRESCALERRATIO(PRESCALERRATIO)\
02456                         (((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV16)    || \
02457                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV32)    || \
02458                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV48)    || \
02459                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV64)    || \
02460                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV80)    || \
02461                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV96)    || \
02462                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV112)   || \
02463                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV128)   || \
02464                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV144)   || \
02465                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV160)   || \
02466                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV176)   || \
02467                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV192)   || \
02468                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV208)   || \
02469                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV224)   || \
02470                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV240)   || \
02471                          ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV256))
02472 
02473 #define IS_HRTIM_CHOPPER_DUTYCYCLE(DUTYCYCLE)\
02474                         (((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_0)    || \
02475                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_125)  || \
02476                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_250)  || \
02477                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_375)  || \
02478                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_500)  || \
02479                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_625)  || \
02480                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_750)  || \
02481                          ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_875))
02482 
02483 #define IS_HRTIM_CHOPPER_PULSEWIDTH(PULSEWIDTH)\
02484                         (((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_16)   || \
02485                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_32)   || \
02486                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_48)   || \
02487                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_64)   || \
02488                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_80)   || \
02489                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_96)   || \
02490                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_112)  || \
02491                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_128)  || \
02492                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_144)  || \
02493                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_160)  || \
02494                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_176)  || \
02495                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_192)  || \
02496                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_208)  || \
02497                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_224)  || \
02498                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_240)  || \
02499                          ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_256))
02500 
02501 #define IS_HRTIM_SYNCINPUTSOURCE(SYNCINPUTSOURCE)\
02502               (((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_NONE)             || \
02503                ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_INTERNALEVENT)    || \
02504                ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT))
02505 
02506 #define IS_HRTIM_SYNCOUTPUTSOURCE(SYNCOUTPUTSOURCE)\
02507               (((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_START)  || \
02508                ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1)   || \
02509                ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_START)    || \
02510                ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1))
02511 
02512 #define IS_HRTIM_SYNCOUTPUTPOLARITY(SYNCOUTPUTPOLARITY)\
02513               (((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NONE)  || \
02514                ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_POSITIVE)  || \
02515                ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE))
02516 
02517 #define IS_HRTIM_EVENTSRC(EVENTSRC)\
02518                 (((EVENTSRC) == HRTIM_EVENTSRC_1)   || \
02519                  ((EVENTSRC) == HRTIM_EVENTSRC_2)   || \
02520                  ((EVENTSRC) == HRTIM_EVENTSRC_3)   || \
02521                  ((EVENTSRC) == HRTIM_EVENTSRC_4))
02522 
02523 #define IS_HRTIM_EVENTPOLARITY(EVENTSENSITIVITY, EVENTPOLARITY)\
02524     ((((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL)  &&      \
02525        (((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_HIGH)  ||           \
02526         ((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_LOW)))              \
02527       ||                                                            \
02528       (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
02529        ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE)|| \
02530        ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES)))
02531 
02532 #define IS_HRTIM_EVENTSENSITIVITY(EVENTSENSITIVITY)\
02533                     (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL)       || \
02534                      ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE)  || \
02535                      ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE) || \
02536                      ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES))
02537 
02538 #define IS_HRTIM_EVENTFASTMODE(EVENT, FASTMODE)\
02539     (((((EVENT) == HRTIM_EVENT_1) ||                 \
02540        ((EVENT) == HRTIM_EVENT_2) ||                 \
02541        ((EVENT) == HRTIM_EVENT_3) ||                 \
02542        ((EVENT) == HRTIM_EVENT_4) ||                 \
02543        ((EVENT) == HRTIM_EVENT_5)) &&                \
02544       (((FASTMODE) == HRTIM_EVENTFASTMODE_ENABLE) || \
02545        ((FASTMODE) == HRTIM_EVENTFASTMODE_DISABLE))) \
02546     ||                                               \
02547     (((EVENT) == HRTIM_EVENT_6) ||                   \
02548      ((EVENT) == HRTIM_EVENT_7) ||                   \
02549      ((EVENT) == HRTIM_EVENT_8) ||                   \
02550      ((EVENT) == HRTIM_EVENT_9) ||                   \
02551      ((EVENT) == HRTIM_EVENT_10)))
02552 
02553 
02554 #define IS_HRTIM_EVENTFILTER(EVENT, FILTER)\
02555       ((((EVENT) == HRTIM_EVENT_1) ||            \
02556         ((EVENT) == HRTIM_EVENT_2) ||            \
02557         ((EVENT) == HRTIM_EVENT_3) ||            \
02558         ((EVENT) == HRTIM_EVENT_4) ||            \
02559         ((EVENT) == HRTIM_EVENT_5))              \
02560        ||                                        \
02561       ((((EVENT) == HRTIM_EVENT_6) ||            \
02562         ((EVENT) == HRTIM_EVENT_7) ||            \
02563         ((EVENT) == HRTIM_EVENT_8) ||            \
02564         ((EVENT) == HRTIM_EVENT_9) ||            \
02565         ((EVENT) == HRTIM_EVENT_10)) &&          \
02566         (((FILTER) == HRTIM_EVENTFILTER_NONE) || \
02567         ((FILTER) == HRTIM_EVENTFILTER_1)     || \
02568         ((FILTER) == HRTIM_EVENTFILTER_2)     || \
02569         ((FILTER) == HRTIM_EVENTFILTER_3)     || \
02570         ((FILTER) == HRTIM_EVENTFILTER_4)     || \
02571         ((FILTER) == HRTIM_EVENTFILTER_5)     || \
02572         ((FILTER) == HRTIM_EVENTFILTER_6)     || \
02573         ((FILTER) == HRTIM_EVENTFILTER_7)     || \
02574         ((FILTER) == HRTIM_EVENTFILTER_8)     || \
02575         ((FILTER) == HRTIM_EVENTFILTER_9)     || \
02576         ((FILTER) == HRTIM_EVENTFILTER_10)    || \
02577         ((FILTER) == HRTIM_EVENTFILTER_11)    || \
02578         ((FILTER) == HRTIM_EVENTFILTER_12)    || \
02579         ((FILTER) == HRTIM_EVENTFILTER_13)    || \
02580         ((FILTER) == HRTIM_EVENTFILTER_14)    || \
02581         ((FILTER) == HRTIM_EVENTFILTER_15))))
02582 
02583 #define IS_HRTIM_EVENTPRESCALER(EVENTPRESCALER)\
02584              (((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV1)  || \
02585               ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV2)   || \
02586               ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV4)   || \
02587               ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV8))
02588 
02589 #define IS_HRTIM_FAULTSOURCE(FAULTSOURCE)\
02590               (((FAULTSOURCE) == HRTIM_FAULTSOURCE_DIGITALINPUT) || \
02591               ((FAULTSOURCE) == HRTIM_FAULTSOURCE_INTERNAL))
02592 
02593 #define IS_HRTIM_FAULTPOLARITY(HRTIM_FAULTPOLARITY)\
02594               (((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_LOW) || \
02595                ((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_HIGH))
02596 
02597 #define IS_HRTIM_FAULTMODECTL(FAULTMODECTL)\
02598     (((FAULTMODECTL) == HRTIM_FAULTMODECTL_DISABLED)  || \
02599      ((FAULTMODECTL) == HRTIM_FAULTMODECTL_ENABLED))
02600 
02601 #define IS_HRTIM_FAULTFILTER(FAULTFILTER)\
02602                 (((FAULTFILTER) == HRTIM_FAULTFILTER_NONE) || \
02603                  ((FAULTFILTER) == HRTIM_FAULTFILTER_1)    || \
02604                  ((FAULTFILTER) == HRTIM_FAULTFILTER_2)    || \
02605                  ((FAULTFILTER) == HRTIM_FAULTFILTER_3)    || \
02606                  ((FAULTFILTER) == HRTIM_FAULTFILTER_4)    || \
02607                  ((FAULTFILTER) == HRTIM_FAULTFILTER_5)    || \
02608                  ((FAULTFILTER) == HRTIM_FAULTFILTER_6)    || \
02609                  ((FAULTFILTER) == HRTIM_FAULTFILTER_7)    || \
02610                  ((FAULTFILTER) == HRTIM_FAULTFILTER_8)    || \
02611                  ((FAULTFILTER) == HRTIM_FAULTFILTER_9)    || \
02612                  ((FAULTFILTER) == HRTIM_FAULTFILTER_10)   || \
02613                  ((FAULTFILTER) == HRTIM_FAULTFILTER_11)   || \
02614                  ((FAULTFILTER) == HRTIM_FAULTFILTER_12)   || \
02615                  ((FAULTFILTER) == HRTIM_FAULTFILTER_13)   || \
02616                  ((FAULTFILTER) == HRTIM_FAULTFILTER_14)   || \
02617                  ((FAULTFILTER) == HRTIM_FAULTFILTER_15))
02618 
02619 #define IS_HRTIM_FAULTLOCK(FAULTLOCK)\
02620               (((FAULTLOCK) == HRTIM_FAULTLOCK_READWRITE) || \
02621                ((FAULTLOCK) == HRTIM_FAULTLOCK_READONLY))
02622 
02623 #define IS_HRTIM_FAULTPRESCALER(FAULTPRESCALER)\
02624              (((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV1)  || \
02625               ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV2)   || \
02626               ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV4)   || \
02627               ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV8))
02628 
02629 #define IS_HRTIM_BURSTMODE(BURSTMODE)\
02630               (((BURSTMODE) == HRTIM_BURSTMODE_SINGLESHOT)  || \
02631                ((BURSTMODE) == HRTIM_BURSTMODE_CONTINOUS))
02632 
02633 #define IS_HRTIM_BURSTMODECLOCKSOURCE(BURSTMODECLOCKSOURCE)\
02634               (((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_MASTER)      || \
02635                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_A)     || \
02636                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_B)     || \
02637                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_C)     || \
02638                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_D)     || \
02639                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_E)     || \
02640                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC)    || \
02641                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM17_OC)    || \
02642                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO)   || \
02643                ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_FHRTIM))
02644 
02645 #define IS_HRTIM_HRTIM_BURSTMODEPRESCALER(BURSTMODEPRESCALER)\
02646               (((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1)     || \
02647                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2)     || \
02648                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4)     || \
02649                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8)     || \
02650                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16)    || \
02651                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32)    || \
02652                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV64)    || \
02653                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV128)   || \
02654                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV256)   || \
02655                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV512)   || \
02656                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1024)  || \
02657                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2048)  || \
02658                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4096)  || \
02659                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8192)  || \
02660                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16384) || \
02661                ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32768))
02662 
02663 #define IS_HRTIM_BURSTMODEPRELOAD(BURSTMODEPRELOAD)\
02664               (((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_DISABLED)  || \
02665                ((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_ENABLED))
02666 
02667 #define IS_HRTIM_BURSTMODETRIGGER(BURSTMODETRIGGER)\
02668               (((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_NONE)               || \
02669                ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_RESET)       || \
02670                ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_REPETITION)  || \
02671                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_MASTER_CMP1)       || \
02672                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_MASTER_CMP2)       || \
02673                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_MASTER_CMP3)       || \
02674                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_MASTER_CMP4)       || \
02675                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERA_RESET)      || \
02676                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION) || \
02677                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERA_CMP1)       || \
02678                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERA_CMP2)       || \
02679                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERB_RESET)      || \
02680                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION) || \
02681                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERB_CMP1)       || \
02682                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERB_CMP2)       || \
02683                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERC_RESET)      || \
02684                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION) || \
02685                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERC_CMP1)       || \
02686                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERC_CMP2)       || \
02687                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERD_RESET)      || \
02688                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION) || \
02689                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERD_CMP1)       || \
02690                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERD_CMP2)       || \
02691                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERE_RESET)      || \
02692                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION) || \
02693                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERE_CMP1)       || \
02694                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERE_CMP2)       || \
02695                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7)     || \
02696                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8)     || \
02697                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_EVENT_7)           || \
02698                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_EVENT_8)           || \
02699                ((BURSTMODETRIGGER) ==  HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP))
02700 
02701 #define IS_HRTIM_ADCTRIGGERUPDATE(ADCTRIGGERUPDATE)\
02702              (((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_MASTER)   || \
02703               ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_A)  || \
02704               ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_B)  || \
02705               ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_C)  || \
02706               ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_D)  || \
02707               ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_E))
02708 
02709 #define IS_HRTIM_CALIBRATIONRATE(CALIBRATIONRATE)\
02710     (((CALIBRATIONRATE) == HRTIM_SINGLE_CALIBRATION)   || \
02711      ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_7300) || \
02712      ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_910)  || \
02713      ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_114)  || \
02714      ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_14))
02715 
02716 #define IS_HRTIM_TIMER_BURSTDMA(TIMER, BURSTDMA)                                            \
02717     ((((TIMER) == HRTIM_TIMERINDEX_MASTER)  && (((BURSTDMA) & 0xFFFFC000U) == 0x00000000U)) \
02718   || (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
02719   || (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
02720   || (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
02721   || (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
02722   || (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)))
02723 
02724 #define IS_HRTIM_BURSTMODECTL(BURSTMODECTL)\
02725     (((BURSTMODECTL) == HRTIM_BURSTMODECTL_DISABLED)  || \
02726      ((BURSTMODECTL) == HRTIM_BURSTMODECTL_ENABLED))
02727 
02728 #define IS_HRTIM_TIMERUPDATE(TIMERUPDATE) (((TIMERUPDATE) & 0xFFFFFFC0U) == 0x00000000U)
02729 
02730 #define IS_HRTIM_TIMERRESET(TIMERRESET) (((TIMERRESET) & 0xFFFFC0FFU) == 0x00000000U)
02731 
02732 #define IS_HRTIM_IT(IT) (((IT) & 0xFFFCFFC0U) == 0x00000000U)
02733 
02734 
02735 #define IS_HRTIM_MASTER_IT(MASTER_IT) (((MASTER_IT) & 0xFFFFFF80U) == 0x00000000U)
02736 
02737 
02738 #define IS_HRTIM_TIM_IT(TIM_IT) (((TIM_IT) & 0xFFFF8020U) == 0x00000000U)
02739 
02740 
02741 #define IS_HRTIM_MASTER_DMA(MASTER_DMA) (((MASTER_DMA) & 0xFF80FFFFU) == 0x00000000U)
02742 
02743 #define IS_HRTIM_TIM_DMA(TIM_DMA) (((TIM_DMA) & 0x8020FFFFU) == 0x00000000U)
02744 /**
02745   * @}
02746   */
02747 
02748 /* Exported macros -----------------------------------------------------------*/
02749 /** @defgroup HRTIM_Exported_Macros HRTIM Exported Macros
02750   * @{
02751   */
02752 
02753 /** @brief Reset HRTIM handle state
02754   * @param  __HANDLE__ HRTIM handle.
02755   * @retval None
02756   */
02757 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
02758 #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__)                do{                                                       \
02759                                                                     (__HANDLE__)->State             = HAL_HRTIM_STATE_RESET; \
02760                                                                     (__HANDLE__)->MspInitCallback   = NULL;                  \
02761                                                                     (__HANDLE__)->MspDeInitCallback = NULL;                 \
02762                                                                   } while(0)
02763 #else
02764 #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__)                ((__HANDLE__)->State = HAL_HRTIM_STATE_RESET)
02765 #endif
02766 
02767 /** @brief  Enables or disables the timer counter(s)
02768   * @param  __HANDLE__ specifies the HRTIM Handle.
02769   * @param  __TIMERS__ timers to enable/disable
02770   *        This parameter can be any combinations of the following values:
02771   *            @arg HRTIM_TIMERID_MASTER: Master timer identifier
02772   *            @arg HRTIM_TIMERID_TIMER_A: Timer A identifier
02773   *            @arg HRTIM_TIMERID_TIMER_B: Timer B identifier
02774   *            @arg HRTIM_TIMERID_TIMER_C: Timer C identifier
02775   *            @arg HRTIM_TIMERID_TIMER_D: Timer D identifier
02776   *            @arg HRTIM_TIMERID_TIMER_E: Timer E identifier
02777   * @retval None
02778   */
02779 #define __HAL_HRTIM_ENABLE(__HANDLE__, __TIMERS__)   ((__HANDLE__)->Instance->sMasterRegs.MCR |= (__TIMERS__))
02780 
02781 /* The counter of a timing unit is disabled only if all the timer outputs */
02782 /* are disabled and no capture is configured                              */
02783 #define HRTIM_TAOEN_MASK (HRTIM_OENR_TA2OEN | HRTIM_OENR_TA1OEN)
02784 #define HRTIM_TBOEN_MASK (HRTIM_OENR_TB2OEN | HRTIM_OENR_TB1OEN)
02785 #define HRTIM_TCOEN_MASK (HRTIM_OENR_TC2OEN | HRTIM_OENR_TC1OEN)
02786 #define HRTIM_TDOEN_MASK (HRTIM_OENR_TD2OEN | HRTIM_OENR_TD1OEN)
02787 #define HRTIM_TEOEN_MASK (HRTIM_OENR_TE2OEN | HRTIM_OENR_TE1OEN)
02788 #define __HAL_HRTIM_DISABLE(__HANDLE__, __TIMERS__)\
02789   do {\
02790     if (((__TIMERS__) & HRTIM_TIMERID_MASTER) == HRTIM_TIMERID_MASTER)\
02791       {\
02792         ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_MASTER);\
02793       }\
02794     if (((__TIMERS__) & HRTIM_TIMERID_TIMER_A) == HRTIM_TIMERID_TIMER_A)\
02795       {\
02796         if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TAOEN_MASK) == (uint32_t)RESET)\
02797           {\
02798             ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_A);\
02799           }\
02800       }\
02801     if (((__TIMERS__) & HRTIM_TIMERID_TIMER_B) == HRTIM_TIMERID_TIMER_B)\
02802       {\
02803         if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TBOEN_MASK) == (uint32_t)RESET)\
02804           {\
02805             ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_B);\
02806           }\
02807       }\
02808     if (((__TIMERS__) & HRTIM_TIMERID_TIMER_C) == HRTIM_TIMERID_TIMER_C)\
02809       {\
02810         if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TCOEN_MASK) == (uint32_t)RESET)\
02811           {\
02812             ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_C);\
02813           }\
02814       }\
02815     if (((__TIMERS__) & HRTIM_TIMERID_TIMER_D) == HRTIM_TIMERID_TIMER_D)\
02816       {\
02817         if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TDOEN_MASK) == (uint32_t)RESET)\
02818           {\
02819             ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_D);\
02820           }\
02821       }\
02822     if (((__TIMERS__) & HRTIM_TIMERID_TIMER_E) == HRTIM_TIMERID_TIMER_E)\
02823       {\
02824         if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TEOEN_MASK) == (uint32_t)RESET)\
02825           {\
02826             ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_E);\
02827           }\
02828       }\
02829   } while(0U)
02830 
02831 
02832 /** @brief  Enables or disables the specified HRTIM common interrupts.
02833   * @param  __HANDLE__ specifies the HRTIM Handle.
02834   * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
02835   *        This parameter can be one of the following values:
02836   *            @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
02837   *            @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
02838   *            @arg HRTIM_IT_FLT3: Fault 3 interrupt enable
02839   *            @arg HRTIM_IT_FLT4: Fault 4 interrupt enable
02840   *            @arg HRTIM_IT_FLT5: Fault 5 interrupt enable
02841   *            @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
02842   *            @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
02843   * @retval None
02844   */
02845 #define __HAL_HRTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->sCommonRegs.IER |= (__INTERRUPT__))
02846 #define __HAL_HRTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER &= ~(__INTERRUPT__))
02847 
02848 /** @brief  Enables or disables the specified HRTIM Master timer interrupts.
02849   * @param  __HANDLE__ specifies the HRTIM Handle.
02850   * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
02851   *        This parameter can be one of the following values:
02852   *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
02853   *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
02854   *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
02855   *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
02856   *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
02857   *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
02858   *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
02859   * @retval None
02860   */
02861 #define __HAL_HRTIM_MASTER_ENABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__INTERRUPT__))
02862 #define __HAL_HRTIM_MASTER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__INTERRUPT__))
02863 
02864 /** @brief  Enables or disables the specified HRTIM Timerx interrupts.
02865   * @param  __HANDLE__ specifies the HRTIM Handle.
02866   * @param  __TIMER__ specified the timing unit (Timer A to E)
02867   * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
02868   *        This parameter can be one of the following values:
02869   *            @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
02870   *            @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
02871   *            @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
02872   *            @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
02873   *            @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
02874   *            @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
02875   *            @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
02876   *            @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
02877   *            @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
02878   *            @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
02879   *            @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
02880   *            @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
02881   *            @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
02882   *            @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
02883   * @retval None
02884   */
02885 #define __HAL_HRTIM_TIMER_ENABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__)   ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__INTERRUPT__))
02886 #define __HAL_HRTIM_TIMER_DISABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__INTERRUPT__))
02887 
02888 /** @brief  Checks if the specified HRTIM common interrupt  source  is enabled or disabled.
02889   * @param  __HANDLE__ specifies the HRTIM Handle.
02890   * @param  __INTERRUPT__ specifies the interrupt source to check.
02891   *        This parameter can be one of the following values:
02892   *            @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
02893   *            @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
02894   *            @arg HRTIM_IT_FLT3: Fault 3 enable
02895   *            @arg HRTIM_IT_FLT4: Fault 4 enable
02896   *            @arg HRTIM_IT_FLT5: Fault 5 enable
02897   *            @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
02898   *            @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
02899   * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
02900   */
02901 #define __HAL_HRTIM_GET_ITSTATUS(__HANDLE__, __INTERRUPT__)     ((((__HANDLE__)->Instance->sCommonRegs.IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
02902 
02903 /** @brief  Checks if the specified HRTIM Master interrupt source  is enabled or disabled.
02904   * @param  __HANDLE__ specifies the HRTIM Handle.
02905   * @param  __INTERRUPT__ specifies the interrupt source to check.
02906   *        This parameter can be one of the following values:
02907   *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
02908   *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
02909   *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
02910   *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
02911   *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
02912   *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
02913   *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
02914   * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
02915   */
02916 #define __HAL_HRTIM_MASTER_GET_ITSTATUS(__HANDLE__, __INTERRUPT__)     ((((__HANDLE__)->Instance->sMasterRegs.MDIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
02917 
02918 /** @brief  Checks if the specified HRTIM Timerx interrupt source  is enabled or disabled.
02919   * @param  __HANDLE__ specifies the HRTIM Handle.
02920   * @param  __TIMER__ specified the timing unit (Timer A to E)
02921   * @param  __INTERRUPT__ specifies the interrupt source to check.
02922   *        This parameter can be one of the following values:
02923   *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
02924   *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
02925   *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
02926   *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
02927   *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
02928   *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
02929   *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
02930   *            @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
02931   *            @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
02932   *            @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
02933   *            @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
02934   *            @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
02935   *            @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
02936   *            @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
02937   *            @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
02938   *            @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
02939   *            @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
02940   *            @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
02941   *            @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
02942   *            @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
02943   *            @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
02944   * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
02945   */
02946 #define __HAL_HRTIM_TIMER_GET_ITSTATUS(__HANDLE__, __TIMER__, __INTERRUPT__)     ((((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
02947 
02948 /** @brief  Clears the specified HRTIM common pending flag.
02949   * @param  __HANDLE__ specifies the HRTIM Handle.
02950   * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
02951   *        This parameter can be one of the following values:
02952   *            @arg HRTIM_IT_FLT1: Fault 1 interrupt clear flag
02953   *            @arg HRTIM_IT_FLT2: Fault 2 interrupt clear flag
02954   *            @arg HRTIM_IT_FLT3: Fault 3 clear flag
02955   *            @arg HRTIM_IT_FLT4: Fault 4 clear flag
02956   *            @arg HRTIM_IT_FLT5: Fault 5 clear flag
02957   *            @arg HRTIM_IT_SYSFLT: System Fault interrupt clear flag
02958   *            @arg HRTIM_IT_BMPER: Burst mode period interrupt clear flag
02959   * @retval None
02960   */
02961 #define __HAL_HRTIM_CLEAR_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->sCommonRegs.ICR = (__INTERRUPT__))
02962 
02963 /** @brief  Clears the specified HRTIM Master pending flag.
02964   * @param  __HANDLE__ specifies the HRTIM Handle.
02965   * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
02966   *        This parameter can be one of the following values:
02967   *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt clear flag
02968   *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt clear flag
02969   *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt clear flag
02970   *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt clear flag
02971   *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt clear flag
02972   *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt clear flag
02973   *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt clear flag
02974   * @retval None
02975   */
02976 #define __HAL_HRTIM_MASTER_CLEAR_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->sMasterRegs.MICR = (__INTERRUPT__))
02977 
02978 /** @brief  Clears the specified HRTIM Timerx pending flag.
02979   * @param  __HANDLE__ specifies the HRTIM Handle.
02980   * @param  __TIMER__ specified the timing unit (Timer A to E)
02981   * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
02982   *        This parameter can be one of the following values:
02983   *            @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt clear flag
02984   *            @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt clear flag
02985   *            @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt clear flag
02986   *            @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt clear flag
02987   *            @arg HRTIM_TIM_IT_REP: Timer repetition interrupt clear flag
02988   *            @arg HRTIM_TIM_IT_UPD: Timer update interrupt clear flag
02989   *            @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt clear flag
02990   *            @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt clear flag
02991   *            @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt clear flag
02992   *            @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt clear flag
02993   *            @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt clear flag
02994   *            @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt clear flag
02995   *            @arg HRTIM_TIM_IT_RST: Timer reset interrupt clear flag
02996   *            @arg HRTIM_TIM_IT_DLYPRT: Timer output 1 delay protection interrupt clear flag
02997   * @retval None
02998   */
02999 #define __HAL_HRTIM_TIMER_CLEAR_IT(__HANDLE__, __TIMER__, __INTERRUPT__)   ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR = (__INTERRUPT__))
03000 
03001 /* DMA HANDLING */
03002 /** @brief  Enables or disables the specified HRTIM Master timer DMA requests.
03003   * @param  __HANDLE__ specifies the HRTIM Handle.
03004   * @param  __DMA__ specifies the DMA request to enable or disable.
03005   *        This parameter can be one of the following values:
03006   *            @arg HRTIM_MASTER_DMA_MCMP1: Master compare 1 DMA request enable
03007   *            @arg HRTIM_MASTER_DMA_MCMP2: Master compare 2 DMA request enable
03008   *            @arg HRTIM_MASTER_DMA_MCMP3: Master compare 3 DMA request enable
03009   *            @arg HRTIM_MASTER_DMA_MCMP4: Master compare 4 DMA request enable
03010   *            @arg HRTIM_MASTER_DMA_MREP: Master Repetition DMA request enable
03011   *            @arg HRTIM_MASTER_DMA_SYNC: Synchronization input DMA request enable
03012   *            @arg HRTIM_MASTER_DMA_MUPD: Master update DMA request enable
03013   * @retval None
03014   */
03015 #define __HAL_HRTIM_MASTER_ENABLE_DMA(__HANDLE__, __DMA__)   ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__DMA__))
03016 #define __HAL_HRTIM_MASTER_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__DMA__))
03017 
03018 /** @brief  Enables or disables the specified HRTIM Timerx DMA requests.
03019   * @param  __HANDLE__ specifies the HRTIM Handle.
03020   * @param  __TIMER__ specified the timing unit (Timer A to E)
03021   * @param  __DMA__ specifies the DMA request to enable or disable.
03022   *        This parameter can be one of the following values:
03023   *            @arg HRTIM_TIM_DMA_CMP1: Timer compare 1 DMA request enable
03024   *            @arg HRTIM_TIM_DMA_CMP2: Timer compare 2 DMA request enable
03025   *            @arg HRTIM_TIM_DMA_CMP3: Timer compare 3 DMA request enable
03026   *            @arg HRTIM_TIM_DMA_CMP4: Timer compare 4 DMA request enable
03027   *            @arg HRTIM_TIM_DMA_REP: Timer repetition DMA request enable
03028   *            @arg HRTIM_TIM_DMA_UPD: Timer update DMA request enable
03029   *            @arg HRTIM_TIM_DMA_CPT1: Timer capture 1 DMA request enable
03030   *            @arg HRTIM_TIM_DMA_CPT2: Timer capture 2 DMA request enable
03031   *            @arg HRTIM_TIM_DMA_SET1: Timer output 1 set DMA request enable
03032   *            @arg HRTIM_TIM_DMA_RST1: Timer output 1 reset DMA request enable
03033   *            @arg HRTIM_TIM_DMA_SET2: Timer output 2 set DMA request enable
03034   *            @arg HRTIM_TIM_DMA_RST2: Timer output 2 reset DMA request enable
03035   *            @arg HRTIM_TIM_DMA_RST: Timer reset DMA request enable
03036   *            @arg HRTIM_TIM_DMA_DLYPRT: Timer delay protection DMA request enable
03037   * @retval None
03038   */
03039 #define __HAL_HRTIM_TIMER_ENABLE_DMA(__HANDLE__, __TIMER__, __DMA__)   ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__DMA__))
03040 #define __HAL_HRTIM_TIMER_DISABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__DMA__))
03041 
03042 #define __HAL_HRTIM_GET_FLAG(__HANDLE__, __FLAG__)        (((__HANDLE__)->Instance->sCommonRegs.ISR & (__FLAG__)) == (__FLAG__))
03043 #define __HAL_HRTIM_CLEAR_FLAG(__HANDLE__, __FLAG__)      ((__HANDLE__)->Instance->sCommonRegs.ICR = (__FLAG__))
03044 
03045 #define __HAL_HRTIM_MASTER_GET_FLAG(__HANDLE__, __FLAG__)        (((__HANDLE__)->Instance->sMasterRegs.MISR & (__FLAG__)) == (__FLAG__))
03046 #define __HAL_HRTIM_MASTER_CLEAR_FLAG(__HANDLE__, __FLAG__)      ((__HANDLE__)->Instance->sMasterRegs.MICR = (__FLAG__))
03047 
03048 #define __HAL_HRTIM_TIMER_GET_FLAG(__HANDLE__,  __TIMER__, __FLAG__)        (((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxISR & (__FLAG__)) == (__FLAG__))
03049 #define __HAL_HRTIM_TIMER_CLEAR_FLAG(__HANDLE__,  __TIMER__, __FLAG__)      ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR = (__FLAG__))
03050 
03051 /** @brief  Sets the HRTIM timer Counter Register value on runtime
03052   * @param  __HANDLE__ HRTIM Handle.
03053   * @param  __TIMER__ HRTIM timer
03054   *                   This parameter can be one of the following values:
03055   *                   @arg 0x5 for master timer
03056   *                   @arg 0x0 to 0x4 for timers A to E
03057   * @param  __COUNTER__ specifies the Counter Register new value.
03058   * @retval None
03059   */
03060 #define __HAL_HRTIM_SETCOUNTER(__HANDLE__, __TIMER__, __COUNTER__) \
03061   (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR = (__COUNTER__)) :\
03062    ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR = (__COUNTER__)))
03063 
03064 /** @brief  Gets the HRTIM timer Counter Register value on runtime
03065   * @param  __HANDLE__ HRTIM Handle.
03066   * @param  __TIMER__ HRTIM timer
03067   *                   This parameter can be one of the following values:
03068   *                   @arg 0x5 for master timer
03069   *                   @arg 0x0 to 0x4 for timers A to E
03070   * @retval HRTIM timer Counter Register value
03071   */
03072 #define __HAL_HRTIM_GETCOUNTER(__HANDLE__, __TIMER__) \
03073   (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR) :\
03074    ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR))
03075 
03076 /** @brief  Sets the HRTIM timer Period value on runtime
03077   * @param  __HANDLE__ HRTIM Handle.
03078   * @param  __TIMER__ HRTIM timer
03079   *                   This parameter can be one of the following values:
03080   *                   @arg 0x5 for master timer
03081   *                   @arg 0x0 to 0x4 for timers A to E
03082   * @param  __PERIOD__ specifies the Period Register new value.
03083   * @retval None
03084   */
03085 #define __HAL_HRTIM_SETPERIOD(__HANDLE__, __TIMER__, __PERIOD__) \
03086   (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER = (__PERIOD__)) :\
03087    ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR = (__PERIOD__)))
03088 
03089 /** @brief  Gets the HRTIM timer Period Register value on runtime
03090   * @param  __HANDLE__ HRTIM Handle.
03091   * @param  __TIMER__ HRTIM timer
03092   *                   This parameter can be one of the following values:
03093   *                   @arg 0x5 for master timer
03094   *                   @arg 0x0 to 0x4 for timers A to E
03095   * @retval timer Period Register
03096   */
03097 #define __HAL_HRTIM_GETPERIOD(__HANDLE__, __TIMER__) \
03098   (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER) :\
03099    ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR))
03100 
03101 /** @brief  Sets the HRTIM timer clock prescaler value on runtime
03102   * @param  __HANDLE__ HRTIM Handle.
03103   * @param  __TIMER__ HRTIM timer
03104   *                   This parameter can be one of the following values:
03105   *                   @arg 0x5 for master timer
03106   *                   @arg 0x0 to 0x4 for timers A to E
03107   * @param  __PRESCALER__ specifies the clock prescaler new value.
03108   *                   This parameter can be one of the following values:
03109   *                   @arg HRTIM_PRESCALERRATIO_DIV1: fHRCK: 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)
03110   *                   @arg HRTIM_PRESCALERRATIO_DIV2: fHRCK: 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)
03111   *                   @arg HRTIM_PRESCALERRATIO_DIV4: fHRCK: 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)
03112   * @retval None
03113   */
03114 #define __HAL_HRTIM_SETCLOCKPRESCALER(__HANDLE__, __TIMER__, __PRESCALER__) \
03115   (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? (MODIFY_REG((__HANDLE__)->Instance->sMasterRegs.MCR, HRTIM_MCR_CK_PSC, (__PRESCALER__))) :\
03116    (MODIFY_REG((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR, HRTIM_TIMCR_CK_PSC, (__PRESCALER__))))
03117 
03118 /** @brief  Gets the HRTIM timer clock prescaler value on runtime
03119   * @param  __HANDLE__ HRTIM Handle.
03120   * @param  __TIMER__ HRTIM timer
03121   *                   This parameter can be one of the following values:
03122   *                   @arg 0x5 for master timer
03123   *                   @arg 0x0 to 0x4 for timers A to E
03124   * @retval timer clock prescaler value
03125   */
03126 #define __HAL_HRTIM_GETCLOCKPRESCALER(__HANDLE__, __TIMER__) \
03127   (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCR & HRTIM_MCR_CK_PSC) :\
03128    ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR  & HRTIM_TIMCR_CK_PSC))
03129 
03130 /** @brief  Sets the HRTIM timer Compare Register value on runtime
03131   * @param  __HANDLE__ HRTIM Handle.
03132   * @param  __TIMER__ HRTIM timer
03133   *                   This parameter can be one of the following values:
03134   *                   @arg 0x0 to 0x4 for timers A to E
03135   * @param  __COMPAREUNIT__ timer compare unit
03136   *                   This parameter can be one of the following values:
03137   *                   @arg HRTIM_COMPAREUNIT_1: Compare unit 1
03138   *                   @arg HRTIM_COMPAREUNIT_2: Compare unit 2
03139   *                   @arg HRTIM_COMPAREUNIT_3: Compare unit 3
03140   *                   @arg HRTIM_COMPAREUNIT_4: Compare unit 4
03141   * @param  __COMPARE__ specifies the Compare new value.
03142   * @retval None
03143   */
03144 #define __HAL_HRTIM_SETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__, __COMPARE__) \
03145       (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
03146         (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R = (__COMPARE__)) :\
03147          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R = (__COMPARE__)) :\
03148          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R = (__COMPARE__)) :\
03149          ((__HANDLE__)->Instance->sMasterRegs.MCMP4R = (__COMPARE__))) \
03150          : \
03151         (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR = (__COMPARE__)) :\
03152          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR = (__COMPARE__)) :\
03153          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR = (__COMPARE__)) :\
03154          ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR = (__COMPARE__))))
03155 
03156 /** @brief  Gets the HRTIM timer Compare Register value on runtime
03157   * @param  __HANDLE__ HRTIM Handle.
03158   * @param  __TIMER__ HRTIM timer
03159   *                   This parameter can be one of the following values:
03160   *                   @arg 0x0 to 0x4 for timers A to E
03161   * @param  __COMPAREUNIT__ timer compare unit
03162   *                   This parameter can be one of the following values:
03163   *                   @arg HRTIM_COMPAREUNIT_1: Compare unit 1
03164   *                   @arg HRTIM_COMPAREUNIT_2: Compare unit 2
03165   *                   @arg HRTIM_COMPAREUNIT_3: Compare unit 3
03166   *                   @arg HRTIM_COMPAREUNIT_4: Compare unit 4
03167   * @retval Compare value
03168   */
03169 #define __HAL_HRTIM_GETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__) \
03170       (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
03171         (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R) :\
03172          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R) :\
03173          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R) :\
03174          ((__HANDLE__)->Instance->sMasterRegs.MCMP4R)) \
03175          : \
03176         (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR) :\
03177          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR) :\
03178          ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR) :\
03179          ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR)))
03180 
03181 /**
03182   * @}
03183   */
03184 
03185 /* Exported functions --------------------------------------------------------*/
03186 /** @addtogroup HRTIM_Exported_Functions
03187 * @{
03188 */
03189 
03190 /** @addtogroup HRTIM_Exported_Functions_Group1
03191 * @{
03192 */
03193 
03194 /* Initialization and Configuration functions  ********************************/
03195 HAL_StatusTypeDef HAL_HRTIM_Init(HRTIM_HandleTypeDef *hhrtim);
03196 
03197 HAL_StatusTypeDef HAL_HRTIM_DeInit (HRTIM_HandleTypeDef *hhrtim);
03198 
03199 void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef *hhrtim);
03200 
03201 void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef *hhrtim);
03202 
03203 HAL_StatusTypeDef HAL_HRTIM_TimeBaseConfig(HRTIM_HandleTypeDef *hhrtim,
03204                                            uint32_t TimerIdx,
03205                                            HRTIM_TimeBaseCfgTypeDef * pTimeBaseCfg);
03206 /**
03207   * @}
03208   */
03209 
03210 /** @addtogroup HRTIM_Exported_Functions_Group2
03211 * @{
03212 */
03213 
03214 /* Simple time base related functions  *****************************************/
03215 HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart(HRTIM_HandleTypeDef *hhrtim,
03216                                            uint32_t TimerIdx);
03217 
03218 HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop(HRTIM_HandleTypeDef *hhrtim,
03219                                           uint32_t TimerIdx);
03220 
03221 HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_IT(HRTIM_HandleTypeDef *hhrtim,
03222                                               uint32_t TimerIdx);
03223 
03224 HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_IT(HRTIM_HandleTypeDef *hhrtim,
03225                                              uint32_t TimerIdx);
03226 
03227 HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_DMA(HRTIM_HandleTypeDef *hhrtim,
03228                                                uint32_t TimerIdx,
03229                                                uint32_t SrcAddr,
03230                                                uint32_t DestAddr,
03231                                                uint32_t Length);
03232 
03233 HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_DMA(HRTIM_HandleTypeDef *hhrtim,
03234                                               uint32_t TimerIdx);
03235 
03236 /**
03237   * @}
03238   */
03239 
03240 /** @addtogroup HRTIM_Exported_Functions_Group3
03241 * @{
03242 */
03243 /* Simple output compare related functions  ************************************/
03244 HAL_StatusTypeDef HAL_HRTIM_SimpleOCChannelConfig(HRTIM_HandleTypeDef *hhrtim,
03245                                                  uint32_t TimerIdx,
03246                                                  uint32_t OCChannel,
03247                                                  HRTIM_SimpleOCChannelCfgTypeDef* pSimpleOCChannelCfg);
03248 
03249 HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart(HRTIM_HandleTypeDef *hhrtim,
03250                                          uint32_t TimerIdx,
03251                                          uint32_t OCChannel);
03252 
03253 HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop(HRTIM_HandleTypeDef *hhrtim,
03254                                         uint32_t TimerIdx,
03255                                         uint32_t OCChannel);
03256 
03257 HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_IT(HRTIM_HandleTypeDef *hhrtim,
03258                                             uint32_t TimerIdx,
03259                                             uint32_t OCChannel);
03260 
03261 HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_IT(HRTIM_HandleTypeDef *hhrtim,
03262                                            uint32_t TimerIdx,
03263                                            uint32_t OCChannel);
03264 
03265 HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_DMA(HRTIM_HandleTypeDef *hhrtim,
03266                                              uint32_t TimerIdx,
03267                                              uint32_t OCChannel,
03268                                              uint32_t SrcAddr,
03269                                              uint32_t DestAddr,
03270                                              uint32_t Length);
03271 
03272 HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_DMA(HRTIM_HandleTypeDef *hhrtim,
03273                                             uint32_t TimerIdx,
03274                                             uint32_t OCChannel);
03275 
03276 /**
03277   * @}
03278   */
03279 
03280 /** @addtogroup HRTIM_Exported_Functions_Group4
03281 * @{
03282 */
03283 /* Simple PWM output related functions  ****************************************/
03284 HAL_StatusTypeDef HAL_HRTIM_SimplePWMChannelConfig(HRTIM_HandleTypeDef *hhrtim,
03285                                                   uint32_t TimerIdx,
03286                                                   uint32_t PWMChannel,
03287                                                   HRTIM_SimplePWMChannelCfgTypeDef* pSimplePWMChannelCfg);
03288 
03289 HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart(HRTIM_HandleTypeDef *hhrtim,
03290                                           uint32_t TimerIdx,
03291                                           uint32_t PWMChannel);
03292 
03293 HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop(HRTIM_HandleTypeDef *hhrtim,
03294                                          uint32_t TimerIdx,
03295                                          uint32_t PWMChannel);
03296 
03297 HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_IT(HRTIM_HandleTypeDef *hhrtim,
03298                                              uint32_t TimerIdx,
03299                                              uint32_t PWMChannel);
03300 
03301 HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_IT(HRTIM_HandleTypeDef *hhrtim,
03302                                             uint32_t TimerIdx,
03303                                             uint32_t PWMChannel);
03304 
03305 HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_DMA(HRTIM_HandleTypeDef *hhrtim,
03306                                               uint32_t TimerIdx,
03307                                               uint32_t PWMChannel,
03308                                               uint32_t SrcAddr,
03309                                               uint32_t DestAddr,
03310                                               uint32_t Length);
03311 
03312 HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_DMA(HRTIM_HandleTypeDef *hhrtim,
03313                                              uint32_t TimerIdx,
03314                                              uint32_t PWMChannel);
03315 
03316 /**
03317   * @}
03318   */
03319 
03320 /** @addtogroup HRTIM_Exported_Functions_Group5
03321 * @{
03322 */
03323 /* Simple capture related functions  *******************************************/
03324 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureChannelConfig(HRTIM_HandleTypeDef *hhrtim,
03325                                                       uint32_t TimerIdx,
03326                                                       uint32_t CaptureChannel,
03327                                                       HRTIM_SimpleCaptureChannelCfgTypeDef* pSimpleCaptureChannelCfg);
03328 
03329 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart(HRTIM_HandleTypeDef *hhrtim,
03330                                               uint32_t TimerIdx,
03331                                               uint32_t CaptureChannel);
03332 
03333 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop(HRTIM_HandleTypeDef *hhrtim,
03334                                              uint32_t TimerIdx,
03335                                              uint32_t CaptureChannel);
03336 
03337 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_IT(HRTIM_HandleTypeDef *hhrtim,
03338                                                  uint32_t TimerIdx,
03339                                                  uint32_t CaptureChannel);
03340 
03341 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_IT(HRTIM_HandleTypeDef *hhrtim,
03342                                                 uint32_t TimerIdx,
03343                                                 uint32_t CaptureChannel);
03344 
03345 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_DMA(HRTIM_HandleTypeDef *hhrtim,
03346                                                   uint32_t TimerIdx,
03347                                                   uint32_t CaptureChannel,
03348                                                   uint32_t SrcAddr,
03349                                                   uint32_t DestAddr,
03350                                                   uint32_t Length);
03351 
03352 HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_DMA(HRTIM_HandleTypeDef *hhrtim,
03353                                                  uint32_t TimerIdx,
03354                                                  uint32_t CaptureChannel);
03355 
03356 /**
03357   * @}
03358   */
03359 
03360 /** @addtogroup HRTIM_Exported_Functions_Group6
03361 * @{
03362 */
03363 /* Simple one pulse related functions  *****************************************/
03364 HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseChannelConfig(HRTIM_HandleTypeDef *hhrtim,
03365                                                        uint32_t TimerIdx,
03366                                                        uint32_t OnePulseChannel,
03367                                                        HRTIM_SimpleOnePulseChannelCfgTypeDef* pSimpleOnePulseChannelCfg);
03368 
03369 HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart(HRTIM_HandleTypeDef *hhrtim,
03370                                                uint32_t TimerIdx,
03371                                                uint32_t OnePulseChannel);
03372 
03373 HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop(HRTIM_HandleTypeDef *hhrtim,
03374                                               uint32_t TimerIdx,
03375                                              uint32_t OnePulseChannel);
03376 
03377 HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart_IT(HRTIM_HandleTypeDef *hhrtim,
03378                                                   uint32_t TimerIdx,
03379                                                   uint32_t OnePulseChannel);
03380 
03381 HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop_IT(HRTIM_HandleTypeDef *hhrtim,
03382                                                  uint32_t TimerIdx,
03383                                                  uint32_t OnePulseChannel);
03384 
03385 /**
03386   * @}
03387   */
03388 
03389 /** @addtogroup HRTIM_Exported_Functions_Group7
03390 * @{
03391 */
03392 HAL_StatusTypeDef HAL_HRTIM_BurstModeConfig(HRTIM_HandleTypeDef *hhrtim,
03393                                             HRTIM_BurstModeCfgTypeDef* pBurstModeCfg);
03394 
03395 HAL_StatusTypeDef HAL_HRTIM_EventConfig(HRTIM_HandleTypeDef *hhrtim,
03396                                         uint32_t Event,
03397                                         HRTIM_EventCfgTypeDef* pEventCfg);
03398 
03399 HAL_StatusTypeDef HAL_HRTIM_EventPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
03400                                                  uint32_t Prescaler);
03401 
03402 HAL_StatusTypeDef HAL_HRTIM_FaultConfig(HRTIM_HandleTypeDef *hhrtim,
03403                                         uint32_t Fault,
03404                                         HRTIM_FaultCfgTypeDef* pFaultCfg);
03405 
03406 HAL_StatusTypeDef HAL_HRTIM_FaultPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
03407                                                  uint32_t Prescaler);
03408 
03409 void HAL_HRTIM_FaultModeCtl(HRTIM_HandleTypeDef * hhrtim,
03410                             uint32_t Faults,
03411                             uint32_t Enable);
03412 
03413 HAL_StatusTypeDef HAL_HRTIM_ADCTriggerConfig(HRTIM_HandleTypeDef *hhrtim,
03414                                              uint32_t ADCTrigger,
03415                                              HRTIM_ADCTriggerCfgTypeDef* pADCTriggerCfg);
03416 
03417 /**
03418   * @}
03419   */
03420 
03421 /** @addtogroup HRTIM_Exported_Functions_Group8
03422 * @{
03423 */
03424 /* Waveform related functions *************************************************/
03425 HAL_StatusTypeDef HAL_HRTIM_WaveformTimerConfig(HRTIM_HandleTypeDef *hhrtim,
03426                                                 uint32_t TimerIdx,
03427                                                 HRTIM_TimerCfgTypeDef * pTimerCfg);
03428 
03429 HAL_StatusTypeDef HAL_HRTIM_WaveformCompareConfig(HRTIM_HandleTypeDef *hhrtim,
03430                                                   uint32_t TimerIdx,
03431                                                   uint32_t CompareUnit,
03432                                                   HRTIM_CompareCfgTypeDef* pCompareCfg);
03433 
03434 HAL_StatusTypeDef HAL_HRTIM_WaveformCaptureConfig(HRTIM_HandleTypeDef *hhrtim,
03435                                                   uint32_t TimerIdx,
03436                                                   uint32_t CaptureUnit,
03437                                                   HRTIM_CaptureCfgTypeDef* pCaptureCfg);
03438 
03439 HAL_StatusTypeDef HAL_HRTIM_WaveformOutputConfig(HRTIM_HandleTypeDef *hhrtim,
03440                                                  uint32_t TimerIdx,
03441                                                  uint32_t Output,
03442                                                  HRTIM_OutputCfgTypeDef * pOutputCfg);
03443 
03444 HAL_StatusTypeDef HAL_HRTIM_WaveformSetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
03445                                                    uint32_t TimerIdx,
03446                                                    uint32_t Output,
03447                                                    uint32_t OutputLevel);
03448 
03449 HAL_StatusTypeDef HAL_HRTIM_TimerEventFilteringConfig(HRTIM_HandleTypeDef *hhrtim,
03450                                                       uint32_t TimerIdx,
03451                                                       uint32_t Event,
03452                                                       HRTIM_TimerEventFilteringCfgTypeDef * pTimerEventFilteringCfg);
03453 
03454 HAL_StatusTypeDef HAL_HRTIM_DeadTimeConfig(HRTIM_HandleTypeDef *hhrtim,
03455                                            uint32_t TimerIdx,
03456                                            HRTIM_DeadTimeCfgTypeDef* pDeadTimeCfg);
03457 
03458 HAL_StatusTypeDef HAL_HRTIM_ChopperModeConfig(HRTIM_HandleTypeDef *hhrtim,
03459                                               uint32_t TimerIdx,
03460                                               HRTIM_ChopperModeCfgTypeDef* pChopperModeCfg);
03461 
03462 HAL_StatusTypeDef HAL_HRTIM_BurstDMAConfig(HRTIM_HandleTypeDef *hhrtim,
03463                                            uint32_t TimerIdx,
03464                                            uint32_t RegistersToUpdate);
03465 
03466 
03467 HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart(HRTIM_HandleTypeDef *hhrtim,
03468                                                  uint32_t Timers);
03469 
03470 HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop(HRTIM_HandleTypeDef *hhrtim,
03471                                                  uint32_t Timers);
03472 
03473 HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_IT(HRTIM_HandleTypeDef *hhrtim,
03474                                                  uint32_t Timers);
03475 
03476 HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_IT(HRTIM_HandleTypeDef *hhrtim,
03477                                                  uint32_t Timers);
03478 
03479 HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_DMA(HRTIM_HandleTypeDef *hhrtim,
03480                                                      uint32_t Timers);
03481 
03482 HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_DMA(HRTIM_HandleTypeDef *hhrtim,
03483                                                     uint32_t Timers);
03484 
03485 HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStart(HRTIM_HandleTypeDef *hhrtim,
03486                                                 uint32_t OutputsToStart);
03487 
03488 HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStop(HRTIM_HandleTypeDef *hhrtim,
03489                                                uint32_t OutputsToStop);
03490 
03491 HAL_StatusTypeDef HAL_HRTIM_BurstModeCtl(HRTIM_HandleTypeDef *hhrtim,
03492                                          uint32_t Enable);
03493 
03494 HAL_StatusTypeDef HAL_HRTIM_BurstModeSoftwareTrigger(HRTIM_HandleTypeDef *hhrtim);
03495 
03496 HAL_StatusTypeDef HAL_HRTIM_SoftwareCapture(HRTIM_HandleTypeDef *hhrtim,
03497                                             uint32_t TimerIdx,
03498                                             uint32_t CaptureUnit);
03499 
03500 HAL_StatusTypeDef HAL_HRTIM_SoftwareUpdate(HRTIM_HandleTypeDef *hhrtim,
03501                                            uint32_t Timers);
03502 
03503 HAL_StatusTypeDef HAL_HRTIM_SoftwareReset(HRTIM_HandleTypeDef *hhrtim,
03504                                           uint32_t Timers);
03505 
03506 HAL_StatusTypeDef HAL_HRTIM_BurstDMATransfer(HRTIM_HandleTypeDef *hhrtim,
03507                                              uint32_t TimerIdx,
03508                                              uint32_t BurstBufferAddress,
03509                                              uint32_t BurstBufferLength);
03510 
03511 HAL_StatusTypeDef HAL_HRTIM_UpdateEnable(HRTIM_HandleTypeDef *hhrtim,
03512                                           uint32_t Timers);
03513 
03514 HAL_StatusTypeDef HAL_HRTIM_UpdateDisable(HRTIM_HandleTypeDef *hhrtim,
03515                                           uint32_t Timers);
03516 
03517 /**
03518   * @}
03519   */
03520 
03521 /** @addtogroup HRTIM_Exported_Functions_Group9
03522 * @{
03523 */
03524 /* HRTIM peripheral state functions */
03525 HAL_HRTIM_StateTypeDef HAL_HRTIM_GetState(HRTIM_HandleTypeDef* hhrtim);
03526 
03527 uint32_t HAL_HRTIM_GetCapturedValue(HRTIM_HandleTypeDef * hhrtim,
03528                                     uint32_t TimerIdx,
03529                                     uint32_t CaptureUnit);
03530 
03531 uint32_t HAL_HRTIM_WaveformGetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
03532                                           uint32_t TimerIdx,
03533                                           uint32_t Output);
03534 
03535 uint32_t HAL_HRTIM_WaveformGetOutputState(HRTIM_HandleTypeDef * hhrtim,
03536                                           uint32_t TimerIdx,
03537                                           uint32_t Output);
03538 
03539 uint32_t HAL_HRTIM_GetDelayedProtectionStatus(HRTIM_HandleTypeDef *hhrtim,
03540                                               uint32_t TimerIdx,
03541                                               uint32_t Output);
03542 
03543 uint32_t HAL_HRTIM_GetBurstStatus(HRTIM_HandleTypeDef *hhrtim);
03544 
03545 uint32_t HAL_HRTIM_GetCurrentPushPullStatus(HRTIM_HandleTypeDef *hhrtim,
03546                                             uint32_t TimerIdx);
03547 
03548 uint32_t HAL_HRTIM_GetIdlePushPullStatus(HRTIM_HandleTypeDef *hhrtim,
03549                                          uint32_t TimerIdx);
03550 
03551 /**
03552   * @}
03553   */
03554 
03555 /** @addtogroup HRTIM_Exported_Functions_Group10
03556 * @{
03557 */
03558 /* IRQ handler */
03559 void HAL_HRTIM_IRQHandler(HRTIM_HandleTypeDef *hhrtim,
03560                           uint32_t TimerIdx);
03561 
03562 /* HRTIM events related callback functions */
03563 void HAL_HRTIM_Fault1Callback(HRTIM_HandleTypeDef *hhrtim);
03564 void HAL_HRTIM_Fault2Callback(HRTIM_HandleTypeDef *hhrtim);
03565 void HAL_HRTIM_Fault3Callback(HRTIM_HandleTypeDef *hhrtim);
03566 void HAL_HRTIM_Fault4Callback(HRTIM_HandleTypeDef *hhrtim);
03567 void HAL_HRTIM_Fault5Callback(HRTIM_HandleTypeDef *hhrtim);
03568 void HAL_HRTIM_SystemFaultCallback(HRTIM_HandleTypeDef *hhrtim);
03569 void HAL_HRTIM_BurstModePeriodCallback(HRTIM_HandleTypeDef *hhrtim);
03570 void HAL_HRTIM_SynchronizationEventCallback(HRTIM_HandleTypeDef *hhrtim);
03571 
03572 /* Timer events related callback functions */
03573 void HAL_HRTIM_RegistersUpdateCallback(HRTIM_HandleTypeDef *hhrtim,
03574                                               uint32_t TimerIdx);
03575 void HAL_HRTIM_RepetitionEventCallback(HRTIM_HandleTypeDef *hhrtim,
03576                                               uint32_t TimerIdx);
03577 void HAL_HRTIM_Compare1EventCallback(HRTIM_HandleTypeDef *hhrtim,
03578                                             uint32_t TimerIdx);
03579 void HAL_HRTIM_Compare2EventCallback(HRTIM_HandleTypeDef *hhrtim,
03580                                             uint32_t TimerIdx);
03581 void HAL_HRTIM_Compare3EventCallback(HRTIM_HandleTypeDef *hhrtim,
03582                                             uint32_t TimerIdx);
03583 void HAL_HRTIM_Compare4EventCallback(HRTIM_HandleTypeDef *hhrtim,
03584                                             uint32_t TimerIdx);
03585 void HAL_HRTIM_Capture1EventCallback(HRTIM_HandleTypeDef *hhrtim,
03586                                             uint32_t TimerIdx);
03587 void HAL_HRTIM_Capture2EventCallback(HRTIM_HandleTypeDef *hhrtim,
03588                                             uint32_t TimerIdx);
03589 void HAL_HRTIM_DelayedProtectionCallback(HRTIM_HandleTypeDef *hhrtim,
03590                                                 uint32_t TimerIdx);
03591 void HAL_HRTIM_CounterResetCallback(HRTIM_HandleTypeDef *hhrtim,
03592                                            uint32_t TimerIdx);
03593 void HAL_HRTIM_Output1SetCallback(HRTIM_HandleTypeDef *hhrtim,
03594                                          uint32_t TimerIdx);
03595 void HAL_HRTIM_Output1ResetCallback(HRTIM_HandleTypeDef *hhrtim,
03596                                            uint32_t TimerIdx);
03597 void HAL_HRTIM_Output2SetCallback(HRTIM_HandleTypeDef *hhrtim,
03598                                          uint32_t TimerIdx);
03599 void HAL_HRTIM_Output2ResetCallback(HRTIM_HandleTypeDef *hhrtim,
03600                                            uint32_t TimerIdx);
03601 void HAL_HRTIM_BurstDMATransferCallback(HRTIM_HandleTypeDef *hhrtim,
03602                                                uint32_t TimerIdx);
03603 void HAL_HRTIM_ErrorCallback(HRTIM_HandleTypeDef *hhrtim);
03604 
03605 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
03606 HAL_StatusTypeDef HAL_HRTIM_RegisterCallback(HRTIM_HandleTypeDef *       hhrtim,
03607                                              HAL_HRTIM_CallbackIDTypeDef CallbackID,
03608                                              pHRTIM_CallbackTypeDef      pCallback);
03609 
03610 HAL_StatusTypeDef HAL_HRTIM_UnRegisterCallback(HRTIM_HandleTypeDef *       hhrtim,
03611                                                HAL_HRTIM_CallbackIDTypeDef CallbackID);
03612 
03613 HAL_StatusTypeDef HAL_HRTIM_TIMxRegisterCallback(HRTIM_HandleTypeDef *        hhrtim,
03614                                                  HAL_HRTIM_CallbackIDTypeDef  CallbackID,
03615                                                  pHRTIM_TIMxCallbackTypeDef   pCallback);
03616 
03617 HAL_StatusTypeDef HAL_HRTIM_TIMxUnRegisterCallback(HRTIM_HandleTypeDef *       hhrtim,
03618                                                    HAL_HRTIM_CallbackIDTypeDef CallbackID);
03619 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
03620 
03621 /**
03622   * @}
03623   */
03624 
03625 /**
03626   * @}
03627   */
03628 
03629 /**
03630   * @}
03631   */
03632 
03633 /**
03634   * @}
03635   */
03636 
03637 #endif /* HRTIM1 */
03638 
03639 #ifdef __cplusplus
03640 }
03641 #endif
03642 
03643 #endif /* STM32H7xx_HAL_HRTIM_H */