我的launchpad是TM4C123GXL,我把中断向量表中指向修改了,为什么当我把timerB换成TIMERA三色灯就可以闪了呢??我把timerA与TIMERB的中断向量全部指向了Timer0IntHandler
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/fpu.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"
#include "driverlib/timer.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
#define uint unsigned int
//extern uint i = 0;
int main(void)
{
uint32_t ui32Period;
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);//该函数可将所指定的I/O口设置为推挽输出
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
ui32Period = (SysCtlClockGet() / 10) / 2;
TimerLoadSet(TIMER0_BASE, TIMER_B, ui32Period -1);
IntEnable(INT_TIMER0B);
TimerIntEnable(TIMER0_BASE, TIMER_TIMB_TIMEOUT);
IntMasterEnable();
TimerEnable(TIMER0_BASE, TIMER_B);
while(1)
{
}
}
void Timer0IntHandler(void)
{
//i = GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_2);
// Clear the timer interrupt
TimerIntClear(TIMER0_BASE, TIMER_TIMB_TIMEOUT);
// Read the current state of the GPIO pin and
// write back the opposite state
if(GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_2))
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 0);
}
else
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 4);
}
}