这个是我测试的一个很简单的程序,一开始红灯亮,进入中断蓝灯亮,对PB6输入PWM波,发现进不去中断程序。编译什么都没问题,问题不知道怎么解决。
int main(void) {
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);//系统时钟工作在40MHz
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
GPIOPinTypeTimer(GPIO_PORTB_BASE, GPIO_PIN_6);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2|GPIO_PIN_1);
GPIOPinConfigure(GPIO_PB6_T0CCP0);
GPIODirModeSet(GPIO_PORTB_BASE,GPIO_PIN_6,GPIO_DIR_MODE_IN);
TimerConfigure(TIMER0_BASE, TIMER_CFG_A_CAP_COUNT);
TimerControlEvent(TIMER0_BASE, TIMER_A,TIMER_EVENT_POS_EDGE);
TimerLoadSet(TIMER0_BASE, TIMER_A, 200);
TimerMatchSet(TIMER0_BASE, TIMER_A, 0);
IntEnable(INT_TIMER0A);
TimerIntEnable(TIMER0_BASE, TIMER_CAPA_MATCH);
IntMasterEnable();
TimerEnable(TIMER0_BASE, TIMER_A);
while(1) {
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);//红灯亮
}
}
void Timer0IntHandler(void) {
TimerIntClear(TIMER0_BASE, TIMER_CAPA_MATCH); // Clear the timer interrupt
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 4);//蓝灯亮
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);//红灯灭
}