📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

397行目: 397行目:
* インターバルタイマモード
* インターバルタイマモード
*: 一定間隔で割り込みを生成するためのモード
*: 一定間隔で割り込みを生成するためのモード
<br><br>
== サンプルコード ==
<syntaxhighlight lang="c">
#include <msp430.h>
#define LED_PIN BIT0  // LEDが接続されているピン (例: P1.0)
int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;  // ウォッチドッグタイマを停止
    P1DIR |= LED_PIN;          // LEDピンを出力に設定
    // タイマA0の設定
    TA0CCTL0 = CCIE;            // CCR0の比較一致割り込みを有効化
    TA0CCR0  = 32768 - 1;        // 1秒間隔 (ACLK = 32.768[kHz])
    TA0CTL  = TASSEL_1 | MC_1;  // ACLKを選択して、アップモード
    // 低電力モード3 (LPM3), 割り込みを有効化
    __bis_SR_register(LPM3_bits | GIE);
    // 空の操作 (コンパイラの最適化を防ぐため)
    __no_operation();
}
// タイマA0 CCR0の割り込みサービスルーチン
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0_ISR(void)
{
    P1OUT ^= LED_PIN;  // LEDの状態を切り替え
}
</syntaxhighlight>
<br><br>
<br><br>