[戻る]
過去ログ [ 0001 ]
過去ログ:     ワード検索: 条件: 表示:

タイトル
記事No
投稿日
投稿者
参照先
dsPIC33E インプットキャプチャ
278
: 15/06/29-10:27
kura
http://anasys.blog.fc2.com/blog-entry-3.html
お世話になります。
皆様のお知恵をお借りしたく。

● 問題点
インプットキャプチャを用いて、リニアラインカメラの出力の幅を計測しようと考えています。

キャプチャは出来るのですが、カメラのON-OFF時のエッジも検出してしまいます。

カメラは、光を遮る物体が無いと出力はHです。
物体を検知すると、カメラに光が当たらないので、出力がLになります。
また、128素子のカメラですので、動作パルスを128回+1回与えると
出力がLになります。

以下、カメラ出力の図示です。
( H の時の線がありません。)

(1)物体を検知していない状態のカメラ出力
  ここでは、本来であればキャプチャは行わない


____________|       |_________________


(2)物体を検知した状態

____________|  |___|  |_________________

現状のプログラムでは、(1)の場合のエッジを検知してしまいます。
目的は(2)の状態の中央部のエッジ2つのみをキャプチしたいのです。

● 仕様
・PICは120MHzで動作
・カメラの動作は、1MHz(T=1[us])でパルスを与え、それに応じて出力を返す。129パルスを与える。
・500[us]でリセットパルスを与え、カメラをリセット。

→参照先に信号図がありますが、フローは
@スタート
Aリセットパルス      (0 s)
Bカメラへのクロックパルス(130us)
Cリセットパルス (500us)

そしています。
main内の無限ループで、キャプチャを行い、それ以外は割込みで処理を行っています。

キャプチャしたかの確認は、上記のmain無限ループ内で。キャプチャラグが立つと、出力ピンを反転する
という方法で確認。


●行った事

1.main内無限ループ内での条件分岐
  タイマ2でカメラ動作パルスをカウントし、129回目で割込み
  していますので、if(TMR2<130)間だけキャプチャ

2.インプットキャプチャのON-OFF
  リセットパルス後、インプットキャプチャON、クロックパルス   130回目でインプットキャプチャOFF

いずれもうまく行きませんでした。

● 考察
1.インプットキャプチャでは無く、カメラの出力を全て取り込むか?
カメラへのクロックパルスでエッジ割込みを掛けて
cam_out[i]=ROPRBbits.RB13;
のように128個のカメラ出力を全て取り込む。
→1usでクロックを与えているので、時間が間に合うか?

2.カメラON-OFF時のパルスを捨てるか?
最初の立ち上がりエッジ
最後の立下りエッジ
を捨ててパルス幅を計算するか?
→ただ、綺麗な方法ではない。

● まとめ
・インプットキャプチャのアルゴリズムのアドバイスが頂けたら幸いです。

・リニアラインカメラの使い方(考察部分の件)は、通常の使い方なのでしょうか?
リニアラインカメラの使い方もアドバイス頂けると幸いです。

色々調べたり、頭をリフレッシュさせて考えたりもしましたが
行き詰っております。皆様のアドバイスを頂けると幸いです。
宜しくお願い致します。
▲pagetop

- WebForum -