zhangxiangchun 发表于 2011-4-9 21:49:37

大侠们看看为啥EINT4没反应

#define      GLOBAL_CLK                1
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
static void __irq Key_ISR(void)
{
      U32 r;
      EnterCritical(&r);
      if(rINTPND==BIT_EINT1)
      {
                rGPBDAT=0x7bf;
                ClearPending(BIT_EINT1);
      }
      if(rINTPND==BIT_EINT4_7)
      {                        
                rGPBDAT=0x6ff;
                ClearPending(BIT_EINT4_7);
      }
      if(rINTPND==BIT_EINT0)
      {
                rGPBDAT=0x7df;
                ClearPending(BIT_EINT0);
      }
      if(rINTPND==BIT_EINT2)
      {
                rGPBDAT=0x77f;
                ClearPending(BIT_EINT2);
      }
      ExitCritical(&r);
}
void Main(void)
{
      Port_Init();
      MMU_Init();
      rEXTINT0 &= ~(7|(7<<4)|(7<<8)|(7<<16));      
      rEXTINT0 |= (0|(0<<4)|(0<<8)|(0<<16));               
      rEINTPEND |= (1<<4);                                       
      rEINTMASK &= ~(1<<4);                                       
      ClearPending(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);
      pISR_EINT0 = pISR_EINT1 = pISR_EINT2 = pISR_EINT4_7 = (U32)Key_ISR;
      EnableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);      
      rGPBDAT=0xfff;      
      rGPBCON |= (1<<16)|(1<<14)|(1<<12)|(1<<10);
      rGPBUP = 0x7ff;      
      while(1);      
}
页: [1]
查看完整版本: 大侠们看看为啥EINT4没反应