文中のINTCON = 0bxx000000;などのxは,これから設定するビットを表す(xのまま書き込むわけではない)
調整するレジスタ
- IOCxN
- IOCxP
- IOCxF
- INTCON
※ xは使用するポートによる
1.IOCxN,IOCxPレジスタの設定
それぞれNegative,Positiveの意で,ポートが1から0へ変化した時か,ポートが0から1へ変化した時か,どちらの場合に割り込み許可をするかを設定するレジスタである.ビットはレジスタ名の末尾にポート番号が添えられた表記になっている.
2.IOCxFレジスタの設定
ポートAのピンを状態変化割り込みとして使用する場合とすると
1:対応するピンで状態変化が検出された
IOCAPx = 1で、RAxに立ち上がりエッジが検出された場合、またはIOCANx = 1で、RAxに立 ち下がりエッジが検出された場合にセットされる
0:状態変化なし、または検出された状態変化をユーザがクリアした
割り込みを繰り返し行うには,割り込み発生後にIOCxFレジスタ,または各ビットを初期化する必要がある.
3.INTCONレジスタの設定
INTCON = 0bxx00x000;
GIE
:セットで全てのアクティブな割り込み有効(1ビット)
PEIE
:セットで全てのアクティブな周辺モジュール割り込み有効(1ビット)
IOCIE
:セットで状態変化割り込み有効(1ビット)
IOCIF
1 : 状態変化割り込みピンのうち少なくとも1本の状態が変化した
0 : 状態変化割り込みピンの状態は変化していない
(1ビット)※Read Only
参考
ツール・ラボ 第18回 割込み処理(3) 〜割込み処理プログラムテンプレ〜 PICマイコン入門-応用
https://tool-lab.com/pic-app-18/
浅草ギ研 入門用マイコンボードPIColo スイッチなどの外部入力による割り込み(状態変化割り込み)
http://www.robotsfx.com/robot/robohow/RoboHow154/RoboHow154.html
MICROCHIP PIC16(L)F1764/5/8/9 日本語PDFデータシート
https://akizukidenshi.com/download/ds/microchip/PIC16F1764_PIC16LF1769_j.pdf