Other Parts Discussed in Thread: MSP430F1611
Can anyone tell me what is capture or compare in TimerA and its use?
Below a sample program is given
I dont know why 32768 is Added as an offset to CCR1in the ISR.. can anybody explain the reason?
#include "include/include.h"
#include "include/hardware.h"
int main ( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P5DIR |= 0x70; // P5.4, P5.5, P5.6 in output mode
CCTL0 = CCIE; // CCR0 interrupt enabled
CCTL1 = CCIE; // CCR1 interrupt enabled
CCTL2 = CCIE; // CCR2 interrupt enabled
CCR0 = 0;
CCR1 = 0;
CCR2 = 0;
TACTL = TASSEL_1 + MC_2+ TAIE; // ACLK, contmode, TAIE enabled
_BIS_SR(LPM0_bits + GIE); // Enable the global interrupt and enter LPM0
}
// Timer_A TACCR0 interrupt vector handler
interrupt (TIMERA0_VECTOR) TimerA0_procedure ( void ){
P5OUT ^= 0x10; //on TACCR0 Toggle P5.4 (Red LED)
CCR0 += 16384; // Add offset to CCR0
}
// Timer_A TAIV interrupt vector handler
interrupt (TIMERA1_VECTOR) TimerA1_procedure ( void ){
switch( TAIV )
{
case 2: P5OUT ^= 0x20; // on TACCR1 CCIFG Toggle P5.5 (Green LED)
CCR1 += 32768; // Add offset to CCR1
break;
case 10: P5OUT ^= 0x40; // on Timer overflow TAIFG Toggle P5.6 (Blue LED)
break;
}
}