| /********************************************************************** | |
| * $Id$ lpc18xx_mcpwm.c 2011-06-02 | |
| *//** | |
| * @file lpc18xx_mcpwm.c | |
| * @brief Contains all functions support for Motor Control PWM firmware | |
| * library on LPC18XX | |
| * @version 1.0 | |
| * @date 02. June. 2011 | |
| * @author NXP MCU SW Application Team | |
| * | |
| * Copyright(C) 2011, NXP Semiconductor | |
| * All rights reserved. | |
| * | |
| *********************************************************************** | |
| * Software that is described herein is for illustrative purposes only | |
| * which provides customers with programming information regarding the | |
| * products. This software is supplied "AS IS" without any warranties. | |
| * NXP Semiconductors assumes no responsibility or liability for the | |
| * use of the software, conveys no license or title under any patent, | |
| * copyright, or mask work right to the product. NXP Semiconductors | |
| * reserves the right to make changes in the software without | |
| * notification. NXP Semiconductors also make no representation or | |
| * warranty that such application will be suitable for the specified | |
| * use without further testing or modification. | |
| **********************************************************************/ | |
| /* Peripheral group ----------------------------------------------------------- */ | |
| /** @addtogroup MCPWM | |
| * @{ | |
| */ | |
| /* Includes ------------------------------------------------------------------- */ | |
| #include "lpc18xx_mcpwm.h" | |
| #include "lpc18xx_cgu.h" | |
| /* If this source file built with example, the LPC18xx FW library configuration | |
| * file in each example directory ("lpc18xx_libcfg.h") must be included, | |
| * otherwise the default FW library configuration file must be included instead | |
| */ | |
| #ifdef __BUILD_WITH_EXAMPLE__ | |
| #include "lpc18xx_libcfg.h" | |
| #else | |
| #include "lpc18xx_libcfg_default.h" | |
| #endif /* __BUILD_WITH_EXAMPLE__ */ | |
| #ifdef _MCPWM | |
| /* Public Functions ----------------------------------------------------------- */ | |
| /** @addtogroup MCPWM_Public_Functions | |
| * @{ | |
| */ | |
| /*********************************************************************//** | |
| * @brief Initializes the MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_Init(LPC_MCPWM_Type *MCPWMx) | |
| { | |
| /* Turn On MCPWM PCLK */ | |
| //LPC_CGU->BASE_VPB1_CLK = (SRC_PL160M_0<<24) | (1<<11); | |
| CGU_EntityConnect(CGU_CLKSRC_PLL1, CGU_BASE_APB1); | |
| MCPWMx->CAP_CLR = MCPWM_CAPCLR_CAP(0) | MCPWM_CAPCLR_CAP(1) | MCPWM_CAPCLR_CAP(2); | |
| MCPWMx->INTF_CLR = MCPWM_INT_ILIM(0) | MCPWM_INT_ILIM(1) | MCPWM_INT_ILIM(2) \ | |
| | MCPWM_INT_IMAT(0) | MCPWM_INT_IMAT(1) | MCPWM_INT_IMAT(2) \ | |
| | MCPWM_INT_ICAP(0) | MCPWM_INT_ICAP(1) | MCPWM_INT_ICAP(2); | |
| MCPWMx->INTEN_CLR = MCPWM_INT_ILIM(0) | MCPWM_INT_ILIM(1) | MCPWM_INT_ILIM(2) \ | |
| | MCPWM_INT_IMAT(0) | MCPWM_INT_IMAT(1) | MCPWM_INT_IMAT(2) \ | |
| | MCPWM_INT_ICAP(0) | MCPWM_INT_ICAP(1) | MCPWM_INT_ICAP(2); | |
| } | |
| /*********************************************************************//** | |
| * @brief Configures each channel in MCPWM peripheral according to the | |
| * specified parameters in the MCPWM_CHANNEL_CFG_Type. | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] channelNum Channel number, should be: 0..2. | |
| * @param[in] channelSetup Pointer to a MCPWM_CHANNEL_CFG_Type structure | |
| * that contains the configuration information for the specified | |
| * MCPWM channel. | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_ConfigChannel(LPC_MCPWM_Type *MCPWMx, uint32_t channelNum, | |
| MCPWM_CHANNEL_CFG_Type * channelSetup) | |
| { | |
| if (channelNum <= 2) | |
| { | |
| if (channelNum == MCPWM_CHANNEL_0) | |
| { | |
| MCPWMx->TC[0] = channelSetup->channelTimercounterValue; | |
| MCPWMx->LIM[0] = channelSetup->channelPeriodValue; | |
| MCPWMx->MAT[0] = channelSetup->channelPulsewidthValue; | |
| } | |
| else if (channelNum == MCPWM_CHANNEL_1) | |
| { | |
| MCPWMx->TC[1] = channelSetup->channelTimercounterValue; | |
| MCPWMx->LIM[1] = channelSetup->channelPeriodValue; | |
| MCPWMx->MAT[1] = channelSetup->channelPulsewidthValue; | |
| } | |
| else if (channelNum == MCPWM_CHANNEL_2) | |
| { | |
| MCPWMx->TC[2] = channelSetup->channelTimercounterValue; | |
| MCPWMx->LIM[2] = channelSetup->channelPeriodValue; | |
| MCPWMx->MAT[2] = channelSetup->channelPulsewidthValue; | |
| } | |
| else | |
| { | |
| return; | |
| } | |
| if (channelSetup->channelType == MCPWM_CHANNEL_CENTER_MODE) | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_CENTER(channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_CENTER(channelNum); | |
| } | |
| if (channelSetup->channelPolarity == MCPWM_CHANNEL_PASSIVE_HI) | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_POLAR(channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_POLAR(channelNum); | |
| } | |
| if (channelSetup->channelDeadtimeEnable == ENABLE) | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_DTE(channelNum); | |
| MCPWMx->DT &= ~(MCPWM_DT(channelNum, 0x3FF)); | |
| MCPWMx->DT |= MCPWM_DT(channelNum, channelSetup->channelDeadtimeValue); | |
| } | |
| else | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_DTE(channelNum); | |
| } | |
| if (channelSetup->channelUpdateEnable == ENABLE) | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_DISUP(channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_DISUP(channelNum); | |
| } | |
| } | |
| } | |
| /*********************************************************************//** | |
| * @brief Write to MCPWM shadow registers - Update the value for period | |
| * and pulse width in MCPWM peripheral. | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] channelNum Channel Number, should be: 0..2. | |
| * @param[in] channelSetup Pointer to a MCPWM_CHANNEL_CFG_Type structure | |
| * that contains the configuration information for the specified | |
| * MCPWM channel. | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_WriteToShadow(LPC_MCPWM_Type *MCPWMx, uint32_t channelNum, | |
| MCPWM_CHANNEL_CFG_Type *channelSetup) | |
| { | |
| if (channelNum == MCPWM_CHANNEL_0) | |
| { | |
| MCPWMx->LIM[0] = channelSetup->channelPeriodValue; | |
| MCPWMx->MAT[0] = channelSetup->channelPulsewidthValue; | |
| } | |
| else if (channelNum == MCPWM_CHANNEL_1) | |
| { | |
| MCPWMx->LIM[1] = channelSetup->channelPeriodValue; | |
| MCPWMx->MAT[1] = channelSetup->channelPulsewidthValue; | |
| } | |
| else if (channelNum == MCPWM_CHANNEL_2) | |
| { | |
| MCPWMx->LIM[2] = channelSetup->channelPeriodValue; | |
| MCPWMx->MAT[2] = channelSetup->channelPulsewidthValue; | |
| } | |
| } | |
| /*********************************************************************//** | |
| * @brief Configures capture function in MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] channelNum MCI (Motor Control Input pin) number, should be: 0..2 | |
| * @param[in] captureConfig Pointer to a MCPWM_CAPTURE_CFG_Type structure | |
| * that contains the configuration information for the | |
| * specified MCPWM capture. | |
| * @return | |
| **********************************************************************/ | |
| void MCPWM_ConfigCapture(LPC_MCPWM_Type *MCPWMx, uint32_t channelNum, | |
| MCPWM_CAPTURE_CFG_Type *captureConfig) | |
| { | |
| if ((channelNum <= MCPWM_CHANNEL_2)) | |
| { | |
| if (captureConfig->captureFalling == ENABLE) | |
| { | |
| MCPWMx->CAPCON_SET = MCPWM_CAPCON_CAPMCI_FE(captureConfig->captureChannel, channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CAPCON_CLR = MCPWM_CAPCON_CAPMCI_FE(captureConfig->captureChannel, channelNum); | |
| } | |
| if (captureConfig->captureRising == ENABLE) | |
| { | |
| MCPWMx->CAPCON_SET = MCPWM_CAPCON_CAPMCI_RE(captureConfig->captureChannel, channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CAPCON_CLR = MCPWM_CAPCON_CAPMCI_RE(captureConfig->captureChannel, channelNum); | |
| } | |
| if (captureConfig->timerReset == ENABLE) | |
| { | |
| MCPWMx->CAPCON_SET = MCPWM_CAPCON_RT(captureConfig->captureChannel); | |
| } | |
| else | |
| { | |
| MCPWMx->CAPCON_CLR = MCPWM_CAPCON_RT(captureConfig->captureChannel); | |
| } | |
| if (captureConfig->hnfEnable == ENABLE) | |
| { | |
| MCPWMx->CAPCON_SET = MCPWM_CAPCON_HNFCAP(channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CAPCON_CLR = MCPWM_CAPCON_HNFCAP(channelNum); | |
| } | |
| } | |
| } | |
| /*********************************************************************//** | |
| * @brief Clears current captured value in specified capture channel | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] captureChannel Capture channel number, should be: 0..2 | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_ClearCapture(LPC_MCPWM_Type *MCPWMx, uint32_t captureChannel) | |
| { | |
| MCPWMx->CAP_CLR = MCPWM_CAPCLR_CAP(captureChannel); | |
| } | |
| /*********************************************************************//** | |
| * @brief Get current captured value in specified capture channel | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] captureChannel Capture channel number, should be: 0..2 | |
| * @return None | |
| **********************************************************************/ | |
| uint32_t MCPWM_GetCapture(LPC_MCPWM_Type *MCPWMx, uint32_t captureChannel) | |
| { | |
| if (captureChannel == MCPWM_CHANNEL_0) | |
| { | |
| return (MCPWMx->CAP[0]); | |
| } | |
| else if (captureChannel == MCPWM_CHANNEL_1) | |
| { | |
| return (MCPWMx->CAP[1]); | |
| } | |
| else if (captureChannel == MCPWM_CHANNEL_2) | |
| { | |
| return (MCPWMx->CAP[2]); | |
| } | |
| return (0); | |
| } | |
| /*********************************************************************//** | |
| * @brief Configures Count control in MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] channelNum Channel number, should be: 0..2 | |
| * @param[in] countMode Count mode, should be: | |
| * - ENABLE: Enables count mode. | |
| * - DISABLE: Disable count mode, the channel is in timer mode. | |
| * @param[in] countConfig Pointer to a MCPWM_COUNT_CFG_Type structure | |
| * that contains the configuration information for the | |
| * specified MCPWM count control. | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_CountConfig(LPC_MCPWM_Type *MCPWMx, uint32_t channelNum, | |
| uint32_t countMode, MCPWM_COUNT_CFG_Type *countConfig) | |
| { | |
| if ((channelNum <= 2)) | |
| { | |
| if (countMode == ENABLE) | |
| { | |
| MCPWMx->CNTCON_SET = MCPWM_CNTCON_CNTR(channelNum); | |
| if (countConfig->countFalling == ENABLE) | |
| { | |
| MCPWMx->CNTCON_SET = MCPWM_CNTCON_TCMCI_FE(countConfig->counterChannel,channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CNTCON_CLR = MCPWM_CNTCON_TCMCI_FE(countConfig->counterChannel,channelNum); | |
| } | |
| if (countConfig->countRising == ENABLE) | |
| { | |
| MCPWMx->CNTCON_SET = MCPWM_CNTCON_TCMCI_RE(countConfig->counterChannel,channelNum); | |
| } | |
| else | |
| { | |
| MCPWMx->CNTCON_CLR = MCPWM_CNTCON_TCMCI_RE(countConfig->counterChannel,channelNum); | |
| } | |
| } | |
| else | |
| { | |
| MCPWMx->CNTCON_CLR = MCPWM_CNTCON_CNTR(channelNum); | |
| } | |
| } | |
| } | |
| /*********************************************************************//** | |
| * @brief Start MCPWM activity for each MCPWM channel | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] channel0 State of this command on channel 0: | |
| * - ENABLE: 'Start' command will effect on channel 0 | |
| * - DISABLE: 'Start' command will not effect on channel 0 | |
| * @param[in] channel1 State of this command on channel 1: | |
| * - ENABLE: 'Start' command will effect on channel 1 | |
| * - DISABLE: 'Start' command will not effect on channel 1 | |
| * @param[in] channel2 State of this command on channel 2: | |
| * - ENABLE: 'Start' command will effect on channel 2 | |
| * - DISABLE: 'Start' command will not effect on channel 2 | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_Start(LPC_MCPWM_Type *MCPWMx, uint32_t channel0, | |
| uint32_t channel1, uint32_t channel2) | |
| { | |
| uint32_t regVal = 0; | |
| regVal = (channel0 ? MCPWM_CON_RUN(0) : 0) | (channel1 ? MCPWM_CON_RUN(1) : 0) \ | |
| | (channel2 ? MCPWM_CON_RUN(2) : 0); | |
| MCPWMx->CON_SET = regVal; | |
| } | |
| /*********************************************************************//** | |
| * @brief Stop MCPWM activity for each MCPWM channel | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] channel0 State of this command on channel 0: | |
| * - ENABLE: 'Stop' command will effect on channel 0 | |
| * - DISABLE: 'Stop' command will not effect on channel 0 | |
| * @param[in] channel1 State of this command on channel 1: | |
| * - ENABLE: 'Stop' command will effect on channel 1 | |
| * - DISABLE: 'Stop' command will not effect on channel 1 | |
| * @param[in] channel2 State of this command on channel 2: | |
| * - ENABLE: 'Stop' command will effect on channel 2 | |
| * - DISABLE: 'Stop' command will not effect on channel 2 | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_Stop(LPC_MCPWM_Type *MCPWMx, uint32_t channel0, | |
| uint32_t channel1, uint32_t channel2) | |
| { | |
| uint32_t regVal = 0; | |
| regVal = (channel0 ? MCPWM_CON_RUN(0) : 0) | (channel1 ? MCPWM_CON_RUN(1) : 0) \ | |
| | (channel2 ? MCPWM_CON_RUN(2) : 0); | |
| MCPWMx->CON_CLR = regVal; | |
| } | |
| /*********************************************************************//** | |
| * @brief Enables/Disables 3-phase AC motor mode on MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] acMode State of this command, should be: | |
| * - ENABLE. | |
| * - DISABLE. | |
| * @return None | |
| **********************************************************************/ | |
| void MCPWM_ACMode(LPC_MCPWM_Type *MCPWMx, uint32_t acMode) | |
| { | |
| if (acMode) | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_ACMODE; | |
| } | |
| else | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_ACMODE; | |
| } | |
| } | |
| /*********************************************************************//** | |
| * @brief Enables/Disables 3-phase DC motor mode on MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] dcMode State of this command, should be: | |
| * - ENABLE. | |
| * - DISABLE. | |
| * @param[in] outputInvered Polarity of the MCOB outputs for all 3 channels, | |
| * should be: | |
| * - ENABLE :The MCOB outputs have opposite polarity from the MCOA outputs. | |
| * - DISABLE :The MCOB outputs have the same basic polarity as the MCOA outputs. | |
| * @param[in] outputPattern A value contains bits that enables/disables the specified | |
| * output pins route to the internal MCOA0 signal, should be: | |
| * - MCPWM_PATENT_A0 :MCOA0 tracks internal MCOA0 | |
| * - MCPWM_PATENT_B0 :MCOB0 tracks internal MCOA0 | |
| * - MCPWM_PATENT_A1 :MCOA1 tracks internal MCOA0 | |
| * - MCPWM_PATENT_B1 :MCOB1 tracks internal MCOA0 | |
| * - MCPWM_PATENT_A2 :MCOA2 tracks internal MCOA0 | |
| * - MCPWM_PATENT_B2 :MCOB2 tracks internal MCOA0 | |
| * @return None | |
| * | |
| * Note: all these outputPatent values above can be ORed together for using as input parameter. | |
| **********************************************************************/ | |
| void MCPWM_DCMode(LPC_MCPWM_Type *MCPWMx, uint32_t dcMode, | |
| uint32_t outputInvered, uint32_t outputPattern) | |
| { | |
| if (dcMode) | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_DCMODE; | |
| } | |
| else | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_DCMODE; | |
| } | |
| if (outputInvered) | |
| { | |
| MCPWMx->CON_SET = MCPWM_CON_INVBDC; | |
| } | |
| else | |
| { | |
| MCPWMx->CON_CLR = MCPWM_CON_INVBDC; | |
| } | |
| MCPWMx->CCP = outputPattern; | |
| } | |
| /*********************************************************************//** | |
| * @brief Configures the specified interrupt in MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] ulIntType Interrupt type, should be: | |
| * - MCPWM_INTFLAG_LIM0 :Limit interrupt for channel (0) | |
| * - MCPWM_INTFLAG_MAT0 :Match interrupt for channel (0) | |
| * - MCPWM_INTFLAG_CAP0 :Capture interrupt for channel (0) | |
| * - MCPWM_INTFLAG_LIM1 :Limit interrupt for channel (1) | |
| * - MCPWM_INTFLAG_MAT1 :Match interrupt for channel (1) | |
| * - MCPWM_INTFLAG_CAP1 :Capture interrupt for channel (1) | |
| * - MCPWM_INTFLAG_LIM2 :Limit interrupt for channel (2) | |
| * - MCPWM_INTFLAG_MAT2 :Match interrupt for channel (2) | |
| * - MCPWM_INTFLAG_CAP2 :Capture interrupt for channel (2) | |
| * - MCPWM_INTFLAG_ABORT :Fast abort interrupt | |
| * @param[in] NewState New State of this command, should be: | |
| * - ENABLE. | |
| * - DISABLE. | |
| * @return None | |
| * | |
| * Note: all these ulIntType values above can be ORed together for using as input parameter. | |
| **********************************************************************/ | |
| void MCPWM_IntConfig(LPC_MCPWM_Type *MCPWMx, uint32_t ulIntType, FunctionalState NewState) | |
| { | |
| if (NewState) | |
| { | |
| MCPWMx->INTEN_SET = ulIntType; | |
| } | |
| else | |
| { | |
| MCPWMx->INTEN_CLR = ulIntType; | |
| } | |
| } | |
| /*********************************************************************//** | |
| * @brief Sets/Forces the specified interrupt for MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] ulIntType Interrupt type, should be: | |
| * - MCPWM_INTFLAG_LIM0 :Limit interrupt for channel (0) | |
| * - MCPWM_INTFLAG_MAT0 :Match interrupt for channel (0) | |
| * - MCPWM_INTFLAG_CAP0 :Capture interrupt for channel (0) | |
| * - MCPWM_INTFLAG_LIM1 :Limit interrupt for channel (1) | |
| * - MCPWM_INTFLAG_MAT1 :Match interrupt for channel (1) | |
| * - MCPWM_INTFLAG_CAP1 :Capture interrupt for channel (1) | |
| * - MCPWM_INTFLAG_LIM2 :Limit interrupt for channel (2) | |
| * - MCPWM_INTFLAG_MAT2 :Match interrupt for channel (2) | |
| * - MCPWM_INTFLAG_CAP2 :Capture interrupt for channel (2) | |
| * - MCPWM_INTFLAG_ABORT :Fast abort interrupt | |
| * @return None | |
| * Note: all these ulIntType values above can be ORed together for using as input parameter. | |
| **********************************************************************/ | |
| void MCPWM_IntSet(LPC_MCPWM_Type *MCPWMx, uint32_t ulIntType) | |
| { | |
| MCPWMx->INTF_SET = ulIntType; | |
| } | |
| /*********************************************************************//** | |
| * @brief Clear the specified interrupt pending for MCPWM peripheral | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] ulIntType Interrupt type, should be: | |
| * - MCPWM_INTFLAG_LIM0 :Limit interrupt for channel (0) | |
| * - MCPWM_INTFLAG_MAT0 :Match interrupt for channel (0) | |
| * - MCPWM_INTFLAG_CAP0 :Capture interrupt for channel (0) | |
| * - MCPWM_INTFLAG_LIM1 :Limit interrupt for channel (1) | |
| * - MCPWM_INTFLAG_MAT1 :Match interrupt for channel (1) | |
| * - MCPWM_INTFLAG_CAP1 :Capture interrupt for channel (1) | |
| * - MCPWM_INTFLAG_LIM2 :Limit interrupt for channel (2) | |
| * - MCPWM_INTFLAG_MAT2 :Match interrupt for channel (2) | |
| * - MCPWM_INTFLAG_CAP2 :Capture interrupt for channel (2) | |
| * - MCPWM_INTFLAG_ABORT :Fast abort interrupt | |
| * @return None | |
| * Note: all these ulIntType values above can be ORed together for using as input parameter. | |
| **********************************************************************/ | |
| void MCPWM_IntClear(LPC_MCPWM_Type *MCPWMx, uint32_t ulIntType) | |
| { | |
| MCPWMx->INTF_CLR = ulIntType; | |
| } | |
| /*********************************************************************//** | |
| * @brief Check whether if the specified interrupt in MCPWM is set or not | |
| * @param[in] MCPWMx Motor Control PWM peripheral selected, should be: LPC_MCPWM | |
| * @param[in] ulIntType Interrupt type, should be: | |
| * - MCPWM_INTFLAG_LIM0 :Limit interrupt for channel (0) | |
| * - MCPWM_INTFLAG_MAT0 :Match interrupt for channel (0) | |
| * - MCPWM_INTFLAG_CAP0 :Capture interrupt for channel (0) | |
| * - MCPWM_INTFLAG_LIM1 :Limit interrupt for channel (1) | |
| * - MCPWM_INTFLAG_MAT1 :Match interrupt for channel (1) | |
| * - MCPWM_INTFLAG_CAP1 :Capture interrupt for channel (1) | |
| * - MCPWM_INTFLAG_LIM2 :Limit interrupt for channel (2) | |
| * - MCPWM_INTFLAG_MAT2 :Match interrupt for channel (2) | |
| * - MCPWM_INTFLAG_CAP2 :Capture interrupt for channel (2) | |
| * - MCPWM_INTFLAG_ABORT :Fast abort interrupt | |
| * @return None | |
| **********************************************************************/ | |
| FlagStatus MCPWM_GetIntStatus(LPC_MCPWM_Type *MCPWMx, uint32_t ulIntType) | |
| { | |
| return ((MCPWMx->INTF & ulIntType) ? SET : RESET); | |
| } | |
| /** | |
| * @} | |
| */ | |
| #endif /* _MCPWM */ | |
| /** | |
| * @} | |
| */ | |
| /* --------------------------------- End Of File ------------------------------ */ |