新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 學習通用IO與外部中斷

        學習通用IO與外部中斷

        作者: 時間:2016-11-26 來源:網絡 收藏
        MSP430f5438有12組通用IO分別是從1到J,能作為外部中斷引腳的只有P1和P2兩個引腳;對于控制寄存器有下列幾種:

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

        PxIN是輸入寄存器,

        PxOUT是輸出寄存器

        PxDIR是輸入與輸出方向配置寄存器

        PxREn 是下拉下拉寄存器

        PxDS 是驅動增強與減弱寄存器

        PxSEL是功能選擇寄存器

        PxIES是中斷觸發方式寄存器

        PxIE是中斷允許寄存器

        PxIFG是中斷標志寄存器

        中斷配置如下:

        //外部中斷優先級沒有軟件配置。端口0最高,端口7最低

        void out_interrupt()

        {

        PortDIR |=BIT0; //設置端口方向

        PortIFG &=0xfe; //中斷標志

        PortIES |=BIT0; //中斷觸發方式

        PortIE |=BIT0; //中斷開發

        PortREN |=BIT0;

        P2OUT |=BIT0;

        }

        //中斷服務程序如下:

        #include "msp430f5438.h"

        #include "init.h"

        void main( void )

        {

        clk_init();

        out_interrupt();

        P5DIR |=BIT4;

        _EINT();//編譯器內部開中斷

        while(1);

        }

        #pragma vector=PORT2_VECTOR

        __interrupt void Port2(void)

        {

        __delay_cycles(1000);

        if((P2IN&0xff)!=0xff)

        {

        P5OUT ^=BIT4;

        }

        PortIFG &= ~BIT0; //中斷標志

        }



        關鍵詞: 通用IO外部中

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 洛川县| 闻喜县| 翁牛特旗| 和田县| 西吉县| 弋阳县| 尼勒克县| 台前县| 武夷山市| 安西县| 顺义区| 夏河县| 三原县| 奎屯市| 花莲县| 区。| 宜宾市| 东山县| 平定县| 化隆| 贵阳市| 固镇县| 白山市| 莎车县| 雷波县| 瑞安市| 泰州市| 监利县| 金寨县| 永靖县| 新乐市| 九江县| 涪陵区| 阿城市| 威海市| 望城县| 南岸区| 郧西县| 登封市| 江陵县| 兴城市|