// SysTick中断示例
#include "hw_types.h" #include "hw_memmap.h" #include "hw_ints.h" #include "hw_sysctl.h" #include "hw_gpio.h" #include "interrupt.h" #include "sysctl.h" #include "gpio.h" #include "systick.h"
#define SysCtlPeriEn SysCtlPeripheralEnable #define GPIOPinTypeIn GPIOPinTypeGPIOInput #define GPIOPinTypeOut GPIOPinTypeGPIOOutput
#define LED GPIO_PORTB_BASE , GPIO_PIN_0 #define KEY_JTAG GPIO_PORTA_BASE , GPIO_PIN_2
void waitJTAG ( void ) { SysCtlPeriEn ( SYSCTL_PERIPH_GPIOA ) ; /* 使能GPIOA端口 */ GPIOPinTypeIn ( KEY_JTAG ) ; /* 设置按键所在的PA2管脚为输入 */ if ( GPIOPinRead ( KEY_JTAG ) == 0x00 ) { /* 如果有键按下,则进入 */ for ( ; ; ) ; /* 死循环,以等待JTAG连接 */ } }
int main ( void ) { waitJTAG ( ) ; /* 防止JTAG失效 */
SysCtlPeriEn ( SYSCTL_PERIPH_GPIOB ) ; /* 使能GPIOB模块 */ GPIOPinTypeOut ( LED ) ; /* 设置LED所在管脚为输出模式 */
SysTickPeriodSet ( 3000000UL ) ; /* 设置SysTick计数器的周期值 */ SysTickIntEnable ( ) ; /* 使能SysTick中断 */ IntMasterEnable ( ) ; /* 使能处理器中断 */ SysTickEnable ( ) ; /* 使能SysTick计数器 */
for ( ; ; ) { } }
/* SysTick计数器的中断服务函数 */ void SysTick_ISR ( void ) { static unsigned char ucVal = 0x00 ;
GPIOPinWrite ( LED , ucVal ) ; /* 反转LED显示 */ ucVal ^= 0x01 ; }
(zlgmcu_wdx) |