Two interrupt vectors are associated with the 16-bit Timer_A module: TACCR0 interrupt vector for TACCR0 CCIFG TAIV interrupt vector for all other CCIFG flags and TAIFG In capture mode any CCIFG flag is set when a timer value is captured in the associated TACCRx register. In compare mode, any CCIFG flag is set if TAR counts to the associated TACCRx value. Software may also set or clear any CCIFG flag. All CCIFG flags request an interrupt when their corresponding CCIE bit and the GIE bit are set.
The TACCR1 CCIFG, TACCR2 CCIFG, and TAIFG flags are prioritized and combined to source a single interrupt vector. The interrupt vector register TAIV is used to determine which flag requested an interrupt.
For example: //****************************************************************************** // MSP430F22x4 Demo - Timer_A, Toggle P1.0-3, Cont. Mode ISR, 32kHz ACLK // // Description: Use Timer_A CCRx units and overflow to generate four // independent timing intervals. For demonstration, TACCR0, TACCR1 and TACCR2 // output units are optionally selected with port pins P1.1, P1.2 and P1.3 // in toggle mode. As such, these pins will toggle when respective TACCRx // registers match the TAR counter. Interrupts are also enabled with all // TACCRx units, software loads offset to next interval only - as long as the // interval offset is added to TACCRx, toggle rate is generated in hardware. // Timer_A overflow ISR is used to toggle P1.0 with software. Proper use // of the TAIV interrupt vector generator is demonstrated. // ACLK = TACLK = 32kHz, MCLK = SMCLK = default DCO ~1.2MHz // //* An external watch crystal on XIN XOUT is required for ACLK *// // // As coded and with TACLK = 32768Hz, toggle rates are: // P1.1 = TACCR0 = 32768/(2*4) = 4096Hz // P1.2 = TACCR1 = 32768/(2*16) = 1024Hz // P1.3 = TACCR2 = 32768/(2*100) = 163.84Hz // P1.0 = overflow = 32768/(2*65536) = 0.25Hz // // MSP430F22x4 // ----------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.1/TA0|--> TACCR0 // | P1.2/TA1|--> TACCR1 // | P1.3/TA2|--> TACCR2 // | P1.0|--> Overflow/software // // A. Dannenberg // Texas Instruments Inc. // April 2006 // Built with IAR Embedded Workbench Version: 3.41A //****************************************************************************** #include "msp430x22x4.h"