;******************************************************************************* ; MSP430F20xx 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 ; ; MSP430F20xx ; ; /|\| XIN|; | | | ; |RST XOUT|; /|\ | R | ; o | P1.4-o P1.0| >LED ; \|/ ; ; M Buccini / L Westlund ; Texas Instruments Inc ; September 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 SetupP1 mov.b #001h,&P1DIR ; P1.0 output, else input mov.b #010h,&P1OUT ; P1.4 set, else reset bis.b #010h,&P1REN ; P1.4 pullup 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