在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Cortex-M3 (NXP LPC1788)之外部中斷操作

            Cortex-M3 (NXP LPC1788)之外部中斷操作

            作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
            要使用LPC1788外部中斷,要進(jìn)行兩部分的操作。由于外部中斷的管腳采用I/O復(fù)用的形式,顯然我們首先要對(duì)管腳進(jìn)行配置,使其工作在外部中斷輸入的模式。其次,我們需要配置中斷相關(guān)的寄存器包括中斷使能以及中斷的觸發(fā)方式等。

            由于我們使用的是外部中斷0,查閱數(shù)據(jù)手冊(cè),其GPIO管腳為P2_10,為此我們?cè)O(shè)置IOCON_P2_10寄存器的FUNC字段,設(shè)置成001即為EINT0模式。 配置完引腳后,還需要繼續(xù)配置具體的中斷功能。我們需要打開中斷使能,設(shè)置ISER相應(yīng)位;還要配置中斷的觸發(fā)方式如電平觸發(fā)和邊沿觸發(fā),相關(guān)寄存器為EXTMODE和EXTPOLAR;中斷觸發(fā)以后會(huì)將外部中斷標(biāo)志寄存器EXTINT相應(yīng)位置位,這將會(huì)向NVIC提交中斷請(qǐng)求,如果管腳中斷使能,則會(huì)產(chǎn)生中斷。中斷響應(yīng)后必須將EXTINT中的該位清零,否則不能產(chǎn)生下一次中斷。

            本文引用地址:http://www.biyoush.com/article/201611/318447.htm

            中斷入口向量的地址在啟動(dòng)文件中定義,對(duì)于外部中斷0,其標(biāo)號(hào)為EINT0_IRQHandler。開發(fā)板上的電路圖如圖1所示

            圖1:按鍵SW6控制GPIO_P2_10的EINT0

            按鍵按下時(shí),GPIO_P2_10是低電平,沒有按下為高電平。配置EINT0的中斷觸發(fā)方式為低電平觸發(fā),在中斷函數(shù)中熄滅LED。在主函數(shù)中一直點(diǎn)亮。程序的效果為按下SW6,LED燈熄滅。松開則一直保持亮。程序如下:

            1. #definerFIO1DIR(*(volatileunsigned*)0x20098020)
            2. #definerFIO1MASK(*(volatileunsigned*)0x20098030)
            3. #definerFIO1PIN(*(volatileunsigned*)0x20098034)
            4. #definerFIO1SET(*(volatileunsigned*)0x20098038)
            5. #definerFIO1CLR(*(volatileunsigned*)0x2009803c)
            6. #definerIOCON_P2_10(*(volatileunsigned*)0x4002C128)
            7. #definerIOIntStatus(*(volatileunsigned*)0x40028080)
            8. #definerIO2IntEnF(*(volatileunsigned*)0x400280B4)
            9. #definerIO2IntClr(*(volatileunsigned*)0x400280AC)
            10. #definerEXTINT(*(volatileunsigned*)0x400FC140)
            11. #definerEXTMODE(*(volatileunsigned*)0x400FC148)
            12. #definerEXTPOLAR(*(volatileunsigned*)0x400FC14C)
            13. #definerISER0(*(volatileunsigned*)0xE000E100)
            14. #definerIRP4(*(volatileunsigned*)0xE000E410)
            15. voidEINT0_IRQHandler()
            16. {
            17. rEXTINT|=(0x1<<0);//中斷產(chǎn)生之后必須清除該位
            18. rFIO1PIN|=(1<<18);
            19. }
            20. voidGPIO_INIT()
            21. {
            22. rFIO1DIR|=(0x1<<18);//P1.18設(shè)置為輸出,控制LED
            23. rIOCON_P2_10=(rIOCON_P2_10&(~0x7))|(0x1<<0);//配置FUNC字段為EINT0模式
            24. }
            25. voidEINT_INIT()
            26. {
            27. rEXTMODE&=~(0x1<<0);//配置成低電平觸發(fā)
            28. rEXTPOLAR&=~(0x1<<0);
            29. rISER0=(0x1<<18);//打開EINT0中斷使能
            30. }
            31. intmain(void)
            32. {
            33. GPIO_INIT();
            34. EINT_INIT();
            35. while(1)
            36. {
            37. rFIO1PIN&=~(1<<18);
            38. }
            39. }
            40. voidSystemInit(void)
            41. {
            42. }



            關(guān)鍵詞: Cortex-M3NXPLPC1788外部中

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉