📢 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> | ||