新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 學(xué)習(xí)通用IO與外部中斷

學(xué)習(xí)通用IO與外部中斷

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
MSP430f5438有12組通用IO分別是從1到J,能作為外部中斷引腳的只有P1和P2兩個(gè)引腳;對(duì)于控制寄存器有下列幾種:

本文引用地址:http://m.butianyuan.cn/article/201611/321744.htm

PxIN是輸入寄存器,

PxOUT是輸出寄存器

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

PxREn 是下拉下拉寄存器

PxDS 是驅(qū)動(dòng)增強(qiáng)與減弱寄存器

PxSEL是功能選擇寄存器

PxIES是中斷觸發(fā)方式寄存器

PxIE是中斷允許寄存器

PxIFG是中斷標(biāo)志寄存器

中斷配置如下:

//外部中斷優(yōu)先級(jí)沒(méi)有軟件配置。端口0最高,端口7最低

void out_interrupt()

{

PortDIR |=BIT0; //設(shè)置端口方向

PortIFG &=0xfe; //中斷標(biāo)志

PortIES |=BIT0; //中斷觸發(fā)方式

PortIE |=BIT0; //中斷開(kāi)發(fā)

PortREN |=BIT0;

P2OUT |=BIT0;

}

//中斷服務(wù)程序如下:

#include "msp430f5438.h"

#include "init.h"

void main( void )

{

clk_init();

out_interrupt();

P5DIR |=BIT4;

_EINT();//編譯器內(nèi)部開(kāi)中斷

while(1);

}

#pragma vector=PORT2_VECTOR

__interrupt void Port2(void)

{

__delay_cycles(1000);

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

{

P5OUT ^=BIT4;

}

PortIFG &= ~BIT0; //中斷標(biāo)志

}



關(guān)鍵詞: 通用IO外部中

評(píng)論


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

關(guān)閉