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

📄 main.c

📁 ARM仿真案例
💻 C
字号:
/*******************************************************************************
*File: Main.c
*功能: 系统进入掉电状态,并允许外部中断1唤醒
*******************************************************************************/
#include "config.h"

#define   LED1CON     0x00000400           /*P0.10口为LED1控制端*/

/*******************************************************************************
*名称: IRQ_EINT1()
*功能: 外部中断1中断处理程序
*******************************************************************************/
void __irq IRQ_EINT1(void)
{ while((EXTINT&0x02)!=0)               //等待外部中断信号恢复为高电平
  {EXTINT=0x02;                         //清除EINT1中断标志
  }
  VICVectAddr=0x00;                     //中断处理结束
}

/*******************************************************************************
*名称:InitEint1()
*功能: 初始化外部中断1,使能IRQ中断
*******************************************************************************/
void InitEint1(void)
{  VICIntSelect=0x00000000;             //设置所有VIC通道为IRQ中断
   VICVectCntl0=0x2F;                   //EINT0通道分配到IRQ Slot0,即优先级最高
   VICVectAddr0=(int)IRQ_EINT1;         //设置EINT1向量地址
   VICIntEnable=0x00008000;            //使能EINT1中断
   EXTWAKE=0x02;                        //允许外部中断1唤醒掉电的CPU
   EXTINT=0x07;                         //清除外部中断标志
}

/*******************************************************************************
*名称:main()
*功能:掉电测试
*******************************************************************************/
int main(void)
{ PINSEL0=0x20000000;          //设置I/O口连接,P0.14设置为EINT1
  PINSEL1=0x00000000;
  IODIR=LED1CON;               //设置LED1控制口为输出,其它I/O为输入
  
  InitEint1();                 //初始化外部中断1,使能IRQ中断

  while(1)
  {  PCONP=0x000;              //关闭定时器,RTC,UART等功能部件
     PCON=0x02;                //系统进入掉电模式
       /*当系统被唤醒后,取反LED控制*/
     if((IOSET&LED1CON)==0)IOSET=LED1CON;
       else IOCLR=LED1CON;
  }
  return(0);
}

⌨️ 快捷键说明

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