📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** Descriptions: VIC快速中断实验1
********************************************************************************************************/
#include "config.h"
#include <LPC213X.H>
const BEEP = 1<< 7; /* P0.7控制BEEP */
#define EINT0 14 /* EINT0中断号 */
/*
**********************************************************************************************************
** 函数名称 :FIQ_Exception()
** 函数功能 :FIQ中断。
**********************************************************************************************************
*/
void FIQ_Exception(void)
{
uint32 i;
i = IO0SET; /* 读取当前LED9的控制值 */
if ((i & BEEP) == 0)
IO0SET = BEEP;
else
IO0CLR = BEEP;
/* 等待外部中断信号恢复为高电平
若信号保持为低电平,中断标志会一直置位。*/
while ((EXTINT & 0x01) != 0)
{
EXTINT = 0x01; /* 清除EINT0中断标志 */
}
// while(1); // change it to your code 这一句替换为自己的代码
}
/*
**********************************************************************************************************
** 函数名称 :main()
** 函数功能 :初始化外部中断0为FIQ中断。
** 调试说明 :
**********************************************************************************************************
*/
int main (void)
{ sys_init();
PINSEL0 = 0x00000000; // 管脚连接GPIO
PINSEL1 = 0x00000001; /* 设置管脚连接,P0.16为EINT0 */
IO0DIR = BEEP; /* 设置BEEP控制口为输出,其余输入。 */
EXTMODE = 0x00; /* 设置EINT0为电平触发。 */
/* 极性寄存器使用默认值,0。 */
IO0SET = BEEP;
// FIQEnable(); // FIQ中断使能
/* 打开EINT0中断(使用FIQ中断) */
VICIntSelect = 1 << EINT0; /* 设置EINT0分配为FIQ中断 */
EXTINT = 0x01; /* 清除EINT0中断标志 */
VICIntEnable = 1 << EINT0; /* 使能EINT0中断 */
while (1); /* 等待中断 */
return (0);
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -