皆様、
初心者です。ご教示お願いします。
・外部のモメンタリ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()を挿入すればことたりるのでしょうか?
初歩的な内容ですが、よろしくお願いします。
こんにちは。NoMaYです。> 非常に短い時間のうちに割り込が連続して発生する、ということになります確かに、そうですね。実は、私は実務でチャタリング除去処理すら書いたことが無いという、少々経験が偏っている人物だったりするので、後は本物のベテランの方にお任せします。(でないと、間違ったことを言いそうなので、、、)#最近、FreeRTOSのサンプルプログラムでvTaskDelay()によるチャタリング除去を書いていたので反応してしまいました、、、すみません、、、