FAQ
割り込みについて
- 割り込みが掛からないのですが、理由は何かありますか?
- 同じ割り込みレベルが同時に発生した場合の優先順位を教えて下さい。
- 外部割り込みが入力されてから、実際に割り込み処理を行うまでの時間はどの位かかりますか?
- 割り込み処理中に、割り込み要求が発生した場合、要求を保持できますか?
- ある割り込み処理中に、処理中の割り込みと同じ優先レベルを持つ割り込み要求が発生した場合、多重割り込みは発生しますか?
- 割込み要求直後により強い割り込みが発生した場合、強い割り込みはいつ開始されますか?
- リセット直後に割り込みが発生する可能性はありますか?
- 外部割り込みの入力規格以下のパルスが入力された場合は、割り込みが発生しないのですか?
- リセット解除後の外部割込み処理が不安定なのですが...。
- 外部割り込みが足りない場合、どうすれば良いですか?
- 割り込みルーチン内でのILM割り込みレベル変更について教えてください。
- 外部割込み使用時に、レベル/エッジを選択できますが、割り込み検出のサンプリング方法はどのようになっていますか?
- ウォッチドックタイマは、マイコンのストップモード時に動作していますか?
- マニュアルの割り込みサンプリング時間に、"割り込み要求サンプリング時間は、最も実行サイクルの長い「POPW RW0,…,RW7」命令(45マシンサイクル)開始直後に割り込み要求が発生した場合、最大となります。"とありますが、45マシンサイクルの計算方法を教えてください。
- ウォッチドックタイマを一度起動すると停止する事は出来ませんか?
- ウォッチドックタイマのクリア処理をタイマなどの一定周期割り込みを利用して行なっても良いですか?
- ウォッチドックリセットのリセット時間はどのくらいですか?
- ウォッチドックタイマは、マイコンのストップモード時に動作していますか?
- 未使用割り込みのベクタはどうしたら良いですか?
- 未定義命令を実行した場合、どうなりますか?
- 例外割り込み発生時にシステムスタックへ退避されるPC値はどのようになりますか?
1. 割り込みが掛からないのですが、理由は何かありますか?
割り込みが掛からない要因としていくつか考えられますので、下記内容をチェックして下さい。(1)CPUのIフラグが立っているか?、(2)目的の割り込み要因が立っているか?、(3)目的の割り込みレベルよりCPUの割り込みレベルが低く設定されているか?、(4)目的の割り込みレベルより高い割り込みレベルの割り込み処理がタイトではないか?、(5)目的の割り込みベクタが合っているか?、(6)目的の割り込みがイネイブルになっているか?
2. 同じ割り込みレベルが同時に発生した場合の優先順位を教えて下さい。
マニュアルの割り込みの章に割り込みベクタ番号があります。同じ割り込みレベルが同時に発生した場合は、この割り込み番号の若い番号が優先して処理されます。
3. 外部割り込みが入力されてから、実際に割り込み処理を行うまでの時間はどの位かかりますか?
本CPUの割り込み受け付けは、各種命令の最終サイクルで行ないますので、実行している命令に依存します。割り込み受け付け後は、割り込みハンドリング時間後、割り込み処理を行います。詳細は、各種製品のハードウェアマニュアルを参照願います。
4. 割り込み処理中に、割り込み要求が発生した場合、要求を保持できますか?
割り込み処理中に発生した割り込みレベルが現在実行している割り込みレベルより高ければ、割り込みルーチンへ移行します。発生した割り込みレベルが低ければ、現在実行しているルーチン終了時に割り込みルーチンへ遷移します。
5. ある割り込み処理中に、処理中の割り込みと同じ優先レベルを持つ割り込み要求が発生した場合、多重割り込みは発生しますか?
多重割り込みは発生しません。新たに発生した割り込み要求は保持され、処理中の割り込み終了後、受け付けられます(割り込み処理が実行されます)。
6. 割込み要求直後により強い割り込みが発生した場合、強い割り込みはいつ開始されますか?
同時の場合は強い割り込みが処理されますが、一度、弱い割込みがハンドリング時間に入ってしまうと、その間は他の割込みを受け付けません。よって、ハンドリング時間終了後に強い割り込みのハンドリングが開始されます。
7. リセット直後に割り込みが発生する可能性はありますか?
リセットの直後は、割り込みフラグ(Iフラグ)はディセイブルになっております。そのため、割り込みが発生する事はありません。
8. 外部割り込みの入力規格以下のパルスが入力された場合は、割り込みが発生しないのですか?
電気的特性の外部割り込みの入力規格は、規格値より大きい幅のパルスが入力された時に割り込み処理が正常に行なわれる事を保証している幅になります。外部割り込みの入力規格以下のパルスが入った場合でも割り込み処理される場合もありますが、保証しているものではありませんので、規格内でご使用頂く事を推奨致します。
9. リセット解除後の外部割込み処理が不安定なのですが...。
割り込み要因レジスタのEIRRは、初期値が不定のためイニシャルする必要があります。また、プログラム処理にて(1)ELVR(割り込み)設定、(2)EIRR(要因)クリア、(3)ENIR(割り込み許可)の順番で設定しないと不用意に割り込みが入る可能性があります。
10. 外部割り込みが足りない場合、どうすれば良いですか?
インプットキャプチャーなどを利用する事によって、割り込みの代替として使用できると考えます。(インプットキャプチャーは、ICS:EGにより、検出エッジを選択できます。)
11. 割り込みルーチン内でのILM割り込みレベル変更について教えてください。
通常、割り込みルーチン内でのILMレベル変更は、強いレベルへ変更して発生する割り込みを抑制するため等に使用されます。割り込みルーチン内でILMレベルを弱いレベルへ変更した場合、多重割り込みにて再び現在実行中の割り込みが発生する可能性がありますのでご注意ください。
12. 外部割込み使用時に、レベル/エッジを選択できますが、割り込み検出のサンプリング方法はどのようになっていますか?
サンプリングクロックは、内部動作クロックになります。また、サンプリング方法は、(1)レベル検出時は、1回のサンプリングにてレベルを判定します。(2)エッジ検出の場合は、前回の値と比較してエッジの判定を行います。
13. ウォッチドックタイマは、マイコンのストップモード時に動作していますか?
割り込み復帰時間については、RETI命令実行時間以外には必要ありません。割り込み遷移については、CPU命令処理中に割り込みに遷移するため割り込みをハンドリングする時間が必要になります。しかしながら、復帰については、シーケンシャルに命令処理するため、特殊な時間は必要ありません。
14. マニュアルの割り込みサンプリング時間に、"割り込み要求サンプリング時間は、最も実行サイクルの長い「POPW RW0,…,RW7」命令(45マシンサイクル)開始直後に割り込み要求が発生した場合、最大となります。"とありますが、45マシンサイクルの計算方法を教えてください。
命令一覧表から、POPW rlstのサイクル数は「7+3×(POOPする数)+2×(POPする最後のレジスタ番号)」です。よって、RW0~RW7までPOPWする際のサイクル数は、7+3×8+2×7=45サイクルとなります。
15. ウォッチドックタイマを一度起動すると停止する事は出来ませんか?
ウォッチドックタイマを一度起動するとリセット以外の方法では、停止する事は出来ません。
16. ウォッチドックタイマのクリア処理をタイマなどの一定周期割り込みを利用して行なっても良いですか?
ウォッチドックタイマのクリア処理をタイマなどの一定周期割り込みを利用した場合、ウォッチドックタイマの効果を半減しますので、推奨しません。
17. ウォッチドックリセットのリセット時間はどのくらいですか?
ウォッチドックリセットのリセット期間は3サイクルです。
18. ウォッチドックタイマは、マイコンのストップモード時に動作していますか?
マイコンのストップモード時は、発振が停止するため、ウォッチドックは停止します。ストップモード復帰後は、ウォッチドックカウンタはクリアされてから動作します。
19. 未使用割り込みのベクタはどうしたら良いですか?
未使用の割り込みは、一括してリセットベクタと同じベクタに設定したり、一定の処理ルーチンを儲け、その処理をさせるなどする事をお奨めします。
20. 未定義命令を実行した場合、どうなりますか?
F2MC-16LXseriesでは、未定義命令実行により、例外割り込みが発生します。例外割り込みベクタには、リセットベクタを定義するなどする事により、例外割り込みによりリセット復帰からの処理が可能となります。
21. 例外割り込み発生時にシステムスタックへ退避されるPC値はどのようになりますか?
例外割り込みは、未定義命令を実行した場合に発生し、未定義命令が格納されているプログラムアドレスがシステムスタックへ退避されます。通常の割り込みとは、PC値のスタック動作が異なりますのでご注意ください。
