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
  • 私ならわわいさんの最初のレスの通りにします。
    「初心者が多重割り込み」を使うってことは無謀だし「SWを割込みに繋ぐ」のも厳しいです。
    「コンデンサでチャタリングを取る」工夫は出来ませんか?
    それがダメなら、タイマ割込みで見張れば簡単になると思います。

    >本来の多重割り込みの基本的な使い方から、チャタリング対策処理に話題が移りました。
    ↑これを読むと、tok2010さんはホントに初心者なのですか?
    なんとなくそうは思えないんですが・・・
  • Mooさん

    ご指導ありがとうございます。
    仰るように、当方のような初心者には多重割り込み処理は難しいと思います。
    割り込みは、省電力設計に重要だと、どこかの記事で読みました。これまで、わたくしは初心者の域を出ず、あまり割り込みを使用せず、ポーリング手法を中心に考えていました。
    今回は、無謀にも、チャタリングという課題を使い、この多重割り込みを勉強しようと考えた次第です。
    引き続きよろしくご指導お願いいたします。
Reply
  • Mooさん

    ご指導ありがとうございます。
    仰るように、当方のような初心者には多重割り込み処理は難しいと思います。
    割り込みは、省電力設計に重要だと、どこかの記事で読みました。これまで、わたくしは初心者の域を出ず、あまり割り込みを使用せず、ポーリング手法を中心に考えていました。
    今回は、無謀にも、チャタリングという課題を使い、この多重割り込みを勉強しようと考えた次第です。
    引き続きよろしくご指導お願いいたします。
Children
No Data