📄 iar-
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name: GPIO_INT.c
** Last modified Date: 2007.12.24
** Last Version: V1.1
** Description: Stellaris系列单片机GPIO口中断操作
**
**--------------------------------------------------------------------------------------------------------
** Created By: Zhou Hai Xin
** Created date: 2007.09.20
** Version: V1.0
** Descriptions: 程序正常运行时,熄灭LED指示灯。当按键按下时,进入中断,点亮LED指示
** 灯。按键放开后,又熄灭LED指示灯。
**
**--------------------------------------------------------------------------------------------------------
** Modified by: Kang qinhua
** Modified date: 2008.01.12
** Version: V1.1
** Description:
**
*********************************************************************************************************/
#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_ints.h"
#include "sysctl.h"
#include "systick.h"
#include "gpio.h"
#include "interrupt.h"
#define KEY1 GPIO_PIN_2 /* 定义KEY1 */
#define LED3 GPIO_PIN_6 /* 定义LED3 */
/*********************************************************************************************************
** Function name: GPIO_Port_E_ISR
** Descriptions: 首先清除中断标志,再点亮LED3。
** input parameters: NONE
** output parameters: NONE
** Returned value: NONE
** Created By: Zhou Hai Xin
** Created date: 2007.09.20
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void GPIO_Port_E_ISR(void)
{
GPIOPinIntClear(GPIO_PORTE_BASE, KEY1); /* 清除中断标志 */
GPIOPinWrite(GPIO_PORTB_BASE, LED3, ~LED3); /* 点亮LED3 */
}
/*********************************************************************************************************
** Function name: main
** Descriptions: 熄灭LED3,并等待按键的中断。
** input parameters: NONE
** output parameters: NONE
** Returned value: NONE
** Created By: Zhou Hai Xin
** Created date: 2007.09.20
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int main(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); /* 使能GPIO PB口 */
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); /* 使能GPIO PE口 */
GPIODirModeSet(GPIO_PORTE_BASE, KEY1, GPIO_DIR_MODE_IN); /* 设置连接KEY1的PE2为输入 */
GPIODirModeSet(GPIO_PORTB_BASE, LED3, GPIO_DIR_MODE_OUT); /* 设置连接LED3的PB6为输出 */
GPIOPadConfigSet(GPIO_PORTE_BASE, KEY1, /* 设置KEY1的驱动强度和类型 */
GPIO_STRENGTH_4MA, /* 4mA的输出驱动强度 */
GPIO_PIN_TYPE_STD); /* 设置为推挽管脚 */
GPIOPadConfigSet(GPIO_PORTB_BASE, LED3, /* 设置LED3的驱动强度和类型 */
GPIO_STRENGTH_4MA, /* 4mA的输出驱动强度 */
GPIO_PIN_TYPE_STD); /* 设置为推挽管脚 */
GPIOIntTypeSet(GPIO_PORTE_BASE, KEY1, GPIO_LOW_LEVEL); /* 设置KEY1中断的触发方式为低 */
/* 电平触发 */
GPIOPinIntEnable(GPIO_PORTE_BASE, KEY1); /* 使能KEY1中断 */
IntEnable(INT_GPIOE); /* 使能GPIO PE 口中断 */
while (1) {
GPIOPinWrite(GPIO_PORTB_BASE, LED3, LED3); /* 熄灭LED3 */
}
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -