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

📄 main.c

📁 ARM仿真案例
💻 C
字号:
/*******************************************************************************
*File: EINT1_LED.c
*功能: 使用外部中断1进行LED控制,每当有一次中断时,即取反LED,以便指示中断输入
*******************************************************************************/
#include   "config.h"
#include <intrinsics.h>
#define     LEDCON    0x00000800     /*P0.11 引脚控制LED(DS12),低电平点亮*/


/*******************************************************************************
*名称:IRQ_EINT1()
*功能:外部中断1处理函数
*******************************************************************************/
__irq void  IRQ_Eint1(void)
{  uint32  i;

   i=VICIRQStatus;                   //读出VICIRQStatus的值
   i=IOSET;                          //读出当前LED控制值
   if((i&LEDCON)==0)                 //控制LED输出
   { IOSET=LEDCON;
   }
   else
   { IOCLR=LEDCON;
   }
   while((EXTINT&0x02)!=0)    //等待外部中断信号恢复为高电平
   {  EXTINT=0x02;
   }
}
/*******************************************************************************
*名称: main()
*功能:初始化外部中断1及I/O连接等
*******************************************************************************/

int main()
{  PINSEL0=0x20000000;       //设置I/O口工作模式,P0.14设置为EINT1
   PINSEL1=0x00000000;
   IODIR=LEDCON;             //设置LED控制口为输出,其它I/O为输入
   
   /*打开EINT1中断(不设置向量控制器,即使用非向量IRQ)*/
   VICIntSelect=0x00000000;
   VICIntEnable=0x00008000;
   EXTINT=0x07;               //清除外部中断标志
   __enable_interrupt(); 
   //enable_irq();
     while(1);                  //等待中断
   
}

⌨️ 快捷键说明

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