⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于LPC21XX的外部中断源码
💻 C
字号:
/****************************************************************************
* 文 件 名:main.c
* 功    能:使用外部中断3进行B1的控制,每当有一次中断时,即取反B1控制口,以便指示中断输入。
*           使用向量中断方式,EINT3下降沿有效。
* 说    明:将跳线器JP2 JP4短接,JP7断开,然后反复按下与释放KEY1。
****************************************************************************/
#include  "config.h"
  
#define	  BEEPCON	1<<7				// P0.7引脚控制B1,低电平蜂鸣,1<<7 等价于 0x80

/****************************************************************************
* 名    称:IRQ_Eint3()
* 功    能:外部中断EINT3服务函数,取反B1控制口。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void   __irq IRQ_Eint3(void)
{  
    uint32  i;
   
    i = IO0SET;							// 读取当前B1控制值
    if( (i&BEEPCON)==0 )				// 控制B1输出取反
    {  
        IO0SET = BEEPCON;
    }
    else
    { 
        IO0CLR = BEEPCON;
    }
   
   EXTINT = 1<<3;						// 清除EINT3中断标志,1<<3 等价于 0x08
   VICVectAddr = 0;						// 向量中断结束
}		
			

/****************************************************************************
* 名    称:main()
* 功    能:初始化外部中断3(EINT3)为向量中断,并设置为下降沿触发模式,然后等待外部中断。
* 说    明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位)。
****************************************************************************/
int  main(void)
{  
    PINSEL1 = 3<<8;      			// 设置管脚连接,P0.20设置为EINT3
                                    // 3<<8 等价于 0x00000180
    IO0DIR = BEEPCON;				// 设置B1控制口为输出,其它I/O为输入
    EXTMODE = 1<<3;					// 设置EINT3中断为边沿触发模式
                                    // 1<<3 等价于 0x08
    EXTPOLAR = 0x00;			    // 设置EINT3中断为下降沿触发
                
    /* 打开EINT3中断(设置向量控制器,即使用向量IRQ) */
    VICIntSelect = 0x00000000;		// 设置所有中断分配为IRQ中断
    VICVectCntl0 = 0x20|17;	        // 分配EINT3中断到向量中断0
                                    // 0x20表示向量IRQ使能,1<<17表示EINT3在VIC通道17号
    VICVectAddr0 = (int)IRQ_Eint3; 	// 设置中断服务程序地址
    EXTINT = 1<<3;					// 清除EINT3中断标志	
    VICIntEnable = 1<<17;    		// 使能EINT3中断,EINT3在VIC通道17号
   
    while(1);						// 等待中断
    return(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -