RL78/G13 基本的な多重割り込み処理の操作方法

皆様、

初心者です。ご教示お願いします。

・外部のモメンタリSWに接続した割り込みP137端子(INTP0)と12bitインターバルタイマを使い、外部割り込みSWのチャタリング防止のプログラムを作成しました。

・INTP0で呼ばれる#pragmaで定義される割り込みルーチンプログラムの冒頭に、12bitインターバルタイマによるwait_25ms()を記述したところ、このwait_25ms()のHALT()で止まってしまいます。

・そこで、割り込みルーチンのwait_25ms()の代わりに、割り込みを使用しないNOP()を繰り替えすループを作成したところ(100ms程度?)、P137のSW動作はうまく行くようになりました。

お尋ねしたいのは、

(1)外部SWのチャタリング防止のウエイトのために、12bitインターバルタイマを使用するには、どうしたらよいのでしょうか?

(2)INTP0のデフォルト割り込み優先順位は"2"のようです(H/Wマニュアル)。インターバルタイマはこれより低い順位です。wait_25ms()の前に、EI()を入れ、後にDI()を挿入すればことたりるのでしょうか?

初歩的な内容ですが、よろしくお願いします。

Parents
  • こんにちは。NoMaYです。

    リプライは控えるつもりでしたが、1つ思い出したのは、以下のスレッドに多重割り込みの話題と試せるコードがありますよ、ということです。見てみてはどうでしょうか。(G13<-->G14とマイコンは違いますが、コードの肝心な部分は同じだと思います。)

    多重割り込み時に優先順位が同じ場合のとき
    japan.renesasrulz.com/cafe_rene/f/forum18/5880/thread/

    EB68さんの 2019/8/1 13:48 の投稿
    G14多重割り込み.zip
     

  • NoMayさん

    多重割り込みに関するスレッドのご紹介多謝です。かふぇルネで多重割り込みで記事を検索しましたが、これは未見でした。早速のEB68さんのプロジェクトを立ち上げて眺めています。このプロジェクトは、コード生成プロパティのAPI関数の出力制御がすべてのコードを出力するとなっており、生成されたr_cg_intc_user.cのコードの修正箇所等を見ております。また、マニュアルの多重割り込み処理の票のPDFも参考になりました。NoMayさんの赤字の書き込みでモヤモヤ感がなくなりました。
    これまで、あまりレジスタ設定を触ったことはないので大変勉強になります。
    ありがとうございました。
Reply
  • NoMayさん

    多重割り込みに関するスレッドのご紹介多謝です。かふぇルネで多重割り込みで記事を検索しましたが、これは未見でした。早速のEB68さんのプロジェクトを立ち上げて眺めています。このプロジェクトは、コード生成プロパティのAPI関数の出力制御がすべてのコードを出力するとなっており、生成されたr_cg_intc_user.cのコードの修正箇所等を見ております。また、マニュアルの多重割り込み処理の票のPDFも参考になりました。NoMayさんの赤字の書き込みでモヤモヤ感がなくなりました。
    これまで、あまりレジスタ設定を触ったことはないので大変勉強になります。
    ありがとうございました。
Children
No Data