タイマー
タイマーを使ってみましょう。まずは、レジスター一覧はこちら。
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; }