#include "hw_memmap.h"<br />#include "hw_types.h"<br />#include "hw_ints.h"<br />#include "gpio.h"<br />#include "sysctl.h"<br />#include "timer.h"<br />#include "interrupt.h"<br />#define PINS1 GPIO_PIN_7<br /><br />void Timer0A_ISR (void) <br />{<br /> TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);// 清除定时器0中断<br /> GPIOPinWrite(GPIO_PORTD_BASE, PINS1,GPIOPinRead(GPIO_PORTD_BASE, PINS1) ^ PINS1); // 翻转GPIO D7 端口 (LED不停的翻转闪烁)<br /> TimerEnable(TIMER0_BASE, TIMER_A); // 使能定时器0<br />}<br /><br />int main(void)<br />{<br /> SysCtlClockSet( SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |<br /> SYSCTL_XTAL_6MHZ ); <br /> SysCtlPeripheralEnable( SYSCTL_PERIPH_TIMER0 ); <br /> SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOD ); <br /> IntMasterEnable(); <br /> GPIODirModeSet(GPIO_PORTD_BASE, PINS1,GPIO_DIR_MODE_OUT); <br /> GPIOPinWrite( GPIO_PORTD_BASE, PINS1, 1 ); <br /> TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER); <br /> TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet()/2); <br /> TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); <br /> TimerEnable(TIMER0_BASE, TIMER_A); <br /> IntEnable(INT_TIMER0A); <br /> while(1);<br />}<br /><br />上述实验使LED每秒2次的频率不停的闪烁,比如我想要LED闪烁10秒中以后就不闪烁,不知该怎样利用定时器产生,希望Zlg指点。 |
|