arm7(lpc2124)外部中断

ARM的P0.25接一个LED,引脚设置时连接EINT1功能,按钮触发中断。中断服务程序另LED快速闪烁。

在这里插入图片描述

#include <LPC2124.H>
#define LEDCON 0x02000000/*LED接在P0.25上*/
typedef unsigned int uint32;
void IRQ_Eint1(void) __attribute__ ((interrupt));/*声明某函数为中断服务子程序的方法*/
uint32 times = 100;/*循环次数默认为100*/
void IRQ_Eint1(void){
  times = 5;
  while((EXTINT&0x02)!=0){
  	EXTINT=0x02;                   //清除EINT1中断标志
  }
  VICVectAddr=0;
}
void delay100(void)  {                         
  unsigned volatile long i,j;
  for(i=0;i<10000;i++)
  for(j=0;j<times;j++)
  ;
  if(times > 100){
  	times--;
  }else if(times <100){
  	times++;
  }
}
int  main(void)
	{
	IO0DIR = LEDCON;
	PINSEL0 = 0x20000000;/*引脚选中EINT1功能*/
	PINSEL1 = 0x00000000;
/*以下为中断控制部分*/		
	VICIntSelect=0;/*全部中断设置为IRQ,若某位为1是FIQ*/
	VICIntEnable=0x00008000;/*使能EINT1,EINT为第15位*/
	VICVectCntl1=0x2F;/*0xF,15号中断*/
	VICVectAddr1=(int)IRQ_Eint1;/*设置中断服务子程序*/
	EXTINT=0x07;	
	  while (1)  {
	  	IO0CLR = LEDCON;
		delay100();
	  	IO0SET = LEDCON;
		delay100();
	  }
}

喜欢的可以关注微信公众号“伊斯电子编程”获取更多单片机资源

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值