Port Interrupt with MSP430

Hi, at my this post i will introduce a port interrupt to you. It is so simple.

First of all you should your interrupt pin then enable it and define it’s interrupt edge (hi to low or low low high). You can define your ISR (interrupt service routine) as you wish. At my ISR it blink a LED. Also i defined a button to get out of ISR.

Best wishes.

 

//P2.1 is the interrupt exit button
//P2.4 Interrupt pin
//P2.5 Led Output

#include <msp430.h>
void main(void) {

WDTCTL = WDTPW + WDTHOLD;// Stop WDT
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;

P2DIR |= BIT5; // Set P2.5 to output direction
P2IE |= 0x10; // P2.4 interrupt enabled 
P2IES |= 0x10; // P2.4 Hi/lo edge
P2OUT = 0x00;
}


// Port 2 interrupt service routine
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
P2OUT = 0x00;
while((P2IN & ~BIT1) != BIT1){ // Button at P2.1 is high active
P2OUT ^= BIT5;
__delay_cycles(100000);
}
P2OUT = 0x00;
P2IFG &= ~0x10; // P1.4 IFG cleared
}

ozturkgokhan hakkında

Electrical and electronics engineer. In turkey.

Ocak 1, 2015 tarihinde MSP430 içinde yayınlandı ve , , , , , olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin. Yorum yapın.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: