Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54010
  • 博文数量: 104
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-11 15:25
文章分类

全部博文(104)

文章存档

2016年(104)

我的朋友

分类: 嵌入式

2016-10-06 10:51:51

原文地址:中断控制 LED 作者:lingyunwmr

#include "2440lib.h"
#include "2440addr.h"
int flag=0;
void __irq eint_handler(void)
{
 //unsigned long i,j;
 rSRCPND |= (1<<5);  //clear eint_8_23
    rINTPND |= (1<<5); //clear eint8_23
//    rEINTPEND |= (1<<8); //clear eint8
    
    //led5
    if (rEINTPEND & (1<<8))
     {
     // rGPBCON =rGPBCON &~(0x3<<16)|(0x1<<16);
      rGPBDAT |=(1<<8);
      //for(i=0; i<999999; i++);
      //rGPBDAT |= (1<<5);
      //flag = 1;
      rEINTPEND |= (1<<8);
      
      
     }
    
   //  else
    //
     if (rEINTPEND & (1<<11))
    
    {
    //  rGPBCON =rGPBCON &~(0x3<<16)|(0x1<<16);
      rGPBDAT &=~(1<<8);
      //for(j=0; j<999999;j++);
      //rGPBDAT |= (1<<8);
      rEINTPEND |= (1<<11);
    }
 
  
}

int xmain(void)
{
 
 ChangeClockDivider(3,1);//1:3:6
 ChangeMPllValue(127,2,1);  //405MHZ
 Port_Init();
 Isr_Init();
 
 rGPBDAT = 0x7fe ; //led mie
 rGPBCON =rGPBCON &~(0x3<<16)|(0x1<<16); 
    rGPGCON = rGPGCON &~(0x3|(0x3<<6))|((0x2)|(0x2<<6)); //enable io
    
    rINTMSK =rINTMSK &~(1<<5);  //enable EINT8_23
    rEINTMASK = rEINTMASK &~((1<<8)|(1<<11));  // enable EINT8
    
//    rEINTMASK = rEINTMASK &~(1<<8);  // enable EINT8
    rEXTINT1 = rEXTINT1 &~((0x7)|(0x7<<12)) |((0x2)|(0x2<<12)); //falling edge
    
 //   rEXTINT1 = rEXTINT1 &~(0x7) |(0x2); //falling edge
    
    rSRCPND |= (1<<5);  //clear eint_8_23
    rINTPND |= (1<<5); //clear eint8_23
    rEINTPEND |= ((1<<8)|(1<<11)); //clear eint8
//    rEINTPEND |= (1<<8); //clear eint8
    pISR_EINT8_23 = (U32)eint_handler;
    
    
    while(1);
   
   
      
}
 
 
 
ISRP  改为0x34
阅读(148) | 评论(0) | 转发(0) |
0

上一篇:timmer4 运用

下一篇:NAND.c 连续读

给主人留下些什么吧!~~