;******************************************************************************* ; MSP430F20xx 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 TAIV interrupt vector generator is demonstrated ; ACLK = n/a, MCLK = SMCLK = TACLK = default DCO ; ; MSP430F20xx ; ; /|\| XIN|; | | | ; |RST XOUT|; | | ; | 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 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 &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