はじめに |
このご紹介はTAMS62622に対するもので、旧モデルTAMS61622は対象になっておりません。
「EIR割り込み待ち」が解除される前に、再度割り込み可能にしてしまうと、別の割り込みが生成される可能性があります。
|
(TAMS Sept 4, 2009資料より)
|
アイドル・ループ中に、ENABLE INTRステートメントを入れ、問題の回避 |
HTBasicでGPIOインターフェースの割り込み処理を行う場面で、いくつかの考慮すべき既知の事があります。まず第一にそのサポートは、本質的にレベル・センシティブ(ハイ/ロー)です。このことは、もし「EIR待ち」が解除される前に、再度割り込み可能にしてしまうと、別の割り込みが生成されるであろうことを意味しています。
|
また、TAMS62622のみの問題であり、割り込みは62622に認知させる目的で、ずっとENABLE(割り込み可能状態)にしておく必要があります。プログラムのアイドル・ループ中に、ENABLE INTRステートメントを入れることでこの問題は回避できます。 この回避策は、TAMS61622インターフェースでは必要とされませんでした。
|
また、Cで書かれたプログラムからSICLを呼び出しまたはLinux上のRocky Mountain Basicのプログラムによる割り込み処理に対してはこの問題の対象にはなりません。
|
以下のサンプルプログラムは 62622で適切に動作させる為、アイドル・ループ中にENABLE INTRステートメントを含ませています。 ビットが0(EIRが割り込み解除された状態→ハイ)になるまで、割り込みを再可能にする遅延のためにEIRのソフトウェア・ポールを行います。
|
プログラムはEIRがつかんでいる間、割り込みルーチンに差し込まれているので、適度に低い頻度でEIRをローにしているので最もよい。
|
サンプルプログラム |
拡大
|