//****************************************************************************** // MSP430G2xx1 Demo - P1 Interrupt from LPM4 with Internal Pull-up // // Description: A hi/low transition on P1.4 will trigger P1_ISR which, // toggles P1.0 Normal mode is LPM4 ~ 0.1uA // Internal pullup enabled on P1.4 // ACLK = n/a, MCLK = SMCLK = default DCO // // MSP430G2xx1 // // /|\| XIN|// | | | // |RST XOUT|// /|\ | R | // o | P1.4-o P1.0| >LED // \|/ // // D Dang // Texas Instruments Inc // October 2010 // Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10 //****************************************************************************** #include void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR = 0x01; P1OUT = 0x10; P1REN |= 0x10; P1IE |= 0x10; P1IES |= 0x10; P1IFG &= ~0x10; _BIS_SR(LPM4_bits + GIE); // // // // // // // Stop P1.0 P1.4 P1.4 P1.4 P1.4 P1.4 watchdog timer output, else input set, else reset pullup interrupt enabled Hi/lo edge IFG cleared // Enter LPM4 w/interrupt } // Port interrupt service routine #pragma vector=PORT1_VECTOR interrupt void Port_1(void) { P1OUT ^= 0x01; P1IFG &= ~0x10; } // P1.0 = toggle // P1.4 IFG cleared