主程序:
/****************************************************************************
* 文件:main.c
* 功能:使用外部中斷1進行LED控制,每當有一次中斷時,即取反LED,以便指示中斷輸入
****************************************************************************/
#include "config.h"
#define LEDCON 0x00000800
/****************************************************************************
* 名稱:DelayNS()
* 功能:長軟件延時
****************************************************************************/
void __irq IRQ_Eint1(void)
{ uint32 i;
i=VICIRQStatus; //讀出VICIRQStatus的值
i=IO0SET; //讀出當前LED2控制值
if((i&LEDCON)==0) //控制LED2控制值
{ IO0SET=LEDCON;
}
else
{ IO0CLR=LEDCON;
}
while((EXTINT&0x02)!=0) //等待外部中斷信號恢復為高電平
{ EXTINT=0x02; //清除EINT1中斷標志
}
VICVectAddr=0x00;
}
/****************************************************************************
* 名稱:main()
* 功能:初始化外部中斷1及I/O連接等
****************************************************************************/
int main(void)
{
PINSEL0=0x20000000;//設置I/O端口工作模式,P0.14設置為EINT1
PINSEL1=0x00000000;
IO0DIR=LEDCON;//設置LED控制口為輸出,其它I/O為輸入
IO0SET=LEDCON;
IO0CLR=LEDCON;
VICIntSelect=0;
VICIntEnable=0x00008000;
VICVectCntl1=0x2F;
VICVectAddr1=(int)IRQ_Eint1;
EXTINT=0x07;
while(1);
}