• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:dsPIC33E でのインプットキャプチャについて)

dsPIC33Eでのインプットキャプチャの問題点と解決方法

このQ&Aのポイント
  • dsPIC33Eでのインプットキャプチャを用いてラインカメラの出力の幅を計測する際に、問題が発生しています。
  • 現在のプログラムでは、カメラ出力が無い場合でもキャプチャが行われてしまい、正しい計測ができません。
  • 解決策として、インプットキャプチャを特定の条件下でのみ行うように改良する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.2

No.1 補足 これはPICの場合で、dsPICでは違うかも知れません <IFS0bits.IC1IF> のチェックのみでLEDを点滅させていますが、IC1IFフラグはIC1IE (IC1割り込み許可フラグ) の状態にかかわらずセットされます IC1割り込み禁止中にLED点滅を止める場合は、IC1IEを考慮する必要があります TSL1401CLのデータシートでは、SCKに5K~8MHzの幅があり、ソフトウェアでSCKを出力しSCK立下りのタイミングでデータを読み取っても問題ないと考えます 又はSPI通信(ダミーデータを出力しシリアルデータを受け取る) SI周期でシャッタースピードが規定されるので、タイマ割り込みで同期を取る パルス幅をキャプチャする方法では、SIの立ち上がりを基点として、次のSCK立下りでスタート、SCK128回目の立下りまでHIGH / LOW データパルス幅をすべて記録する必要があります (幅の狭いパルスはノイズ、ゴミとして除外する) 参考になれば幸いです。

Snoodam
質問者

お礼

TAOS社のイメージセンサの仕様書までご確認頂きありがとうございます。 頂いたアドバイスを基に試してみます。 今度もお時間があれば宜しくお願い致します。

その他の回答 (1)

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.1

dsPICは未経験なのでプログラムのアドバイスは出来ませんが ラインカメラ=ラインスキャンカメラの事だと思われ、シフトクロックで順次データが出力されるタイプです シフトクロックに連動して128画素データを読み込み比較した方が良いと思われます。 (出力されるデータはアナログ値なので、A/D変換するか、コンパレータでしきい値を設定する必要があります) 参考先 http://blog.digit-parts.com/archives/51911667.html http://blog.digit-parts.com/pdf/SEN917_LE_N_SU13.pdf ラインカメラの種類が違う場合は、本回答は無視して下さい

Snoodam
質問者

お礼

koujikuu様: アドバイスありがとうございます。 添付して頂きました、ラインスキャンカメラのそのものズバリを使用しています。 但し、OPアンプ内蔵型を使用しており。今回の1MHzにOPAMPが対応しないので、OPAMPは変更していますが。 現状、コンパレータを使用しております。(AD変換では、500usの周期に間に合いそうもないので) もしお時間がおかりであれば再度の相談に乗って頂けないでしょうか。 1.プログラムの構成についてです。 (1)コンパレータ出力ピン→どこかのデジタル入力ピンに入力(RB13と仮定) (2)char comp_out[127]に値の取り込み  ※このイメージが出来ません。もしRB13ピンにコンパレータ出力を入力するとして    comp_out[i]=ROPRBbits.RB13; としてfor を回すして、コンパレータの実時間との整合性はどう取ればいいのでしょうか。 現在PWMモジュールで1us毎にパルスを与えていますので、カメラの出力も1usでOUTされます。 1us毎に comp_out[i]=ROPRBbits.RB13; が働くプログラムのイメージが出来ません。 ニュアンスだけでも結構ですので、ご助言頂けると幸いです。 2.ラインスキャンカメラの扱いについて 私が言うのは不遜なのですが、koujikuu様が今まで回答されてきました履歴を拝見させて頂き 素晴らしい経験と幅広い知識をお持ちということが分かりました。 (以前の私の質問にも回答を頂き、無事解決しました。ありがとうございます。) 下名は、マイコンのプログラミングを聞ける人が周りにおらず、また経験も浅いので まだまだ「不文律」のようなものが分かっておりません。 前置きが長くなりましたが、ラインスキャンカメラと言うのは >シフトクロックに連動して128画素データを読み込み比較した方が良いと思われます。 との使い方が普通なのでしょうか。 (すみません。文章で書くとkoujikuu様を疑っている様にも見えますが、決してその意図はございません) 「自分でアルゴリズムを考える」ことの大切さも重々承知しておりますが、先人が考えてきたものは有用だからこそ残っているとも考えております。 その観点からも、「通常のラインスキャンカメラの使い方」を知りたく思います。 トラ技やインターフェース等でも、勉強しておりますが、やはり「生の言葉」は重みが違います。 もし、お時間が許すのであればkoujikuu様のお言葉を頂けると幸いございます。 長々と厚顔無恥なお願いで申し訳ございません。   

関連するQ&A