PORTB ピンは状態変化割り込み (IOC) ピンとして 動作するように設定できます。割り込みは、立ち上 がりエッジまたは立ち下がりエッジのいずれかで 反応する信号を検知することによって生成できま す。いずれかの PORTB ピンまたは複数の PORTB ピ ンの組み合わせを使用して割り込み信号を生成し ます。状態変化割り込みモジュールは、次の特徴が あります。
• 状態変化割り込みイネーブル (マスタースイッチ)
• 個別のピン設定
• 立ち上がりエッジおよび立ち下がりエッジの検知
• 個別のピン割り込みフラグ
図7-1に、IOC モジュールのブロック図を示します。
7.1 モジュールの有効化
各 PORTB ピンで割り込みを生成するには、INTCON レジスタの IOCIE ビットをセットする必要があり
ます。IOCIE ビットが無効の場合、ピンにおいてエッ
ジは検知されますが割り込みは生成されません。
7.2 個別のピン設定
各 PORTB ピンには、立ち上がりエッジの検出機能
と立ち下がりエッジの検出機能があります。立ち上 がりエッジの検出機能を有効にする場合は、IOCBP レジスタの対応する IOCBPx ビットをセットしま す。立ち下がりエッジの検出機能を有効にする場合 は、IOCBN レジスタの対応する IOCBNx ビットを セットします。
IOCBP および IOCBN の各ビット (IOCBPx および
IOCBNx) を両方設定することで、同時に、立ち上が
りエッジと立下りエッジを検出できるようになり ます
7.3 割り込みフラグ
IOCBF レジスタの IOCBFx ビットは、PORTB の状 態変化割り込みピンに対応するステータス フラグ です。適切な有効ピンにおいて設定されたエッジが 検出されると、そのピンのステータスフラグがセッ
トされ、IOCIE ビットがセットされていると割り込
みが生成されます。INTCON レジスタの IOCIF ビッ トは、すべての IOCBFx ビットのステータスを反映 します。
7.4 割り込みフラグのクリア
各ステータス フラグ (IOCBFx ビット ) は、0 にリ セットするとクリアできます。クリア動作中に次の エッジが検出された場合は、実際に書き込みされる 値に関係なくシーケンス完了時に関連するステー タス フラグがセットされます。
フラグ クリア中に検出したエッジを失わないよう にするため、既知の変更済みビットをマスクした AND 動作のみ実行してください。実行すべきシーケ ンスを次に示します。
例 7-1:
7.5 スリープ時の動作
IOCIE ビットがセットされている場合、状態変化割
り込みシーケンスはデバイスをスリープ モードか らウェイクアップさせます。
スリープモード中にエッジが検出されている場合、
ウェイクアップ後の最初の命令を実行する前に IOCBF レジスタがアップデートされます。
MOVLW 0xff XORWF IOCBF, W ANDWF IOCBF, F
PIC16F193X/LF193X
レジスタ 7-1: IOCBP: 立ち上がりエッジの状態変化割り込みレジスタ
R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0
IOCBP7 IOCBP6 IOCBP5 IOCBP4 IOCBP3 IOCBP2 IOCBP1 IOCBP0
bit 7 bit 0
記号の説明:
R = 読み出し可 W = 書き込み可 U = 未実装ビット。「0」として読み出し
u = 不変 x = 不明 -n/n = POR および BOR 時の値/その他すべての
リセット時の値
1 = セット 0 = クリア
ビット 7-0 IOCBP<7:0>: 立ち上がりエッジの状態変化割り込みイネーブルビット
1 = 立ち上がりエッジの状態変化割り込みが有効。エッジ検出時に関連するステータス ビット および割り込みフラグがセットされる
0 = 状態変化割り込みは無効
レジスタ 7-2: IOCBN: 立ち下がりエッジの状態変化割り込みレジスタ
R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0
IOCBN7 IOCBN6 IOCBN5 IOCBN4 IOCBN3 IOCBN2 IOCBN1 IOCBN0
bit 7 bit 0
記号の説明:
R = 読み出し可 W = 書き込み可 U = 未実装ビット。「0」として読み出し
u = 不変 x = 不明 -n/n = POR および BOR 時の値/その他すべての
リセット時の値
1 = セット 0 = クリア
ビット 7-0 IOCBN<7:0>: 立ち下がりエッジの状態変化割り込みイネーブルビット
1 = 立ち下がりエッジで状態変化割り込みが有効。エッジ検出時に関連するステータスビット および割り込みフラグがセットされる
0 = 状態変化割り込みは無効
レジスタ 7-3: IOCBF: 状態変化割り込みフラグ レジスタ
R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0
IOCBF7 IOCBF6 IOCBF5 IOCBF4 IOCBF3 IOCBF2 IOCBF1 IOCBF0
bit 7 bit 0
記号の説明:
R = 読み出し可 W = 書き込み可 U = 未実装ビット。「0」として読み出し
u = 不変 x = 不明 -n/n = POR および BOR 時の値/その他すべての
リセット時の値
1 = セット 0 = クリア
ビット 7-0 IOCBF<7:0>: 状態変化割り込みフラグ ビット 1 = 関連ピンで有効な変更が検出された。
IOCBPx =1 のとき RBx で立ち上がりエッジが検出された場合、または IOCBNx =1 のとき RBx で立ち下がりエッジが検出された場合にセットされる
0 = 変更がない、または検出された有効な変更をユーザーがクリアした
PIC16F193X/LF193X
図 7-1: 状態変化割り込みのブロック図
表 7-1: 状態変化割り込み関連のレジスタ
Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Register on Page
ANSELB — — ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 91
INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 73
IOCBF IOCBF7 IOCBF6 IOCBF5 IOCBF4 IOCBF3 IOCBF2 IOCBF1 IOCBF0 104 IOCBN IOCBN7 IOCBN6 IOCBN5 IOCBN4 IOCBN3 IOCBN2 IOCBN1 IOCBN0 104 IOCBP IOCBP7 IOCBP6 IOCBP5 IOCBP4 IOCBP3 IOCBP2 IOCBP1 IOCBP0 104
TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 91
記号の説明: x =不明。u =不変。-=未実装、「0」として読み出し。網掛けのビットは、状態変化割り込み で使用しません。
RBx
From all other IOCBFx individual pin detectors
D Q
CK R
D Q
CK R IOCBNx
IOCBPx
Q2 Clock Cycle
IOCIE
IOC Interrupt to CPU Core IOCBFx
PIC16F193X/LF193X
ノート: