我的程序的意图是在每进入PWM中断以后LED取反一次.
目前的状态是PWM工作正常,但是LED长亮,请大家帮我分析一下看是哪里问题.谢谢!
PWM.C文件如下
//*****************************************************************************
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_pwm.h"
#include "inc/hw_sysctl.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/interrupt.h"
#include "driverlib/pwm.h"
#include "led-test.h"
#include "driverlib/gpio.h"
#include "pin_map_lm4f230h5qr.h" //自己定义的文件,在GPIOPinConfigSet()函数里面用到
void PWM1G3IntHandler(void)
{
static unsigned long ulcount;
PWMGenIntClear(PWM1_BASE,PWM_INT_GEN_3,PWM_INT_CNT_ZERO);
IntMasterDisable();
GPIOPinWrite(LED_BASE,LED1,~GPIOPinRead(LED_BASE,LED1));
//GPIOPinWrite(LED_BASE,LED1,0X00);
IntMasterEnable();
}
void PWM_Init()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); /* 使能PWM输出所在GPIO */
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1); /* 使能PWM模块 注意这里不能写“PWM”或者“PWM0* 为什么写PWM也可以?*/
SysCtlPWMClockSet(SYSCTL_PWMDIV_1); /* PWM时钟配置:不分频 */
GPIOPinConfigure(GPIO_PF2_M1PWM6);
GPIOPinConfigure(GPIO_PF3_M1PWM7);
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2); /* PF2配置为PWM功能 D5 */
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_3); /* PF3配置为PWM功能 D4 */
PWMGenConfigure(PWM1_BASE, PWM_GEN_3, /* 配置PWM发生器3:加减计数 */
PWM_GEN_MODE_DOWN );
PWMGenPeriodSet(PWM1_BASE, PWM_GEN_3, 64000); /* 设置PWM发生器1的周期 注意是PWM1_BASE而不是PWM_BASE1 */
PWMPulseWidthSet(PWM1_BASE,PWM_OUT_6, 200); /* 设置PWM6输出的脉冲宽度 注意 */
PWMPulseWidthSet(PWM1_BASE,PWM_OUT_7, 200); /* 设置PWM7输出的脉冲宽度 注意 */
PWMOutputState(PWM1_BASE, ( PWM_OUT_6_BIT | PWM_OUT_7_BIT), true); /* 使能PWM输出 注意*/
PWMGenEnable(PWM1_BASE, PWM_GEN_3); /* 使能PWM发生器1, 注意 */
/* 开始产生PWM方波 */
IntMasterEnable();
IntEnable(INT_PWM1);
PWMIntEnable(PWM1_BASE,PWM_INT_GEN_3);
PWMGenIntTrigEnable(PWM1_BASE,PWM_GEN_3,PWM_INT_CNT_ZERO);
GPIOPinWrite(LED_BASE,LED1,0XFF);
PWMGenEnable(PWM1_BASE, PWM_GEN_3); /* 使能PWM发生器1, 注意 */
/* 开始产生PWM方波 */
}
startup文件
DCD IntDefaultHandler ; GPIO Port S
DCD IntDefaultHandler ; PWM 1 Generator 0
DCD IntDefaultHandler ; PWM 1 Generator 1
DCD IntDefaultHandler ; PWM 1 Generator 2
import PWM1G3IntHandler
DCD PWM1G3IntHandler ; PWM 1 Generator 3
DCD IntDefaultHandler ; PWM 1 Fault