Thread 中讨论的其他器件:Energia、 EK-TM4C1294XL
工具与软件:
我已上传下面的代码。 我使用的是 Code Composer Studio v11.2。
PF_0的输出切换18次、当中断发生时、它保持在高电平状态。 我认为我无法使用 ROM_TimerIntClear (TIMER0_BASE、TIMER_TIMA_TIMEOUT)清除中断标志;
您能评论以下代码吗?
#include <stdint.h>
#include <stdbool.h>
#include "inc/tm4c1294ncpdt.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/timer.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#define SYSTEM_CLOCK 120000000
void Timer0IntHandler(void)
{
ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
digitalWrite(PF_0, 0);
delay(500);
digitalWrite(PF_0, 1);
delay(500);
}
void ConfigureTimer(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
uint32_t timerLoad=399500000;
TimerLoadSet(TIMER0_BASE,TIMER_A, timerLoad - 1);
IntEnable(INT_TIMER0A);
TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
TimerEnable(TIMER0_BASE, TIMER_A);
}
void setup(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
pinMode(PF_0, OUTPUT);
SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), SYSTEM_CLOCK);
ConfigureTimer();
IntMasterEnable();
while (1)
{
digitalWrite(PF_0, 0);
delay(100);
digitalWrite(PF_0, 1);
delay(100);
}
}
void loop() {}

