在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            TQ2440按鍵中斷

            作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
            有幾點(diǎn)需要注意:

            1、需要調(diào)用MMU函數(shù),實(shí)現(xiàn)內(nèi)存的映射;

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

            2、在中斷觸發(fā)跳入中斷處理函數(shù)后,首先要清除SRCPND和INTPND相應(yīng)的位,如果用到次級中斷源,如這里用到了EINT4_7中的EINT4,就要清除EINTPEND相應(yīng)的位。一般來說,應(yīng)該先清除次級中斷源相應(yīng)的位,再清除中斷源,否則中斷源會(huì)發(fā)生多次中斷。在完成清除后再進(jìn)行具體的處理。

            #include "def.h"
            #include "option.h"
            #include "2440addr.h"
            #include "2440lib.h"
            #include "2440slib.h"
            #include "mmu.h"


            #define LED1 (1<<5) //must be "()"
            #define LED2 (1<<6)
            #define LED3 (1<<7)
            #define LED4 (1<<8)

            #define KEY1(1<<1)//GPF1
            #define KEY2(1<<4)//GPF4
            #define KEY3(1<<2)//GPF2
            #define KEY4(1<<0)//GPF0

            //void delay_ms(U32 i);
            void init_irq(void);
            void MMU_Init(void);

            int Main(void)
            {
            rGPBCON=0x15400;
            rGPBDAT=0x7ff;
            MMU_Init();//必須要有MMU,目的是為了實(shí)現(xiàn)地址映射
            init_irq();//初始化中斷寄存器
            while(1);

            }

            void delay_ms(U32 i)
            {
            int j;
            for(;i>0;i--)
            for(j=65535;j>0;j--);
            }

            void key_per(void)//按鍵處理
            {
            if(!(rGPFDAT&KEY1))
            rGPBDAT=~LED1;

            else if(!(rGPFDAT&KEY2))
            rGPBDAT=~LED2;

            else if(!(rGPFDAT&KEY3))
            rGPBDAT=~LED3;

            else if(!(rGPFDAT&KEY4))
            rGPBDAT=~LED4;

            }

            void __irq key1_3_4(void)
            {
            //當(dāng)按下鍵后,就跳到此函數(shù)里,在以下的按鍵對應(yīng)的各個(gè)分支里,在跳到key_per()前應(yīng)該調(diào)用

            //ChearPending()清除SCRPND和INTPND對應(yīng)的位
            if(rINTPND &KEY3)
            {
            ClearPending(BIT_EINT2);
            key_per();
            }
            else if(rINTPND &KEY4)
            {
            ClearPending(BIT_EINT0);
            key_per();
            }

            else if(rINTPND&KEY1)
            {
            ClearPending(BIT_EINT1);
            key_per();
            }

            }

            void __irq key2(void)

            {
            //if(rEINTPEND &KEY2)//10000
            //{
            rEINTPEND = (1<<4);//CLEARrEINTPEND
            ClearPending(BIT_EINT4_7);
            key_per();
            //}
            }

            //由于key2在電路圖上對應(yīng)的是GPF4,相應(yīng)的中斷功能是EINT4,它具體是由次級中斷寄存器中的

            //EINTMASK來使能的,在init_irq()中由于要映射中斷處理函數(shù),因此這里單獨(dú)寫出key2,清晰程序。

            void init_irq(void)
            {
            rGPFCON&=(~((3<<0)|(3<<2)|(3<<4)|(3<<8)));
            rGPFCON|=((2<<0)|(2<<2)|(2<<4)|(2<<8));//configure GPF0、1、2、4 to EINT0、1、2、4
            //rGPFCON=0xfeea;
            rPRIORITY=0x00000000;//deafult priority configure
            rINTMOD=0x0;//IRQ
            EnableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);//enable EINT0、1、2、4_7 with INTMSK register
            //rINTMSK&=(~((1<<0)|(1<<1)|(1<<2)|(1<<4)));
            rEINTMASK&=~(1<<4);//enbale EINT4 with EINTMASK register

            //下面是將key1_3_4和key2函數(shù)的地址映射到中斷向量表,這樣,當(dāng)中斷觸發(fā)時(shí),就跳到相應(yīng)函數(shù)的地址執(zhí)

            //行該函數(shù)。如EINT0中斷被觸發(fā)時(shí),就執(zhí)行函數(shù)key1_3_4。

            pISR_EINT0= (unsigned int)key1_3_4;

            pISR_EINT1= (unsigned int)key1_3_4;
            pISR_EINT2= (unsigned int)key1_3_4;
            pISR_EINT4_7= (unsigned int)key2;

            }



            關(guān)鍵詞: TQ2440按鍵中

            評論


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

            關(guān)閉