📄 eint1_led.c
字号:
/****************************************************************************
* File:EINT1_LED.C
* 功能:使用外部中断1进行LED4的控制,每当有一次中断时,即取反LED4,
* 以便指示中断输入。
* 说明:将跳线器JP8_LED4短接。
****************************************************************************/
#include "config.h"
#define LEDCON 0x00002000 /* P0.13引脚控制LED4,低电平点亮*/
/****************************************************************************
* 名称:IRQ_Eint1()
* 功能:外部中断EINT1服务函数,取反LED4。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void __irq IRQ_Eint1(void)
{ uint32 i;
i = VICIRQStatus; // 读出VICIRQStatus的值
i = IOSET; // 读取当前LED4控制值
if( (i&LEDCON)==0 ) // 控制LED4输出
{ IOSET = LEDCON;
}
else
{ IOCLR = LEDCON;
}
while( (EXTINT&0x02)!=0 ) // 等待外部中断信号恢复为高电平
{ EXTINT = 0x02; // 清除EINT1中断标志
}
}
/****************************************************************************
* 名称:main()
* 功能:初始化外部中断1及IO连接等。
****************************************************************************/
int main(void)
{ PINSEL0 = 0x20000000; // 设置I/O口工作模式,P0.14设置为EINT1
PINSEL1 = 0x00000000;
IODIR = LEDCON; // 设置LED4控制口为输出,其它I/O为输入
/* 打开EINT1中断(不设置向量控制器,即使用非向量IRQ) */
VICIntSelect = 0x00000000;
VICIntEnable = 0x00008000;
EXTINT = 0x07; // 清除外部中断标志
while(1); // 等待中断
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -