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

📄 main.c

📁 MiniARM2200基础包3:中断控制
💻 C
字号:
/****************************************************************************
* 文 件 名:main.c
* 功    能:每当KEY2触发外部中断3,中断服务程序对LED和BUZZER进行控制。
*           使用非向量中断方式。
* 说    明:将跳线器JP4短接。
****************************************************************************/
#include "config.h"

#define BUZZER 1<<21
#define KEY1   1<<20
#define KEY2   1<<22
#define LED    1<<19

/****************************************************************************
* 名    称:IRQ_Eint3()
* 功    能:外部中断EINT3服务函数。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void   __irq IRQ_Eint3(void)
{   uint32  i;
   
    IO0CLR = LED;
    IO0SET = BUZZER;
    for(i=0; i<0xfffff; i++);
    IO0SET = LED;
    IO0CLR = BUZZER;
    for(i=0; i<0xfffff; i++); 
   
    /* 等待外部中断信号恢复为高电平(若信号保持为低电平,中断标志会一直置位) */
    while( (EXTINT&1<<3)!=0 )	
    {  
        EXTINT = 1<<3;					// 清除EINT3中断标志,1<<3 等价于 0x08
    }
    VICVectAddr = 0;					// 向量中断结束
}		

/****************************************************************************
* 名    称: main
* 说    明: 主函数
****************************************************************************/
int  main(void)
{  
    IRQEnable();
                   
    PINSEL0 = 0x00000000;               // 设置P0为GPIO
    PINSEL1 = 0x00000300;               // P0.20设置为EINT3
     
    IO0DIR  = BUZZER | LED;             // 设置GPIO方向            
    
    IO0CLR = BUZZER;                    // 初始化IO
    IO0SET = LED;
                                    		
    EXTMODE = 0x00;						// 设置EINT3中断为电平触发模式
                                    
    /* 打开EINT3中断(使用非向量IRQ) */
    VICIntSelect = 0x00000000;			// 设置所有中断分配为IRQ中断
    VICDefVectAddr = (int)IRQ_Eint3;    // 设置中断服务程序地址
    EXTINT = 1<<3;						// 清除EINT3中断标志
    VICIntEnable = 1<<17;		    	// 使能EINT3中断,EINT3在Bit17上
   
    while(1);							// 等待中断
    return(0);
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/



⌨️ 快捷键说明

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