#include  "msp430x44x.h"
;******************************************************************************
;   MSP-FET430P440 Demo - Timer_A Toggle P5.1, overflow ISR, DCO SMCLK
;
;   Description; This program will toggle P5.1 using software and the timer_A 
;   overflow ISR. In this example an ISR will trigger when TA overflows.  
;   Inside the ISR P5.1 is toggled.  Toggle rate is 16hz using DCO frequency 
;   of 1048576 with default FLL and watch crystal.	 
;   ACLK = LFXT1 = 32768, MCLK = SMCLK = TACLK = DCO = 32xACLK = 1.048576MHz
;   //*An external watch crystal on XIN XOUT is required for ACLK*//	  
;
;                MSP430F449
;             -----------------
;         /|\|              XIN|-  
;          | |                 | 32kHz 
;          --|RST          XOUT|-
;            |                 |
;            |             P5.1|-->LED
;
;   M.Buccini
;   Texas Instruments, Inc
;   January 2002
;******************************************************************************
;------------------------------------------------------------------------------ 
            ORG     01100h                  ; Program Start
;------------------------------------------------------------------------------ 
RESET       mov.w   #0A00h,SP               ; Initialize '449 stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
SetupFLL    bis.b   #XCAP14PF,&FLL_CTL0     ; Configure load caps
SetupTA     mov.w   #TASSEL1+TACLR+TAIE,&TACTL  ; SMCLK, clr. TAR, interrupt
SetupP5     bis.b   #002h,&P5DIR            ; P5.1 output
            bis.w   #MC1,&TACTL             ; Start timer_A continous mode
            eint                            ; Enable interrupts
                                            ;						  
Mainloop    bis.w   #CPUOFF,SR              ; CPU off
            nop                             ; Required for C-spy
                                            ;
;------------------------------------------------------------------------------ 
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   #002h,&P5OUT            ; Toggle P5.1
            reti                            ; Return from overflow ISR		 
                                            ;
;------------------------------------------------------------------------------ 
;           Interrupt Vectors Used MSP430x44x          
;------------------------------------------------------------------------------ 
            ORG     0FFFEh                  ; MSP430 RESET Vector
            DW      RESET                   ; 
            ORG     0FFEAh                  ; Timer_AX Vector
            DW      TAX_ISR                 ; 
            END
