;******************************************************************************* ; MSP430G2xx2 Demo - Timer_A, Toggle P1.0, Overflow ISR, DCO SMCLK ; ; Description: Toggle P1.0 using software and Timer_A overflow ISR ; In this example an ISR triggers when TA overflows Inside the TA ; overflow ISR P1.0 is toggled ; Proper use of TA0IV interrupt vector generator is demonstrated ; ACLK = n/a, MCLK = SMCLK = TACLK = default DCO ; ; MSP430G2xx2 ; ; /|\| XIN|; | | | ; |RST XOUT|; | | ; | P1.0| >LED ; ; D Dang ; Texas Instruments Inc ; December 2010 ; Built with IAR Embedded Workbench Version: 5.10 ;******************************************************************************* #include "msp430g2452.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_2+MC_2+TAIE,&TACTL ; SMCLK, contmode interrupt ; Mainloop bis.w #CPUOFF+GIE,SR ; CPU off, interrupts enabled nop ; Required only for debugger ; ; TAX_ISR; Common ISR for CCR1-4 and overflow ; add.w &TA0IV,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