PIC16F193X割り込み時の退避・復帰処理方法
ICマイコンでの割り込み処理について、16F193Xの型番では割り込み発生時における退避・復帰が自動的に行われると認識しているのですが、下記型番では以前の様に
wレジスタ、status,PCLATh等のレジスタを退避・復帰をプログラムで保存しておく必要がなくなったということでしょうか?
使う割り込みはタイマー割り込み(timer0)とし、割り込処理中の割り込みは禁止とした場合
因みに割り込みは以下の様に発生させ
//////////////////////////
org 0
goto start
org 4
goto INTLAP
//////////////////////////
INTLAP
BCF INTCON,2
INCF TES_CNT,1
RETFIE
割り込み処理中にTES_CONのレジスタ内容をPORTAの出力pinをオシロスコープで観察できる簡単なプログラムで走らせると動作していることが確認できましたが、退避・復帰が行われているかは不明です。
他に自動退避・復帰を確実に実行するためのプログラム等の操作を怠っていないでしょうか?
初心者で認識が誤っていないのか判断が出来ません。
対象型番
PIC16F1933 ? PIC16F1934? PIC16F1936 ? PIC16F1937? PIC16F1938 ? IC16F1939
PIC16F193X/LF193Xデータシート記述より(P71,72)
〇「このデータシートに記載されているデバイスRETFIE 命令では、割り込み前に実行していたアドレスをスタックから取得し、シャドウ レジスタから保存した内容を回復し、GIE ビットをセットすることによって、ISR から通常動作に復帰します。」
内容保存機能
〇「割り込み動作に遷移する際、復帰時の PC アドレス値がスタックに保存されます。また、次に示すレジスタ値も自動的にシャドウ レジスタに保存されます。
・W レジスタ
・ ステータス レジスタ (TO および PD を除く)
・BSR レジスタ
・FSR レジスタ
・ PCLATH レジスタ
割り込みサービス ルーチンから通常動作に戻るとき、自動的にこれらのレジスタ値が回復されます。
とあります。
お礼
なるほど、ありがとうございます。