Renesas Community
Search Community
User
Join or sign in
Site
Search Community
User
Renesas Engineering Community
FAQ
HELP
More
Cancel
Forums & Groups
English Community
中文社区(Chinese Community)
More
Cancel
かふぇルネ
forums-groups
Microcontrollers and Microprocessors
Other MCU/MPU Products
V850
More
Cancel
V850
104: V850 - Forum
割り込みのエッジ判定について
Home
Forum
Tags
More
Cancel
New
Replies
17 replies
Subscribers
448 subscribers
Views
31332 views
Users
0 members are here
割り込み
V850ES
CubeSuite+
beginner
立ち上がりエッジ
割り込みINTP00
Options
Share
More
Cancel
Related
割り込みのエッジ判定について
dai_tory
over 11 years ago
CubeSuite+のシミュレータを用いて、V850ES/JH3-Hを評価しています。
割り込みINTP00の有効エッジを「両エッジ」とすれば、立ち上がりエッジと立ち下がりエッジどちらかが来れば割り込みがかかることは確認できましたが、割り込みハンドラの中でどちらのエッジで割り込まれたのかを判別することができません。
立ち上がりエッジと立ち下がりエッジどちらで割り込まれたか知る方法はないのでしょうか。
今回使用する通信ICでは、割り込み信号の立ち上がり時と立ち下がり時で別の処理をする必要があるためです。
(割り込みを使わない方法もあるのですか...)
ご存知の方、教えていただけないでしょうか。
以上、よろしくお願いいたします。
チョコ
over 11 years ago
スタッフのチョコです。
両エッジ検出の場合の割り込みエッジ確認には,兼用になっているポートの状態を確認してください。
ポートの兼用になっているビットが0ならば立下りエッジを検出,1ならば立ち上がりエッジ検出と判断してください。
Cancel
Up
0
Down
Reply
Cancel
dai_tory
over 11 years ago
チョコさん
シミュレータ上で確認したところ、おっしゃるとおりでした。
ご回答、感謝いたします。
ありがとうございました。
Cancel
Up
0
Down
Reply
Cancel
パールマン
over 6 years ago
in reply to
チョコ
チョコさん
ありがとうございます。
参照させて頂きました。
Cancel
Up
0
Down
Reply
Cancel
kekero
over 6 years ago
in reply to
パールマン
両エッジの発生間隔は十分に長いですか?
また、エッジの度に割り込み動作は毎回必須ですか?
兼用ポートの値を見るのが確実ですが、↓エッジの次は必ず↑エッジなので、
先回のエッジの方向と必ず反対のエッジで検出するなら、
兼用ポートの値と記憶している内容の比較というのも信頼性向上に役立つかもしれません。
Cancel
Up
0
Down
Reply
Cancel
わわい
over 6 years ago
in reply to
パールマン
わわいです
まあ、割り込みルーチンでレベルを見て、ってのはエッジの間隔が十分に長い、というのを前提としないと破綻しますのでご注意を。
その割り込みの信号にチャタリングが乗る、とかになるとヤバイですなー
Cancel
Up
0
Down
Reply
Cancel
パールマン
over 6 years ago
in reply to
kekero
Kekero様
おはようございます、お世話になっております。
使用しているMCUはV850ではないのですが、チョコ様の的確なご回答がありましたので、参照させていただきました。
> 両エッジの発生間隔は十分に長いですか?
はい。十分に長いです。
> エッジの度に割り込み動作は毎回必須ですか?
はい。人間の操作による不定期な扉の開閉操作による信号を即座にうけるため、まず割り込みは必要です。
そして、扉が開かれた回数を数えることと、扉の開閉状態の両方を得る必要があるので、両方のエッジを
使おうと考えました。
割り込み(↓/↑)
|
ポートの状態確認
|
Lならば扉開のカウント
|
LならばLED点灯/HならばLED消灯
うーん、片方のエッジだけでカウントして、LEDの消灯はポーリングという方法もありますね。
Cancel
Up
0
Down
Reply
Cancel
パールマン
over 6 years ago
in reply to
わわい
わわい様
おはようございます。
エッジの間隔が十分に長いのは確実です。人間の操作による扉の開閉で、一番短い間隔でも十数秒です。
開閉信号はリミットスイッチ(無電圧接点)で、この入力信号をフォトカプラで受けてさらにフィルタを入れています。
たぶんこれにチャタが乗ることはないと考えています。
Cancel
Up
0
Down
Reply
Cancel
チョコ
over 6 years ago
in reply to
kekero
チョコです。
>回のエッジの方向と必ず反対のエッジで検出するなら、
チャタリングの影響を考えると,きちんと状態を確認すべきでしょうね。
つまり,エッジ検出割り込みの中でチャタリングが落ち着くまで待ってからポートで確認するのが
いいのではないでしょうか。
Cancel
Up
0
Down
Reply
Cancel
わわい
over 6 years ago
in reply to
パールマン
わわいです
ハード的に対策されてるならOKですねー
私なら、という話になりますが、そういう用途なら、タイマ割り込みでポート値を読み出して、そこでチャタリング処理を行うとともに開閉処理をさせてしまいますねー
#そういう人間の操作に割り込み使うってのはなんかもったいない、気がしますw
Cancel
Up
0
Down
Reply
Cancel
kekero
over 6 years ago
in reply to
わわい
扉の開閉タイミングで、即なにかを実行とかの必要があれば、割り込みも手と思いますが、
扉の開閉タイミングが10秒以上もあくのなら、インターバルでメインルーチンを回しているなら、
例えば10msecくらいでも十分早いと思いますし、それよりも長くても問題は少ない気がします。
メインルーチンが規則的に回らないなら、かわいさんが書かれたタイマー割り込みとかでもよいと思います。
私の考えですが、割り込みを使わなくて済むなら使わないというのが、余計な事を考えなくて
よいのかなーと思います。
近接センサ自体もヒステリシス?特性みたいなのがあると思いますので、ギリギリでもハンチング
しないと思いますし、フォトカプラで受けてフィルタなので、ハード的にはハンチング防止になっていると
思いますが、万が一、近接センサの入力までの信号系が断線や故障の時に、ハンチングが起きた場合まで想定するかどうかだと思います。
この状態なので、正しく開閉判定できないのは、あたりまえですが、割り込みが連続した時に、割り込みを受け付けると他に支障が来ないようなプログラムにするのか、そこまで過剰に気にしても無意味と判断するかです。
最初に書いた、適当な間隔でポートを見ればと思ったのは、フォトカプラの後にフィルタ入れたという事なので、10msecやもう少し遅く判定しても大丈夫なのかと思いました。
Cancel
Up
0
Down
Reply
Cancel
>