新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430程序---P1.0口外部中斷

MSP430程序---P1.0口外部中斷

作者: 時間:2016-11-13 來源:網絡 收藏
在中斷中加入相應的代碼,可以完成計數

//P1.0口外部中斷的設置,做成多任務以便擴展

本文引用地址:http://www.2s4d.com/article/201611/316465.htm

#include <msp430x41x.h>

unsigned char ISR_Symbol=0;//任務標志

void Iint_Port1(void)

{

P1DIR&=~BIT0;//設置為輸入方向

P1SEL&=~BIT0;//設置為普通I/O口功能

P1IES|=BIT0;//選擇下降沿觸發(fā)

P1IE|=BIT0; //打開中斷允許

P1IFG=0; //P1IES的切換可能使P1IFG置位,需清除

}

void main(void)

{

WDTCTL=WDTPW+WDTHOLD; //關閉看門狗

Iint_Port1(); //初始化p1.0

_EINT(); //開總中斷允許

while(1)

{

LPM3; //低功耗模式3,I/O口中斷可將其喚醒

if((ISR_Symbol&BIT0)==BIT0)

{

ISR_Symbol&=~BIT0;//中斷服務程序

}

else if((ISR_Symbol&BIT1)==BIT1)

{

ISR_Symbol&=~BIT1;//其他任務

}

}

}

interrupt[PORT1_VECTOR] void P1_ISR(void)

{

P1IFG=0;//多源中斷,需靠軟件清除P1IFG

ISR_Symbol|=BIT0; //置任務標志

_BIC_SR_IRQ(LPM3_bits);//將CPU從睡眠模式喚醒

}



評論


技術專區(qū)

關閉