新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430入門(mén)教程專題(五)——IO中斷檢測(cè)

MSP430入門(mén)教程專題(五)——IO中斷檢測(cè)

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
MSP430入門(mén)教程專題(五)——IO中斷檢測(cè)

//MSP430F14-IO口中斷演示程序

//以下是結(jié)合MC430F14開(kāi)發(fā)板來(lái)實(shí)現(xiàn)的按鍵檢處理程序?qū)嶒?yàn).
//設(shè)置P2.0為中斷口,通過(guò)對(duì)IO的下邊沿觸發(fā),使其中斷,并將板上的D2 LED取反.
//應(yīng)用目標(biāo)板: MC430F14x開(kāi)發(fā)板

#include <msp430x14x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD;// 停止看門(mén)狗
P1DIR |= BIT1;// 設(shè)P1.1為輸出

P2IE |= BIT0;// P2.0中斷使能
P2IES |= BIT0;// P2.0 IO口邊沿中斷觸發(fā)模式,下邊沿有效
P2IFG &= ~BIT0;// P2.0 清IO中斷標(biāo)志位

_EINT();//開(kāi)總中斷允許
LPM4;//進(jìn)入低功耗模式4,此時(shí)單片機(jī)功耗最低.
}

//*************************************************************************
// P2口中斷服務(wù)程序
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
P1OUT ^= BIT1;// P1.1取反
P2IFG &= ~0x01;// P2.0清除相應(yīng)中斷標(biāo)志位
}
//*************************************************************************
//使IO中斷時(shí)新手們要了解以下幾點(diǎn):
//1- MSP430的IO中,只有P1,P2才有IO中斷功能.
//2- P1,P2每組IO是多源中斷源,P1IG0-P1IG7或P2IG0-P2IG7是共一個(gè)中斷源的,用戶可以
//通過(guò)查房方式來(lái)得到是那個(gè)IO產(chǎn)生了中斷.
//3- 改變P1IES或P2IES中的位可能會(huì)引起相應(yīng)中斷標(biāo)志位置位,與引腳電平有關(guān).
//PxIES.xPxIN.xPxIFG.x
//0->10不變
//0->11可能置位
//1->00可能置位
//1->01不變
//所以,改變P1IES或P2IES后,根據(jù)需要清除相關(guān)的PxIG.x位.
//4- PxIFG.x所有中斷標(biāo)志位在置位后是需要人為清除的.硬件不會(huì)自動(dòng)清除該標(biāo)位.

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


評(píng)論


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

關(guān)閉