割り込みのエッジ判定について

CubeSuite+のシミュレータを用いて、V850ES/JH3-Hを評価しています。

割り込みINTP00の有効エッジを「両エッジ」とすれば、立ち上がりエッジと立ち下がりエッジどちらかが来れば割り込みがかかることは確認できましたが、割り込みハンドラの中でどちらのエッジで割り込まれたのかを判別することができません。

立ち上がりエッジと立ち下がりエッジどちらで割り込まれたか知る方法はないのでしょうか。

今回使用する通信ICでは、割り込み信号の立ち上がり時と立ち下がり時で別の処理をする必要があるためです。
(割り込みを使わない方法もあるのですか...)

ご存知の方、教えていただけないでしょうか。
以上、よろしくお願いいたします。
Parents
  • スタッフのチョコです。

    両エッジ検出の場合の割り込みエッジ確認には,兼用になっているポートの状態を確認してください。

    ポートの兼用になっているビットが0ならば立下りエッジを検出,1ならば立ち上がりエッジ検出と判断してください。
  • チョコさん
    ありがとうございます。
    参照させて頂きました。
  • 両エッジの発生間隔は十分に長いですか?
    また、エッジの度に割り込み動作は毎回必須ですか?

    兼用ポートの値を見るのが確実ですが、↓エッジの次は必ず↑エッジなので、
    先回のエッジの方向と必ず反対のエッジで検出するなら、
    兼用ポートの値と記憶している内容の比較というのも信頼性向上に役立つかもしれません。
  • わわいです
    まあ、割り込みルーチンでレベルを見て、ってのはエッジの間隔が十分に長い、というのを前提としないと破綻しますのでご注意を。
    その割り込みの信号にチャタリングが乗る、とかになるとヤバイですなー
  • Kekero様
    おはようございます、お世話になっております。
    使用しているMCUはV850ではないのですが、チョコ様の的確なご回答がありましたので、参照させていただきました。
    > 両エッジの発生間隔は十分に長いですか?
     はい。十分に長いです。

    > エッジの度に割り込み動作は毎回必須ですか?
     はい。人間の操作による不定期な扉の開閉操作による信号を即座にうけるため、まず割り込みは必要です。
     そして、扉が開かれた回数を数えることと、扉の開閉状態の両方を得る必要があるので、両方のエッジを
     使おうと考えました。

            割り込み(↓/↑)
              |
            ポートの状態確認
              |
            Lならば扉開のカウント
              |
            LならばLED点灯/HならばLED消灯

     うーん、片方のエッジだけでカウントして、LEDの消灯はポーリングという方法もありますね。
Reply
  • Kekero様
    おはようございます、お世話になっております。
    使用しているMCUはV850ではないのですが、チョコ様の的確なご回答がありましたので、参照させていただきました。
    > 両エッジの発生間隔は十分に長いですか?
     はい。十分に長いです。

    > エッジの度に割り込み動作は毎回必須ですか?
     はい。人間の操作による不定期な扉の開閉操作による信号を即座にうけるため、まず割り込みは必要です。
     そして、扉が開かれた回数を数えることと、扉の開閉状態の両方を得る必要があるので、両方のエッジを
     使おうと考えました。

            割り込み(↓/↑)
              |
            ポートの状態確認
              |
            Lならば扉開のカウント
              |
            LならばLED点灯/HならばLED消灯

     うーん、片方のエッジだけでカウントして、LEDの消灯はポーリングという方法もありますね。
Children
No Data