;******************************************************************************* ; MSP430F20xx Demo - Software Port Interrupt 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 P2.0 interrupt input does not float ; ACLK = n/a, MCLK = SMCLK = default DCO ; ; MSP430F20xx ; ; /|\| XIN|; | | | ; |RST XOUT|; /|\ | | ; o |P1.4 P1.0| >LED ; \|/ ; ; M Buccini / L Westlund ; Texas Instruments Inc ; October 2005 ; Built with IAR Embedded Workbench Version: 3.40A ;******************************************************************************* #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stackpointer StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT SetupPx bis.b #001h,&P1DIR ; P1.0 output bis.b #010h,&P1IE ; P1.4 Interrupt enabled bis.b #010h,&P1IES ; P1.4 hi/low edge bic.b #010h,&P1IFG ; P1.4 IFG Cleared ; Mainloop bis.w #LPM4+GIE,SR ; LPM4, enable interrupts nop ; Required only for debugger ; ; P1_ISR; Toggle P1.0 Output ; xor.b #001h,&P1OUT ; P1.0 = toggle bic.b #010h,&P1IFG ; P1.4 IFG Cleared reti ; Return from ISR ; ; ; Interrupt Vectors ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFE4h ; P1.x Vector DW P1_ISR ; END