/** ****************************************************************************** * @file tae32f53xx_ll_hrpwm.h * @author MCD Application Team * @brief Header file of HRPWM LL module * ****************************************************************************** * @attention * *

© Copyright (c) 2020 Tai-Action. * All rights reserved.

* * This software is licensed by Tai-Action under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef _TAE32F53XX_LL_HRPWM_H_ #define _TAE32F53XX_LL_HRPWM_H_ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Includes ------------------------------------------------------------------*/ #include "tae32f53xx_ll_def.h" /** @addtogroup TAE32F53xx_LL_Driver * @{ */ /** @addtogroup HRPWM_LL * @{ */ /* Exported constants --------------------------------------------------------*/ /** @defgroup HRPWM_LL_Exported_Constants HRPWM LL Exported Constants * @brief HRPWM LL Exported Constants * @{ */ /** @defgroup HRPWM_Max_Timer HRPWM Max Timer * @{ */ #define MAX_HRPWM_TIMER 6U /** * @} */ /** @defgroup HRPWM_Timer_Index HRPWM Index * @brief Constants defining the hrpwm indexes * @{ */ #define HRPWM_INDEX_SLAVE_0 0x0U /*!< Index used to access slave pwm 0 registers */ #define HRPWM_INDEX_SLAVE_1 0x1U /*!< Index used to access slave pwm 1 registers */ #define HRPWM_INDEX_SLAVE_2 0x2U /*!< Index used to access slave pwm 2 registers */ #define HRPWM_INDEX_SLAVE_3 0x3U /*!< Index used to access slave pwm 3 registers */ #define HRPWM_INDEX_SLAVE_4 0x4U /*!< Index used to access slave pwm 4 registers */ #define HRPWM_INDEX_SLAVE_5 0x5U /*!< Index used to access slave pwm 5 registers */ #define HRPWM_INDEX_MASTER 0x6U /*!< Index used to access master registers */ #define HRPWM_INDEX_COMMON 0xFFU /*!< Index used to access HRPWM common registers */ /** * @} */ /** @defgroup HRPWM_Compare_Unit HRPWM Compare Unit * @brief Constants defining compare unit identifiers * @{ */ #define HRPWM_COMPAREUNIT_A 0x00000001U /*!< Compare unit A identifier */ #define HRPWM_COMPAREUNIT_B 0x00000002U /*!< Compare unit B identifier */ #define HRPWM_COMPAREUNIT_C 0x00000004U /*!< Compare unit C identifier */ #define HRPWM_COMPAREUNIT_D 0x00000008U /*!< Compare unit D identifier */ /** * @} */ /** @defgroup HRPWM_Timer_Output_Start HRPWM Timer Output * @brief Constants defining timer output identifiers -- output enable,not enable cannot output wave * @{ */ #define HRPWM_OUTPUT_OEN0A 0x00000001U /*!< Timer 0 - Output A identifier */ #define HRPWM_OUTPUT_OEN0B 0x00000002U /*!< Timer 0 - Output B identifier */ #define HRPWM_OUTPUT_OEN1A 0x00000004U /*!< Timer 1 - Output A identifier */ #define HRPWM_OUTPUT_OEN1B 0x00000008U /*!< Timer 1 - Output B identifier */ #define HRPWM_OUTPUT_OEN2A 0x00000010U /*!< Timer 2 - Output A identifier */ #define HRPWM_OUTPUT_OEN2B 0x00000020U /*!< Timer 2 - Output B identifier */ #define HRPWM_OUTPUT_OEN3A 0x00000040U /*!< Timer 3 - Output A identifier */ #define HRPWM_OUTPUT_OEN3B 0x00000080U /*!< Timer 3 - Output B identifier */ #define HRPWM_OUTPUT_OEN4A 0x00000100U /*!< Timer 4 - Output A identifier */ #define HRPWM_OUTPUT_OEN4B 0x00000200U /*!< Timer 4 - Output B identifier */ #define HRPWM_OUTPUT_OEN5A 0x00000400U /*!< Timer 5 - Output A identifier */ #define HRPWM_OUTPUT_OEN5B 0x00000800U /*!< Timer 5 - Output B identifier */ /** * @} */ /** @defgroup HRPWM_Timer_Output_Stop HRPWM Timer Output Disable * @brief Constants defining timer disable output identifiers * @{ */ #define HRPWM_OUTPUT_ODIS0A 0x00000001U /*!< Timer 0 - Disable Output A identifier */ #define HRPWM_OUTPUT_ODIS0B 0x00000002U /*!< Timer 0 - Disable Output B identifier */ #define HRPWM_OUTPUT_ODIS1A 0x00000004U /*!< Timer 1 - Disable Output A identifier */ #define HRPWM_OUTPUT_ODIS1B 0x00000008U /*!< Timer 1 - Disable Output B identifier */ #define HRPWM_OUTPUT_ODIS2A 0x00000010U /*!< Timer 2 - Disable Output A identifier */ #define HRPWM_OUTPUT_ODIS2B 0x00000020U /*!< Timer 2 - Disable Output B identifier */ #define HRPWM_OUTPUT_ODIS3A 0x00000040U /*!< Timer 3 - Disable Output A identifier */ #define HRPWM_OUTPUT_ODIS3B 0x00000080U /*!< Timer 3 - Disable Output B identifier */ #define HRPWM_OUTPUT_ODIS4A 0x00000100U /*!< Timer 4 - Disable Output A identifier */ #define HRPWM_OUTPUT_ODIS4B 0x00000200U /*!< Timer 4 - Disable Output B identifier */ #define HRPWM_OUTPUT_ODIS5A 0x00000400U /*!< Timer 5 - Disable Output A identifier */ #define HRPWM_OUTPUT_ODIS5B 0x00000800U /*!< Timer 5 - Disable Output B identifier */ /** * @} */ /** @defgroup HRPWM_Synchronization_Options HRPWM Synchronization Options * @brief Constants defining the options for synchronizing multiple HRPWM * instances, as a master unit (generating a synchronization signal) * or as a slave (waiting for a trigger to be synchronized) * @{ */ #define HRPWM_SYNCOPTION_NONE 0x0 /*!< HRPWM instance doesn't handle external sync signals (SYNCIN, SYNCOUT) */ #define HRPWM_SYNCOPTION_MASTER 0x1U/*!< HRPWM instance acts as a MASTER, i.e. generates external sync output (SYNCOUT) */ #define HRPWM_SYNCOPTION_SLAVE 0x2U/*!< HRPWM instance acts as a SLAVE, i.e. it is sync by external sources (SYNCIN) */ /** * @} */ /** @defgroup HRPWM_Timer_Update_Trigger HRPWM Timer Update Trigger * @brief Constants defining whether the registers update is done synchronously with any other timer or master update * @{ */ #define HRPWM_UPDATETRIGGER_NONE 0x00000000U /*!< Register update is disabled */ #define HRPWM_UPDATETRIGGER_MASTER (HRPWM_CR0_MUPD) /*!< Register update is triggered by the master timer update */ #define HRPWM_UPDATETRIGGER_TIMER_0 (HRPWM_CR0_UPD0) /*!< Register update is triggered by the timer 0 update */ #define HRPWM_UPDATETRIGGER_TIMER_1 (HRPWM_CR0_UPD1) /*!< Register update is triggered by the timer 1 update */ #define HRPWM_UPDATETRIGGER_TIMER_2 (HRPWM_CR0_UPD2) /*!< Register update is triggered by the timer 2 update */ #define HRPWM_UPDATETRIGGER_TIMER_3 (HRPWM_CR0_UPD3) /*!< Register update is triggered by the timer 3 update */ #define HRPWM_UPDATETRIGGER_TIMER_4 (HRPWM_CR0_UPD4) /*!< Register update is triggered by the timer 4 update */ #define HRPWM_UPDATETRIGGER_TIMER_5 (HRPWM_CR0_UPD5) /*!< Register update is triggered by the timer 5 update */ #define HRPWM_UPDATETRIGGER_REP (HRPWM_CR0_UPDREP) /*!< Register update is triggered by the Repetition update */ #define HRPWM_UPDATETRIGGER_RST (HRPWM_CR0_UPDRST) /*!< Register update is triggered by the reset update */ /** * @} */ /** @defgroup HRPWM_Timer_Set_Trigger HRPWM Output Set A\B Source * @brief Constants defining the events that can be selected to configure the set crossbar of a timer output * @{ */ #define HRPWM_OUTPUT_SET_NONE (0x00000000U) /*!< HRPWM output set none */ #define HRPWM_OUTPUT_SET_SST (1UL << 18) /*!< Timer reset event coming solely from software forces the output to its active state */ #define HRPWM_OUTPUT_SET_RESYNC (1UL << 17) /*!< SYNC input forces the output to its active state */ #define HRPWM_OUTPUT_SET_EXTEVNT5 (1UL << 16) /*!< External event 5 forces the output to its active state */ #define HRPWM_OUTPUT_SET_EXTEVNT4 (1UL << 15) /*!< External event 4 forces the output to its active state */ #define HRPWM_OUTPUT_SET_EXTEVNT3 (1UL << 14) /*!< External event 3 forces the output to its active state */ #define HRPWM_OUTPUT_SET_EXTEVNT2 (1UL << 13) /*!< External event 2 forces the output to its active state */ #define HRPWM_OUTPUT_SET_EXTEVNT1 (1UL << 12) /*!< External event 1 forces the output to its active state */ #define HRPWM_OUTPUT_SET_EXTEVNT0 (1UL << 11) /*!< External event 0 forces the output to its active state */ #define HRPWM_OUTPUT_SET_MSTPRD (1UL << 10) /*!< The master timer period event forces the output to its active state */ #define HRPWM_OUTPUT_SET_MSTCMPD (1UL << 9) /*!< Master Timer compare D event forces the output to its active state */ #define HRPWM_OUTPUT_SET_MSTCMPC (1UL << 8) /*!< Master Timer compare C event forces the output to its active state */ #define HRPWM_OUTPUT_SET_MSTCMPB (1UL << 7) /*!< Master Timer compare B event forces the output to its active state */ #define HRPWM_OUTPUT_SET_MSTCMPA (1UL << 6) /*!< Master Timer compare A event forces the output to its active state */ #define HRPWM_OUTPUT_SET_PRD (1UL << 5) /*!< Timer period event forces the output to its active state */ #define HRPWM_OUTPUT_SET_CMPD (1UL << 4) /*!< Timer compare D event forces the output to its active state */ #define HRPWM_OUTPUT_SET_CMPC (1UL << 3) /*!< Timer compare C event forces the output to its active state */ #define HRPWM_OUTPUT_SET_CMPB (1UL << 2) /*!< Timer compare B event forces the output to its active state */ #define HRPWM_OUTPUT_SET_CMPA (1UL << 1) /*!< Timer compare A event forces the output to its active state */ #define HRPWM_OUTPUT_SET_UPDATE (1UL << 0) /*!< Timer register update event forces the output to its active state */ /** * @} */ /** @defgroup HRPWM_Timer_Clear_Trigger HRPWM Output Clear A\B Source * @brief Constants defining the events that can be selected to configure the clear crossbar of a timer output * @{ */ #define HRPWM_OUTPUT_CLEAR_NONE (0x00000000U) /*!< HRPWM output clear None */ #define HRPWM_OUTPUT_CLEAR_SST (1UL << 18) /*!< Timer reset event coming solely from software forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_RESYNC (1UL << 17) /*!< SYNC input forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_EXTEVNT5 (1UL << 16) /*!< External event 5 forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_EXTEVNT4 (1UL << 15) /*!< External event 4 forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_EXTEVNT3 (1UL << 14) /*!< External event 3 forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_EXTEVNT2 (1UL << 13) /*!< External event 2 forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_EXTEVNT1 (1UL << 12) /*!< External event 1 forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_EXTEVNT0 (1UL << 11) /*!< External event 0 forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_MSTPRD (1UL << 10) /*!< The master timer period event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_MSTCMPD (1UL << 9) /*!< Master Timer compare D event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_MSTCMPC (1UL << 8) /*!< Master Timer compare C event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_MSTCMPB (1UL << 7) /*!< Master Timer compare B event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_MSTCMPA (1UL << 6) /*!< Master Timer compare A event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_PRD (1UL << 5) /*!< Timer period event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_CMPD (1UL << 4) /*!< Timer compare D event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_CMPC (1UL << 3) /*!< Timer compare C event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_CMPB (1UL << 2) /*!< Timer compare B event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_CMPA (1UL << 1) /*!< Timer compare A event forces the output to its inactive state */ #define HRPWM_OUTPUT_CLEAR_UPDATE (1UL << 0) /*!< Timer register update event forces the output to its inactive state */ /** * @} */ /** @defgroup HRPWM_Timer_Reset_Trigger HRPWM Timer Reset Trigger * @brief Constants defining the events that can be selected to trigger the reset of the timer counter * @{ */ #define HRPWM_RESET_TRIGGER_NONE 0x00000000U /*!< No counter reset trigger */ #define HRPWM_RESET_TRIGGER_EXTEVT5 (HRPWM_RSTR_EXTEVT5) /*!< The timer counter is reset upon external event 5 */ #define HRPWM_RESET_TRIGGER_EXTEVT4 (HRPWM_RSTR_EXTEVT4) /*!< The timer counter is reset upon external event 4 */ #define HRPWM_RESET_TRIGGER_EXTEVT3 (HRPWM_RSTR_EXTEVT3) /*!< The timer counter is reset upon external event 3 */ #define HRPWM_RESET_TRIGGER_UPD_CMPA5 (HRPWM_RSTR_UPD_CMPA5) /*!< The timer counter is reset upon other timer 5 update and Compare A event */ #define HRPWM_RESET_TRIGGER_CMPD4 (HRPWM_RSTR_CMPD4 ) /*!< The timer counter is reset upon other timer 4 Compare D event */ #define HRPWM_RESET_TRIGGER_CMPB4 (HRPWM_RSTR_CMPB4 ) /*!< The timer counter is reset upon other timer 4 Compare B event */ #define HRPWM_RESET_TRIGGER_UPD_CMPA4 (HRPWM_RSTR_UPD_CMPA4) /*!< The timer counter is reset upon other timer 4 update and Compare A event */ #define HRPWM_RESET_TRIGGER_CMPD3 (HRPWM_RSTR_CMPD3 ) /*!< The timer counter is reset upon other timer 3 Compare D event */ #define HRPWM_RESET_TRIGGER_CMPB3 (HRPWM_RSTR_CMPB3 ) /*!< The timer counter is reset upon other timer 3 Compare B event */ #define HRPWM_RESET_TRIGGER_UPD_CMPA3 (HRPWM_RSTR_UPD_CMPA3) /*!< The timer counter is reset upon other timer 3 update and Compare A event */ #define HRPWM_RESET_TRIGGER_CMPD2 (HRPWM_RSTR_CMPD2 ) /*!< The timer counter is reset upon other timer 2 Compare D event */ #define HRPWM_RESET_TRIGGER_CMPB2 (HRPWM_RSTR_CMPB2 ) /*!< The timer counter is reset upon other timer 2 Compare B event */ #define HRPWM_RESET_TRIGGER_UPD_CMPA2 (HRPWM_RSTR_UPD_CMPA2) /*!< The timer counter is reset upon other timer 2 update and Compare A event */ #define HRPWM_RESET_TRIGGER_CMPD1 (HRPWM_RSTR_CMPD1 ) /*!< The timer counter is reset upon other timer 1 Compare D event */ #define HRPWM_RESET_TRIGGER_CMPB1 (HRPWM_RSTR_CMPB1 ) /*!< The timer counter is reset upon other timer 1 Compare B event */ #define HRPWM_RESET_TRIGGER_UPD_CMPA1 (HRPWM_RSTR_UPD_CMPA1) /*!< The timer counter is reset upon other timer 1 update and Compare A event */ #define HRPWM_RESET_TRIGGER_CMPD0 (HRPWM_RSTR_CMPD0 ) /*!< The timer counter is reset upon other timer 0 Compare D event */ #define HRPWM_RESET_TRIGGER_CMPB0 (HRPWM_RSTR_CMPB0 ) /*!< The timer counter is reset upon other timer 0 Compare B event */ #define HRPWM_RESET_TRIGGER_UPD_CMPA0 (HRPWM_RSTR_UPD_CMPA0) /*!< The timer counter is reset upon other timer 0 update and Compare A event */ #define HRPWM_RESET_TRIGGER_CMPD5 (HRPWM_RSTR_CMPD5 ) /*!< The timer counter is reset upon other timer 5 Compare D event */ #define HRPWM_RESET_TRIGGER_CMPB5 (HRPWM_RSTR_CMPB5 ) /*!< The timer counter is reset upon other timer 5 Compare B event */ #define HRPWM_RESET_TRIGGER_EXTEVT2 (HRPWM_RSTR_EXTEVT2 ) /*!< The timer counter is reset upon external event 2 */ #define HRPWM_RESET_TRIGGER_EXTEVT1 (HRPWM_RSTR_EXTEVT1 ) /*!< The timer counter is reset upon external event 1 */ #define HRPWM_RESET_TRIGGER_EXTEVT0 (HRPWM_RSTR_EXTEVT0 ) /*!< The timer counter is reset upon external event 0 */ #define HRPWM_RESET_TRIGGER_MSTPER (HRPWM_RSTR_MSTPER ) /*!< The timer counter is reset upon master timer period event */ #define HRPWM_RESET_TRIGGER_MSTCMPD (HRPWM_RSTR_MSTCMPD ) /*!< The timer counter is reset upon master timer Compare 1 event */ #define HRPWM_RESET_TRIGGER_MSTCMPC (HRPWM_RSTR_MSTCMPC ) /*!< The timer counter is reset upon master timer Compare 2 event */ #define HRPWM_RESET_TRIGGER_MSTCMPB (HRPWM_RSTR_MSTCMPB ) /*!< The timer counter is reset upon master timer Compare 3 event */ #define HRPWM_RESET_TRIGGER_MSTCMPA (HRPWM_RSTR_MSTCMPA ) /*!< The timer counter is reset upon master timer Compare 4 event */ /** * @} */ /** @defgroup HRPWM_Timer_Fault_Enabling HRPWM Timer Fault Enabling * @brief Constants defining whether a fault channel is enabled for a timer * @{ */ #define HRPWM_FAULTEN_NONE 0x00000000U /*!< No fault enabled */ #define HRPWM_FAULTEN_FAULT0 (HRPWM_FLTR_FLT0EN) /*!< Fault 0 enabled */ #define HRPWM_FAULTEN_FAULT1 (HRPWM_FLTR_FLT1EN) /*!< Fault 1 enabled */ #define HRPWM_FAULTEN_FAULT2 (HRPWM_FLTR_FLT2EN) /*!< Fault 2 enabled */ #define HRPWM_FAULTEN_FAULT3 (HRPWM_FLTR_FLT3EN) /*!< Fault 3 enabled */ #define HRPWM_FAULTEN_FAULT4 (HRPWM_FLTR_FLT4EN) /*!< Fault 4 enabled */ #define HRPWM_FAULTEN_FAULT5 (HRPWM_FLTR_FLT5EN) /*!< Fault 5 enabled */ /** * @} */ /** @defgroup HRPWM_ADC_Trigger_Event HRPWM ADC Trigger Event * @brief constants defining the events triggering ADC conversion. * HRPWM_ADCTRIGEVENT0246*: ADC Triggers 0 and 2 and 4 and 6 * HRPWM_ADCTRIGEVENT1357_*: ADC Triggers 1 and 3 and 5 and 7 * @{ */ #define HRPWM_ADCTRIGEVENT0_CMPD5 (HRPWM_ADT0R_CMPD5) /*!< ADC Trigger on Slave Timer 5 compare D */ #define HRPWM_ADCTRIGEVENT0_CMPC5 (HRPWM_ADT0R_CMPC5) /*!< ADC Trigger on Slave Timer 5 compare C */ #define HRPWM_ADCTRIGEVENT0_PER4 (HRPWM_ADT0R_PER4) /*!< ADC Trigger on Slave Timer 4 period */ #define HRPWM_ADCTRIGEVENT0_CMPD4 (HRPWM_ADT0R_CMPD4) /*!< ADC Trigger on Slave Timer 4 compare D */ #define HRPWM_ADCTRIGEVENT0_CMPC4 (HRPWM_ADT0R_CMPC4) /*!< ADC Trigger on Slave Timer 4 compare C */ #define HRPWM_ADCTRIGEVENT0_CMPB4 (HRPWM_ADT0R_CMPB4) /*!< ADC Trigger on Slave Timer 4 compare B */ #define HRPWM_ADCTRIGEVENT0_RST3 (HRPWM_ADT0R_RST3) /*!< ADC Trigger on Slave Timer 3 reset */ #define HRPWM_ADCTRIGEVENT0_CMPD3 (HRPWM_ADT0R_CMPD3) /*!< ADC Trigger on Slave Timer 3 compare D */ #define HRPWM_ADCTRIGEVENT0_CMPC3 (HRPWM_ADT0R_CMPC3) /*!< ADC Trigger on Slave Timer 3 compare C */ #define HRPWM_ADCTRIGEVENT0_CMPB3 (HRPWM_ADT0R_CMPB3) /*!< ADC Trigger on Slave Timer 3 compare B */ #define HRPWM_ADCTRIGEVENT0_PER2 (HRPWM_ADT0R_PER2) /*!< ADC Trigger on Slave Timer 2 period */ #define HRPWM_ADCTRIGEVENT0_CMPD2 (HRPWM_ADT0R_CMPD2) /*!< ADC Trigger on Slave Timer 2 compare D */ #define HRPWM_ADCTRIGEVENT0_CMPC2 (HRPWM_ADT0R_CMPC2) /*!< ADC Trigger on Slave Timer 2 compare C */ #define HRPWM_ADCTRIGEVENT0_CMPB2 (HRPWM_ADT0R_CMPB2) /*!< ADC Trigger on Slave Timer 2 compare B */ #define HRPWM_ADCTRIGEVENT0_RST1 (HRPWM_ADT0R_RST1) /*!< ADC Trigger on Slave Timer 1 reset */ #define HRPWM_ADCTRIGEVENT0_CMPD1 (HRPWM_ADT0R_CMPD1) /*!< ADC Trigger on Slave Timer 1 compare D */ #define HRPWM_ADCTRIGEVENT0_CMPC1 (HRPWM_ADT0R_CMPC1) /*!< ADC Trigger on Slave Timer 1 compare C */ #define HRPWM_ADCTRIGEVENT0_CMPB1 (HRPWM_ADT0R_CMPB1) /*!< ADC Trigger on Slave Timer 1 compare B */ #define HRPWM_ADCTRIGEVENT0_PER0 (HRPWM_ADT0R_PER0) /*!< ADC Trigger on Slave Timer 0 period */ #define HRPWM_ADCTRIGEVENT0_CMPD0 (HRPWM_ADT0R_CMPD0) /*!< ADC Trigger on Slave Timer 0 compare D */ #define HRPWM_ADCTRIGEVENT0_CMPC0 (HRPWM_ADT0R_CMPC0) /*!< ADC Trigger on Slave Timer 0 compare C */ #define HRPWM_ADCTRIGEVENT0_CMPB0 (HRPWM_ADT0R_CMPB0) /*!< ADC Trigger on Slave Timer 0 compare B */ #define HRPWM_ADCTRIGEVENT0_RST5 (HRPWM_ADT0R_RST5) /*!< ADC Trigger on Slave Timer 5 reset */ #define HRPWM_ADCTRIGEVENT0_CMPB5 (HRPWM_ADT0R_CMPB5) /*!< ADC Trigger on Slave Timer 5 compare B */ #define HRPWM_ADCTRIGEVENT0_EEV2 (HRPWM_ADT0R_EEV2) /*!< ADC Trigger on external event 2 */ #define HRPWM_ADCTRIGEVENT0_EEV1 (HRPWM_ADT0R_EEV1) /*!< ADC Trigger on external event 1 */ #define HRPWM_ADCTRIGEVENT0_EEV0 (HRPWM_ADT0R_EEV0) /*!< ADC Trigger on external event 0 */ #define HRPWM_ADCTRIGEVENT0_MPER (HRPWM_ADT0R_MPER) /*!< ADC Trigger on Master Timer period */ #define HRPWM_ADCTRIGEVENT0_MCMPD (HRPWM_ADT0R_MCMPD) /*!< ADC Trigger on Master Timer compare D */ #define HRPWM_ADCTRIGEVENT0_MCMPC (HRPWM_ADT0R_MCMPC) /*!< ADC Trigger on Master Timer compare C */ #define HRPWM_ADCTRIGEVENT0_MCMPB (HRPWM_ADT0R_MCMPB) /*!< ADC Trigger on Master Timer compare B */ #define HRPWM_ADCTRIGEVENT0_MCMPA (HRPWM_ADT0R_MCMPA) /*!< ADC Trigger on Master Timer compare A */ #define HRPWM_ADCTRIGEVENT1_CMPD5 (HRPWM_ADT1R_CMPD5) /*!< ADC Trigger on Slave Timer 5 compare D */ #define HRPWM_ADCTRIGEVENT1_CMPC5 (HRPWM_ADT1R_CMPC5) /*!< ADC Trigger on Slave Timer 5 compare C */ #define HRPWM_ADCTRIGEVENT1_RST4 (HRPWM_ADT1R_RST4) /*!< ADC Trigger on Slave Timer 4 reset */ #define HRPWM_ADCTRIGEVENT1_CMPD4 (HRPWM_ADT1R_CMPD4) /*!< ADC Trigger on Slave Timer 4 compare D */ #define HRPWM_ADCTRIGEVENT1_CMPC4 (HRPWM_ADT1R_CMPC4) /*!< ADC Trigger on Slave Timer 4 compare C */ #define HRPWM_ADCTRIGEVENT1_CMPB4 (HRPWM_ADT1R_CMPB4) /*!< ADC Trigger on Slave Timer 4 compare B */ #define HRPWM_ADCTRIGEVENT1_PER3 (HRPWM_ADT1R_PER3) /*!< ADC Trigger on Slave Timer 3 period */ #define HRPWM_ADCTRIGEVENT1_CMPD3 (HRPWM_ADT1R_CMPD3) /*!< ADC Trigger on Slave Timer 3 compare D */ #define HRPWM_ADCTRIGEVENT1_CMPC3 (HRPWM_ADT1R_CMPC3) /*!< ADC Trigger on Slave Timer 3 compare C */ #define HRPWM_ADCTRIGEVENT1_CMPB3 (HRPWM_ADT1R_CMPB3) /*!< ADC Trigger on Slave Timer 3 compare B */ #define HRPWM_ADCTRIGEVENT1_RST2 (HRPWM_ADT1R_RST2) /*!< ADC Trigger on Slave Timer 2 reset */ #define HRPWM_ADCTRIGEVENT1_CMPD2 (HRPWM_ADT1R_CMPD2) /*!< ADC Trigger on Slave Timer 2 compare D */ #define HRPWM_ADCTRIGEVENT1_CMPC2 (HRPWM_ADT1R_CMPC2) /*!< ADC Trigger on Slave Timer 2 compare C */ #define HRPWM_ADCTRIGEVENT1_CMPB2 (HRPWM_ADT1R_CMPB2) /*!< ADC Trigger on Slave Timer 2 compare B */ #define HRPWM_ADCTRIGEVENT1_PER1 (HRPWM_ADT1R_PER1) /*!< ADC Trigger on Slave Timer 1 period */ #define HRPWM_ADCTRIGEVENT1_CMPD1 (HRPWM_ADT1R_CMPD1) /*!< ADC Trigger on Slave Timer 1 compare D */ #define HRPWM_ADCTRIGEVENT1_CMPC1 (HRPWM_ADT1R_CMPC1) /*!< ADC Trigger on Slave Timer 1 compare C */ #define HRPWM_ADCTRIGEVENT1_CMPB1 (HRPWM_ADT1R_CMPB1) /*!< ADC Trigger on Slave Timer 1 compare B */ #define HRPWM_ADCTRIGEVENT1_RST0 (HRPWM_ADT1R_RST0) /*!< ADC Trigger on Slave Timer 0 reset */ #define HRPWM_ADCTRIGEVENT1_CMPD0 (HRPWM_ADT1R_CMPD0) /*!< ADC Trigger on Slave Timer 0 compare D */ #define HRPWM_ADCTRIGEVENT1_CMPC0 (HRPWM_ADT1R_CMPC0) /*!< ADC Trigger on Slave Timer 0 compare C */ #define HRPWM_ADCTRIGEVENT1_CMPB0 (HRPWM_ADT1R_CMPB0) /*!< ADC Trigger on Slave Timer 0 compare B */ #define HRPWM_ADCTRIGEVENT1_PER5 (HRPWM_ADT1R_PER5) /*!< ADC Trigger on Slave Timer 5 period */ #define HRPWM_ADCTRIGEVENT1_CMPB5 (HRPWM_ADT1R_CMPB5) /*!< ADC Trigger on Slave Timer 5 compare B */ #define HRPWM_ADCTRIGEVENT1_EEV2 (HRPWM_ADT1R_EEV5) /*!< ADC Trigger on external event 2 */ #define HRPWM_ADCTRIGEVENT1_EEV1 (HRPWM_ADT1R_EEV4) /*!< ADC Trigger on external event 1 */ #define HRPWM_ADCTRIGEVENT1_EEV0 (HRPWM_ADT1R_EEV3) /*!< ADC Trigger on external event 0 */ #define HRPWM_ADCTRIGEVENT1_MPER (HRPWM_ADT1R_MPER) /*!< ADC Trigger on Master Timer period */ #define HRPWM_ADCTRIGEVENT1_MCMPD (HRPWM_ADT1R_MCMPD) /*!< ADC Trigger on Master Timer compare D */ #define HRPWM_ADCTRIGEVENT1_MCMPC (HRPWM_ADT1R_MCMPC) /*!< ADC Trigger on Master Timer compare C */ #define HRPWM_ADCTRIGEVENT1_MCMPB (HRPWM_ADT1R_MCMPB) /*!< ADC Trigger on Master Timer compare B */ #define HRPWM_ADCTRIGEVENT1_MCMPA (HRPWM_ADT1R_MCMPA) /*!< ADC Trigger on Master Timer compare A */ /** * @} */ /** @defgroup HRPWM_Software_Timer_Update HRPWM Software Timer Update * @brief Constants used to force timer registers update * @{ */ #define HRPWM_UPDATE_MASTER (HRPWM_CR1_MSWU)/*!< Force an immediate transfer from the preload to the active register in the master timer */ #define HRPWM_UPDATE_SLAVE_0 (HRPWM_CR1_SWU0)/*!< Force an immediate transfer from the preload to the active register in the slave timer 0 */ #define HRPWM_UPDATE_SLAVE_1 (HRPWM_CR1_SWU1)/*!< Force an immediate transfer from the preload to the active register in the slave timer 1 */ #define HRPWM_UPDATE_SLAVE_2 (HRPWM_CR1_SWU2)/*!< Force an immediate transfer from the preload to the active register in the slave timer 2 */ #define HRPWM_UPDATE_SLAVE_3 (HRPWM_CR1_SWU3)/*!< Force an immediate transfer from the preload to the active register in the slave timer 3 */ #define HRPWM_UPDATE_SLAVE_4 (HRPWM_CR1_SWU4)/*!< Force an immediate transfer from the preload to the active register in the slave timer 4 */ #define HRPWM_UPDATE_SLAVE_5 (HRPWM_CR1_SWU5)/*!< Force an immediate transfer from the preload to the active register in the slave timer 5 */ /** * @} */ /** @defgroup HRPWM_Software_Timer_SwapOutput HRPWM Software Timer swap Output * @brief Constants used to swap the output of the timer registers * @{ */ #define HRPWM_SWAP_SLAVE_0 (HRPWM_CR1_SWP0) /*!< Swap the output of the slave Timer 0 */ #define HRPWM_SWAP_SLAVE_1 (HRPWM_CR1_SWP1) /*!< Swap the output of the slave Timer 1 */ #define HRPWM_SWAP_SLAVE_2 (HRPWM_CR1_SWP2) /*!< Swap the output of the slave Timer 2 */ #define HRPWM_SWAP_SLAVE_3 (HRPWM_CR1_SWP3) /*!< Swap the output of the slave Timer 3 */ #define HRPWM_SWAP_SLAVE_4 (HRPWM_CR1_SWP4) /*!< Swap the output of the slave Timer 4 */ #define HRPWM_SWAP_SLAVE_5 (HRPWM_CR1_SWP5) /*!< Swap the output of the slave Timer 5 */ /** * @} */ /** @defgroup HRPWM_Software_Timer_Reset HRPWM Software Timer Reset * @brief Constants used to force timer counter reset * @{ */ #define HRPWM_RESET_MASTER (HRPWM_CR1_MRST) /*!< Reset the master timer counter */ #define HRPWM_RESET_SLAVE_0 (HRPWM_CR1_RST0) /*!< Reset the slave timer 0 counter */ #define HRPWM_RESET_SLAVE_1 (HRPWM_CR1_RST1) /*!< Reset the slave timer 1 counter */ #define HRPWM_RESET_SLAVE_2 (HRPWM_CR1_RST2) /*!< Reset the slave timer 2 counter */ #define HRPWM_RESET_SLAVE_3 (HRPWM_CR1_RST3) /*!< Reset the slave timer 3 counter */ #define HRPWM_RESET_SLAVE_4 (HRPWM_CR1_RST4) /*!< Reset the slave timer 4 counter */ #define HRPWM_RESET_SLAVE_5 (HRPWM_CR1_RST5) /*!< Reset the slave timer 5 counter */ /** * @} */ /** @defgroup HRPWM_Software_Timer_Update_Disable HRPWM Software Timer Update Disable * @brief Constants used to force timer counter Update Disable * @{ */ #define HRPWM_UPDISABLE_MASTER (HRPWM_CR0_MUDIS) /*!< Update Disable the master timer counter */ #define HRPWM_UPDISABLE_SLAVE_0 (HRPWM_CR0_UDIS0) /*!< Update Disable the slave timer 0 counter */ #define HRPWM_UPDISABLE_SLAVE_1 (HRPWM_CR0_UDIS1) /*!< Update Disable the slave timer 1 counter */ #define HRPWM_UPDISABLE_SLAVE_2 (HRPWM_CR0_UDIS2) /*!< Update Disable the slave timer 2 counter */ #define HRPWM_UPDISABLE_SLAVE_3 (HRPWM_CR0_UDIS3) /*!< Update Disable the slave timer 3 counter */ #define HRPWM_UPDISABLE_SLAVE_4 (HRPWM_CR0_UDIS4) /*!< Update Disable the slave timer 4 counter */ #define HRPWM_UPDISABLE_SLAVE_5 (HRPWM_CR0_UDIS5) /*!< Update Disable the slave timer 5 counter */ /** * @} */ /** @defgroup HRPWM_Software_forced_update HRPWM Software forced update * @brief Constants used to force timer counter Software forced update * @{ */ #define HRPWM_SOFT_UPDATE_MASTER (HRPWM_CR1_MSWU) /*!< Update Disable the master timer counter */ #define HRPWM_SOFT_UPDATE_SLAVE_0 (HRPWM_CR1_SWU0) /*!< Update Disable the slave timer 0 counter */ #define HRPWM_SOFT_UPDATE_SLAVE_1 (HRPWM_CR1_SWU1) /*!< Update Disable the slave timer 1 counter */ #define HRPWM_SOFT_UPDATE_SLAVE_2 (HRPWM_CR1_SWU2) /*!< Update Disable the slave timer 2 counter */ #define HRPWM_SOFT_UPDATE_SLAVE_3 (HRPWM_CR1_SWU3) /*!< Update Disable the slave timer 3 counter */ #define HRPWM_SOFT_UPDATE_SLAVE_4 (HRPWM_CR1_SWU4) /*!< Update Disable the slave timer 4 counter */ #define HRPWM_SOFT_UPDATE_SLAVE_5 (HRPWM_CR1_SWU5) /*!< Update Disable the slave timer 5 counter */ /** * @} */ /** @defgroup HRPWM_Output_State HRPWM Output State * @brief Constants defining the state of a timer output * @{ */ #define HRPWM_OUTPUTSTATE_IDLE (0x00000001U) /*!< Main operating mode, where the output can take the active or inactive level as programmed in the crossbar unit */ #define HRPWM_OUTPUTSTATE_RUN (0x00000002U) /*!< Default operating state (e.g. after an HRPWM reset, when the outputs are disabled by software or during a burst mode operation */ #define HRPWM_OUTPUTSTATE_FAULT (0x00000003U) /*!< Safety state, entered in case of a shut-down request on FAULTx inputs */ /** * @} */ /** @defgroup HRPWM_Common_Interrupt_Enable HRPWM Common Interrupt Enable * @{ */ #define HRPWM_IT_SRC (0x0000003FU) #define HRPWM_IT_NONE (0x00000000U) /*!< No interrupt enabled */ #define HRPWM_IT_FLT0 HRPWM_IER_FLT0IE /*!< Fault 0 interrupt enable */ #define HRPWM_IT_FLT1 HRPWM_IER_FLT1IE /*!< Fault 1 interrupt enable */ #define HRPWM_IT_FLT2 HRPWM_IER_FLT2IE /*!< Fault 2 interrupt enable */ #define HRPWM_IT_FLT3 HRPWM_IER_FLT3IE /*!< Fault 3 interrupt enable */ #define HRPWM_IT_FLT4 HRPWM_IER_FLT4IE /*!< Fault 4 interrupt enable */ #define HRPWM_IT_FLT5 HRPWM_IER_FLT5IE /*!< Fault 5 interrupt enable */ #define HRPWM_IT_SYSFLT HRPWM_IER_SYSFLTIE /*!< System Fault interrupt enable */ /** * @} */ /** @defgroup HRPWM_Common_Interrupt_Flag HRPWM Common Interrupt Flag * @{ */ #define HRPWM_FLAG_FLT0 HRPWM_ISR_FLT0 /*!< Fault 0 interrupt flag */ #define HRPWM_FLAG_FLT1 HRPWM_ISR_FLT1 /*!< Fault 1 interrupt flag */ #define HRPWM_FLAG_FLT2 HRPWM_ISR_FLT2 /*!< Fault 2 interrupt flag */ #define HRPWM_FLAG_FLT3 HRPWM_ISR_FLT3 /*!< Fault 3 interrupt flag */ #define HRPWM_FLAG_FLT4 HRPWM_ISR_FLT4 /*!< Fault 4 interrupt flag */ #define HRPWM_FLAG_FLT5 HRPWM_ISR_FLT5 /*!< Fault 5 interrupt flag */ #define HRPWM_FLAG_SYSFLT HRPWM_ISR_SYSFLT /*!< System Fault interrupt flag */ /** * @} */ /** @defgroup HRPWM_Master_Interrupt_Enable HRPWM Master Interrupt Enable * @{ */ #define HRPWM_MASTER_IT_SRC 0x000000FFU /*!< ALL interrupt enabled */ #define HRPWM_MASTER_IT_NONE 0x00000000U /*!< No interrupt enabled */ #define HRPWM_MASTER_IT_MCMPA HRPWM_MIER_MCMPAIE /*!< Master compare A interrupt enable */ #define HRPWM_MASTER_IT_MCMPB HRPWM_MIER_MCMPBIE /*!< Master compare B interrupt enable */ #define HRPWM_MASTER_IT_MCMPC HRPWM_MIER_MCMPCIE /*!< Master compare C interrupt enable */ #define HRPWM_MASTER_IT_MCMPD HRPWM_MIER_MCMPDIE /*!< Master compare D interrupt enable */ #define HRPWM_MASTER_IT_MPER HRPWM_MIER_MPERIE /*!< Master Period interrupt enable */ #define HRPWM_MASTER_IT_SYNC HRPWM_MIER_SYNCIE /*!< Synchronization input interrupt enable */ #define HRPWM_MASTER_IT_MUPD HRPWM_MIER_MUPDIE /*!< Master update interrupt enable */ #define HRPWM_MASTER_IT_MREP HRPWM_MIER_MREPIE /*!< Master Repetition interrupt enable */ /** * @} */ /** @defgroup HRPWM_Master_Interrupt_Flag HRPWM Master Interrupt flag * @{ */ #define HRPWM_MASTER_FLAG_NONE 0x00000000U /*!< No interrupt flag */ #define HRPWM_MASTER_FLAG_MCMPA HRPWM_MISR_MCMPA /*!< Master compare A interrupt flag */ #define HRPWM_MASTER_FLAG_MCMPB HRPWM_MISR_MCMPB /*!< Master compare B interrupt flag */ #define HRPWM_MASTER_FLAG_MCMPC HRPWM_MISR_MCMPC /*!< Master compare C interrupt flag */ #define HRPWM_MASTER_FLAG_MCMPD HRPWM_MISR_MCMPD /*!< Master compare D interrupt flag */ #define HRPWM_MASTER_FLAG_MPER HRPWM_MISR_MPER /*!< Master Period interrupt flag */ #define HRPWM_MASTER_FLAG_SYNC HRPWM_MISR_SYNC /*!< Synchronization input interrupt flag */ #define HRPWM_MASTER_FLAG_MUPD HRPWM_MISR_MUPD /*!< Master update interrupt flag */ #define HRPWM_MASTER_FLAG_MREP HRPWM_MISR_MREP /*!< Master Repetition interrupt flag */ /** * @} */ /** @defgroup HRPWM_Slave_Timer_Unit_Interrupt_Enable HRPWM Timing Unit Interrupt Enable * @{ */ #define HRPWM_IT_TIMER_SRC 0x00000FFFU /*!< ALL interrupt enabled */ #define HRPWM_IT_TIMER_NONE 0x00000000U /*!< No interrupt enabled */ #define HRPWM_IT_CMPA HRPWM_IER_CMPAIE /*!< Timer compare A interrupt enable */ #define HRPWM_IT_CMPB HRPWM_IER_CMPBIE /*!< Timer compare B interrupt enable */ #define HRPWM_IT_CMPC HRPWM_IER_CMPCIE /*!< Timer compare C interrupt enable */ #define HRPWM_IT_CMPD HRPWM_IER_CMPDIE /*!< Timer compare D interrupt enable */ #define HRPWM_IT_PER HRPWM_IER_PERIE /*!< Timer period interrupt enable */ #define HRPWM_IT_UPD HRPWM_IER_UPDIE /*!< Timer update interrupt enable */ #define HRPWM_IT_SETA HRPWM_IER_SETAIE /*!< Timer output 1 set interrupt enable */ #define HRPWM_IT_CLRA HRPWM_IER_CLRAIE /*!< Timer output 1 reset interrupt enable */ #define HRPWM_IT_SETB HRPWM_IER_SETBIE /*!< Timer output 2 set interrupt enable */ #define HRPWM_IT_CLRB HRPWM_IER_CLRBIE /*!< Timer output 2 reset interrupt enable */ #define HRPWM_IT_RST HRPWM_IER_RSTIE /*!< Timer reset interrupt enable */ #define HRPWM_IT_REP HRPWM_IER_REPIE /*!< Timer repetition interrupt enable */ /** * @} */ /** @defgroup HRPWM_Slave_Timer_Unit_Interrupt_Flag HRPWM Timing Unit Interrupt Flag * @{ */ #define HRPWM_FLAG_CMPA HRPWM_ISR_CMPA /*!< Timer compare A interrupt flag */ #define HRPWM_FLAG_CMPB HRPWM_ISR_CMPB /*!< Timer compare B interrupt flag */ #define HRPWM_FLAG_CMPC HRPWM_ISR_CMPC /*!< Timer compare C interrupt flag */ #define HRPWM_FLAG_CMPD HRPWM_ISR_CMPD /*!< Timer compare D interrupt flag */ #define HRPWM_FLAG_PER HRPWM_ISR_PER /*!< Timer period interrupt flag */ #define HRPWM_FLAG_UPD HRPWM_ISR_UPD /*!< Timer update interrupt flag */ #define HRPWM_FLAG_SETA HRPWM_ISR_SETA /*!< Timer output 1 set interrupt flag */ #define HRPWM_FLAG_CLRA HRPWM_ISR_CLRA /*!< Timer output 1 reset interrupt flag */ #define HRPWM_FLAG_SETB HRPWM_ISR_SETB /*!< Timer output 2 set interrupt flag */ #define HRPWM_FLAG_CLRB HRPWM_ISR_CLRB /*!< Timer output 2 reset interrupt flag */ #define HRPWM_FLAG_RST HRPWM_ISR_RST /*!< Timer reset interrupt flag */ #define HRPWM_FLAG_REP HRPWM_ISR_REP /*!< Timer repetition interrupt flag */ /** * @} */ /** * @} */ /* Exported types ------------------------------------------------------------*/ /** @defgroup HRPWM_LL_Exported_Types HRPWM LL Exported Types * @brief HRPWM LL Exported Types * @{ */ /** @defgroup HRPWM_DLL_CURRENT HRPWM DLL CURRENT * @brief Constants defining dll current identifiers * @{ */ typedef enum { HRPWM_DLLCR_DLLGCP_4 = 0x0, /*!< DLL current selector bit: 4uA */ HRPWM_DLLCR_DLLGCP_6 = HRPWM_DLLCR_DLLGCP_0, /*!< DLL current selector bit: 6uA */ HRPWM_DLLCR_DLLGCP_8 = HRPWM_DLLCR_DLLGCP_1 | HRPWM_DLLCR_DLLGCP_0, /*!< DLL current selector bit: 8uA */ } HRPWM_DllCurrentETypeDef; /** * @} */ /** @defgroup HRPWM_ADC_Trigger HRPWM ADC Trigger * @brief Constants defining ADC triggers identifiers * @{ */ typedef enum { HRPWM_ADCTRIGGER_0 = 0x0U, /*!< ADC trigger 0 identifier */ HRPWM_ADCTRIGGER_1 = 0x1U, /*!< ADC trigger 1 identifier */ HRPWM_ADCTRIGGER_2 = 0x2U, /*!< ADC trigger 2 identifier */ HRPWM_ADCTRIGGER_3 = 0x3U, /*!< ADC trigger 3 identifier */ HRPWM_ADCTRIGGER_4 = 0x4U, /*!< ADC trigger 4 identifier */ HRPWM_ADCTRIGGER_5 = 0x5U, /*!< ADC trigger 5 identifier */ HRPWM_ADCTRIGGER_6 = 0x6U, /*!< ADC trigger 6 identifier */ HRPWM_ADCTRIGGER_7 = 0x7U, /*!< ADC trigger 7 identifier */ } HRPWM_AdcTrigGroupETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Channels HRPWM External Event Channels * @brief Constants defining external event channel identifiers * @{ */ typedef enum { HRPWM_EVENT_NONE = 0x6U, /*!< None Event */ HRPWM_EVENT_0 = 0x0U, /*!< External event channel 0 identifier */ HRPWM_EVENT_1 = 0x1U, /*!< External event channel 1 identifier */ HRPWM_EVENT_2 = 0x2U, /*!< External event channel 2 identifier */ HRPWM_EVENT_3 = 0x3U, /*!< External event channel 3 identifier */ HRPWM_EVENT_4 = 0x4U, /*!< External event channel 4 identifier */ HRPWM_EVENT_5 = 0x5U, /*!< External event channel 5 identifier */ } HRPWM_EventSelETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Channel HRPWM Fault Channel * @brief Constants defining fault channel identifiers * @{ */ typedef enum { HRPWM_FAULT_0 = 0x00U, /*!< Fault channel 0 identifier */ HRPWM_FAULT_1 = 0x01U, /*!< Fault channel 1 identifier */ HRPWM_FAULT_2 = 0x02U, /*!< Fault channel 2 identifier */ HRPWM_FAULT_3 = 0x03U, /*!< Fault channel 3 identifier */ HRPWM_FAULT_4 = 0x04U, /*!< Fault channel 4 identifier */ HRPWM_FAULT_5 = 0x05U, /*!< Fault channel 5 identifier */ HRPWM_SYSFAULT = 0x06U, /*!< Fault channel 5 identifier */ } HRPWM_FaultSelETypeDef; /** * @} */ /** @defgroup HRPWM_Prescaler_Ratio HRPWM Prescaler Ratio * @brief Constants defining timer high-resolution clock prescaler ratio. * @{ */ typedef enum { HRPWM_PRESCALERRATIO_MUL32 = 0x0U, /*!< fHRCK: fHRPWM x 32U = 5.12 GHz - Resolution: 195 ps */ HRPWM_PRESCALERRATIO_MUL16 = 0x1U, /*!< fHRCK: fHRPWM x 16U = 2.56 GHz - Resolution: 390 ps */ HRPWM_PRESCALERRATIO_MUL8 = 0x2U, /*!< fHRCK: fHRPWM x 8U = 1.28 GHz - Resolution: 781 ps */ HRPWM_PRESCALERRATIO_MUL4 = 0x3U, /*!< fHRCK: fHRPWM x 4U = 640 MHz - Resolution: 1.56 ns */ HRPWM_PRESCALERRATIO_MUL2 = 0x4U, /*!< fHRCK: fHRPWM x 2U = 320 MHz - Resolution: 3.125 ns */ HRPWM_PRESCALERRATIO_DIV1 = 0x5U, /*!< fHRCK: fHRPWM = 160 MHz - Resolution: 6.25 ns */ HRPWM_PRESCALERRATIO_DIV2 = 0x6U, /*!< fHRCK: fHRPWM / 2U = 80 MHz - Resolution: 12.5 ns */ HRPWM_PRESCALERRATIO_DIV4 = 0x7U, /*!< fHRCK: fHRPWM / 4U = 40 MHz - Resolution: 25 ns */ } HRPWM_PrescalerRatioETypeDef; /** * @} */ /** @defgroup HRPWM_Counter_Operating_Mode HRPWM Counter Operating Mode * @brief Constants defining timer counter operating mode. * @{ */ typedef enum { HRPWM_MODE_CONTINUOUS = HRPWM_CR0_CONT, /*!< The timer operates in continuous (free-running) mode */ HRPWM_MODE_SINGLESHOT = 0x0, /*!< The timer operates in non retriggerable single-shot mode */ HRPWM_MODE_SINGLESHOT_RETRIGGERABLE = HRPWM_CR0_RETRIG, /*!< The timer operates in retriggerable single-shot mode */ } HRPWM_ModeETypeDef; /** * @} */ /** @defgroup HRPWM_Half_Mode_Enable HRPWM Half Mode Enable * @brief Constants defining half mode enabling status. * @{ */ typedef enum { HRPWM_HALFMODE_DISABLE = 0x0, /*!< Half mode is disabled */ HRPWM_HALFMODE_ENABLE = HRPWM_CR0_HALF, /*!< Half mode is enabled */ } HRPWM_HalfModeETypeDef; /** * @} */ /** @defgroup HRPWM_Interleaved_Mode HRPWM Interleaved Mode * @brief Constants defining interleaved mode enabling status. * @{ */ typedef enum { HRPWM_INTERLEAVED_MODE_DISABLE = 0x0, /*!< HRPWM interleaved Mode is disabled */ HRPWM_INTERLEAVED_MODE_TRIPLE = HRPWM_CR0_INTLVD_0, /*!< HRPWM interleaved Mode is Triple */ HRPWM_INTERLEAVED_MODE_QUAD = HRPWM_CR0_INTLVD_1, /*!< HRPWM interleaved Mode is Quad */ } HRPWM_InterleavedModeETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_Push_Pull_Mode HRPWM Timer Push Pull Mode * @brief Constants defining whether or not the push-pull mode is enabled for a timer. * @{ */ typedef enum { HRPWM_PUSHPULLMODE_DISABLE = 0x0, /*!< Push-Pull mode disabled */ HRPWM_PUSHPULLMODE_ENABLE = HRPWM_CR0_PSHPLL, /*!< Push-Pull mode enabled */ } HRPWM_PushpullModeETypeDef; typedef enum { HRPWM_MODE_NONE = 0, /*!< HRPWM mode none */ HRPWM_MODE_HALF = HRPWM_CR0_HALF, /*!< HRPWM mode half */ HRPWM_MODE_PUSHPULL = HRPWM_CR0_PSHPLL, /*!< HRPWM mode push pull */ HRPWM_MODE_INTERLEAVED_TRIPLE = HRPWM_CR0_INTLVD_0, /*!< HRPWM mode interleaved triple */ HRPWM_MODE_INTERLEAVED_QUAD = HRPWM_CR0_INTLVD_1, /*!< HRPWM mode interleaved quad */ HRPWM_MODE_HALF_PUSHPULL = HRPWM_CR0_HALF | HRPWM_CR0_PSHPLL, /*!< HRPWM mode half push pull */ HRPWM_MODE_HALF_INTERLEAVED_TRIPLE = HRPWM_CR0_HALF | HRPWM_CR0_INTLVD_0, /*!< HRPWM mode half interleaved triple */ HRPWM_MODE_HALF_INTERLEAVED_QUAD = HRPWM_CR0_HALF | HRPWM_CR0_INTLVD_1, /*!< HRPWM mode half interleaved quad */ HRPWM_MODE_PUSHPULL_INTERLEAVED_TRIPLE = HRPWM_CR0_PSHPLL | HRPWM_CR0_INTLVD_0, /*!< HRPWM mode push pull interleaved triple*/ HRPWM_MODE_PUSHPULL_INTERLEAVED_QUAD = HRPWM_CR0_PSHPLL | HRPWM_CR0_INTLVD_1, /*!< HRPWM mode push pull interleaved quad */ } HRPWM_OutputModeETypeDef; /** * @} */ /** @defgroup HRPWM_Start_On_Sync_Input_Event HRPWM Start On Sync Input Event * @brief Constants defining the timer behavior following the synchronization event * @{ */ typedef enum { HRPWM_SYNCSTART_DISABLE = 0x0, /*!< Synchronization input event has effect on the timer */ HRPWM_SYNCSTART_ENABLE = HRPWM_CR0_SYNCSTRT, /*!< Synchronization input event starts the timer */ } HRPWM_SyncStartETypeDef; /** * @} */ /** @defgroup HRPWM_Reset_On_Sync_Input_Event HRPWM Reset On Sync Input Event * @brief Constants defining the timer behavior following the synchronization event * @{ */ typedef enum { HRPWM_SYNCRESET_DISABLE = 0x0, /*!< Synchronization input event has effect on the timer */ HRPWM_SYNCRESET_ENABLE = HRPWM_CR0_SYNCRST, /*!< Synchronization input event resets the timer */ } HRPWM_SyncResetETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_Resync_Update_Enable HRPWM Re-Synchronized Update * @brief Constants defining whether the update source coming outside from the timing unit must be synchronized * @{ */ typedef enum { HRPWM_RSYNCUPDATE_DISABLE = 0x0, /*!< The update is taken into account immediately */ HRPWM_RSYNCUPDATE_ENABLE = HRPWM_CR0_RSYNCU, /*!< The update is taken into account on the following Reset/Roll-over event*/ } HRPWM_RsyncUpdateETypeDef; /** * @} */ /** @defgroup HRPWM_Register_Preload_Enable HRPWM Register Preload Enable * @brief Constants defining whether a write access into a preloadable * register is done into the active or the preload register. * @{ */ typedef enum { HRPWM_PRELOAD_DISABLE = 0x0, /*!< Preload disabled: the write access is directly done into the active register */ HRPWM_PRELOAD_ENABLE = HRPWM_MCR_PREEN,/*!< Preload enabled: the write access is done into the preload register */ } HRPWM_PreloadEnETypeDef; /** * @} */ /** @defgroup HRPWM_Synchronization_Input_Source HRPWM Synchronization Input Source * @brief Constants defining the synchronization input source * @{ */ typedef enum { HRPWM_SYNCINPUTSOURCE_NONE = 0x0, /*!< HRPWM Synchronization Input Source None */ HRPWM_SYNCINPUTSOURCE_TIM0_TRGO_EVENT = HRPWM_MCR_SYNCIN_EN, /*!< The HRPWM is synchronized with TIM0_TRGO */ HRPWM_SYNCINPUTSOURCE_EVENT = HRPWM_MCR_SYNCIN_SRC | HRPWM_MCR_SYNCIN_EN, /*!< A positive pulse on SYNCIN input triggers the HRPWM */ } HRPWM_SyncInputSrcETypeDef; /** * @} */ /** @defgroup HRPWM_Synchronization_Output_Source HRPWM Synchronization Output Source * @brief Constants defining the source and event to be sent on the synchronization outputs * @{ */ #define HRPWM_SYNCOUTPUTSOURCE_SRC ( HRPWM_MCR_SYNCOUT_SRC_1 | HRPWM_MCR_SYNCOUT_SRC_0) typedef enum { HRPWM_SYNCOUTPUTSOURCE_MASTER_START = 0x0, /*!< A pulse is sent on the SYNCOUT output upon master timer start event */ HRPWM_SYNCOUTPUTSOURCE_MASTER_CMPA = HRPWM_MCR_SYNCOUT_SRC_0, /*!< A pulse is sent on the SYNCOUT output upon master timer compare 1 event */ HRPWM_SYNCOUTPUTSOURCE_SLAVE0_STARTRST = HRPWM_MCR_SYNCOUT_SRC_1, /*!< A pulse is sent on the SYNCOUT output upon timer A start or reset events */ HRPWM_SYNCOUTPUTSOURCE_SLAVE0_CMPA = HRPWM_MCR_SYNCOUT_SRC_1 | HRPWM_MCR_SYNCOUT_SRC_0, /*!< A pulse is sent on the SYNCOUT output upon timer A compare 1 event */ } HRPWM_SyncOutputSrcETypeDef; /** * @} */ /** @defgroup HRPWM_Synchronization_Output_Polarity HRPWM Synchronization Output Polarity * @brief Constants defining the routing and conditioning of the synchronization output event * @{ */ typedef enum { HRPWM_SYNCOUTPUTPOLARITY_NEGATIVE = HRPWM_MCR_SYNCOUT_POL, /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRPWM clock cycles length for the synchronization */ HRPWM_SYNCOUTPUTPOLARITY_POSITIVE = 0x0, /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRPWM clock cycles length for the synchronization */ } HRPWM_SyncOutputPolETypeDef; /** * @} */ /** @defgroup HRPWM_Synchronization_Output_Enable HRPWM Synchronization Output Polarity * @brief Constants defining the routing and conditioning of the synchronization output event * @{ */ typedef enum { HRPWM_SYNCOUTPUT_ENABLE = HRPWM_MCR_SYNCOUT_EN, /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRPWM clock cycles length for the synchronization */ HRPWM_SYNCOUTPUT_DISABLE = 0x0, /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRPWM clock cycles length for the synchronization */ } HRPWM_SyncOutputEnETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_Fault_RollOver_Mode HRPWM Timer RollOver Mode * @brief Constants defining when the roll-over is generated upon Timerx * event generated when the counter is equal to 0 or to HRPWM_PERxR value or BOTH * This setting only applies when the UDM bit is set. It is not significant otherwise. * @{ */ typedef enum { HRPWM_FLTROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */ HRPWM_FLTROM_ZERO = HRPWM_CR1_FLTROM_0, /*!< The roll-over event is generated when the count is 0 */ HRPWM_FLTROM_PERIOD = HRPWM_CR1_FLTROM_1, /*!< The roll-over event is generated when the count is Period */ } HRPWM_FltRollOverETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_Event_RollOver_Mode HRPWM Timer RollOver Mode * @brief HRPWM Timer RollOver Mode * @{ */ typedef enum { HRPWM_EEVROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */ HRPWM_EEVROM_ZERO = HRPWM_CR1_EEVROM_0, /*!< The roll-over event is generated when the count is 0 */ HRPWM_EEVROM_PERIOD = HRPWM_CR1_EEVROM_1, /*!< The roll-over event is generated when the count is Period */ } HRPWM_EventRollOverETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_ADTrig_RollOver_Mode HRPWM Timer RollOver Mode * @brief HRPWM Timer RollOver Mode * @{ */ typedef enum { HRPWM_ADROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */ HRPWM_ADROM_ZERO = HRPWM_CR1_ADROM_0, /*!< The roll-over event is generated when the count is 0 */ HRPWM_ADROM_PERIOD = HRPWM_CR1_ADROM_1, /*!< The roll-over event is generated when the count is Period */ } HRPWM_AdcRollOverETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_Output_RollOver_Mode HRPWM Timer RollOver Mode * @brief HRPWM Timer RollOver Mode * @{ */ typedef enum { HRPWM_OUTROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */ HRPWM_OUTROM_ZERO = HRPWM_CR1_OUTROM_0, /*!< The roll-over event is generated when the count is 0 */ HRPWM_OUTROM_PERIOD = HRPWM_CR1_OUTROM_1, /*!< The roll-over event is generated when the count is Period */ } HRPWM_OutputRollOverETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_RollOver_Mode HRPWM Timer RollOver Mode * @breif HRPWM Timer RollOver Mode * @{ */ typedef enum { HRPWM_ROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */ HRPWM_ROM_ZERO = HRPWM_CR1_ROM_0, /*!< The roll-over event is generated when the count is 0 */ HRPWM_ROM_PERIOD = HRPWM_CR1_ROM_1, /*!< The roll-over event is generated when the count is Period */ } HRPWM_RollOverETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_UpDown_Mode HRPWM Timer UpDown Mode * @brief Constants defining how the timer counter operates * @{ */ typedef enum { HRPWM_COUNT_UP = 0x0, /*!< Timer counter is operating in up-counting mode */ HRPWM_COUNT_UPDOWN = HRPWM_CR1_UDM, /*!< Timer counter is operating in up-down counting mode */ } HRPWM_CounterModeETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_DualChannelDac_Reset HRPWM Dual Channel Dac Reset Trigger * @brief Constants defining when the HRPWM_dac_reset_trgx trigger is generated * @{ */ typedef enum { HRPWM_DAC_DCDR_SETA = 0x0, /*!< the trigger is generated on output A set event */ HRPWM_DAC_DCDR_RESET = HRPWM_CR1_DCDR, /*!< the trigger is generated on counter reset or roll-over event */ } HRPWM_DacResetSelETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_DualChannelDac_Step HRPWM Dual Channel Dac Step Trigger * @brief Constants defining when the HRPWM_dac_step_trgx trigger is generated * @{ */ typedef enum { HRPWM_DAC_DCDS_CLEARA = 0x0, /*!< the trigger is generated on output 1 reset event */ HRPWM_DAC_DCDS_CMPD = HRPWM_CR1_DCDS, /*!< the trigger is generated on compare D event */ } HRPWM_DacStepSelETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_DualChannelDac_Enable HRPWM Dual Channel DAC Trigger Enable * @brief Constants enabling the dual channel DAC triggering mechanism * @{ */ typedef enum { HRPWM_DAC_DCDE_DISABLE = 0x0, /*!< the Dual channel DAC trigger is disabled */ HRPWM_DAC_DCDE_ENABLE = HRPWM_CR1_DCDE, /*!< the Dual channel DAC trigger is enabled */ } HRPWM_DacTrigEnETypeDef; /** * @} */ /** @defgroup HRPWM_Deadtime_Rising_Sign HRPWM Dead-time Rising Sign * @brief Constants defining whether the dead-time is positive or negative (overlapping signal) on rising edge * @{ */ typedef enum { HRPWM_DEADTIME_RSIGN_NEGATIVE = 0x0, /*!< Negative dead-time on rising edge */ HRPWM_DEADTIME_RSIGN_POSITIVE = HRPWM_DTR_SDTR, /*!< Positive dead-time on rising edge */ } HRPWM_DeadTimeRiseSignETypeDef; /** * @} */ /** @defgroup HRPWM_Deadtime_Falling_Sign HRPWM Dead-time Falling Sign * @brief Constants defining whether the dead-time is positive or negative (overlapping signal) on falling edge * @{ */ typedef enum { HRPWM_DEADTIME_FSIGN_NEGATIVE = 0x0, /*!< Negative dead-time on falling edge */ HRPWM_DEADTIME_FSIGN_POSITIVE = HRPWM_DTR_SDTF, /*!< Positive dead-time on falling edge */ } HRPWM_DeadTimeFallSignETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_External_Event_Filter HRPWM Timer External Event Filter * @brief Constants defining the event filtering applied to external events * by a timer0 (5bit), the position of eventx need to left x*5bit; * @{ */ typedef enum { HRPWM_EEVFLT_NONE = 0x0, /*!< HRPWM EEFVLT NONE */ HRPWM_EEVFLT_BLANKING_CMPA = HRPWM_EEFR0_EE0FLTR_0, /*!< Blanking from counter reset/roll-over to Compare A */ HRPWM_EEVFLT_BLANKING_CMPB = HRPWM_EEFR0_EE0FLTR_1, /*!< Blanking from counter reset/roll-over to Compare B */ HRPWM_EEVFLT_BLANKING_CMPC = HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0, /*!< Blanking from counter reset/roll-over to Compare C */ HRPWM_EEVFLT_BLANKING_CMPD = HRPWM_EEFR0_EE0FLTR_2, /*!< Blanking from counter reset/roll-over to Compare D */ HRPWM_EEVFLT_BLANKING_UPCMPA_UPCMPB = HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_0, /*!< Blanking from counter up compare A to compare B only up_down mode valid */ HRPWM_EEVFLT_BLANKING_UPCMPC_UPCMPD = HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1, /*!< Blanking from counter up compare C to compare D only up_down mode valid */ HRPWM_EEVFLT_BLANKING_DOWNCMPA_DOWNCMPB = HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0, /*!< Blanking from counter down compare A to compare B only up_down mode valid */ HRPWM_EEVFLT_BLANKING_DOWNCMPC_DOWNCMPD = HRPWM_EEFR0_EE0FLTR_3, /*!< Blanking from counter down compare C to compare D only up_down mode valid */ HRPWM_EEVFLT_WINDOWS_BLANKING_CMPA = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_0, /*!< Windows from counter reset/roll-over to Compare A */ HRPWM_EEVFLT_WINDOWS_BLANKING_CMPB = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_1, /*!< Windows from counter reset/roll-over to Compare B */ HRPWM_EEVFLT_WINDOWS_BLANKING_CMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0, /*!< Windows from counter reset/roll-over to Compare C */ HRPWM_EEVFLT_WINDOWS_BLANKING_CMPD = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2, /*!< Windows from counter reset/roll-over to Compare D */ HRPWM_EEVFLT_WINDOWS_UPCMPB_UPCMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_0, /*!< Windows from counter up compare B to compare C only up_down mode valid */ HRPWM_EEVFLT_WINDOWS_DOWNCMPB_DOWNCMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1, /*!< Windows from counter down compare B to compare C only up_down mode valid */ HRPWM_EEVFLT_WINDOWS_UPCMPB_DOWNCMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0, /*!< Windows from counter up compare B to down compare C only up_down mode valid */ } HRPWM_EventAFilterWindowETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_External_Event_Latch HRPWM Timer External Event Latch * @brief Constants defining whether or not the external event is * memorized (latched) and generated as soon as the blanking period * is completed or the window ends, the position of eventx need to left x*5bit; * @{ */ typedef enum { HRPWM_EVENTLATCH_DISABLE = 0x0, /*!< Event is ignored if it happens during a blank, or passed through during a window */ HRPWM_EVENTLATCH_ENABLE = HRPWM_EEFR0_EE0LTCH, /*!< Event is latched and delayed till the end of the blanking or windowing period */ } HRPWM_EventALatchETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Source_Select HRPWM Timer External Event Counter A source selection * @brief Constants defining the External Event Counter A source selection * @{ */ typedef enum { HRPWM_EEVASEL_SOURCE_EEVENT0 = 0x00U, /*!< External Event A selected event 0 as the source */ HRPWM_EEVASEL_SOURCE_EEVENT1 = 0x10U, /*!< External Event A selected event 1 as the source */ HRPWM_EEVASEL_SOURCE_EEVENT2 = 0x20U, /*!< External Event A selected event 2 as the source */ HRPWM_EEVASEL_SOURCE_EEVENT3 = 0x30U, /*!< External Event A selected event 3 as the source */ HRPWM_EEVASEL_SOURCE_EEVENT4 = 0x40U, /*!< External Event A selected event 4 as the source */ HRPWM_EEVASEL_SOURCE_EEVENT5 = 0x50U, /*!< External Event A selected event 5 as the source */ } HRPWM_EventASourceSelETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_External_Event_Counter HRPWM Timer External Event Counter * @brief Constants enabling the External Event A Counter * @{ */ typedef enum { HRPWM_EEVACOUNTER_DISABLE = 0x0, /*!< External Event Counter disabled */ HRPWM_EEVACOUNTER_ENABLE = HRPWM_EEFR1_EEVACE, /*!< External Event Counter enabled */ } HRPWM_EventACouterEnETypeDef; /** * @} */ /** @defgroup HRPWM_Timer_External_Event_ResetMode HRPWM Timer External Counter Reset Mode * @brief Constants enabling the External Event Counter A Reset Mode * @{ */ typedef enum { HRPWM_EEVARSTM_UNCONDITIONAL = 0x0, /*!< External Event Counter is reset on each reset / roll-over event */ HRPWM_EEVARSTM_CONDITIONAL = HRPWM_EEFR1_EEVARSTM, /*!< External Event Counter is reset on each reset / roll-over event only if no event occurs during last counting period */ } HRPWM_EventARstModeETypeDef; /** * @} */ /** @defgroup HRPWM_Chopper_Frequency HRPWM Chopper Frequency * @brief Constants defining the frequency of the generated high frequency carrier * @{ */ typedef enum { HRPWM_CHOPPER_CARFRQ_DIV16 = 0x0, /*!< fCHPFRQ = fHRPWM / 16 */ HRPWM_CHOPPER_CARFRQ_DIV32 = HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 32 */ HRPWM_CHOPPER_CARFRQ_DIV48 = HRPWM_CHPR_CARFRQ_1, /*!< fCHPFRQ = fHRPWM / 48 */ HRPWM_CHOPPER_CARFRQ_DIV64 = HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 64 */ HRPWM_CHOPPER_CARFRQ_DIV80 = HRPWM_CHPR_CARFRQ_2, /*!< fCHPFRQ = fHRPWM / 80 */ HRPWM_CHOPPER_CARFRQ_DIV96 = HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 96 */ HRPWM_CHOPPER_CARFRQ_DIV112 = HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1, /*!< fCHPFRQ = fHRPWM / 112 */ HRPWM_CHOPPER_CARFRQ_DIV128 = HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 128 */ HRPWM_CHOPPER_CARFRQ_DIV144 = HRPWM_CHPR_CARFRQ_3, /*!< fCHPFRQ = fHRPWM / 144 */ HRPWM_CHOPPER_CARFRQ_DIV160 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 160 */ HRPWM_CHOPPER_CARFRQ_DIV176 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_1, /*!< fCHPFRQ = fHRPWM / 176 */ HRPWM_CHOPPER_CARFRQ_DIV192 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 192 */ HRPWM_CHOPPER_CARFRQ_DIV208 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2, /*!< fCHPFRQ = fHRPWM / 208 */ HRPWM_CHOPPER_CARFRQ_DIV224 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 224 */ HRPWM_CHOPPER_CARFRQ_DIV240 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1, /*!< fCHPFRQ = fHRPWM / 240 */ HRPWM_CHOPPER_CARFRQ_DIV256 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0, /*!< fCHPFRQ = fHRPWM / 256 */ } HRPWM_ChopperCarfreqETypeDef; /** * @} */ /** @defgroup HRPWM_Chopper_Duty_Cycle HRPWM Chopper Duty Cycle * @brief Constants defining the duty cycle of the generated high frequency carrier * Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8) * @{ */ typedef enum { HRPWM_CHOPPER_DUTYCYCLE_0 = 0x0, /*!< Only 1st pulse is present */ HRPWM_CHOPPER_DUTYCYCLE_1 = HRPWM_CHPR_CARDTY_0, /*!< Duty cycle of the carrier signal is 12.5U % */ HRPWM_CHOPPER_DUTYCYCLE_2 = HRPWM_CHPR_CARDTY_1, /*!< Duty cycle of the carrier signal is 25U % */ HRPWM_CHOPPER_DUTYCYCLE_3 = HRPWM_CHPR_CARDTY_1 | HRPWM_CHPR_CARDTY_0, /*!< Duty cycle of the carrier signal is 37.5U % */ HRPWM_CHOPPER_DUTYCYCLE_4 = HRPWM_CHPR_CARDTY_2, /*!< Duty cycle of the carrier signal is 50U % */ HRPWM_CHOPPER_DUTYCYCLE_5 = HRPWM_CHPR_CARDTY_2 | HRPWM_CHPR_CARDTY_0, /*!< Duty cycle of the carrier signal is 62.5U % */ HRPWM_CHOPPER_DUTYCYCLE_6 = HRPWM_CHPR_CARDTY_2 | HRPWM_CHPR_CARDTY_1, /*!< Duty cycle of the carrier signal is 75U % */ HRPWM_CHOPPER_DUTYCYCLE_7 = HRPWM_CHPR_CARDTY_2 | HRPWM_CHPR_CARDTY_1 | HRPWM_CHPR_CARDTY_0, /*!< Duty cycle of the carrier signal is 87.5U % */ } HRPWM_ChopperDutyETypeDef; /** * @} */ /** @defgroup HRPWM_Chopper_Start_Pulse_Width HRPWM Chopper Start Pulse Width * @brief Constants defining the pulse width of the first pulse of the generated high frequency carrier * @{ */ typedef enum { HRPWM_CHOPPER_PULSEWIDTH_16 = 0x0, /*!< tSTPW = tHRPWM x 16 */ HRPWM_CHOPPER_PULSEWIDTH_32 = HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 32 */ HRPWM_CHOPPER_PULSEWIDTH_48 = HRPWM_CHPR_STRPW_1, /*!< tSTPW = tHRPWM x 48 */ HRPWM_CHOPPER_PULSEWIDTH_64 = HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 64 */ HRPWM_CHOPPER_PULSEWIDTH_80 = HRPWM_CHPR_STRPW_2, /*!< tSTPW = tHRPWM x 80 */ HRPWM_CHOPPER_PULSEWIDTH_96 = HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 96 */ HRPWM_CHOPPER_PULSEWIDTH_112 = HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1, /*!< tSTPW = tHRPWM x 112 */ HRPWM_CHOPPER_PULSEWIDTH_128 = HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 128 */ HRPWM_CHOPPER_PULSEWIDTH_144 = HRPWM_CHPR_STRPW_3, /*!< tSTPW = tHRPWM x 144 */ HRPWM_CHOPPER_PULSEWIDTH_160 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 160 */ HRPWM_CHOPPER_PULSEWIDTH_176 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_1, /*!< tSTPW = tHRPWM x 176 */ HRPWM_CHOPPER_PULSEWIDTH_192 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 192 */ HRPWM_CHOPPER_PULSEWIDTH_208 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2, /*!< tSTPW = tHRPWM x 208 */ HRPWM_CHOPPER_PULSEWIDTH_224 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 224 */ HRPWM_CHOPPER_PULSEWIDTH_240 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1, /*!< tSTPW = tHRPWM x 240 */ HRPWM_CHOPPER_PULSEWIDTH_256 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0, /*!< tSTPW = tHRPWM x 256 */ } HRPWM_ChopperPulseWidthETypeDef; /** * @} */ /** @defgroup HRPWM_Output_ChopperA_Mode_Enable HRPWM Output Chopper Mode Enable * @brief Constants defining whether or not chopper mode is enabled for a timer output * @{ */ typedef enum { HRPWM_OUTPUTCHOPPERA_DISABLE = 0x0, /*!< Output signal is not altered */ HRPWM_OUTPUTCHOPPERA_ENABLE = HRPWM_OUTR_CHPA, /*!< Output signal is chopped by a carrier signal */ } HRPWM_ChopperAEnETypeDef; /** * @} */ /** @defgroup HRPWM_OutputA_IDLE_Level HRPWM Output IDLE Level * @brief Constants defining the output level when output is in IDLE state * @{ */ typedef enum { HRPWM_OUTPUTIDLEA_INACTIVE = 0x0, /*!< Output at inactive level when in IDLE state */ HRPWM_OUTPUTIDLEA_ACTIVE = HRPWM_OUTR_IDLESA, /*!< Output at active level when in IDLE state */ } HRPWM_IdelALevelETypeDef; /** * @} */ /** @defgroup HRPWM_OutputA_FAULT_Level HRPWM Output FAULT Level * @brief Constants defining the output level when output is in FAULT state * @{ */ typedef enum { HRPWM_OUTPUTFAULTA_NONE = 0x0, /*!< The output is not affected by the fault input */ HRPWM_OUTPUTFAULTA_ACTIVE = HRPWM_OUTR_FAULTA_0, /*!< Output at active level when in FAULT state */ HRPWM_OUTPUTFAULTA_INACTIVE = HRPWM_OUTR_FAULTA_1, /*!< Output at inactive level when in FAULT state */ HRPWM_OUTPUTFAULTA_HIGHZ = HRPWM_OUTR_FAULTA_1 | HRPWM_OUTR_FAULTA_0,/*!< Output is tri-stated when in FAULT state */ } HRPWM_FaultALevelETypeDef; /** * @} */ /** @defgroup HRPWM_OutputA_Active_Polarity HRPWM Output Active_Polarity * @brief Constants whether the effective polarity is low level valid or high level valid * @{ */ typedef enum { HRPWM_OUTPUT_POLA_POSITIVE = 0x0, /*!< Positive polarity, high output efficiency */ HRPWM_OUTPUT_POLA_NEGATIVE = HRPWM_OUTR_POLA, /*!< Negative polarity, low output efficiency */ } HRPWM_OutputAPolETypeDef; /** * @} */ /** @defgroup HRPWM_Output_ChopperB_Mode_Enable HRPWM Output Chopper Mode Enable * @brief Constants defining whether or not chopper mode is enabled for a timer output * @{ */ typedef enum { HRPWM_OUTPUTCHOPPERB_DISABLE = 0x0, /*!< Output signal is not altered */ HRPWM_OUTPUTCHOPPERB_ENABLE = HRPWM_OUTR_CHPB, /*!< Output signal is chopped by a carrier signal */ } HRPWM_ChopperBEnETypeDef; /** * @} */ /** @defgroup HRPWM_OutputB_IDLE_Level HRPWM Output IDLE Level * @brief Constants defining the output level when output is in IDLE state * @{ */ typedef enum { HRPWM_OUTPUTIDLEB_INACTIVE = 0x0, /*!< Output at inactive level when in IDLE state */ HRPWM_OUTPUTIDLEB_ACTIVE = HRPWM_OUTR_IDLESB, /*!< Output at active level when in IDLE state */ } HRPWM_IdelBLevelETypeDef; /** * @} */ /** @defgroup HRPWM_OutputB_FAULT_Level HRPWM Output FAULT Level * @brief Constants defining the output level when output is in FAULT state * @{ */ typedef enum { HRPWM_OUTPUTFAULTB_NONE = 0x0, /*!< The output is not affected by the fault input */ HRPWM_OUTPUTFAULTB_ACTIVE = HRPWM_OUTR_FAULTB_0, /*!< Output at active level when in FAULT state */ HRPWM_OUTPUTFAULTB_INACTIVE = HRPWM_OUTR_FAULTB_1, /*!< Output at inactive level when in FAULT state */ HRPWM_OUTPUTFAULTB_HIGHZ = HRPWM_OUTR_FAULTB_1 | HRPWM_OUTR_FAULTB_0,/*!< Output is tri-stated when in FAULT state */ } HRPWM_FaultBLevelETypeDef; /** * @} */ /** @defgroup HRPWM_OutputB_Active_Polarity HRPWM Output Active_Polarity * @brief Constants whether the effective polarity is low level valid or high level valid * @{ */ typedef enum { HRPWM_OUTPUT_POLB_POSITIVE = 0x0, /*!< Positive polarity, high output efficiency */ HRPWM_OUTPUT_POLB_NEGATIVE = HRPWM_OUTR_POLB, /*!< Negative polarity, low output efficiency */ } HRPWM_OutputBPolETypeDef; /** * @} */ /** @defgroup HRPWM_ADC_Trigger_PostScaler HRPWM ADC Trigger PostScaler * @brief constants defining the adc trigger PostScaler 0~0xf; * @{ */ typedef enum { HRPWM_ADCTRIG_PSC_1 = 0x0, /*!< The PostScaler number of 1 */ HRPWM_ADCTRIG_PSC_2 = HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 2 */ HRPWM_ADCTRIG_PSC_3 = HRPWM_ADPSR_ADPSC0_1, /*!< The PostScaler number of 3 */ HRPWM_ADCTRIG_PSC_4 = HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 4 */ HRPWM_ADCTRIG_PSC_5 = HRPWM_ADPSR_ADPSC0_2, /*!< The PostScaler number of 5 */ HRPWM_ADCTRIG_PSC_6 = HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 6 */ HRPWM_ADCTRIG_PSC_7 = HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1, /*!< The PostScaler number of 7 */ HRPWM_ADCTRIG_PSC_8 = HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 8 */ HRPWM_ADCTRIG_PSC_9 = HRPWM_ADPSR_ADPSC0_3, /*!< The PostScaler number of 9 */ HRPWM_ADCTRIG_PSC_10 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 10 */ HRPWM_ADCTRIG_PSC_11 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_1, /*!< The PostScaler number of 11 */ HRPWM_ADCTRIG_PSC_12 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 12 */ HRPWM_ADCTRIG_PSC_13 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2, /*!< The PostScaler number of 13 */ HRPWM_ADCTRIG_PSC_14 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 14 */ HRPWM_ADCTRIG_PSC_15 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1, /*!< The PostScaler number of 15 */ HRPWM_ADCTRIG_PSC_16 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0, /*!< The PostScaler number of 16 */ } HRPWM_AdcTrigPSCETypeDef; /** * @} */ /** @defgroup HRPWM_ADC_Trigger_Update_Source HRPWM ADC Trigger Update Source * @brief constants defining the source triggering the update of the HRPWM_ADCxR register (transfer from preload to active register). 3bit * @{ */ typedef enum { HRPWM_ADCTRIGUPDATE_MASTER = 0x0, /*!< Master timer */ HRPWM_ADCTRIGUPDATE_TIMER_0 = HRPWM_CR0_ADUSRC0_0, /*!< Slave Timer 0 */ HRPWM_ADCTRIGUPDATE_TIMER_1 = HRPWM_CR0_ADUSRC0_1, /*!< Slave Timer 1 */ HRPWM_ADCTRIGUPDATE_TIMER_2 = HRPWM_CR0_ADUSRC0_1 | HRPWM_CR0_ADUSRC0_0, /*!< Slave Timer 2 */ HRPWM_ADCTRIGUPDATE_TIMER_3 = HRPWM_CR0_ADUSRC0_2, /*!< Slave Timer 3 */ HRPWM_ADCTRIGUPDATE_TIMER_4 = HRPWM_CR0_ADUSRC0_2 | HRPWM_CR0_ADUSRC0_0, /*!< Slave Timer 4 */ HRPWM_ADCTRIGUPDATE_TIMER_5 = HRPWM_CR0_ADUSRC0_2 | HRPWM_CR0_ADUSRC0_1, /*!< Slave Timer 5 */ } HRPWM_AdcTrigUpdateSrcETypeDef; /** * @} */ /** @defgroup HRPWM_ADC_Trigger_Length HRPWM ADC Trigger Length * @brief constants defining the events triggering length. (left x * 4bit) * @{ */ typedef enum { HRPWM_ADCTRIG_LENGTH_1 = 0x0, /*!< The length of ADC trigger time is 1 clock */ HRPWM_ADCTRIG_LENGTH_2 = HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 2 clock */ HRPWM_ADCTRIG_LENGTH_3 = HRPWM_CR2_TLEN0_1, /*!< The length of ADC trigger time is 3 clock */ HRPWM_ADCTRIG_LENGTH_4 = HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 4 clock */ HRPWM_ADCTRIG_LENGTH_5 = HRPWM_CR2_TLEN0_2, /*!< The length of ADC trigger time is 5 clock */ HRPWM_ADCTRIG_LENGTH_6 = HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 6 clock */ HRPWM_ADCTRIG_LENGTH_7 = HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1, /*!< The length of ADC trigger time is 7 clock */ HRPWM_ADCTRIG_LENGTH_8 = HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 8 clock */ HRPWM_ADCTRIG_LENGTH_9 = HRPWM_CR2_TLEN0_3, /*!< The length of ADC trigger time is 9 clock */ HRPWM_ADCTRIG_LENGTH_10 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 10 clock */ HRPWM_ADCTRIG_LENGTH_11 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_1, /*!< The length of ADC trigger time is 11 clock */ HRPWM_ADCTRIG_LENGTH_12 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 12 clock */ HRPWM_ADCTRIG_LENGTH_13 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2, /*!< The length of ADC trigger time is 13 clock */ HRPWM_ADCTRIG_LENGTH_14 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 14 clock */ HRPWM_ADCTRIG_LENGTH_15 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1, /*!< The length of ADC trigger time is 15 clock */ HRPWM_ADCTRIG_LENGTH_16 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0, /*!< The length of ADC trigger time is 16 clock */ } HRPWM_AdcTrigLengthETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Prescaler HRPWM External Event Prescaler * @brief Constants defining division ratio between the timer clock frequency * fHRPWM) and the external event signal sampling clock (fEEVS) * used by the digital filters * @{ */ typedef enum { HRPWM_EEVSD_DIV1 = 0x0, /*!< fEEVS=fHRPWM */ HRPWM_EEVSD_DIV2 = HRPWM_EECR2_EEVSD_0, /*!< fEEVS=fHRPWM / 2U */ HRPWM_EEVSD_DIV4 = (int32_t)HRPWM_EECR2_EEVSD_1, /*!< fEEVS=fHRPWM / 4U */ HRPWM_EEVSD_DIV8 = (int32_t)(HRPWM_EECR2_EEVSD_1 | HRPWM_EECR2_EEVSD_0), /*!< fEEVS=fHRPWM / 8U */ } HRPWM_EventPrescalerETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Filter HRPWM External Event Filter * @brief Constants defining the frequency used to sample an external event 6 * input and the length (N) of the digital filter applied * @{ */ typedef enum { HRPWM_EVENTFILTER_NONE = 0x0, /*!< Filter disabled */ HRPWM_EVENTFILTER_1 = HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fHRPWM, N=2U */ HRPWM_EVENTFILTER_2 = HRPWM_EECR2_EE0F_1, /*!< fSAMPLING= fHRPWM, N=4U */ HRPWM_EVENTFILTER_3 = HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fHRPWM, N=8U */ HRPWM_EVENTFILTER_4 = HRPWM_EECR2_EE0F_2, /*!< fSAMPLING= fEEVS/2U, N=6U */ HRPWM_EVENTFILTER_5 = HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fEEVS/2U, N=8U */ HRPWM_EVENTFILTER_6 = HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1, /*!< fSAMPLING= fEEVS/4U, N=6U */ HRPWM_EVENTFILTER_7 = HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fEEVS/4U, N=8U */ HRPWM_EVENTFILTER_8 = HRPWM_EECR2_EE0F_3, /*!< fSAMPLING= fEEVS/8U, N=6U */ HRPWM_EVENTFILTER_9 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fEEVS/8U, N=8U */ HRPWM_EVENTFILTER_10 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_1, /*!< fSAMPLING= fEEVS/16U, N=5U */ HRPWM_EVENTFILTER_11 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fEEVS/16U, N=6U */ HRPWM_EVENTFILTER_12 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2, /*!< fSAMPLING= fEEVS/16U, N=8U */ HRPWM_EVENTFILTER_13 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fEEVS/32U, N=5U */ HRPWM_EVENTFILTER_14 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1, /*!< fSAMPLING= fEEVS/32U, N=6U */ HRPWM_EVENTFILTER_15 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0, /*!< fSAMPLING= fEEVS/32U, N=8U */ } HRPWM_EventFilterETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Fast_Mode HRPWM External Event Fast Mode * @brief Constants defining whether or not an external event is programmed in fast mode * @{ */ typedef enum { HRPWM_EVENTFASTMODE_DISABLE = 0x0, /*!< External Event is re-synchronized by the HRPWM logic before acting on outputs */ HRPWM_EVENTFASTMODE_ENABLE = HRPWM_EECR0_EE0FAST, /*!< External Event is acting asynchronously on outputs (low latency mode) */ } HRPWM_EventFastModeETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Sensitivity HRPWM External Event Sensitivity * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive) * of an external event * @{ */ typedef enum { HRPWM_EVENTSENS_LEVEL = 0x0, /*!< External event is active on level */ HRPWM_EVENTSENS_RISINGEDGE = HRPWM_EECR0_EE0SNS_0, /*!< External event is active on Rising edge */ HRPWM_EVENTSENS_FALLINGEDGE = HRPWM_EECR0_EE0SNS_1, /*!< External event is active on Falling edge */ HRPWM_EVENTSENS_BOTHEDGES = HRPWM_EECR0_EE0SNS_1 | HRPWM_EECR0_EE0SNS_0, /*!< External event is active on Rising and Falling edges */ } HRPWM_EventSensETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Polarity HRPWM External Event Polarity * @brief Constants defining the polarity of an external event * @{ */ typedef enum { HRPWM_EVENTPOL_HIGH = 0x0, /*!< External event is active high */ HRPWM_EVENTPOL_LOW = HRPWM_EECR0_EE0POL, /*!< External event is active low */ } HRPWM_EventPolETypeDef; /** * @} */ /** @defgroup HRPWM_External_Event_Sources HRPWM External Event Sources * @brief Constants defining available sources associated to external events * @{ */ typedef enum { HRPWM_EEVSRC_GPIO = 0x0, /*!< External event source 1U for External Event */ HRPWM_EEVSRC_COMP_OUT = HRPWM_EECR0_EE0SRC_0, /*!< External event source 2U for External Event */ HRPWM_EEVSRC_TIM_TRGO = HRPWM_EECR0_EE0SRC_1, /*!< External event source 3U for External Event */ HRPWM_EEVSRC_ADC_AWD = HRPWM_EECR0_EE0SRC_1 | HRPWM_EECR0_EE0SRC_0, /*!< External event source 4U for External Event */ } HRPWM_EventSrcSelETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Enable HRPWM Fault Enable * @brief Constants defining the Enable of a fault event * @{ */ typedef enum { HRPWM_FAULT_DISABLE = 0x0, /*!< Fault input is disable */ HRPWM_FAULT_ENABLE = HRPWM_FLTINR0_FLT0E, /*!< Fault input is enable */ } HRPWM_FaultEnETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Sources HRPWM Fault Sources * @brief Constants defining whether a fault is triggered by any external or internal fault source * @{ */ typedef enum { HRPWM_FLTSRC_GPIO = 0x0, /*!< The fault source 1U for External pin 0 */ HRPWM_FLTSRC_COMP_OUT = HRPWM_FLTINR0_FLT0SRC_0, /*!< The fault source 2U for External Event 0 */ HRPWM_FLTSRC_EVENT = HRPWM_FLTINR0_FLT0SRC_1, /*!< The fault source 3U for internal Event 0 */ } HRPWM_FaultSrcSelETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Polarity HRPWM Fault Polarity * @brief Constants defining the polarity of a fault event * @{ */ typedef enum { HRPWM_FAULTPOL_HIGH = 0x0, /*!< Fault input is active low */ HRPWM_FAULTPOL_LOW = HRPWM_FLTINR0_FLT0P, /*!< Fault input is active high */ } HRPWM_FaultPolETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Blanking HRPWM Fault Blanking Source * @brief Constants defining the blanking source of a fault event * @{ */ typedef enum { HRPWM_FAULTBLKS_RSTALIGNED = 0x0, /*!< Fault blanking source is Reset-aligned window */ HRPWM_FAULTBLKS_MOVING = HRPWM_FLTINR2_FLT0BLKS, /*!< Fault blanking source is Moving window */ } HRPWM_FaultBlkWindowETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_ResetMode HRPWM Fault Reset Mode * @brief Constants defining the Counter reset mode of a fault event * @{ */ typedef enum { HRPWM_FAULTRSTM_UNCONDITIONAL = 0x0, /*!< Fault counter is reset on each reset / roll-over event */ HRPWM_FAULTRSTM_CONDITIONAL = HRPWM_FLTINR2_FLT0RSTM, /*!< Fault counter is reset on each reset / roll-over event only if no fault occurred during last countingperiod. */ } HRPWM_FaultRstModeETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Blanking_Control HRPWM Fault Blanking Control * @brief Constants used to enable or disable the blanking mode of a fault channel * @{ */ typedef enum { HRPWM_FAULTBLKEN_DISABLE = 0x0, /*!< No blanking on Fault */ HRPWM_FAULTBLKEN_ENABLE = HRPWM_FLTINR2_FLT0BLKE, /*!< Fault blanking mode */ } HRPWM_FaultBlkEnETypeDef; /** * @} */ /** @defgroup HRPWM_External_Fault_Prescaler HRPWM External Fault Prescaler * @brief Constants defining the division ratio between the timer clock * frequency (fHRPWM) and the fault signal sampling clock (fFLTS) used * by the digital filters. * @{ */ typedef enum { HRPWM_FLTSD_DIV1 = 0x0, /*!< fFLTS=fHRPWM */ HRPWM_FLTSD_DIV2 = HRPWM_FLTINR1_FLTSD_0, /*!< fFLTS=fHRPWM / 2U */ HRPWM_FLTSD_DIV4 = (int32_t)HRPWM_FLTINR1_FLTSD_1, /*!< fFLTS=fHRPWM / 4U */ HRPWM_FLTSD_DIV8 = (int32_t)(HRPWM_FLTINR1_FLTSD_1 | HRPWM_FLTINR1_FLTSD_0), /*!< fFLTS=fHRPWM / 8U */ } HRPWM_FaultPrescalerETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Filter HRPWM Fault Filter * @brief Constants defining the frequency used to sample the fault input and * the length (N) of the digital filter applied * @{ */ typedef enum { HRPWM_FAULTFILTER_NONE = 0x0, /*!< Filter disabled */ HRPWM_FAULTFILTER_1 = HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fHRPWM, N=2U */ HRPWM_FAULTFILTER_2 = HRPWM_FLTINR1_FLT0F_1, /*!< fSAMPLING= fHRPWM, N=4U */ HRPWM_FAULTFILTER_3 = HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fHRPWM, N=8U */ HRPWM_FAULTFILTER_4 = HRPWM_FLTINR1_FLT0F_2, /*!< fSAMPLING= fFLTS/2U, N=6U */ HRPWM_FAULTFILTER_5 = HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fFLTS/2U, N=8U */ HRPWM_FAULTFILTER_6 = HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1, /*!< fSAMPLING= fFLTS/4U, N=6U */ HRPWM_FAULTFILTER_7 = HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fFLTS/4U, N=8U */ HRPWM_FAULTFILTER_8 = HRPWM_FLTINR1_FLT0F_3, /*!< fSAMPLING= fFLTS/8U, N=6U */ HRPWM_FAULTFILTER_9 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fFLTS/8U, N=8U */ HRPWM_FAULTFILTER_10 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_1, /*!< fSAMPLING= fFLTS/16U, N=5U */ HRPWM_FAULTFILTER_11 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fFLTS/16U, N=6U */ HRPWM_FAULTFILTER_12 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2, /*!< fSAMPLING= fFLTS/16U, N=8U */ HRPWM_FAULTFILTER_13 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fFLTS/32U, N=5U */ HRPWM_FAULTFILTER_14 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1, /*!< fSAMPLING= fFLTS/32U, N=6U */ HRPWM_FAULTFILTER_15 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0, /*!< fSAMPLING= fFLTS/32U, N=8U */ } HRPWM_FaultFilterETypeDef; /** * @} */ /** @defgroup HRPWM_Fault_Counter HRPWM Fault counter threshold value * @brief Constants defining the FAULT Counter threshold (FLTCNT + 1) * @{ */ typedef enum { HRPWM_FAULTCOUNTER_NONE = 0x0, /*!< Counter threshold = 0U */ HRPWM_FAULTCOUNTER_1 = HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 1U */ HRPWM_FAULTCOUNTER_2 = HRPWM_FLTINR3_FLT0CNT_1, /*!< Counter threshold = 2U */ HRPWM_FAULTCOUNTER_3 = HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 3U */ HRPWM_FAULTCOUNTER_4 = HRPWM_FLTINR3_FLT0CNT_2, /*!< Counter threshold = 4U */ HRPWM_FAULTCOUNTER_5 = HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 5U */ HRPWM_FAULTCOUNTER_6 = HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1, /*!< Counter threshold = 6U */ HRPWM_FAULTCOUNTER_7 = HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 7U */ HRPWM_FAULTCOUNTER_8 = HRPWM_FLTINR3_FLT0CNT_3, /*!< Counter threshold = 8U */ HRPWM_FAULTCOUNTER_9 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 9U */ HRPWM_FAULTCOUNTER_10 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_1, /*!< Counter threshold = 10U */ HRPWM_FAULTCOUNTER_11 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 11U */ HRPWM_FAULTCOUNTER_12 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2, /*!< Counter threshold = 12U */ HRPWM_FAULTCOUNTER_13 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 13U */ HRPWM_FAULTCOUNTER_14 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1, /*!< Counter threshold = 14U */ HRPWM_FAULTCOUNTER_15 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0, /*!< Counter threshold = 15U */ } HRPWM_FaultCounterETypeDef; /** * @} */ /** * @brief HRPWM Master Timer Configuration Structure definition - Time base related parameters */ typedef struct __HRPWM_MasterSyncTypeDef { uint32_t SyncOptions; /*!< Specifies how the HRPWM instance handles the external synchronization signals. The HRPWM instance can be configured to act as a slave (waiting for a trigger to be synchronized) or a master (generating a synchronization signal) or both. This parameter can be a combination of @ref HRPWM_Synchronization_Options. */ HRPWM_SyncInputSrcETypeDef SyncInputSource; /*!< Specifies the external synchronization input source (significant only when the HRPWM instance is configured as a slave). */ HRPWM_SyncOutputSrcETypeDef SyncOutputSource; /*!< Specifies the source and event to be sent on the external synchronization outputs (significant only when the HRPWM instance is configured as a master). */ HRPWM_SyncOutputEnETypeDef SyncOutputEnable; /*!< Specifies the source and event to be sent on the external synchronization outputs (significant only when the HRPWM is configured as a master).*/ HRPWM_SyncOutputPolETypeDef SyncOutputPolarity; /*!< Specifies the conditioning of the event to be sent on the external synchronization outputs (significant only when the HRPWM instance is configured as a master). */ } HRPWM_MasterSyncTypeDef; /** * @brief Timer configuration definition -- Timerx (x=0...5) & Master timer */ typedef struct __HRPWM_TimerBaseCfgTypeDef { uint32_t InterruptRequests; /*!< Relevant for all HRPWM timers, including the master. Specifies which interrupts requests must enabled for the timer. This parameter can be any combination of @ref HRPWM_Master_Interrupt_Enable or @ref HRPWM_Timing_Unit_Interrupt_Enable */ uint32_t Period; /*!< Specifies the timer period. The period value must be above 3 periods of the fHRPWM clock. Maximum value is = 0xFFFDU */ uint32_t RepetitionCounter; /*!< Specifies the timer repetition period. This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ uint32_t ResetTrigger; /*!< Relevant for Timer0 to Timer5. no master timer. Specifies source(s) triggering the timer counter reset. This parameter can be a combination of @ref HRPWM_Timer_Reset_Trigger */ HRPWM_PrescalerRatioETypeDef PrescalerRatio;/*!< Specifies the timer clock prescaler ratio. */ HRPWM_ModeETypeDef Mode; /*!< Specifies the counter operating mode. continues or single */ HRPWM_SyncStartETypeDef StartOnSync; /*!< Relevant for all HRPWM timers, including the master.Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled). */ HRPWM_SyncResetETypeDef ResetOnSync; /*!< Relevant for all HRPWM timers, including the master.Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled). */ HRPWM_RsyncUpdateETypeDef ReSyncUpdate; /*!< Relevant for Timer0 to Timer5.Specifies whether update source is coming from the timing unit @ref HRPWM_Timer_Resync_Update_Enable */ } HRPWM_TimerBaseCfgTypeDef; /** * @brief Simple output compare mode configuration definition -- Timerx (x=0...5) & Master timer */ typedef struct __HRPWM_TimerCompareCfgTypeDef { HRPWM_PreloadEnETypeDef PreloadEnable; /*!< Relevant for all HRPWM timers, including the master. Specifies whether or not register preload is enabled. */ uint32_t UpdateTrigger; /*!< Relevant for Timer0 to Timer5. no Master timer update source ; Specifies source(s) triggering the timer registers update. This parameter can be a combination of @ref HRPWM_Timer_Update_Trigger */ uint32_t CompareValueA; /*!< Specifies the compare A value of the timer compare unit. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */ uint32_t CompareValueB; /*!< Specifies the compare B value of the timer compare unit. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */ uint32_t CompareValueC; /*!< Specifies the compare C value of the timer compare unit. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */ uint32_t CompareValueD; /*!< Specifies the compare D value of the timer compare unit. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */ } HRPWM_TimerCompareCfgTypeDef; /** * @brief Timer RollOver definition -- Timerx (x=0...5) */ typedef struct __HRPWM_TimerRollOverCfgTypeDef { HRPWM_CounterModeETypeDef UpDownMode; /*!< Relevant for Timer0 to Timer5. Specifies whether or not counter is operating in up or up-down counting mode. */ HRPWM_RollOverETypeDef RollOverMode; /*!< Relevant for Timer0 to Timer5. Roll over mode selection Settings are only valid in up-down counting mode. */ HRPWM_OutputRollOverETypeDef OutputRollOverMode;/*!< Relevant for Timer0 to Timer5. Output roll over mode selection Settings, valid only in up-down counting mode. */ HRPWM_FltRollOverETypeDef FaultRollOverMode; /*!< Relevant for Timer0 to Timer5. The fault roll over mode selection setting is only valid in up-down counting mode. */ HRPWM_EventRollOverETypeDef EeventRollOverMode;/*!< Relevant for Timer0 to Timer5. The event roll over mode selection setting is only valid in up-down counting mode. */ HRPWM_AdcRollOverETypeDef AdcRollOverMode; /*!< Relevant for Timer0 to Timer5. The ADDA trigger roll over mode selection setting is only valid in up-down counting mode. */ } HRPWM_TimerRollOverCfgTypeDef; /** * @brief Timer Daul Channel Dac definition -- Timerx (x=0...5) */ typedef struct __HRPWM_TimerDaulDacCfgTypeDef { HRPWM_DacResetSelETypeDef DualChannelDacReset; /*!< Relevant for Timer0 to Timer5. Specifies how the HRPWM_dac_reset_trgx trigger is generated. */ HRPWM_DacStepSelETypeDef DualChannelDacStep; /*!< Relevant for Timer0 to Timer5. Specifies how the HRPWM_dac_step_trgx trigger is generated. */ HRPWM_DacTrigEnETypeDef DualChannelDacEnable; /*!< Relevant for Timer0 to Timer5. Enables or not the dual channel DAC triggering mechanism. */ } HRPWM_TimerDaulDacCfgTypeDef; /** * @brief Output configuration definition -- Timerx (x=0...5) */ typedef struct __HRPWM_OutputCfgTypeDef { HRPWM_OutputAPolETypeDef OutputAPolarity; /*!< Specifies the output polarity. */ HRPWM_IdelALevelETypeDef IdleALevel; /*!< Specifies whether the output level is active or inactive when in IDLE state. */ HRPWM_FaultALevelETypeDef FaultALevel; /*!< Specifies whether the output level is active or inactive when in FAULT state. */ HRPWM_ChopperAEnETypeDef ChopperAModeEnable; /*!< Indicates whether or not the chopper mode is enabled*/ HRPWM_OutputBPolETypeDef OutputBPolarity; /*!< Specifies the output polarity.*/ HRPWM_IdelBLevelETypeDef IdleBLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state. */ HRPWM_FaultBLevelETypeDef FaultBLevel; /*!< Specifies whether the output level is active or inactive when in FAULT state. */ HRPWM_ChopperBEnETypeDef ChopperBModeEnable; /*!< Indicates whether or not the chopper mode is enabled */ uint32_t OutputASetSource; /*!< A channel output action set source event selection This parameter can be combination value of @ref HRPWM_Timer_Set_Trigger */ uint32_t OutputAClearSource; /*!< A channel output action clear source event selection This parameter can be combination value of @ref HRPWM_Timer_Clear_Trigger */ uint32_t OutputBSetSource; /*!< B channel output action set source event selection This parameter can be combination value of @ref HRPWM_Timer_Set_Trigger */ uint32_t OutputBClearSource; /*!< B channel output action clear source event selection This parameter can be combination value of @ref HRPWM_Timer_Clear_Trigger */ } HRPWM_OutputCfgTypeDef; /** * @brief Dead time feature configuration definition -- Timerx (x=0...5) */ typedef struct __HRPWM_DeadTimeCfgTypeDef { LL_FuncStatusETypeDef DeadTimeEn; /*!< Specifies the dead-time output enable */ uint32_t RisingValue; /*!< Specifies the dead-time following a rising edge. This parameter can be a number between 0x0 and 0xFFFU */ HRPWM_DeadTimeRiseSignETypeDef RisingSign; /*!< Specifies whether the dead-time is positive or negative on rising edge. */ uint32_t FallingValue; /*!< Specifies the dead-time following a falling edge. This parameter can be a number between 0x0 and 0xFFFU */ HRPWM_DeadTimeFallSignETypeDef FallingSign; /*!< Specifies whether the dead-time is positive or negative on falling edge. */ } HRPWM_DeadTimeCfgTypeDef; /** * @brief Chopper mode configuration definition -- Timerx (x=0...5) */ typedef struct __HRPWM_ChopperModeCfgTypeDef { HRPWM_ChopperAEnETypeDef ChopperAModeEnable; /*!< Indicates whether or not the chopper mode is enabled */ HRPWM_ChopperBEnETypeDef ChopperBModeEnable; /*!< Indicates whether or not the chopper mode is enabled */ HRPWM_ChopperCarfreqETypeDef CarrierFreq; /*!< Specifies the Timer carrier frequency value. */ HRPWM_ChopperDutyETypeDef DutyCycle; /*!< Specifies the Timer chopper duty cycle value. */ HRPWM_ChopperPulseWidthETypeDef StartPulse; /*!< Specifies the Timer pulse width value. */ } HRPWM_ChopperModeCfgTypeDef; /** * @brief External event filtering in timing units configuration definition -- Timerx (x=0...5) */ typedef struct __HRPWM_TimerEventFilteringCfgTypeDef { HRPWM_EventAFilterWindowETypeDef Filter; /*!< Specifies the type of event filtering within the timing unit. */ HRPWM_EventALatchETypeDef Latch; /*!< Specifies whether or not the signal is latched. */ } HRPWM_TimerEventFilteringCfgTypeDef; /** * @brief External Event Counter A configuration definition -- Timerx (x=0...5) */ typedef struct __HRPWM_ExternalEventACfgTypeDef { HRPWM_EventACouterEnETypeDef CounterEnable; /*!< Specifies the External Event A Counter enable. */ HRPWM_EventARstModeETypeDef ResetMode; /*!< Specifies the External Event A Counte Reset Mode. */ HRPWM_EventASourceSelETypeDef Source; /*!< Specifies the External Event A Counter source selection. */ uint32_t Counter; /*!< Specifies the External Event A Counter Threshold. This parameter can be a number between 0x0 and 0x3F */ } HRPWM_ExternalEventACfgTypeDef; /** * @brief External event channel configuration definition -- common timer */ typedef struct __HRPWM_EventCfgTypeDef { HRPWM_EventSrcSelETypeDef Source; /*!< Identifies the source of the external event. */ HRPWM_EventPolETypeDef Polarity; /*!< Specifies the polarity of the external event (in case of level sensitivity). */ HRPWM_EventSensETypeDef Sensitivity; /*!< Specifies the sensitivity of the external event. */ HRPWM_EventPrescalerETypeDef SampClockDiv; /*!< External event sampling time frequency division ratio. */ HRPWM_EventFilterETypeDef Filter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter. */ HRPWM_EventFastModeETypeDef FastMode; /*!< Indicates whether or not low latency mode is enabled for the external event. */ } HRPWM_EventCfgTypeDef; /** * @brief Fault channel configuration definition -- common timer */ typedef struct __HRPWM_FaultCfgTypeDef { uint32_t InterruptEn; /*!< Relevant for comon timer. Specifies which interrupts requests must enabled for comon timer. This parameter can be any combination of @ref HRPWM_Common_Interrupt_Enable */ HRPWM_FaultSrcSelETypeDef Source; /*!< Identifies the source of the fault. */ HRPWM_FaultPolETypeDef Polarity; /*!< Specifies the polarity of the fault event. */ HRPWM_FaultPrescalerETypeDef SampClockDiv; /*!< Fault signal sampling time frequency division ratio. */ HRPWM_FaultFilterETypeDef Filter; /*!< Defines the frequency used to sample the Fault input and the length of the digital filter. */ HRPWM_FaultEnETypeDef Enable; /*!< Corresponding fault sampling enablement. */ } HRPWM_FaultCfgTypeDef; /** * @brief Fault channel configuration blanking definition -- common timer */ typedef struct __HRPWM_FaultBlankingCfgTypeDef { HRPWM_FaultCounterETypeDef Threshold; /*!< Specifies the Fault counter Threshold. */ HRPWM_FaultBlkEnETypeDef BlankingEnable; /*!< Specifies the Fault blanking enablement. */ HRPWM_FaultRstModeETypeDef ResetMode; /*!< Specifies the reset mode of a fault event counter. */ HRPWM_FaultBlkWindowETypeDef BlankingSource;/*!< Specifies the blanking source of a fault event. */ } HRPWM_FaultBlankingCfgTypeDef; /** * @brief ADC trigger configuration definition -- common timer */ typedef struct __HRPWM_ADCTriggerCfgTypeDef { uint32_t Trigger; /*!< Specifies the event(s) triggering the ADC conversion. This parameter can be a combination of @ref HRPWM_ADC_Trigger_Event */ HRPWM_AdcTrigGroupETypeDef TriggerGroup; /*!< Specifies the ADC trigger group 0~7. */ HRPWM_AdcTrigUpdateSrcETypeDef UpdateSource;/*!< Specifies the ADC trigger update source. */ HRPWM_AdcTrigLengthETypeDef TriggerLength; /*!< Specifies the event(s) triggering the ADC\DAC conversion.In practical use, the length configuration should be greater than 3 clocks. For example, under a 160M clock, the minimum configuration value is 0x3; */ HRPWM_AdcTrigPSCETypeDef TriggerPostScaler; /*!< Specifies the event(s) triggering the ADC\DAC conversion. */ } HRPWM_ADCTriggerCfgTypeDef; /** * @brief HRPWM DLL start configuration definition -- common timer */ typedef struct __HRPWM_DLLCfgTypedef { HRPWM_DllCurrentETypeDef CurrentSel;/*!< Configure DLL current selection. */ uint32_t ClockDelayThres0; /*!< DLL Clock Delay Threshold. CLKPHASE = PULPHASE - DLLTHRES0. range : 0~0x1F */ uint32_t ClockDelayThres1; /*!< DLL Clock Delay Threshold. CLKPHASE <= DLLTHRES1 : Sample hrpwm_clk Pulse CLKPHASE > DLLTHRES1 : Sample hrpwm_dly_clk Pulse. range : 0~0x1F */ } HRPWM_DLLCfgTypedef; /** * @} */ /* Exported macro ------------------------------------------------------------*/ /** @defgroup HRPWM_LL_Exported_Macros HRPWM LL Exported Macros * @brief HRPWM LL Exported Macros * @{ */ /** * @brief swap the output of the timer * HRPWM_SETA1R and HRPWM_RSTAR are coding for the output B, * HRPWM_SETA2R and HRPWM_RSTAR are coding for the output B * @note Push pull mode setting is invalid * @param __TIMER__ : Timer index * This parameter can be a combination of the following values: * @arg HRPWM_SWAP_SLAVE_0 * @arg HRPWM_SWAP_SLAVE_1 * @arg HRPWM_SWAP_SLAVE_2 * @arg HRPWM_SWAP_SLAVE_3 * @arg HRPWM_SWAP_SLAVE_4 * @arg HRPWM_SWAP_SLAVE_5 * @retval none */ #define __LL_HRPWM_OUTPUT_SWAP(__TIMER__) \ MODIFY_REG(HRPWM->Common.CR1, HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5, __TIMER__) /** * @brief swap the output of the timer * HRPWM_SETAR and HRPWM_RSTAR are coding for the output B, * HRPWM_SETAR and HRPWM_RSTAR are coding for the output B * @note Push pull mode setting is invalid * @param __TIMER__ : Timer index * This parameter Only one of the values can be selected, not a combination: * @arg HRPWM_SWAP_SLAVE_0 * @arg HRPWM_SWAP_SLAVE_1 * @arg HRPWM_SWAP_SLAVE_2 * @arg HRPWM_SWAP_SLAVE_3 * @arg HRPWM_SWAP_SLAVE_4 * @arg HRPWM_SWAP_SLAVE_5 * @retval none */ #define __LL_HRPWM_TIMER_OUTPUT_SWAP(__TIMER__) SET_BIT(HRPWM->Common.CR1, __TIMER__) /** * @brief Un-swap the output of the timer * HRPWM_SETAR and HRPWM_RSTAR are coding for the output A, * HRPWM_SETAR and HRPWM_RSTAR are coding for the output A * @note Push pull mode setting is invalid * @param __TIMER__ : Timer index * This parameter Only one of the values can be selected, not a combination: * @arg HRPWM_SWAP_SLAVE_0 * @arg HRPWM_SWAP_SLAVE_1 * @arg HRPWM_SWAP_SLAVE_2 * @arg HRPWM_SWAP_SLAVE_3 * @arg HRPWM_SWAP_SLAVE_4 * @arg HRPWM_SWAP_SLAVE_5 * @retval none */ #define __LL_HRPWM_TIMER_OUTPUT_NOSWAP(__TIMER__) CLEAR_BIT(HRPWM->Common.CR1, __TIMER__) /** @brief Enables or disables the specified HRPWM common interrupts. * @param __INTERRUPT__ specifies the interrupt source to enable or disable. * This parameter can be one of the following values: * @arg HRPWM_IT_FLT0: Fault 0 interrupt enable * @arg HRPWM_IT_FLT1: Fault 1 interrupt enable * @arg HRPWM_IT_FLT2: Fault 2 interrupt enable * @arg HRPWM_IT_FLT3: Fault 3 interrupt enable * @arg HRPWM_IT_FLT4: Fault 4 interrupt enable * @arg HRPWM_IT_FLT5: Fault 5 interrupt enable * @arg HRPWM_IT_SYSFLT: System Fault interrupt enable * @retval None */ #define __LL_HRPWM_ENABLE_IT(__INTERRUPT__) (HRPWM->Common.IER |= (__INTERRUPT__)) #define __LL_HRPWM_DISABLE_IT(__INTERRUPT__) (HRPWM->Common.IER &= ~(__INTERRUPT__)) /** @brief Enables or disables the specified HRPWM Master timer interrupts. * @param __INTERRUPT__ specifies the interrupt source to enable or disable. * This parameter can be one of the following values: * @arg HRPWM_MASTER_IT_MPER: Master Period interrupt enable * @arg HRPWM_MASTER_IT_MCMPA: Master compare A interrupt enable * @arg HRPWM_MASTER_IT_MCMPB: Master compare B interrupt enable * @arg HRPWM_MASTER_IT_MCMPC: Master compare C interrupt enable * @arg HRPWM_MASTER_IT_MCMPD: Master compare D interrupt enable * @arg HRPWM_MASTER_IT_MREP: Master Repetition interrupt enable * @arg HRPWM_MASTER_IT_SYNC: Synchronization input interrupt enable * @arg HRPWM_MASTER_IT_MUPD: Master update interrupt enable * @retval None */ #define __LL_HRPWM_MASTER_ENABLE_IT(__INTERRUPT__) (HRPWM->Master.MIER |= (__INTERRUPT__)) #define __LL_HRPWM_MASTER_DISABLE_IT(__INTERRUPT__) (HRPWM->Master.MIER &= ~(__INTERRUPT__)) /** @brief Enables or disables the specified HRPWM Timerx interrupts. * @param __TIMER__ specified the timing unit (Timer 0 to 5) * @param __INTERRUPT__ specifies the interrupt source to enable or disable. * This parameter can be one of the following values: * @arg HRPWM_IT_PER: Timer Period interrupt enable * @arg HRPWM_IT_CMPA: Timer compare 1 interrupt enable * @arg HRPWM_IT_CMP2: Timer compare 2 interrupt enable * @arg HRPWM_IT_CMP3: Timer compare 3 interrupt enable * @arg HRPWM_IT_CMP4: Timer compare 4 interrupt enable * @arg HRPWM_IT_SETA: Timer output 1 set interrupt enable * @arg HRPWM_IT_RSTA: Timer output 1 reset interrupt enable * @arg HRPWM_IT_SETB: Timer output 2 set interrupt enable * @arg HRPWM_IT_RSTB: Timer output 2 reset interrupt enable * @arg HRPWM_IT_RST: Timer reset interrupt enable * @arg HRPWM_IT_REP: Timer repetition interrupt enable * @arg HRPWM_IT_UPD: Timer update interrupt enable * @arg HRPWM_IT_DLYPRT: Timer delay protection interrupt enable * @retval None */ #define __LL_HRPWM_TIMER_ENABLE_IT(__TIMER__, __INTERRUPT__) (HRPWM->PWM[(__TIMER__)].IER |= (__INTERRUPT__)) #define __LL_HRPWM_TIMER_DISABLE_IT(__TIMER__, __INTERRUPT__) (HRPWM->PWM[(__TIMER__)].IER &= ~(__INTERRUPT__)) /** @brief Checks if the specified HRPWM common interrupt source is enabled or disabled. * @param __INTERRUPT__ specifies the interrupt source to check. * @param __INTERRUPT__ specifies the interrupt source to enable or disable. * This parameter can be one of the following values: * @arg HRPWM_IT_FLT0: Fault 0 interrupt enable * @arg HRPWM_IT_FLT1: Fault 1 interrupt enable * @arg HRPWM_IT_FLT2: Fault 2 interrupt enable * @arg HRPWM_IT_FLT3: Fault 3 interrupt enable * @arg HRPWM_IT_FLT4: Fault 4 interrupt enable * @arg HRPWM_IT_FLT5: Fault 5 interrupt enable * @arg HRPWM_IT_SYSFLT: System Fault interrupt enable * @retval The new state of __INTERRUPT__ (TRUE or FALSE). */ #define __LL_HRPWM_GET_IT(__INTERRUPT__) (((HRPWM->Common.IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) /** @brief Checks if the specified HRPWM Master interrupt source is enabled or disabled. * @param __INTERRUPT__ specifies the interrupt source to check. * This parameter can be one of the following values: * @arg HRPWM_MASTER_IT_MPER: Master Period interrupt enable * @arg HRPWM_MASTER_IT_MCMPA: Master compare A interrupt enable * @arg HRPWM_MASTER_IT_MCMPB: Master compare B interrupt enable * @arg HRPWM_MASTER_IT_MCMPC: Master compare C interrupt enable * @arg HRPWM_MASTER_IT_MCMPD: Master compare D interrupt enable * @arg HRPWM_MASTER_IT_MREP: Master Repetition interrupt enable * @arg HRPWM_MASTER_IT_SYNC: Synchronization input interrupt enable * @arg HRPWM_MASTER_IT_MUPD: Master update interrupt enable * @retval The new state of __INTERRUPT__ (TRUE or FALSE). */ #define __LL_HRPWM_MASTER_GET_IT(__INTERRUPT__) (((HRPWM->Master.MIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) /** @brief Checks if the specified HRPWM Timerx interrupt source is enabled or disabled. * @param __TIMER__ specified the timing unit (Timer 0 to 5) * @param __INTERRUPT__ specifies the interrupt source to enable or disable. * This parameter can be one of the following values: * @arg HRPWM_IT_PER: Timer Period interrupt enable * @arg HRPWM_IT_CMPA: Timer compare A interrupt enable * @arg HRPWM_IT_CMPB: Timer compare B interrupt enable * @arg HRPWM_IT_CMPC: Timer compare C interrupt enable * @arg HRPWM_IT_CMPD: Timer compare D interrupt enable * @arg HRPWM_IT_SETA: Timer output A set interrupt enable * @arg HRPWM_IT_RSTA: Timer output A reset interrupt enable * @arg HRPWM_IT_SETB: Timer output B set interrupt enable * @arg HRPWM_IT_RSTB: Timer output B reset interrupt enable * @arg HRPWM_IT_RST: Timer reset interrupt enable * @arg HRPWM_IT_REP: Timer repetition interrupt enable * @arg HRPWM_IT_UPD: Timer update interrupt enable * @arg HRPWM_IT_DLYPRT: Timer delay protection interrupt enable * @retval The new state of __INTERRUPT__ (TRUE or FALSE). */ #define __LL_HRPWM_TIMER_GET_IT(__TIMER__, __INTERRUPT__) \ (((HRPWM->PWM[(__TIMER__)].IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) /** @brief Get the specified HRPWM common pending flag. * @param __INTERRUPT__ specifies the interrupt pending bit to clear. * This parameter can be one of the following values: * @arg HRPWM_FLAG_FLT0: Fault 0 flag * @arg HRPWM_FLAG_FLT1: Fault 1 flag * @arg HRPWM_FLAG_FLT2: Fault 2 flag * @arg HRPWM_FLAG_FLT3: Fault 3 flag * @arg HRPWM_FLAG_FLT4: Fault 4 flag * @arg HRPWM_FLAG_FLT5: Fault 5 flag * @arg HRPWM_FLAG_SYSFLT: System Fault interrupt flag * @retval The new state of __INTERRUPT__ (TRUE or FALSE). */ #define __LL_HRPWM_GET_ITFLAG(__INTERRUPT__) (((HRPWM->Common.ISR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) /** @brief Get the specified HRPWM Master pending flag. * @param __INTERRUPT__ specifies the interrupt pending bit. * This parameter can be one of the following values: * @arg HRPWM_MASTER_FLAG_MPER: Master Period interrupt flag * @arg HRPWM_MASTER_FLAG_MCMPA: Master compare A interrupt flag * @arg HRPWM_MASTER_FLAG_MCMPB: Master compare B interrupt flag * @arg HRPWM_MASTER_FLAG_MCMPC: Master compare C interrupt flag * @arg HRPWM_MASTER_FLAG_MCMPD: Master compare D interrupt flag * @arg HRPWM_MASTER_FLAG_MREP: Master Repetition interrupt flag * @arg HRPWM_MASTER_FLAG_SYNC: Synchronization input interrupt flag * @arg HRPWM_MASTER_FLAG_MUPD: Master update interrupt flag * @retval The new state of __INTERRUPT__ (TRUE or FALSE). */ #define __LL_HRPWM_MASTER_GET_ITFLAG(__INTERRUPT__) \ (((HRPWM->Master.MISR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) /** @brief Get the specified HRPWM Timerx pending flag. * @param __TIMER__ specified the timing unit (Timer 0 to 5) * @param __INTERRUPT__ specifies the interrupt pending bit. * This parameter can be one of the following values: * @arg HRPWM_FLAG_PER: Timer Period interrupt flag * @arg HRPWM_FLAG_CMPA: Timer compare A interrupt flag * @arg HRPWM_FLAG_CMPB: Timer compare B interrupt flag * @arg HRPWM_FLAG_CMPC: Timer compare C interrupt flag * @arg HRPWM_FLAG_CMPD: Timer compare D interrupt flag * @arg HRPWM_FLAG_SETA: Timer output A set interrupt flag * @arg HRPWM_FLAG_RSTA: Timer output A reset interrupt flag * @arg HRPWM_FLAG_SETB: Timer output B set interrupt flag * @arg HRPWM_FLAG_RSTB: Timer output B reset interrupt flag * @arg HRPWM_FLAG_RST: Timer reset interrupt flag * @arg HRPWM_FLAG_REP: Timer repetition interrupt flag * @arg HRPWM_FLAG_UPD: Timer update interrupt flag * @retval The new state of __INTERRUPT__ (TRUE or FALSE). */ #define __LL_HRPWM_TIMER_GET_ITFLAG(__TIMER__, __INTERRUPT__) \ (((HRPWM->PWM[(__TIMER__)].ISR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) /** @brief Clears the specified HRPWM common pending flag. * @param __INTERRUPT__ specifies the interrupt pending bit to clear. * This parameter can be one of the following values: * @arg HRPWM_FLAG_FLT0: Fault 0 clear flag * @arg HRPWM_FLAG_FLT1: Fault 1 clear flag * @arg HRPWM_FLAG_FLT2: Fault 2 clear flag * @arg HRPWM_FLAG_FLT3: Fault 3 clear flag * @arg HRPWM_FLAG_FLT4: Fault 4 clear flag * @arg HRPWM_FLAG_FLT5: Fault 5 clear flag * @arg HRPWM_FLAG_SYSFLT: System Fault interrupt clear flag * @retval None */ #define __LL_HRPWM_CLEAR_ITFLAG(__INTERRUPT__) (HRPWM->Common.ISR = (__INTERRUPT__)) /** @brief Clears the specified HRPWM Master pending flag. * @param __INTERRUPT__ specifies the interrupt pending bit to clear. * This parameter can be one of the following values: * @arg HRPWM_MASTER_FLAG_MPER: Master Period interrupt clear flag * @arg HRPWM_MASTER_FLAG_MCMPA: Master compare A interrupt clear flag * @arg HRPWM_MASTER_FLAG_MCMPB: Master compare B interrupt clear flag * @arg HRPWM_MASTER_FLAG_MCMPC: Master compare C interrupt clear flag * @arg HRPWM_MASTER_FLAG_MCMPD: Master compare D interrupt clear flag * @arg HRPWM_MASTER_FLAG_MREP: Master Repetition interrupt clear flag * @arg HRPWM_MASTER_FLAG_SYNC: Synchronization input interrupt clear flag * @arg HRPWM_MASTER_FLAG_MUPD: Master update interrupt clear flag * @retval None */ #define __LL_HRPWM_MASTER_CLEAR_ITFLAG(__INTERRUPT__) (HRPWM->Master.MISR = (__INTERRUPT__)) /** @brief Clears the specified HRPWM Timerx pending flag. * @param __TIMER__ specified the timing unit (Timer A to F) * @param __INTERRUPT__ specifies the interrupt pending bit to clear. * This parameter can be one of the following values: * @arg HRPWM_FLAG_PER: Timer Period interrupt clear flag * @arg HRPWM_FLAG_CMPA: Timer compare A interrupt clear flag * @arg HRPWM_FLAG_CMPB: Timer compare B interrupt clear flag * @arg HRPWM_FLAG_CMPC: Timer compare C interrupt clear flag * @arg HRPWM_FLAG_CMPD: Timer compare D interrupt clear flag * @arg HRPWM_FLAG_SETA: Timer output A set interrupt clear flag * @arg HRPWM_FLAG_RSTA: Timer output A reset interrupt clear flag * @arg HRPWM_FLAG_SETB: Timer output B set interrupt clear flag * @arg HRPWM_FLAG_RSTB: Timer output B reset interrupt clear flag * @arg HRPWM_FLAG_RST: Timer reset interrupt clear flag * @arg HRPWM_FLAG_REP: Timer repetition interrupt clear flag * @arg HRPWM_FLAG_UPD: Timer update interrupt clear flag * @retval None */ #define __LL_HRPWM_TIMER_CLEAR_ITFLAG(__TIMER__, __INTERRUPT__) (HRPWM->PWM[(__TIMER__)].ISR = (__INTERRUPT__)) /** @brief Sets the HRPWM timer Period value on runtime * @param __TIMER__ HRPWM timer * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __PERIOD__ specifies the Period Register new value. * @retval None */ #define __LL_HRPWM_SETPERIOD(__TIMER__, __PERIOD__) \ (((__TIMER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MPER = (__PERIOD__)) :\ (HRPWM->PWM[(__TIMER__)].PERR = (__PERIOD__))) /** @brief Gets the HRPWM timer Period Register value on runtime * @param __TIMER__ HRPWM timer * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval timer Period Register */ #define __LL_HRPWM_GETPERIOD(__TIMER__) \ (((__TIMER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MPER) : (HRPWM->PWM[(__TIMER__)].PERR)) /** @brief Sets the HRPWM timer clock prescaler value on runtime * @param __TIMER__ HRPWM timer * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __PRESCALER__ specifies the clock prescaler new value. * This parameter can be one of the following values: * @arg HRPWM_PRESCALERRATIO_MUL32: fHRCK: fHRPWM x 32U = 5.12 GHz - Resolution: 195 ps (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_MUL16: fHRCK: fHRPWM x 16U = 2.56 GHz - Resolution: 390 ps (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_MUL8: fHRCK: fHRPWM x 8U = 1.28 GHz - Resolution: 781 ps (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_MUL4: fHRCK: fHRPWM x 4U = 640 MHz - Resolution: 1.56 ns (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_MUL2: fHRCK: fHRPWM x 2U = 320 MHz - Resolution: 3.125 ns (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_DIV1: fHRCK: fHRPWM = 160 MHz - Resolution: 6.25 ns (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_DIV2: fHRCK: fHRPWM / 2U = 80 MHz - Resolution: 12.5 ns (fHRPWM=144MHz) * @arg HRPWM_PRESCALERRATIO_DIV4: fHRCK: fHRPWM / 4U = 40 MHz - Resolution: 25 ns (fHRPWM=144MHz) * @retval None */ #define __LL_HRPWM_SETCLOCKPRESCALER(__TIMER__, __PRESCALER__) \ (((__TIMER__) == HRPWM_INDEX_MASTER) ? (MODIFY_REG(HRPWM->Master.MCR, HRPWM_MCR_CKPSC, (__PRESCALER__))) :\ (MODIFY_REG(HRPWM->PWM[(__TIMER__)].CR0, HRPWM_CR0_CKPSC, (__PRESCALER__)))) /** @brief Gets the HRPWM timer clock prescaler value on runtime * @param __TIMER__ HRPWM timer * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval timer clock prescaler value */ #define __LL_HRPWM_GETCLOCKPRESCALER(__TIMER__) \ (((__TIMER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCR & HRPWM_MCR_CKPSC) : \ (HRPWM->PWM[(__TIMER__)].CR0 & HRPWM_CR0_CKPSC)) /** @brief Sets the HRPWM timer Compare Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __COMPAREUNIT__ timer compare unit * This parameter can be one of the following values: * @arg HRPWM_COMPAREUNIT_A: Compare A * @arg HRPWM_COMPAREUNIT_B: Compare B * @arg HRPWM_COMPAREUNIT_C: Compare C * @arg HRPWM_COMPAREUNIT_D: Compare D * @param __COMPARE__ specifies the Compare new value. * @retval None */ #define __LL_HRPWM_SETCOMPARE(__TIMER__, __COMPAREUNIT__, __COMPARE__) \ (((__TIMER__) == HRPWM_INDEX_MASTER) ? \ (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->Master.MCMPAR = (__COMPARE__)) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->Master.MCMPBR = (__COMPARE__)) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->Master.MCMPCR = (__COMPARE__)) : \ (HRPWM->Master.MCMPDR = (__COMPARE__))) \ : \ (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->PWM[(__TIMER__)].CMPAR = (__COMPARE__)) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->PWM[(__TIMER__)].CMPBR = (__COMPARE__)) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->PWM[(__TIMER__)].CMPCR = (__COMPARE__)) : \ (HRPWM->PWM[(__TIMER__)].CMPDR = (__COMPARE__)))) /** @brief Gets the HRPWM timer Compare Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __COMPAREUNIT__ timer compare unit * This parameter can be one of the following values: * @arg HRPWM_COMPAREUNIT_A: Compare A * @arg HRPWM_COMPAREUNIT_B: Compare B * @arg HRPWM_COMPAREUNIT_C: Compare C * @arg HRPWM_COMPAREUNIT_D: Compare D * @retval Compare value */ #define __LL_HRPWM_GETCOMPARE(__TIMER__, __COMPAREUNIT__) \ (((__TIMER__) == HRPWM_INDEX_MASTER) ? \ (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->Master.MCMPAR) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->Master.MCMPBR) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->Master.MCMPCR) : \ (HRPWM->Master.MCMPDR)) \ : \ (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->PWM[(__TIMER__)].CMPAR) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->PWM[(__TIMER__)].CMPBR) : \ ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->PWM[(__TIMER__)].CMPCR) : \ (HRPWM->PWM[(__TIMER__)].CMPDR))) /** @brief Sets the HRPWM timer Compare A Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __VALUE__ specifies the Compare new value. * @retval None */ #define __LL_HRPWM_SETCOMPARE_A(__TINER__, __VALUE__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPAR = (__VALUE__)) : \ (HRPWM->PWM[(__TINER__)].CMPAR = (__VALUE__))) /** @brief Sets the HRPWM timer Compare B Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __VALUE__ specifies the Compare new value. * @retval None */ #define __LL_HRPWM_SETCOMPARE_B(__TINER__, __VALUE__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPBR = (__VALUE__)) : \ (HRPWM->PWM[(__TINER__)].CMPBR = (__VALUE__))) /** @brief Sets the HRPWM timer Compare C Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __VALUE__ specifies the Compare new value. * @retval None */ #define __LL_HRPWM_SETCOMPARE_C(__TINER__, __VALUE__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPCR = (__VALUE__)) : \ (HRPWM->PWM[(__TINER__)].CMPCR = (__VALUE__))) /** @brief Sets the HRPWM timer Compare A Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @param __VALUE__ specifies the Compare new value. * @retval None */ #define __LL_HRPWM_SETCOMPARE_D(__TINER__, __VALUE__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPDR = (__VALUE__)) : \ (HRPWM->PWM[(__TINER__)].CMPDR = (__VALUE__))) /** @brief Gets the HRPWM timer Compare A Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval Compare value */ #define __LL_HRPWM_GETCOMPARE_A(__TINER__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPAR) :(HRPWM->PWM[(__TINER__)].CMPAR)) /** @brief Gets the HRPWM timer Compare B Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval Compare value */ #define __LL_HRPWM_GETCOMPARE_B(__TINER__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPBR) : (HRPWM->PWM[(__TINER__)].CMPBR)) /** @brief Gets the HRPWM timer Compare C Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval Compare value */ #define __LL_HRPWM_GETCOMPARE_C(__TINER__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPCR) : (HRPWM->PWM[(__TINER__)].CMPCR)) /** @brief Gets the HRPWM timer Compare D Register value on runtime * @param __TIMER__ HRPWM timer (not is commmon timer) * This parameter can be one of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval Compare value */ #define __LL_HRPWM_GETCOMPARE_D(__TINER__) \ (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPDR) : (HRPWM->PWM[(__TINER__)].CMPDR)) /** @brief Enables or disables the timer counter(s) * @param __TIMERS__ timers to enable/disable * This parameter can be any combinations of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier * @retval None */ #define __LL_HRPWM_TIMER_ENABLE(__TIMERS__) \ (((__TIMERS__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCR |= HRPWM_MCR_MCEN) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_0) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN0) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_1) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN1) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_2) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN2) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_3) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN3) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_4) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN4) : \ ((HRPWM->Master.MCR |= HRPWM_MCR_CEN5))) #define __LL_HRPWM_TIMER_DISABLE(__TIMERS__) \ (((__TIMERS__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_MCEN)) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_0) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN0)) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_1) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN1)) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_2) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN2)) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_3) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN3)) : \ ((__TIMERS__) == HRPWM_INDEX_SLAVE_4) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN4)) : \ ((HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN5)))) /** @brief Enables ALL the timer counter(s) * @param __INSTANCE__ HRPWM HANDLE * @retval None */ #define __LL_HRPWM_ALL_TIMER_ENABLE(__INSTANCE__) \ (SET_BIT((__INSTANCE__)->Master.MCR, \ HRPWM_MCR_MCEN | HRPWM_MCR_CEN0 | HRPWM_MCR_CEN1 | HRPWM_MCR_CEN2 | HRPWM_MCR_CEN3 | HRPWM_MCR_CEN4 | HRPWM_MCR_CEN5)) /** @brief Disables the timer counter(s) * @param __INSTANCE__ HRPWM HANDLE * @retval None */ #define __LL_HRPWM_ALL_TIMER_DISABLE(__INSTANCE__) \ (CLEAR_BIT((__INSTANCE__)->Master.MCR, \ HRPWM_MCR_MCEN | HRPWM_MCR_CEN0 | HRPWM_MCR_CEN1 | HRPWM_MCR_CEN2 | HRPWM_MCR_CEN3 | HRPWM_MCR_CEN4 | HRPWM_MCR_CEN5)) /** @brief Modify the length of the dead zone * @param __TIMERS__ timers to enable/disable * This parameter can be any combinations of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier * @param __VALUES__ timer dead timer value the range of value is 0 ~ 0xfff * @retval None */ #define __LL_HRPWM_DEADTIME_RISE_VALUE(__TIMERS__, __VALUES__) \ MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_DTR, (__VALUES__)) #define __LL_HRPWM_DEADTIME_FALL_VALUE(__TIMERS__, __VALUES__) \ MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_DTF, ((__VALUES__) << 16U)) /** @brief Modify the length of the dead zone * @param __TIMERS__ timers to enable/disable * This parameter can be any combinations of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier * @param __SIGN__ timer dead timer sign * HRPWM_Deadtime_Rising_Sign: HRPWM_DEADTIME_RSIGN_NEGATIVE \ HRPWM_DEADTIME_RSIGN_POSITIVE * HRPWM_Deadtime_Falling_Sign: HRPWM_DEADTIME_FSIGN_NEGATIVE \ HRPWM_DEADTIME_FSIGN_POSITIVE * @retval None */ #define __LL_HRPWM_DEADTIME_RISE_SIGN(__TIMERS__, __SIGN__) MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_SDTR, (__SIGN__)) #define __LL_HRPWM_DEADTIME_FALL_SIGN(__TIMERS__, __SIGN__) MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_SDTF, (__SIGN__)) /** @brief Start output wave * @param __OUTPUT__ timers start output wave @ HRPWM_Timer_Output_Start * This parameter can be any combinations of the following values: * @arg HRPWM_OUTPUT_OEN0A * @arg HRPWM_OUTPUT_OEN0B * @arg HRPWM_OUTPUT_OEN1A * @arg HRPWM_OUTPUT_OEN1B * @arg HRPWM_OUTPUT_OEN2A * @arg HRPWM_OUTPUT_OEN2B * @arg HRPWM_OUTPUT_OEN3A * @arg HRPWM_OUTPUT_OEN3B * @arg HRPWM_OUTPUT_OEN4A * @arg HRPWM_OUTPUT_OEN4B * @arg HRPWM_OUTPUT_OEN5A * @arg HRPWM_OUTPUT_OEN5B * @retval None */ #define __LL_HRPWM_OUTPUT_START(__OUTPUT__) SET_BIT(HRPWM->Common.OENR, (__OUTPUT__)) /** @brief Stop output wave * @param __OUTPUT__ timers start output wave @ HRPWM_Timer_Output_Stop * This parameter can be any combinations of the following values: * @arg HRPWM_OUTPUT_ODIS0A * @arg HRPWM_OUTPUT_ODIS0B * @arg HRPWM_OUTPUT_ODIS1A * @arg HRPWM_OUTPUT_ODIS1B * @arg HRPWM_OUTPUT_ODIS2A * @arg HRPWM_OUTPUT_ODIS2B * @arg HRPWM_OUTPUT_ODIS3A * @arg HRPWM_OUTPUT_ODIS3B * @arg HRPWM_OUTPUT_ODIS4A * @arg HRPWM_OUTPUT_ODIS4B * @arg HRPWM_OUTPUT_ODIS5A * @arg HRPWM_OUTPUT_ODIS5B * @retval None */ #define __LL_HRPWM_OUTPUT_STOP(__OUTPUT__) SET_BIT(HRPWM->Common.ODISR, (__OUTPUT__)) /** @brief Multiple mode combination configuration * @param __TIMERS__ timers to enable/disable * This parameter can be any combinations of the following values: * @arg HRPWM_INDEX_MASTER: Master timer identifier * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier * @param __MODE__ set output mode(half \ interleaved \ pushpull) * This parameter can be any combinations of the following values: * @arg HRPWM_HALFMODE_DISABLE * @arg HRPWM_HALFMODE_ENABLE * @arg HRPWM_INTERLEAVED_MODE_DISABLE * @arg HRPWM_INTERLEAVED_MODE_TRIPLE * @arg HRPWM_INTERLEAVED_MODE_QUAD * @arg HRPWM_PUSHPULLMODE_DISABLE * @arg HRPWM_PUSHPULLMODE_ENABLE * @retval None */ #define __LL_HRPWM_OUTPUTMODE_SET(__TIMERS__, __MODE__) \ (((__TIMERS__) == HRPWM_INDEX_MASTER) ? \ (MODIFY_REG(HRPWM->Master.MCR , HRPWM_MCR_HALF | HRPWM_MCR_INTLVD, __MODE__)) : \ (MODIFY_REG(HRPWM->PWM[__TIMERS__].CR0 , HRPWM_CR0_HALF | HRPWM_CR0_INTLVD | HRPWM_CR0_PSHPLL, __MODE__))) /** @brief Select which faults are effectively configured in each slave timer * @param __TIMERS__ timers to enable/disable * This parameter can be any combinations of the following values: * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier * @param __FAULT__ timers start output wave @ HRPWM_Timer_Fault_Enabling * This parameter can be any combinations of the following values: * @arg HRPWM_FAULTEN_NONE * @arg HRPWM_FAULTEN_FAULT0 * @arg HRPWM_FAULTEN_FAULT1 * @arg HRPWM_FAULTEN_FAULT2 * @arg HRPWM_FAULTEN_FAULT3 * @arg HRPWM_FAULTEN_FAULT4 * @arg HRPWM_FAULTEN_FAULT5 * @retval None */ #define __LL_HRPWM_SLAVE_FAULT_VALID_SEL(__TIMERS__, __FAULT__) MODIFY_REG(HRPWM->PWM[__TIMERS__].FLTR, 0x3F, __FAULT__) /** @brief The software forces the corresponding output high or low * @param __TIMERS__ timers to * After configuring this bit, you must reconfigure the output event in order to reoutput * This parameter can be one of the following values: * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier * @retval None */ #define __LL_HRPWM_OUTPUT_A_SET(__TIMERS__) \ do { \ CLEAR_REG(HRPWM->PWM[__TIMERS__].CLRAR); \ WRITE_REG(HRPWM->PWM[__TIMERS__].SETAR, HRPWM_SETAR_SST); \ } while(0) #define __LL_HRPWM_OUTPUT_A_CLEAR(__TIMERS__) \ do { \ CLEAR_REG(HRPWM->PWM[__TIMERS__].SETAR); \ WRITE_REG(HRPWM->PWM[__TIMERS__].CLRAR, HRPWM_CLRAR_SST); \ } while(0) #define __LL_HRPWM_OUTPUT_B_SET(__TIMERS__) \ do { \ CLEAR_REG(HRPWM->PWM[__TIMERS__].CLRBR); \ WRITE_REG(HRPWM->PWM[__TIMERS__].SETBR, HRPWM_SETBR_SST); \ } while(0) #define __LL_HRPWM_OUTPUT_B_CLEAR(__TIMERS__) \ do { \ CLEAR_REG(HRPWM->PWM[__TIMERS__].SETBR); \ WRITE_REG(HRPWM->PWM[__TIMERS__].CLRBR, HRPWM_CLRBR_SST); \ } while(0) /** * @} */ /* Exported functions --------------------------------------------------------*/ /** @addtogroup HRPWM_LL_Exported_Functions * @{ */ /** @addtogroup HRPWM_LL_Exported_Functions_Group1 * @{ */ LL_StatusETypeDef LL_HRPWM_Init(HRPWM_TypeDef *Instance, HRPWM_MasterSyncTypeDef *pMasterSync); LL_StatusETypeDef LL_HRPWM_DeInit(HRPWM_TypeDef *Instance); void LL_HRPWM_MspInit(HRPWM_TypeDef *Instance); void LL_HRPWM_MspDeInit(HRPWM_TypeDef *Instance); /** * @} */ /** @addtogroup HRPWM_LL_Exported_Functions_Group2 * @{ */ LL_StatusETypeDef LL_HRPWM_DLLStartConfig(HRPWM_TypeDef *Instance, HRPWM_DLLCfgTypedef *DLLConfig); LL_StatusETypeDef LL_HRPWM_DLLStart(HRPWM_TypeDef *Instance); LL_StatusETypeDef LL_HRPWM_TimerBaseConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_TimerBaseCfgTypeDef *pTimeBaseCfg); LL_StatusETypeDef LL_HRPWM_TimerCompareConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_TimerCompareCfgTypeDef *pTimerCompCfg); /** * @} */ /** @addtogroup HRPWM_LL_Exported_Functions_Group3 * @{ */ LL_StatusETypeDef LL_HRPWM_StopCounter(uint32_t TimerIdx); LL_StatusETypeDef LL_HRPWM_StartCounter(uint32_t TimerIdx); /** * @} */ /** @addtogroup HRPWM_LL_Exported_Functions_Group4 * @{ */ LL_StatusETypeDef LL_HRPWM_TimerUintRollOverContrl(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_TimerRollOverCfgTypeDef *pTimerRollOverCfg); LL_StatusETypeDef LL_HRPWM_TimerDualChannelDacConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_TimerDaulDacCfgTypeDef *pTimerDacCfg); LL_StatusETypeDef LL_HRPWM_TimerRollOverMode(HRPWM_TypeDef *Instance, uint32_t TimerIdx, uint32_t pRollOverMode); /** * @} */ /** @addtogroup HRPWM_LL_Exported_Functions_Group5 * @{ */ LL_StatusETypeDef LL_HRPWM_FaultConfig(HRPWM_TypeDef *Instance, uint32_t Fault, HRPWM_FaultCfgTypeDef *pFaultCfg, HRPWM_FaultBlankingCfgTypeDef *pFaultBlkCfg); LL_StatusETypeDef LL_HRPWM_FaultBlankingConfig(HRPWM_TypeDef *Instance, uint32_t Fault, HRPWM_FaultBlankingCfgTypeDef *pFaultBlkCfg); LL_StatusETypeDef LL_HRPWM_FaultCounterConfig(HRPWM_TypeDef *Instance, uint32_t Fault, HRPWM_FaultBlankingCfgTypeDef *pFaultBlkCfg); LL_StatusETypeDef LL_HRPWM_FaultCounterReset(uint32_t Fault); LL_StatusETypeDef LL_HRPWM_ADDATriggerConfig(HRPWM_TypeDef *Instance, HRPWM_ADCTriggerCfgTypeDef *pADCTriggerCfg); LL_StatusETypeDef LL_HRPWM_OutputConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_OutputCfgTypeDef *pOutputCfg); LL_StatusETypeDef LL_HRPWM_DeadTimeConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_DeadTimeCfgTypeDef *pDeaTimedCfg); LL_StatusETypeDef LL_HRPWM_ChopperConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_ChopperModeCfgTypeDef *pChopperCfg); LL_StatusETypeDef LL_HRPWM_EventConfig(HRPWM_TypeDef *Instance, uint32_t Event, HRPWM_EventCfgTypeDef *pEventCfg); LL_StatusETypeDef LL_HRPWM_TimerEventAConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_ExternalEventACfgTypeDef *pEventCfg, HRPWM_TimerEventFilteringCfgTypeDef *pEventFilter); LL_StatusETypeDef LL_HRPWM_TimerEventAFilter(HRPWM_TypeDef *Instance, uint32_t TimerIdx, uint32_t Event, HRPWM_TimerEventFilteringCfgTypeDef *pEventFilter); /** * @} */ /** @addtogroup HRPWM_LL_Exported_Functions_Group6 * @{ */ LL_StatusETypeDef LL_HRPWM_ForceRegistersUpdate(uint32_t TimerIdx); LL_StatusETypeDef LL_HRPWM_DisRegisterUpdate(uint32_t TimerIdx); LL_StatusETypeDef LL_HRPWM_EnRegUpdate(uint32_t TimerIdx); LL_StatusETypeDef LL_HRPWM_StartOutput(uint32_t TimerIdx); LL_StatusETypeDef LL_HRPWM_StopOutput(uint32_t TimerIdx); LL_StatusETypeDef LL_HRPWM_SwapOutput(uint32_t TimerIdx, uint32_t swap); LL_StatusETypeDef LL_HRPWM_ResetCounter(uint32_t TimerIdx); /** * @} */ /** @addtogroup HRPWM_LL_Exported_Functions_Interrupt * @{ */ void LL_HRPWM_IRQHandler(uint32_t TimerIdx); void LL_HRPWM_FLT_IRQHandler(void); void LL_HRPWM_SLAVE_IRQHandler(uint32_t TimerIdx); void LL_HRPWM_MSTR_IRQHandler(void); void LL_HRPWM_Fault0Callback(void); void LL_HRPWM_Fault1Callback(void); void LL_HRPWM_Fault2Callback(void); void LL_HRPWM_Fault3Callback(void); void LL_HRPWM_Fault4Callback(void); void LL_HRPWM_Fault5Callback(void); void LL_HRPWM_SystemFaultCallback(void); void LL_HRPWM_SynchronizationEventCallback(void); void LL_HRPWM_RegistersUpdateCallback(uint32_t TimerIdx); void LL_HRPWM_RepetitionEventCallback(uint32_t TimerIdx); void LL_HRPWM_CompareAEventCallback(uint32_t TimerIdx); void LL_HRPWM_CompareBEventCallback(uint32_t TimerIdx); void LL_HRPWM_CompareCEventCallback(uint32_t TimerIdx); void LL_HRPWM_CompareDEventCallback(uint32_t TimerIdx); void LL_HRPWM_PeriodEventCallback(uint32_t TimerIdx); void LL_HRPWM_CounterResetCallback(uint32_t TimerIdx); void LL_HRPWM_OutputASetCallback(uint32_t TimerIdx); void LL_HRPWM_OutputBSetCallback(uint32_t TimerIdx); void LL_HRPWM_OutputAResetCallback(uint32_t TimerIdx); void LL_HRPWM_OutputBResetCallback(uint32_t TimerIdx); /** * @} */ /** * @} */ /* Private types -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private constants ---------------------------------------------------------*/ /* Private macros ------------------------------------------------------------*/ /** @defgroup HRPWM_LL_Private_Macros HRPWM LL Private Macros * @brief HRPWM LL Private Macros * @{ */ /** * @brief Judge is HRPWM index all or not * @param __INDEX__ index to judge * @retval 0 isn't HRPWM index all * @retval 1 is HRPWM index all */ #define IS_HRPWM_INDEX_ALL(__INDEX__) \ (((__INDEX__) == HRPWM_INDEX_SLAVE_0) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_1) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_2) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_3) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_4) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_5) || \ ((__INDEX__) == HRPWM_INDEX_MASTER) || \ ((__INDEX__) == HRPWM_INDEX_COMMON)) /** * @brief Judge is HRPWM index or not * @param __INDEX__ index to judge * @retval 0 isn't HRPWM index * @retval 1 is HRPWM index */ #define IS_HRPWM_INDEX(__INDEX__) \ (((__INDEX__) == HRPWM_INDEX_SLAVE_0) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_1) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_2) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_3) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_4) || \ ((__INDEX__) == HRPWM_INDEX_SLAVE_5) || \ ((__INDEX__) == HRPWM_INDEX_MASTER)) /** * @brief Judge is HRPWM fault interrupt or not * @param __INTERRUPT__ interrupt to judge * @retval 0 isn't HRPWM fault interrupt * @retval 1 is HRPWM fault interrupt */ #define IS_HRPWM_FAULT_IT(__INTERRUPT__) \ (((__INTERRUPT__) == HRPWM_IT_NONE) || \ (((__INTERRUPT__) & HRPWM_IT_SRC) != HRPWM_IT_NONE)) /** * @brief Judge is HRPWM master interrupt or not * @param __INTERRUPT__ interrupt to judge * @retval 0 isn't HRPWM master interrupt * @retval 1 is HRPWM master interrupt */ #define IS_HRPWM_MASTER_IT(__INTERRUPT__) \ (((__INTERRUPT__) == HRPWM_MASTER_IT_NONE) || \ (((__INTERRUPT__) & HRPWM_MASTER_IT_SRC) != HRPWM_MASTER_IT_NONE)) /** * @brief Judge is HRPWM timer interrupt or not * @param __INTERRUPT__ interrupt to judge * @retval 0 isn't HRPWM timer interrupt * @retval 1 is HRPWM timer interrupt */ #define IS_HRPWM_TIMER_IT(__INTERRUPT__) \ (((__INTERRUPT__) == HRPWM_IT_TIMER_NONE) || \ (((__INTERRUPT__) & HRPWM_IT_TIMER_SRC) != HRPWM_IT_TIMER_NONE)) /** * @brief Judge is HRPWM sync output source or not * @param __OUTPUT__ output source to judge * @retval 0 isn't HRPWM sync output source * @retval 1 is HRPWM sync output source */ #define IS_HRPWM_SYNCOUTPUTSOURCE(__OUTPUT__) \ (((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_MASTER_START) || \ ((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_MASTER_CMPA) || \ ((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_SLAVE0_STARTRST) || \ ((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_SLAVE0_CMPA)) /** * @brief Judge is HRPWM sync output polarity or not * @param __POLARITY__ output polarity to judge * @retval 0 isn't HRPWM sync polarity source * @retval 1 is HRPWM sync polarity source */ #define IS_HRPWM_SYNCOUTPUTPOLARITY(__POLARITY__) \ (((__POLARITY__) == HRPWM_SYNCOUTPUTPOLARITY_POSITIVE) || \ ((__POLARITY__) == HRPWM_SYNCOUTPUTPOLARITY_NEGATIVE)) /** * @brief Judge is HRPWM sync input source or not * @param __SOURCE__ input source to judge * @retval 0 isn't HRPWM sync input source * @retval 1 is HRPWM sync input source */ #define IS_HRPWM_SYNINPUTSOURCE(__SOURCE__) \ (((__SOURCE__) == HRPWM_SYNCINPUTSOURCE_NONE) || \ ((__SOURCE__) == HRPWM_SYNCINPUTSOURCE_TIM0_TRGO_EVENT) || \ ((__SOURCE__) == HRPWM_SYNCINPUTSOURCE_EVENT)) /** * @brief Judge is HRPWM DLLGCP or not * @param __CURRENT__ current to judge * @retval 0 isn't HRPWM DLLGCP * @retval 1 is HRPWM DLLGCP */ #define IS_HRPWM_DLLGCP(__CURRENT__) \ (((__CURRENT__) == HRPWM_DLLCR_DLLGCP_4) || \ ((__CURRENT__) == HRPWM_DLLCR_DLLGCP_6) || \ ((__CURRENT__) == HRPWM_DLLCR_DLLGCP_8)) /** * @brief Judge is HRPWM prescale ratio or not * @param __CLKPSC__ ratio to judge * @retval 0 isn't HRPWM prescale ratio * @retval 1 is HRPWM prescale ratio */ #define IS_HRPWM_PRESCALERRATIO(__CLKPSC__) \ (((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL32) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL16) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL8) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL4) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL2) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_DIV1) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_DIV2) || \ ((__CLKPSC__) == HRPWM_PRESCALERRATIO_DIV4)) /** * @brief Judge is HRPWM preload or not * @param __PREEN__ preload to judge * @retval 0 isn't HRPWM preload * @retval 1 is HRPWM preload */ #define IS_HRPWM_PRELOAD(__PREEN__) \ (((__PREEN__) == HRPWM_PRELOAD_DISABLE) || \ ((__PREEN__) == HRPWM_PRELOAD_ENABLE)) /** * @brief Judge is HRPWM half mode or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM half mode * @retval 1 is HRPWM half mode */ #define IS_HRPWM_HALFMODE(__MODE__) \ (((__MODE__) == HRPWM_HALFMODE_DISABLE) || \ ((__MODE__) == HRPWM_HALFMODE_ENABLE)) /** * @brief Judge is HRPWM push pull mode or not * @param __SYNC__ mode to judge * @retval 0 isn't HRPWM push pull mode * @retval 1 is HRPWM push pull mode */ #define IS_HRPWM_PUSHPULLMODE(__SYNC__) \ (((__SYNC__) == HRPWM_PUSHPULLMODE_DISABLE) || \ ((__SYNC__) == HRPWM_PUSHPULLMODE_ENABLE)) /** * @brief Judge is HRPWM sync start or not * @param __SYNC__ sync start to judge * @retval 0 isn't HRPWM sync start * @retval 1 is HRPWM sync start */ #define IS_HRPWM_SYNCSTART(__SYNC__) \ (((__SYNC__) == HRPWM_SYNCSTART_DISABLE) || \ ((__SYNC__) == HRPWM_SYNCSTART_ENABLE)) /** * @brief Judge is HRPWM sync reset or not * @param __SYNC__ sync reset to judge * @retval 0 isn't HRPWM sync reset * @retval 1 is HRPWM sync reset */ #define IS_HRPWM_SYNCRESET(__SYNC__) \ (((__SYNC__) == HRPWM_SYNCRESET_DISABLE) || \ ((__SYNC__) == HRPWM_SYNCRESET_ENABLE)) /** * @brief Judge is HRPWM Interleaved Mode or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM Interleaved Mode * @retval 1 is HRPWM Interleaved Mode */ #define IS_HRPWM_INTERLEAVEDMODE(__MODE__) \ (((__MODE__) == HRPWM_INTERLEAVED_MODE_DISABLE) || \ ((__MODE__) == HRPWM_INTERLEAVED_MODE_TRIPLE) || \ ((__MODE__) == HRPWM_INTERLEAVED_MODE_QUAD)) /** * @brief Judge is HRPWM fault enable or not * @param __FAULT__ fault to judge * @retval 0 isn't HRPWM fault enable * @retval 1 is HRPWM fault enable */ #define IS_HRPWM_FAULTENABLE(__FAULT__) \ (((__FAULT__) == HRPWM_FAULTEN_NONE) || \ (((__FAULT__) & 0x3f) != HRPWM_FAULTEN_NONE)) /** * @brief Judge is HRPWM resync update or not * @param __RESYNC__ resync to judge * @retval 0 isn't HRPWM resync update * @retval 1 is HRPWM resync update */ #define IS_HRPWM_RESYNCUPDATE(__RESYNC__) \ (((__RESYNC__) == HRPWM_RSYNCUPDATE_DISABLE) || \ ((__RESYNC__) == HRPWM_RSYNCUPDATE_ENABLE)) /** * @brief Judge is HRPWM update trigger or not * @param __UPDATE__ update trigger to judge * @retval 0 isn't HRPWM update trigger * @retval 1 is HRPWM update trigger */ #define IS_HRPWM_UPDATETRIGGER(__UPDATE__) \ (((__UPDATE__) == HRPWM_UPDATETRIGGER_NONE) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_MASTER) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_REP) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_RST) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_0) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_1) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_2) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_3) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_4) || \ ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_5)) /** * @brief Judge is HRPWM mode or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM mode * @retval 1 is HRPWM mode */ #define IS_HRPWM_MODE(__MODE__) \ (((__MODE__) == HRPWM_MODE_CONTINUOUS) || \ ((__MODE__) == HRPWM_MODE_SINGLESHOT) || \ ((__MODE__) == HRPWM_MODE_SINGLESHOT_RETRIGGERABLE)) /** * @brief Judge is HRPWM dual DAC reset or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM dual DAC reset * @retval 1 is HRPWM dual DAC reset */ #define IS_HRPWM_DUALDAC_RESET(__MODE__) \ (((__MODE__) == HRPWM_DAC_DCDR_RESET) || \ ((__MODE__) == HRPWM_DAC_DCDR_SETA)) /** * @brief Judge is HRPWM dual DAC step or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM dual DAC step * @retval 1 is HRPWM dual DAC step */ #define IS_HRPWM_DUALDAC_STEP(__MODE__) \ (((__MODE__) == HRPWM_DAC_DCDS_CMPD) || \ ((__MODE__) == HRPWM_DAC_DCDS_CLEARA)) /** * @brief Judge is HRPWM dual DAC enable or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM dual DAC enable * @retval 1 is HRPWM dual DAC enable */ #define IS_HRPWM_DUALDAC_ENABLE(__MODE__) \ (((__MODE__) == HRPWM_DAC_DCDE_DISABLE) || \ ((__MODE__) == HRPWM_DAC_DCDE_ENABLE)) /** * @brief Judge is HRPWM fault or not * @param __FAULT__ fault to judge * @retval 0 isn't HRPWM fault * @retval 1 is HRPWM fault */ #define IS_HRPWM_FAULT(__FAULT__) \ (((__FAULT__) == HRPWM_FAULT_0) || \ ((__FAULT__) == HRPWM_FAULT_1) || \ ((__FAULT__) == HRPWM_FAULT_2) || \ ((__FAULT__) == HRPWM_FAULT_3) || \ ((__FAULT__) == HRPWM_FAULT_4) || \ ((__FAULT__) == HRPWM_FAULT_5)) /** * @brief Judge is HRPWM fault source or not * @param __SOURCE__ source to judge * @retval 0 isn't HRPWM fault source * @retval 1 is HRPWM fault source */ #define IS_HRPWM_FAULTSOURCE(__SOURCE__) \ (((__SOURCE__) == HRPWM_FLTSRC_GPIO) || \ ((__SOURCE__) == HRPWM_FLTSRC_COMP_OUT) || \ ((__SOURCE__) == HRPWM_FLTSRC_EVENT)) /** * @brief Judge is HRPWM fault polarity or not * @param __POLARITY__ polarity to judge * @retval 0 isn't HRPWM fault polarity * @retval 1 is HRPWM fault polarity */ #define IS_HRPWM_FAULTPOLARITY(__POLARITY__) \ (((__POLARITY__) == HRPWM_FAULTPOL_LOW) || \ ((__POLARITY__) == HRPWM_FAULTPOL_HIGH)) /** * @brief Judge is HRPWM fault filter or not * @param __FILTER__ filter to judge * @retval 0 isn't HRPWM fault filter * @retval 1 is HRPWM fault filter */ #define IS_HRPWM_FAULTFILTER(__FILTER__) \ (((__FILTER__) == HRPWM_FAULTFILTER_NONE) || \ (((__FILTER__) & HRPWM_FLTINR1_FLT0F) != HRPWM_FAULTFILTER_NONE)) /** * @brief Judge is HRPWM fault sample clock div or not * @param __CLKDIV__ clock div to judge * @retval 0 isn't HRPWM fault sample clock div * @retval 1 is HRPWM fault sample clock div */ #define IS_HRPWM_FAULTSAMPCLK(__CLKDIV__) \ (((__CLKDIV__) == HRPWM_FLTSD_DIV1) || \ ((__CLKDIV__) == HRPWM_FLTSD_DIV2) || \ ((__CLKDIV__) == HRPWM_FLTSD_DIV4) || \ ((__CLKDIV__) == HRPWM_FLTSD_DIV8)) /** * @brief Judge is HRPWM fault blanking enable or not * @param __BLKEN__ blanking enable to judge * @retval 0 isn't HRPWM fault blanking enable * @retval 1 is HRPWM fault blanking enable */ #define IS_HRPWM_FAULTBLKEN(__BLKEN__) \ (((__BLKEN__) == HRPWM_FAULTBLKEN_DISABLE) || \ ((__BLKEN__) == HRPWM_FAULTBLKEN_ENABLE)) /** * @brief Judge is HRPWM fault blanking source or not * @param __BLKSRC__ blanking source to judge * @retval 0 isn't HRPWM fault blanking source * @retval 1 is HRPWM fault blanking source */ #define IS_HRPWM_FAULTBLKSRC(__BLKSRC__) \ (((__BLKSRC__) == HRPWM_FAULTBLKS_RSTALIGNED) || \ ((__BLKSRC__) == HRPWM_FAULTBLKS_MOVING)) /** * @brief Judge is HRPWM fault reset mode or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM fault reset mode * @retval 1 is HRPWM fault reset mode */ #define IS_HRPWM_FAULTRSTMODE(__MODE__) \ (((__MODE__) == HRPWM_FAULTRSTM_UNCONDITIONAL) || \ ((__MODE__) == HRPWM_FAULTRSTM_CONDITIONAL)) /** * @brief Judge is HRPWM ADC trigger or not * @param __ADCTRIGGER__ trigger to judge * @retval 0 isn't HRPWM ADC trigger * @retval 1 is HRPWM ADC trigger */ #define IS_HRPWM_ADCTRIGGER(__ADCTRIGGER__) \ (((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_0) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_1) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_2) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_3) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_4) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_5) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_6) || \ ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_7)) /** * @brief Judge is HRPWM ADC trigger post scaler or not * @param __PSC__ post scaler to judge * @retval 0 isn't HRPWM ADC trigger post scaler * @retval 1 is HRPWM ADC trigger post scaler */ #define IS_HRPWM_ADCTRIGGER_POSTSCALER(__PSC__) \ (((__PSC__) == HRPWM_ADCTRIG_PSC_1) || \ (((__PSC__) & HRPWM_ADPSR_ADPSC0) != HRPWM_ADCTRIG_PSC_1)) /** * @brief Judge is HRPWM ADC trigger length or not * @param __LENGTH__ length to judge * @retval 0 isn't HRPWM ADC trigger length * @retval 1 is HRPWM ADC trigger length */ #define IS_HRPWM_ADCTRIGGER_LENGTH(__LENGTH__) \ (((__LENGTH__) == HRPWM_ADCTRIG_LENGTH_1) || \ (((__LENGTH__) & HRPWM_CR2_TLEN0) != HRPWM_ADCTRIG_LENGTH_1)) /** * @brief Judge is HRPWM ADC trigger update source or not * @param __UPDSRC__ update source to judge * @retval 0 isn't HRPWM ADC trigger update source * @retval 1 is HRPWM ADC trigger update source */ #define IS_HRPWM_ADCTRIGGER_UPDATESRC(__UPDSRC__) \ (((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_MASTER) || \ ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_0) || \ ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_1) || \ ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_2) || \ ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_3) || \ ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_4) || \ ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_5)) /** * @brief Judge is HRPWM output A active polarity or not * @param __POLARITY__ polarity to judge * @retval 0 isn't HRPWM output A active polarity * @retval 1 is HRPWM output A active polarity */ #define IS_HRPWM_OUTPUTA_POLARITY(__POLARITY__) \ (((__POLARITY__) == HRPWM_OUTPUT_POLA_POSITIVE) || \ ((__POLARITY__) == HRPWM_OUTPUT_POLA_NEGATIVE)) /** * @brief Judge is HRPWM output A idel level or not * @param __IDEL__ idel level to judge * @retval 0 isn't HRPWM output A idel level * @retval 1 is HRPWM output A idel level */ #define IS_HRPWM_OUTPUTA_IDLELEVEL(__IDEL__) \ (((__IDEL__) == HRPWM_OUTPUTIDLEA_INACTIVE) || \ ((__IDEL__) == HRPWM_OUTPUTIDLEA_ACTIVE)) /** * @brief Judge is HRPWM output A fault level or not * @param __LEVEL__ fault level to judge * @retval 0 isn't HRPWM output A fault level * @retval 1 is HRPWM output A fault level */ #define IS_HRPWM_OUTPUTA_FLTLEVEL(__LEVEL__) \ (((__LEVEL__) == HRPWM_OUTPUTFAULTA_NONE) || \ ((__LEVEL__) == HRPWM_OUTPUTFAULTA_ACTIVE) || \ ((__LEVEL__) == HRPWM_OUTPUTFAULTA_INACTIVE) || \ ((__LEVEL__) == HRPWM_OUTPUTFAULTA_HIGHZ)) /** * @brief Judge is HRPWM output A Chopper Mode enable or not * @param __CHOPPER__ Chopper Mode enable to judge * @retval 0 isn't HRPWM output A Chopper Mode enable * @retval 1 is HRPWM output A Chopper Mode enable */ #define IS_HRPWM_OUTPUTA_CHOPPEREN(__CHOPPER__) \ (((__CHOPPER__) == HRPWM_OUTPUTCHOPPERA_ENABLE) || \ ((__CHOPPER__) == HRPWM_OUTPUTCHOPPERA_DISABLE)) /** * @brief Judge is HRPWM output B active polarity or not * @param __POLARITY__ polarity to judge * @retval 0 isn't HRPWM output B active polarity * @retval 1 is HRPWM output B active polarity */ #define IS_HRPWM_OUTPUTB_POLARITY(__POLARITY__) \ (((__POLARITY__) == HRPWM_OUTPUT_POLB_POSITIVE) || \ ((__POLARITY__) == HRPWM_OUTPUT_POLB_NEGATIVE)) /** * @brief Judge is HRPWM output B idel level or not * @param __IDEL__ idel level to judge * @retval 0 isn't HRPWM output B idel level * @retval 1 is HRPWM output B idel level */ #define IS_HRPWM_OUTPUTB_IDLELEVEL(__IDEL__) \ (((__IDEL__) == HRPWM_OUTPUTIDLEB_INACTIVE) || \ ((__IDEL__) == HRPWM_OUTPUTIDLEB_ACTIVE)) /** * @brief Judge is HRPWM output B fault level or not * @param __LEVEL__ fault level to judge * @retval 0 isn't HRPWM output B fault level * @retval 1 is HRPWM output B fault level */ #define IS_HRPWM_OUTPUTB_FLTLEVEL(__LEVEL__) \ (((__LEVEL__) == HRPWM_OUTPUTFAULTB_NONE) || \ ((__LEVEL__) == HRPWM_OUTPUTFAULTB_ACTIVE) || \ ((__LEVEL__) == HRPWM_OUTPUTFAULTB_INACTIVE) || \ ((__LEVEL__) == HRPWM_OUTPUTFAULTB_HIGHZ)) /** * @brief Judge is HRPWM output B Chopper Mode enable or not * @param __CHOPPER__ Chopper Mode enable to judge * @retval 0 isn't HRPWM output B Chopper Mode enable * @retval 1 is HRPWM output B Chopper Mode enable */ #define IS_HRPWM_OUTPUTB_CHOPPEREN(__CHOPPER__) \ (((__CHOPPER__) == HRPWM_OUTPUTCHOPPERB_ENABLE) || \ ((__CHOPPER__) == HRPWM_OUTPUTCHOPPERB_DISABLE)) /** * @brief Judge is HRPWM output event or not * @param __INTERRUPT__ interrupt to judge * @retval 0 isn't HRPWM output event * @retval 1 is HRPWM output event */ #define IS_HRPWM_OUTPUT_SET_EVENT(__INTERRUPT__) \ (((__INTERRUPT__) == HRPWM_OUTPUT_SET_NONE) || \ (((__INTERRUPT__) & 0x7FFFFU) != HRPWM_OUTPUT_SET_NONE)) /** * @brief Judge is HRPWM output event or not * @param __INTERRUPT__ interrupt to judge * @retval 0 isn't HRPWM output event * @retval 1 is HRPWM output event */ #define IS_HRPWM_OUTPUT_CLEAR_EVENT(__INTERRUPT__) \ (((__INTERRUPT__) == HRPWM_OUTPUT_CLEAR_NONE) || \ (((__INTERRUPT__) & 0x7FFFFU) != HRPWM_OUTPUT_CLEAR_NONE)) /** * @brief Judge is HRPWM dead time rising sign or not * @param __SIGN__ sign to judge * @retval 0 isn't HRPWM dead time rising sign * @retval 1 is HRPWM dead time rising sign */ #define IS_HRPWM_DEADTIME_SDTR(__SIGN__) \ (((__SIGN__) == HRPWM_DEADTIME_RSIGN_NEGATIVE) || \ ((__SIGN__) == HRPWM_DEADTIME_RSIGN_POSITIVE)) /** * @brief Judge is HRPWM dead time falling sign or not * @param __SIGN__ sign to judge * @retval 0 isn't HRPWM dead time falling sign * @retval 1 is HRPWM dead time falling sign */ #define IS_HRPWM_DEADTIME_SDTF(__SIGN__) \ (((__SIGN__) == HRPWM_DEADTIME_FSIGN_NEGATIVE) || \ ((__SIGN__) == HRPWM_DEADTIME_FSIGN_POSITIVE)) /** * @brief Judge is HRPWM chopper duty cycle or not * @param __CARDTY__ chopper duty cycle to judge * @retval 0 isn't HRPWM chopper duty cycle * @retval 1 is HRPWM chopper duty cycle */ #define IS_HRPWM_CHOPPER_CARDTY(__CARDTY__) \ (((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_0) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_1) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_2) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_3) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_4) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_5) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_6) || \ ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_7)) /** * @brief Judge is HRPWM chopper start pulse width or not * @param __STRPW__ start pulse width to judge * @retval 0 isn't HRPWM chopper start pulse width * @retval 1 is HRPWM chopper start pulse width */ #define IS_HRPWM_CHOPPER_STRPW(__STRPW__) \ (((__STRPW__) == HRPWM_CHOPPER_PULSEWIDTH_16) || \ (((__STRPW__) & HRPWM_CHPR_STRPW) != HRPWM_CHOPPER_PULSEWIDTH_16)) /** * @brief Judge is HRPWM chopper frequency or not * @param __CARFRQ__ chopper frequency to judge * @retval 0 isn't HRPWM chopper frequency * @retval 1 is HRPWM chopper frequency */ #define IS_HRPWM_CHOPPER_CARFRQ(__CARFRQ__) \ (((__CARFRQ__) == HRPWM_CHOPPER_CARFRQ_DIV16) || \ (((__CARFRQ__) & HRPWM_CHPR_CARFRQ) != HRPWM_CHOPPER_CARFRQ_DIV16)) /** * @brief Judge is HRPWM event or not * @param __EVENT__ event to judge * @retval 0 isn't HRPWM event * @retval 1 is HRPWM event */ #define IS_HRPWM_EVENT(__EVENT__) \ (((__EVENT__) == HRPWM_EVENT_NONE) || \ ((__EVENT__) == HRPWM_EVENT_0) || \ ((__EVENT__) == HRPWM_EVENT_1) || \ ((__EVENT__) == HRPWM_EVENT_2) || \ ((__EVENT__) == HRPWM_EVENT_3) || \ ((__EVENT__) == HRPWM_EVENT_4) || \ ((__EVENT__) == HRPWM_EVENT_5)) /** * @brief Judge is HRPWM event source or not * @param __SOURCE__ source to judge * @retval 0 isn't HRPWM event source * @retval 1 is HRPWM event source */ #define IS_HRPWM_EVENTSOURCE(__SOURCE__) \ (((__SOURCE__) == HRPWM_EEVSRC_GPIO) || \ ((__SOURCE__) == HRPWM_EEVSRC_COMP_OUT) || \ ((__SOURCE__) == HRPWM_EEVSRC_TIM_TRGO) || \ ((__SOURCE__) == HRPWM_EEVSRC_ADC_AWD)) /** * @brief Judge is HRPWM event polarity or not * @param __POLARITY__ polarity to judge * @retval 0 isn't HRPWM event polarity * @retval 1 is HRPWM event polarity */ #define IS_HRPWM_EVENTPOLARITY(__POLARITY__) \ (((__POLARITY__) == HRPWM_EVENTPOL_HIGH) || \ ((__POLARITY__) == HRPWM_EVENTPOL_LOW)) /** * @brief Judge is HRPWM event filter or not * @param __FILTER__ filter to judge * @retval 0 isn't HRPWM event filter * @retval 1 is HRPWM event filter */ #define IS_HRPWM_EVENTFILTER(__FILTER__) \ (((__FILTER__) == HRPWM_EVENTFILTER_NONE) || \ (((__FILTER__) & HRPWM_EECR2_EE0F) != HRPWM_EVENTFILTER_NONE)) /** * @brief Judge is HRPWM event prescaler div or not * @param __CLKDIV__ prescaler div to judge * @retval 0 isn't HRPWM event prescaler div * @retval 1 is HRPWM event prescaler div */ #define IS_HRPWM_EVENTSAMPCLK(__CLKDIV__) \ (((__CLKDIV__) == HRPWM_EEVSD_DIV1) || \ ((__CLKDIV__) == HRPWM_EEVSD_DIV2) || \ ((__CLKDIV__) == HRPWM_EEVSD_DIV4) || \ ((__CLKDIV__) == HRPWM_EEVSD_DIV8)) /** * @brief Judge is HRPWM event fast mode or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM event fast mode * @retval 1 is HRPWM event fast mode */ #define IS_HRPWM_EVENTFASTMODE(__MODE__) \ (((__MODE__) == HRPWM_EVENTFASTMODE_DISABLE) || \ ((__MODE__) == HRPWM_EVENTFASTMODE_ENABLE)) /** * @brief Judge is HRPWM event Sensitivity or not * @param __SNS__ Sensitivity to judge * @retval 0 isn't HRPWM event Sensitivity * @retval 1 is HRPWM event Sensitivity */ #define IS_HRPWM_EVENTSNS(__SNS__) \ (((__SNS__) == HRPWM_EVENTSENS_LEVEL) || \ ((__SNS__) == HRPWM_EVENTSENS_RISINGEDGE) || \ ((__SNS__) == HRPWM_EVENTSENS_FALLINGEDGE) || \ ((__SNS__) == HRPWM_EVENTSENS_BOTHEDGES)) /** * @brief Judge is HRPWM event A filter or not * @param __FILTER__ filter to judge * @retval 0 isn't HRPWM event filter A * @retval 1 is HRPWM event filter A */ #define IS_HRPWM_EVENTA_FILTER(__FILTER__) \ (((__FILTER__) == HRPWM_EEVFLT_NONE) || \ (((__FILTER__) & HRPWM_EEFR0_EE0FLTR) != HRPWM_EEVFLT_NONE)) /** * @brief Judge is HRPWM event A latch or not * @param __LATCH__ latch to judge * @retval 0 isn't HRPWM event A latch * @retval 1 is HRPWM event A latch */ #define IS_HRPWM_EVENTA_LATCH(__LATCH__) \ (((__LATCH__) == HRPWM_EVENTLATCH_DISABLE) || \ ((__LATCH__) == HRPWM_EVENTLATCH_ENABLE)) /** * @brief Judge is HRPWM event A source or not * @param __SOURCE__ source to judge * @retval 0 isn't HRPWM event A source * @retval 1 is HRPWM event A source */ #define IS_HRPWM_EVENTA_SOURCE(__SOURCE__) \ (((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT0) || \ ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT1) || \ ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT2) || \ ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT3) || \ ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT4) || \ ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT5)) /** * @brief Judge is HRPWM event A reset mode or not * @param __MODE__ mode to judge * @retval 0 isn't HRPWM event A reset mode * @retval 1 is HRPWM event A reset mode */ #define IS_HRPWM_EVENTA_RSTMODE(__MODE__) \ (((__MODE__) == HRPWM_EEVARSTM_CONDITIONAL) || \ ((__MODE__) == HRPWM_EEVARSTM_UNCONDITIONAL)) /** * @brief Judge is HRPWM event A counter enable or not * @param __COUNTEREN__ counter enable to judge * @retval 0 isn't HRPWM event A counter enable * @retval 1 is HRPWM event A counter enable */ #define IS_HRPWM_EVENTA_COUNTEREN(__COUNTEREN__) \ (((__COUNTEREN__) == HRPWM_EEVACOUNTER_DISABLE) || \ ((__COUNTEREN__) == HRPWM_EEVACOUNTER_ENABLE)) /** * @brief Judge is HRPWM reset event or not * @param __RESET__ reset event to judge * @retval 0 isn't HRPWM reset event * @retval 1 is HRPWM reset event */ #define IS_HRPWM_RST_EVENT(__RESET__) \ (((__RESET__) == HRPWM_RESET_TRIGGER_NONE) || \ (((__RESET__) & (0x1FFFFFFF)) != 0x0U)) /** * @brief Judge is HRPWM roll over mode or not * @param __ROLLOVER__ mode to judge * @retval 0 isn't HRPWM roll over mode * @retval 1 is HRPWM roll over mode */ #define IS_HRPWM_ROLLOVERMODE(__ROLLOVER__) \ (((__ROLLOVER__) == HRPWM_ROM_BOTH) || \ ((__ROLLOVER__) == HRPWM_ROM_ZERO) || \ ((__ROLLOVER__) == HRPWM_ROM_PERIOD)) /** * @brief Judge is HRPWM roll over mode or not * @param __ROLLOVER__ mode to judge * @retval 0 isn't HRPWM roll over mode * @retval 1 is HRPWM roll over mode */ #define IS_HRPWM_OUTPUTROLLOVERMODE(__ROLLOVER__) \ (((__ROLLOVER__) == HRPWM_OUTROM_BOTH) || \ ((__ROLLOVER__) == HRPWM_OUTROM_ZERO) || \ ((__ROLLOVER__) == HRPWM_OUTROM_PERIOD)) /** * @brief Judge is HRPWM roll over mode or not * @param __ROLLOVER__ mode to judge * @retval 0 isn't HRPWM roll over mode * @retval 1 is HRPWM roll over mode */ #define IS_HRPWM_ADCROLLOVERMODE(__ROLLOVER__) \ (((__ROLLOVER__) == HRPWM_ADROM_BOTH) || \ ((__ROLLOVER__) == HRPWM_ADROM_ZERO) || \ ((__ROLLOVER__) == HRPWM_ADROM_PERIOD)) /** * @brief Judge is HRPWM roll over mode or not * @param __ROLLOVER__ mode to judge * @retval 0 isn't HRPWM roll over mode * @retval 1 is HRPWM roll over mode */ #define IS_HRPWM_FLTROLLOVERMODE(__ROLLOVER__) \ (((__ROLLOVER__) == HRPWM_FLTROM_BOTH) || \ ((__ROLLOVER__) == HRPWM_FLTROM_ZERO) || \ ((__ROLLOVER__) == HRPWM_FLTROM_PERIOD)) /** * @brief Judge is HRPWM roll over mode or not * @param __ROLLOVER__ mode to judge * @retval 0 isn't HRPWM roll over mode * @retval 1 is HRPWM roll over mode */ #define IS_HRPWM_EVTROLLOVERMODE(__ROLLOVER__) \ (((__ROLLOVER__) == HRPWM_EEVROM_BOTH) || \ ((__ROLLOVER__) == HRPWM_EEVROM_ZERO) || \ ((__ROLLOVER__) == HRPWM_EEVROM_PERIOD)) /** * @} */ /* Private functions ---------------------------------------------------------*/ /** * @} */ /** * @} */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _TAE32F53XX_LL_HRPWM_H_ */ /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/