<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          ARM9外部中斷功能測(cè)試

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          * 文件名稱:EINT.c
          * 實(shí)現(xiàn)功能:測(cè)試外部中斷的操作
          * 作者:jianqi
          * 版本:1.0


          #include"2440addr.h" //包含2440相關(guān)寄存器的設(shè)置
          #include"def.h"
          #define LED1 5
          #define LED2 6
          #define LED3 7
          #define LED4 8

          #define KEY1 1
          #define KEY2 4
          #define KEY3 2
          #define KEY4 0

          #define Bit(x) (1<#define Output(x) (1<<2*x) //將對(duì)應(yīng)IO置為輸出
          #define LED_On(x) rGPBDAT=~Bit(x) //點(diǎn)亮對(duì)應(yīng)LED

          * 名稱:Key1_ISR
          * 功能:key1控制LED1亮滅
          * 入口參數(shù):無
          * 出口參數(shù):無

          void __irq Key1_ISR(void) //EINT1中斷服務(wù)程序
          {
          int led;
          rSRCPND=rSRCPND|(0x01<<1); //清除中斷標(biāo)志位
          rINTPND=rINTPND |(0x01<<1); //清除中斷標(biāo)志位
          led=rGPBDAT&(0x1<if (led==0)
          {
          rGPBDAT=rGPBDAT|(0x1<}
          else
          {
          rGPBDAT=rGPBDAT&~(0x1<}
          }


          * 名稱:Key2_ISR
          * 功能:key2控制LED2亮滅
          * 入口參數(shù):無
          * 出口參數(shù):無

          void __irq Key2_ISR(void) //EINT4中斷服務(wù)程序
          {
          int led;
          rSRCPND=rSRCPND|(0x01<<4); //清除中斷標(biāo)志位
          rINTPND=rINTPND |(0x01<<4);//清除中斷標(biāo)志位
          if(rEINTPEND&(1<<4))
          {
          rEINTPEND=rEINTPEND|(0x1<<4); //清除中斷標(biāo)志位
          led=rGPBDAT&(0x1<if (led ==0)
          {
          rGPBDAT=rGPBDAT|(0x1<}
          else
          {
          rGPBDAT=rGPBDAT&~(0x1<}
          }
          }


          * 名稱:Key3_ISR
          * 功能:key3控制LED3亮滅
          * 入口參數(shù):無
          * 出口參數(shù):無

          void __irq Key3_ISR(void) //EINT2中斷服務(wù)程序
          {
          int led;
          rSRCPND=rSRCPND|(0x01<<2); //清除中斷標(biāo)志位
          rINTPND=rINTPND |(0x01<<2); //清除中斷標(biāo)志位
          led=rGPBDAT&(0x1<if (led==0)
          {
          rGPBDAT=rGPBDAT|(0x1<}
          else
          {
          rGPBDAT=rGPBDAT&~(0x1<}
          }


          * 名稱:Key4_ISR
          * 功能:key4控制LED4亮滅
          * 入口參數(shù):無
          * 出口參數(shù):無

          void __irq Key4_ISR(void) //EINT0中斷服務(wù)程序
          {
          int led;
          rSRCPND=rSRCPND|0x1; //清除中斷標(biāo)志位
          rINTPND=rINTPND |0x1; //清除中斷標(biāo)志位
          led=rGPBDAT&(0x1<if(led==0)
          {
          rGPBDAT=rGPBDAT|(0x1<}
          else
          {
          rGPBDAT=rGPBDAT&~(0x1<}
          }

          * 名稱:Main
          * 功能:初始化外部中斷相關(guān)寄存器
          * 入口參數(shù):無
          * 出口參數(shù):無

          void Main(void)
          {
          rGPBCON=(1<<2*LED1)|(1<<2*LED2)|(1<<2*LED3)|(1<<2*LED4);//設(shè)置四個(gè)LED為輸出
          rGPBDAT=0xffff; //全部熄滅
          rGPFCON=0xaaaa; //0~7外部中斷
          rEXTINT0=0x20222; //下降沿中斷
          rEINTMASK=~(1<<4); //不屏蔽外部中斷0,1,2,4
          rEINTPEND=(1<<4); //0,1,2,4產(chǎn)生中斷
          rSRCPND=0x17; //外部中斷
          rINTPND=0x17; //外部中斷使能
          rINTMOD=0x00; //全部為IRQ中斷
          rINTMSK=~0x17; //不屏蔽外部中斷
          pISR_EINT0=(U32)Key4_ISR;
          pISR_EINT1=(U32)Key1_ISR;
          pISR_EINT2=(U32)Key3_ISR;
          pISR_EINT4_7=(U32)Key2_ISR;

          while(1)
          {
          ;
          }
          }


          關(guān)鍵詞: ARM9外部中斷功能測(cè)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();