RH850で外部割込みの割込発生フラグのクリアは必要か?

ある機種RH850のコードにて、外部割込みの割込発生フラグのクリアをしていない箇所がありました。その機種の取説には割込発生フラグのクリアを行う記載があります。一般的に割込み発生後、割込発生フラグのクリアを行わないと次の割込みが発生しない ことが多々くあります。大抵と明確に取説にき記載されていません。試そうとしてもハードが固められていて自由に、外部割込みが発生できません。

このような場合は開発ボードで調べます。北斗電子のRH850F1KH-176pin :R7F7017093AFPボードで調べてみました。まず e2Stdio の自動コード生成で、INTP割込みを追加します。

これで一旦自動生成して、ユーザコードを追加します。割込ハンドラ: r_Config_INTC_intp0_interrupt は ベクタテーブルから直callされているので、割込発生フラグのクリアは無い状態です。

R7F7017093AFPINTP0P0_1、pin19 です。 線をつけて手動でポートをGNDに落とします。特に問題なく連続検出できているみたいですね。

ここで自動生成コードを見てみます。ここで気づいたのですが、SFR 構成が試したかったRH850機種とと全然ちがいますね。

試したかったRH850機種は多分開発フェーズが古いようです。差を比較すると全然違うようでした。

項目RH850F1KH調査対象RH850
外部割込みの呼び名INTPxIRQx
外部割込エッジ設定レジスタFCLA0CTLx_INTPLEXINTCTL
外部割込発生フラグレジスタICPx に含むEXINTSTR
外部割込発生クリアレジスタ無し。EXINTSTC
割込設定レジスタICPxEICx
IMRx
ユーザ側で割込発生フラグクリアの実施エッジ検出時は自動。(取説に明記あり)外部割り込み処理フローに明記あり。
ユーザ側で発生クリアレジスタのダミーリードの実施取説上は記載無し。外部割り込み処理フローに明記あり。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です