タイマー

タイマーを使ってみましょう。まずは、レジスター一覧はこちら。

TIのホームページのサンプルコードが動きませんね。んー。ググっても参考になる記事が見つからない。
長引きそう。。。

こっちのサンプルだと動きますね。でも、2秒周期に点滅を繰り返す。1秒周期じゃないのかな?

#include "msp430.h"
#include  "RTC.h"
#include  "RTC_TA.h"
void main ( void )
{
  WDTCTL = WDTPW + WDTHOLD;             // Stop watchdog timer
  setTime( 0x12, 0, 0, 0);              // initialize time to 12:00:00 AM
  P1DIR |= 0x01;                        // Set P1.0 to output direction
  CCR0 = 32768-1;
  TACTL = TASSEL_1+MC_1;                // ACLK, upmode
  CCTL0 |= CCIE;                        // enable CCRO interrupt
  _EINT();

  while( 1 )
  {
    LPM3;                               // enter LPM3, clock will be updated
    P1OUT ^= 0x01;                      // do any other needed items in loop
    _NOP();                             // set breakpoint here to see 1 second interrupt
  }
}


// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  incrementSeconds();
  LPM3_EXIT;
}