📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** Descriptions: VIC快速中断实验2
********************************************************************************************************/
#include "config.h"
#include <LPC213X.H>
const BEEP = 1 << 7; /* P0.7控制BEEP */
#define EINT0 14 /* EINT0中断号 */
#define EINT3 17
/*
**********************************************************************************************************
** 函数名称 :FIQ_Exception()
** 函数功能 :FIQ中断的中断服务程序
**********************************************************************************************************
*/ /* EINT3中断号 */
void FIQ_Exception(void)
{
uint32 FIQ;
FIQ = VICFIQStatus; /* 读取FIQ中断状态寄存器,识别中断源 */
if ((FIQ & (1 << EINT0)) != 0)
IO0CLR = BEEP; /* EINT0点亮LED9 */
if ((FIQ & (1 << EINT3)) != 0)
IO0SET = BEEP; /* EINT3熄灭LED9 */
EXTINT = 0x09; /* 清除EINT0/3中断标志 */
}
/*
**********************************************************************************************************
** 函数名称 :main()
** 函数功能 :初始化外部中断0/3为FIQ中断。
** 调试说明 :
**********************************************************************************************************
*/
int main (void)
{
sys_init();
PINSEL0 = 0x00000000; // 管脚连接GPIO
PINSEL1 = (1 << 0) | /* 设置管脚连接,P0.16为EINT0 */
(3 << 8); /* P0.20连接EINT3 */
IO0DIR = BEEP; /* 设置BEEP/BEEP控制口为输出,其余输入 */
EXTMODE = 0x00; /* 设置EINT0/3为电平触发。 */
IO0SET = BEEP;
// FIQEnable(); // FIQ中断使能
/* 打开EINT0/3中断(使用FIQ中断) */
VICIntSelect = (1 << EINT0) | /* 设置EINT0分配为FIQ中断 */
(1 << EINT3); /* 设置EINT3分配为FIQ中断 */
EXTINT = 0x09; /* 清除EINT0/3中断标志 */
VICIntEnable = (1 << EINT0) | /* 使能EINT0中断 */
(1 << EINT3); /* 使能EINT3中断 */
while (1); /* 等待中断 */
return (0);
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -