;******************************************************************************* ; MSP430G2xx1 Demo - Timer_A, Toggle P1.0, Overflow ISR, 32kHz ACLK ; ; Description: Toggle P1.0 using software and the Timer_A overflow ISR ; In this example an ISR triggers when TA overflows Inside the ISR P1.0 ; is toggled Toggle rate is exactly 0.5Hz ; ACLK = TACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO ; //* An external watch crystal on XIN XOUT is required for ACLK *// ; ; MSP430G2xx1 ; ; /|\| XIN|; | | | 32kHz ; |RST XOUT|; | | ; | 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 SetupP1 bis.b #001h,&P1DIR ; P1.0 output SetupTA mov.w #TASSEL_1+MC_2+TAIE,&TACTL ; ACLK, contmode interrupt ; Mainloop bis.w nop #LPM3+GIE,SR ; Enter LPM3, interrupts enabled ; Required only for debugger ; ; TAX_ISR; Common ISR for CCR1-4 and overflow ; add.w &TAIV,PC ; Add Timer_A offset vector reti ; CCR0 - no source reti ; CCR1 reti ; CCR2 reti ; CCR3 reti ; CCR4 TA_over xor.b #001h,&P1OUT ; Toggle P1.0 reti ; Return from overflow ISR ; ; ; Interrupt Vectors ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFF0h ; Timer_AX Vector DW TAX_ISR ; END