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

362行目: 362行目:


== IFG2 : 割り込みフラグレジスタ2 ==
== IFG2 : 割り込みフラグレジスタ2 ==
==== UCB0TXIFG : USCI_B0送信割り込みフラグ ====
IFG2レジスタは、対応する割り込みイベントが発生したかどうかを示すフラグビットを含む。<br>
<br>
IFG2レジスタの各ビットの詳細を以下に示す。<br>
<br>
==== UCB0RXIFG : USCI_B0受信割り込みフラグ (0ビット目) ====
* 0
*: 割り込みイベントなし
* 1
*: USCI_B0受信割り込みイベントが発生
*: 新しいデータが受信バッファに到着
<br>
==== UCB0TXIFG : USCI_B0送信割り込みフラグ (1ビット目) ====
* 0
* 0
*: 割り込みなし
*: 割り込みイベントなし
* 1
* 1
*: USCI_B0送信割り込みイベントが発生
*: 送信バッファが空になり、新しいデータを書き込み可能
*: 送信バッファが空になり、新しいデータを書き込み可能
<br>
<br>
==== UCB0RXIFG : USCI_B0受信割り込みフラグ ====
==== UCA0RXIFG : USCI_A0受信割り込みフラグ (2ビット目) ====
* 0
*: 割り込みイベントなし
* 1
*: USCI_A0受信割り込みイベントが発生
<br>
==== UCA0TXIFG : USCI_A0送信割り込みフラグ (3ビット目) ====
* 0
*: 割り込みイベントなし
* 1
*: USCI_A0送信割り込みイベントが発生
<br>
==== URXIFG1 : USART1 受信割り込みフラグ (4ビット目) ====
* 0
*: 割り込みイベントなし
* 1
*: USART1受信割り込みイベントが発生
<br>
==== UTXIFG1 : USART1 送信割り込みフラグ (5ビット目) ====
* 0
*: 割り込みイベントなし
* 1
*: USART1送信割り込みイベントが発生
<br>
==== 予約済み (Reserved) (6ビット目) ====
<br>
==== BTIFG : Basic Timer 割り込みフラグ (7ビット目) ====
* 0
* 0
*: 割り込みなし
*: 割り込みイベントなし
* 1
* 1
*: 新しいデータが受信バッファに到着
*: Basic Timer割り込みイベントが発生
<br>
上記の各フラグビットは、対応する割り込みイベントが発生すると自動的に<code>1</code>にセットされる。<br>
例えば、USCI_B0モジュールでデータを受信する時、<code>UCB0RXIFG</code>ビットがセットされる。<br>
<br>
割り込みサービスルーチン (ISR) 内で割り込みイベントを処理した後、対応するフラグビットを手動でクリアする必要がある。<br>
<u>フラグビットをクリアしない場合、ISRが繰り返し呼び出されることになることに注意する。</u><br>
<br>
フラグビットをクリアするには、一般的に、フラグビットに<code>1</code>を書き込む。<br>
例えば、<code>UCB0RXIFG</code>ビットをクリアするには、次のように記述する。<br>
<syntaxhighlight lang="c">
UCB0RXIFG &= ~BIT0;  // UCB0RXIFGビットをクリア
</syntaxhighlight>
<br>
<u>割り込みを使用する場合は、IE2レジスタで対応する割り込みを有効にして、IFG2レジスタでフラグビットを確認およびクリアすることが重要である。</u><br>
これにより、割り込みイベントを適切に処理して、システムを安定して動作させることができる。<br>
<br><br>
<br><br>