新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430中斷c函數(shù)模板大全

        MSP430中斷c函數(shù)模板大全

        作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
        端口1中斷函數(shù)

        多中斷中斷源:P1IFG.0~P1IFG7

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

        進(jìn)入中斷后應(yīng)首先判斷中斷源,退出中斷前應(yīng)清除中斷標(biāo)志,否則將再次引發(fā)中斷

        ******************************************************************************/

        #pragma vector=PORT1_VECTOR

        __interrupt void Port1()

        {

        //以下為參考處理程序,不使用的端口應(yīng)當(dāng)刪除其對于中斷源的判斷。

        if((P1IFG&BIT0) == BIT0)

        {

        //處理P1IN.0中斷

        P1IFG &= ~BIT0; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else if((P1IFG&BIT1) ==BIT1)

        {

        //處理P1IN.1中斷

        P1IFG &= ~BIT1; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else if((P1IFG&BIT2) ==BIT2)

        {

        //處理P1IN.2中斷

        P1IFG &= ~BIT2; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else if((P1IFG&BIT3) ==BIT3)

        {

        //處理P1IN.3中斷

        P1IFG &= ~BIT3; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else if((P1IFG&BIT4) ==BIT4)

        {

        //處理P1IN.4中斷

        P1IFG &= ~BIT4; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else if((P1IFG&BIT5) ==BIT5)

        {

        //處理P1IN.5中斷

        P1IFG &= ~BIT5; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else if((P1IFG&BIT6) ==BIT6)

        {

        //處理P1IN.6中斷

        P1IFG &= ~BIT6; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        else

        {

        //處理P1IN.7中斷

        P1IFG &= ~BIT7; //清除中斷標(biāo)志

        //以下填充用戶代碼

        }

        LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

        }

        #pragma vector=TIMERA1_VECTOR

        __interrupt void TimerA1()

        {

        //以下為參考處理程序,不使用的中斷源應(yīng)當(dāng)刪除

        switch (__even_in_range(TAIV, 10))

        {

        case 2:

        //捕獲/比較1中斷

        //以下填充用戶代碼

        break;

        case 4:

        //捕獲/比較2中斷

        //以下填充用戶代碼

        break;

        case 10:

        //TAIFG定時(shí)器溢出中斷

        //以下填充用戶代碼

        break;

        }

        LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

        }

        #pragma vector=TIMERA0_VECTOR

        __interrupt void TimerA0()

        {

        //以下填充用戶代碼

        LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

        }

        #pragma vector=ADC_VECTOR

        __interrupt void Adc()

        {

        //以下為參考處理程序,不使用的中斷源應(yīng)當(dāng)刪除

        if((ADC12IFG&BIT0)==BIT0)

        {

        //通道0

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT1)==BIT1)

        {

        //通道1

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT2)==BIT2)

        {

        //通道2

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT3)==BIT3)

        {

        //通道3

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT4)==BIT4)

        {

        //通道4

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT5)==BIT5)

        {

        //通道5

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT6)==BIT6)

        {

        //通道6

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT7)==BIT7)

        {

        //通道7

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT8)==BIT8)

        {

        //VeREF+

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BIT9)==BIT9)

        {

        //VREF-/VeREF-

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BITA)==BITA)

        {

        //溫度

        //以下填充用戶代碼

        }

        else if((ADC12IFG&BITB)==BITB)

        {

        //(AVcc-AVss)/2

        //以下填充用戶代碼

        }

        LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

        }


        上一頁 1 2 下一頁

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 区。| 沐川县| 崇信县| 江安县| 南华县| 平乐县| 青岛市| 志丹县| 绥芬河市| 开江县| 柏乡县| 泸定县| 酒泉市| 进贤县| 万宁市| 榕江县| 江川县| 会宁县| 凤翔县| 石棉县| 竹山县| 孟津县| 西乌珠穆沁旗| 大关县| 红安县| 准格尔旗| 杭锦旗| 鹤庆县| 富裕县| 易门县| 长泰县| 志丹县| 锡林浩特市| 儋州市| 安徽省| 雅江县| 淳化县| 新绛县| 贵溪市| 泗水县| 上林县|