新聞中心

        NEC V850 之 外部中斷

        作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò) 收藏
        編譯環(huán)境:IAR For V850 3.81 + MiniCube2

        硬件平臺(tái):NEC V850ES/FG3 D70F3630 (D70F3377A)

        本文引用地址:http://www.104case.com/article/201612/325098.htm


        硬件資源:

        LED端口:P94 P10

        KEY端口:P04(INTP1)


        在使用V850的外部中斷的時(shí)候有下面幾個(gè)步驟:

        第一步:設(shè)置端口模式寄存器為第二功能模式(PMCn = 1);

        第二步:設(shè)置第二功能模式選擇,選擇相應(yīng)的第二功能(PFCEn,PFCn);

        第三步:設(shè)置外部觸發(fā)條件,上升沿觸發(fā),下降沿觸發(fā),上升和下降沿都觸發(fā)(INTFn,INTPn);

        第四步:設(shè)置中斷控制寄存器,包括中斷標(biāo)識(shí)位,中斷使能位,中斷優(yōu)先級(jí)(xxICn);

        第五步:清中斷標(biāo)志位(xxIFn);

        第六步:使能中斷位(xxMKn);

        第七步:開(kāi)全局中斷(__EI());

        第八步:編寫(xiě)中斷服務(wù)函數(shù),并且在中斷函數(shù)里清相應(yīng)的標(biāo)志位。

        下面是代碼:

        來(lái)自ExtInt.c

        #include "ExtInt.h"

        void ExtInterrupt_Init(void)
        {
        PMC0_bit.no4 = 1 ; // 設(shè)置端口為第二功能模式
        PFCE0_bit.no4 = 0 ; // 選擇第二功能為外部中斷
        PFC0_bit.no4 = 0 ;
        INTF0_bit.no4 = 1 ; // 設(shè)置使能下降沿
        INTR0_bit.no4 = 0 ; // 設(shè)置禁止上升沿
        PIC1 = 0x07 ; // 設(shè)置清中斷標(biāo)置,開(kāi)啟外部中斷,并且優(yōu)先級(jí)設(shè)置為最低
        PIF1 = 0 ; // 清中斷標(biāo)志
        PMK1 = 0 ; // 開(kāi)外部中斷1屏蔽位
        }

        #pragma vector = INTP1_vector
        __interrupt void MD_INTP1(void)
        {
        P9L_bit.no4 = ~P9L_bit.no4 ;
        P1_bit.no0 = ~P1_bit.no0 ;
        PIF1 = 0; // 清外部中斷1中斷標(biāo)志
        }

        來(lái)自main.c

        #include "main.h"

        void main(void)
        {
        WDTM2 = 0x1F ; // 關(guān)閉看門(mén)狗定時(shí)器,進(jìn)入系統(tǒng)先關(guān)看門(mén)狗定時(shí)器,防止系統(tǒng)進(jìn)入異常

        __DI(); // 關(guān)全局中斷
        GPIO_PortInit(); // 初始化通用IO口
        ExtInterrupt_Init(); // 初始化外部中斷口
        __EI(); // 開(kāi)全局中斷

        LED1 = 0 ;
        LED2 = 1 ;

        while(1);
        }



        調(diào)試的時(shí)候注意兩個(gè)地方,初始化后要開(kāi)啟全局中斷;第二個(gè)就是在中斷服務(wù)函數(shù)里對(duì)相應(yīng)的標(biāo)識(shí)位進(jìn)行清零。


        關(guān)鍵詞: NECV850外部中

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 交口县| 刚察县| 澜沧| 海城市| 西贡区| 郴州市| 延安市| 汾西县| 永新县| 兴国县| 册亨县| 泸溪县| 昌都县| 桓仁| 深泽县| 石楼县| 乌什县| 清远市| 盐亭县| 新泰市| 晋江市| 孟连| 毕节市| 通榆县| 措美县| 汪清县| 略阳县| 瑞安市| 蒲城县| 建瓯市| 三台县| 呼玛县| 新兴县| 阿巴嘎旗| 无棣县| 河源市| 南投县| 公主岭市| 邓州市| 岑溪市| 茶陵县|