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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 測(cè)試ARM9的外部中斷功能

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

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          1. /*******************************************
          2. *文件名稱:EINT.c
          3. *實(shí)現(xiàn)功能:測(cè)試外部中斷的操作
          4. *作者:jianqi
          5. *版本:1.0
          6. **********************************************/
          7. #include"2440addr.h"http://包含2440相關(guān)寄存器的設(shè)置
          8. #include"def.h"
          9. #defineLED15
          10. #defineLED26
          11. #defineLED37
          12. #defineLED48
          13. #defineKEY11
          14. #defineKEY24
          15. #defineKEY32
          16. #defineKEY40
          17. #defineBit(x)(1<
          18. #defineOutput(x)(1<<2*x)//將對(duì)應(yīng)IO置為輸出
          19. #defineLED_On(x)rGPBDAT=~Bit(x)//點(diǎn)亮對(duì)應(yīng)LED
          20. /*******************************************
          21. *名稱:Key1_ISR
          22. *功能:key1控制LED1亮滅
          23. *入口參數(shù):無
          24. *出口參數(shù):無
          25. **********************************************/
          26. void__irqKey1_ISR(void)//EINT1中斷服務(wù)程序
          27. {
          28. intled;
          29. rSRCPND=rSRCPND|(0x01<<1);//清除中斷標(biāo)志位
          30. rINTPND=rINTPND|(0x01<<1);//清除中斷標(biāo)志位
          31. led=rGPBDAT&(0x1<
          32. if(led==0)
          33. {
          34. rGPBDAT=rGPBDAT|(0x1<
          35. }
          36. else
          37. {
          38. rGPBDAT=rGPBDAT&~(0x1<
          39. }
          40. }
          41. /*******************************************
          42. *名稱:Key2_ISR
          43. *功能:key2控制LED2亮滅
          44. *入口參數(shù):無
          45. *出口參數(shù):無
          46. **********************************************/
          47. void__irqKey2_ISR(void)//EINT4中斷服務(wù)程序
          48. {
          49. intled;
          50. rSRCPND=rSRCPND|(0x01<<4);//清除中斷標(biāo)志位
          51. rINTPND=rINTPND|(0x01<<4);//清除中斷標(biāo)志位
          52. if(rEINTPEND&(1<<4))
          53. {
          54. rEINTPEND=rEINTPEND|(0x1<<4);//清除中斷標(biāo)志位
          55. led=rGPBDAT&(0x1<
          56. if(led==0)
          57. {
          58. rGPBDAT=rGPBDAT|(0x1<
          59. }
          60. else
          61. {
          62. rGPBDAT=rGPBDAT&~(0x1<
          63. }
          64. }
          65. }
          66. /*******************************************
          67. *名稱:Key3_ISR
          68. *功能:key3控制LED3亮滅
          69. *入口參數(shù):無
          70. *出口參數(shù):無
          71. **********************************************/
          72. void__irqKey3_ISR(void)//EINT2中斷服務(wù)程序
          73. {
          74. intled;
          75. rSRCPND=rSRCPND|(0x01<<2);//清除中斷標(biāo)志位
          76. rINTPND=rINTPND|(0x01<<2);//清除中斷標(biāo)志位
          77. led=rGPBDAT&(0x1<
          78. if(led==0)
          79. {
          80. rGPBDAT=rGPBDAT|(0x1<
          81. }
          82. else
          83. {
          84. rGPBDAT=rGPBDAT&~(0x1<
          85. }
          86. }
          87. /*******************************************
          88. *名稱:Key4_ISR
          89. *功能:key4控制LED4亮滅
          90. *入口參數(shù):無
          91. *出口參數(shù):無
          92. **********************************************/
          93. void__irqKey4_ISR(void)//EINT0中斷服務(wù)程序
          94. {
          95. intled;
          96. rSRCPND=rSRCPND|0x1;//清除中斷標(biāo)志位
          97. rINTPND=rINTPND|0x1;//清除中斷標(biāo)志位
          98. led=rGPBDAT&(0x1<
          99. if(led==0)
          100. {
          101. rGPBDAT=rGPBDAT|(0x1<
          102. }
          103. else
          104. {
          105. rGPBDAT=rGPBDAT&~(0x1<
          106. }
          107. }
          108. /*******************************************
          109. *名稱:Main
          110. *功能:初始化外部中斷相關(guān)寄存器
          111. *入口參數(shù):無
          112. *出口參數(shù):無
          113. **********************************************/
          114. voidMain(void)
          115. {
          116. rGPBCON=(1<<2*LED1)|(1<<2*LED2)|(1<<2*LED3)|(1<<2*LED4);//設(shè)置四個(gè)LED為輸出
          117. rGPBDAT=0xffff;//全部熄滅
          118. rGPFCON=0xaaaa;//0~7外部中斷
          119. rEXTINT0=0x20222;//下降沿中斷
          120. rEINTMASK=~(1<<4);//不屏蔽外部中斷0,1,2,4
          121. rEINTPEND=(1<<4);//0,1,2,4產(chǎn)生中斷
          122. rSRCPND=0x17;//外部中斷
          123. rINTPND=0x17;//外部中斷使能
          124. rINTMOD=0x00;//全部為IRQ中斷
          125. rINTMSK=~0x17;//不屏蔽外部中斷
          126. pISR_EINT0=(U32)Key4_ISR;
          127. pISR_EINT1=(U32)Key1_ISR;
          128. pISR_EINT2=(U32)Key3_ISR;
          129. pISR_EINT4_7=(U32)Key2_ISR;
          130. while(1)
          131. {
          132. ;
          133. }
          134. }


          關(guān)鍵詞: ARM9外部中斷功

          評(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); })();