新聞中心

        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)閉
        主站蜘蛛池模板: 邵阳市| 交口县| 留坝县| 遂川县| 沈阳市| 万宁市| 庆阳市| 平潭县| 合江县| 尼木县| 禄丰县| 藁城市| 辽源市| 南皮县| 日喀则市| 大同市| 探索| 马龙县| 开江县| 河源市| 江阴市| 阿拉尔市| 田林县| 潜山县| 舟曲县| 钦州市| 临江市| 荥经县| 航空| 余干县| 贞丰县| 泰州市| 康马县| 鄂伦春自治旗| 赣州市| 郓城县| 婺源县| 鄱阳县| 唐河县| 绍兴市| 泗阳县|