//****************************************************************************** // MSP430G2xx1 Demo - Software Port Interrupt Service on P1.4 from LPM4 // // Description: A hi/low transition on P1.4 will trigger P1_ISR which, // toggles P1.0 Normal mode is LPM4 ~ 0.1uA LPM4 current can be measured // with the LED removed, all unused P1.x/P2.x configured as output or inputs // pulled high or low, and ensure the P1.4 interrupt input does not float // ACLK = n/a, MCLK = SMCLK = default DCO // // MSP430G2xx1 // // /|\| XIN|// | | | // |RST XOUT|// /|\ | | // o |P1.4 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; P1IE |= 0x10; P1IES |= 0x10; P1IFG &= ~0x10; } _BIS_SR(LPM4_bits + GIE); // Port interrupt service routine #pragma vector=PORT1_VECTOR interrupt void Port_1(void) { P1OUT ^= 0x01; P1IFG &= ~0x10; } // // // // // Stop watchdog timer Set P1.0 to output direction P1.4 interrupt enabled P1.4 Hi/lo edge P1.4 IFG cleared // Enter LPM4 w/interrupt // P1.0 = toggle // P1.4 IFG cleared