H8/36094:IRQ0の処理が起動しないことがある

はじめまして。よろしくお願い致します。

H8/36094を以下のクロック、割込を使用して動かしているのですが、IRQ0の処理がたまに(1,000回に1回くらい)起動しないことがあります。

これは、プログラムでIRQ0の処理の入り口でP81=L、出口でP81=Hとし、オシロでIRQ0とP81を観測することで確認しております。

試しにTimerAの割込周期を約50msecにしたところ、上記の現象は100,000回に1回程度になったのでTimerAが影響しているのだろうとは思いますが、どうしてこうなるのか分かりません。

プログラム中では初期設定以外でIENR1やIビットの操作はしていません。

解決のために何をチェックすればよろしいでしょうか。ご教示いただけるとありがたいです。

 

CPUクロック

・オンチップオシレータ 10MHzで動作

IRQ0

・割込周期:約50msec、立下りエッジ検出、Lowレベル:約2msec、処理時間:50usec以下

TimerA

・割込周期:819.2usec、処理時間:50usec以下

ADC

・割込周期:50msecごと、処理時間:50usec以下

WDT

・未使用

Parents
  • 投稿したのに何度も失敗で書き直しです。だから簡単に書きます。
     
    なんだ、マニュアルを見れば簡単。
    IRR1レジスタの説明は次のようになっています。
    リセットしたいビットだけ0にして書き込めばよい。
     
    IRQ0 割り込み要求フラグ
    [セット条件]
    IRQ0 端子が割り込み入力に設定され、指定されたエッジを検出したとき
    [クリア条件]
    0 をライトしたとき
  • リカルドさんwrote: said:
    なんだ、マニュアルを見れば簡単。
    ...略...
    リセットしたいビットだけ0にして書き込めばよい。[引用終]

    ああ、なるほど!! 1は書かれないということですね。コロンブスの卵ですね。

Reply
  • リカルドさんwrote: said:
    なんだ、マニュアルを見れば簡単。
    ...略...
    リセットしたいビットだけ0にして書き込めばよい。[引用終]

    ああ、なるほど!! 1は書かれないということですね。コロンブスの卵ですね。

Children
No Data