由按键产生外部中断,并设置为下降沿触发。

根据图1电路,实现如下功能:由按键产生外部中断,并设置为下降沿触发,初始化为向量IRQ中断,中断服务程序将蜂鸣器控制输出信号取反。 

按键蜂鸣器接口电路图阅读实验程序,回答问题(将注释补充完整): 

#include  "config.h" 

#define   LED     (1 << 7 ) 

void __irq  Eint0IRQ (void)

 {     if ((IO0PIN & (1 << 7)) == 0) 

{        IO0SET = 1 << 7;             /* 熄灭发光二极管        */     }     

else {          IO0CLR = 1 << 7;             /* 点亮发光二极管         */

}      while((IO0PIN & (1 << 3)) == 0);     /* 等待按键松开        */     

 EXTINT = 0x01;                   /*                           */     

 VICVectAddr = 0x00;               /*                          */

 } 

int main (void)

 {    

  PINSEL0 = PINSEL0 & (~0x03);     

 PINSEL0 = PINSEL0 | 0x01;         /* 设置P0.3 为外部中断0 管脚 */     

 PINSEL0= PINSEL0&(~(0x03 << 2));  /*设置P0. 7 为GPIO 功能   */      

IO0DIR    = LED;                 /* 设置P0. 7 为输出         */      

IO0SET    = LED;                 /* 设置输出为高电平        */      

IRQEnable();                       /* IRQ 中断使能       */       EXTMODE    = 0x00;               /* 设置外部中断为低电平触发*/     

 VICIntSelect   = 0 << 14;             /*                        */      VICVectCntl0  = 0x20 | 14;            /*                   */      VICVectAddr0  = (uint32)Eint0IRQ;   /* 设置中断服务程序地址    */     

 VICIntEnable  = 1 << 14;             /*                      */      EXTINT = 0x01;                     /*                         */      while(1);                            /*                         */  

   return 0; }

回答以下问题:嵌入式系统中,由C语言编写的中断处理程序,其最大特点是返回值和参数必须是                        类型。

#define的作用是                           __irq 标识具有                                         作用。 

IRQEnable(); 的中断使能作用是通过修改                  来实现的。