天嵌 ARM开发社区

 找回密码
 注册
查看: 1927|回复: 3

外部中断求助

[复制链接]
xinyangbit 发表于 2012-4-1 10:43:43 | 显示全部楼层 |阅读模式
我用外部中断来控制led等,按下一个键对应的灯亮或灭
EINT0 1 2都好使,但EINT4就没反应了,下面是源代码,向大家求助!

/************KEY 中断控制LED  BY WAL ****************
4 个用户按键
四个输入引脚:
    EINT0 -----( GPF0  )----INPUT---K4
    EINT2 -----( GPF2  )----INPUT---K3
    EINT4 -----( GPF4  )----INPUT---K2
    EINT1 -----( GPF1  )----INPUT---K1
****************************************************/
void __irq EINT_KEY(void)
{
//清中断,向对应位写1 可清0。
U32 a,b,c;
a = rSRCPND;
rSRCPND = a;
b = rINTPND;
rINTPND = b;
c = rEINTPEND;
rEINTPEND = c;
//判断那个按键被按下,控制对应的LED 状态
switch(b)
{
   case 0x1://k4
     Uart_Printf("4\n");
    if(rGPBDAT & 0x020)//GPBDAT5==1
     rGPBDAT&=0xfdf;
    else
     rGPBDAT|=0x020;
    break;
      
      case 0x2://k1
        Uart_Printf("1\n");
    if(rGPBDAT & 0x040)//GPBDAT6==1
     rGPBDAT&=0xfbf;
    else
     rGPBDAT|=0x040;
    break;
   case 0x4://k3
     Uart_Printf("3\n");
    if(rGPBDAT & 0x080)//GPBDAT7==1
     rGPBDAT&=0xf7f;
    else
     rGPBDAT|=0x080;
    break;
   case 0x10://k2
     //if(c&0x10)
     Uart_Printf("2\n");
     if(rEINTPEND&(1<<4))
     {
    Uart_Printf("22\n");
    if(rGPBDAT & 0x100)//GPBDAT8==1
     rGPBDAT&=0xeff;
    else
     rGPBDAT|=0x100;
     }
    break;
  default:
    Led_Display(0xf);
    break;
}

}
/**************外部中断初始化by wal************/
void  EINT_INIT(void)
{
    rSRCPND = 0x17;//清除除EINT0 1 2  4 以外中断请求
    rINTMSK = 0xffffffe8;//屏蔽除EINT0 1 2  4 以外的中断源
   
rEINTMASK = 0xffffef;

rEXTINT0 = 0x22222;//设置EINT0 1 2 3 4下降沿触发
  
pISR_EINT0 = pISR_EINT1 =pISR_EINT2 =pISR_EINT4_7= (U32)EINT_KEY;
}
借我你的一生 发表于 2012-4-1 12:34:23 | 显示全部楼层
参考整板测试代码吧  里面有一样的程序...
借我你的一生 发表于 2012-4-1 12:35:38 | 显示全部楼层

        rGPBUP = rGPBUP & ~0x03f0|0x03f0;                        //  LED [8:5] => PU En
        rGPBCON = rGPBCON & ~0x3d57fc|0x3d57fc;                //LED[8:5] => OUTPUT;
        rGPFCON = rGPFCON & (~((3<<4)|(3<<0)|(3<<8)|(3<<2))) | ((2<<4)|(2<<0)|(2<<8)|(2<<2)) ;                //GPF4,2,1,0 set EINT
 楼主| xinyangbit 发表于 2012-4-1 15:01:09 | 显示全部楼层
解决了,多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-17 21:19 , Processed in 1.031243 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表