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() {}