Hi~ tinyos

I'm Sun Mi from Korea,,,
I am learning Timer-A  ...

I'm first to know MSP 430 class. My MSP version is MSP430FG4618


This is timer A codes...

#include  <msp430xG46x.h>
void Port_Init(void);
void TimerA_Init(void);
volatile unsigned int count = 16384;
void main(void)
{
  // Watchdog Timer Stop
  WDTCTL = WDTPW +WDTHOLD;
 Port_Init();
 TimerA_Init();

  // Global Interrupt Enable
  __enable_interrupt();

  // loop
  while(1);
}
void Port_Init(void)
{
  // Port2 1,2 pin Output
  P2DIR |= 0x06;
  P2OUT = 0x00;

  // Port3 5 pin Output => buzzer
  // P3SEL |= 0x0f0;
  P3DIR |= 0x20;
  P3OUT = 0x00;

  // Port5 1 pin Output
  P5DIR |= 0x02;
  P5OUT = 0x00;
}
void TimerA_Init(void)
{
  TACCTL0 = CCIE;   // TACCR0 compare interrupt enable
  TACCR0 = count;   // TACCR0 compare value set
  TACCTL1 = CCIE;   // TACCR1 compare interrupt enable
  TACCR1 = count*2; // TACCR1 compare value set

  TACCTL2 = CCIE;   // TACCR2 compare interrupt enable
  TACCR2 = count*3; // TACCR2 compare value set

  // TimerA Clock Source : ACLK
  // Mode : Continuous mode
  // TimerA overflow interrupt Enable
  TACTL = TASSEL_1 | MC_2 | TAIE;
}

*// TimerA TACCR0 Compare interrupt routine    -->    **     I don;t
understand this part..   What does mean??  *
*
I tried to know by finding information on user's guide
#pragma vector=TIMERA0_VECTOR                           Anyway, I don't well
in interrupt notion.. plz. explain details...*
*__interrupt void Timer_A0 (void)
{
  if((P2OUT & 0x04) == 0x04) P2OUT &= 0xfb;
  else P2OUT |= 0x04;
}*
*// TimerA TACCR1,2 Compare interrupt routine
// TimerA overflow interrupt routine
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1 (void)
{
  unsigned char cnt = 0;

  switch( TAIV )
  {
    // TimerA TACCR1
    case  2:
             if((P2OUT & 0x02) == 0x02) P2OUT &= 0xfd;
             else P2OUT |= 0x02;
             break;

    // TimerA TACCR2
    case  4:
         P5OUT ^= 0x02;
             break;

    // TimerA overflow interrupt
    case 10:
            for(cnt = 0; cnt < 100; cnt++)  // cnt value is sound length
            {
                if((P3OUT & 0x20) == 0x20)
                {
                  P3OUT &= 0xdf;
                  for(count = 0; count < 60; count++);  // count value is
frequency
                }
                else P3OUT |= 0x20;
            }
      P3OUT = 0x00;
            break;
  } // end switch
} // end isr*
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to