You are on page 1of 2

;*******************************************************************************

; MSP430G2xx1 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
;
;
MSP430G2xx1
;
----------------;
/|\|
XIN|;
| |
|
;
--|RST
XOUT|;
/|\ |
|
;
--o--|P1.4
P1.0|-->LED
;
\|/
;
; D. Dang
; Texas Instruments Inc.
; October 2010
; Built with IAR Embedded Workbench Version: 5.10
;*******************************************************************************
#include "msp430g2231.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 #008h,&P1IE
; P1.4 Interrupt enabled
bis.b #008h,&P1IES
; P1.4 hi/low edge
bic.b #008h,&P1IFG
; P1.4 IFG Cleared
;
Mainloop
bis.w #GIE,SR
; LPM4, enable interrupts
mov.b #01h,R5
cc
xor.b R5,&P1OUT
mov.w #0ffffh,R6
aa
dec
R6
jnz
aa
jmp
cc

;------------------------------------------------------------------------------P1_ISR;
Toggle P1.0 Output
;------------------------------------------------------------------------------clr.b
&P1OUT
cmp.b
#01h,R5
jz
bb
mov.b
#1h,R5
bic.b #008h,&P1IFG
; P1.4 IFG Cleared
reti
bb

mov.b
bic.b
reti

#0h,R5
#008h,&P1IFG

; P1.4 IFG Cleared


; Return from ISR
;
;------------------------------------------------------------------------------;
Interrupt Vectors

;------------------------------------------------------------------------------ORG
0FFFEh
; MSP430 RESET Vector
DW
RESET
;
ORG
0FFE4h
; P1.x Vector
DW
P1_ISR
;
END

You might also like