スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GWとプロポ波形の読み取り

GWみなさんはいかがお過ごしだったでしょうか?

私は,三笠記念館に行ったり.
三笠甲板から
三笠内部

海軍カレー食べたり
海軍カレー


友人と飲み会したり.していました.
ドイツビールは美味しいですね.

さて,ロボットの方も作業は進めています.
ずっと問題になっていた回路はジャンパ線の接触不良であったことがわかった.
非常に不愉快だが,動いたからよしとすることにする.

現在とりあえず1波形読み込んで出力するところまでは完成した.
Chip配置の図を一応貼っておく.
PSoc0506-1.png

入力PINをCounter8(8Bitカウンタ)のEnableに接続する.
これによって,入力が入るとカウンタが自動で動き,内部クロックの設定で最大2msまでカウントが可能になる.
入力が終了すると,立下りの割り込みがかかる.
割り込み関数では,カウンタのリセットと,カウント量の読み出しを行うようにしている.
しかし,これを多チャンネル化しようとすると,CN1~CN8は以下の図のような波形を示している.
プロポタイミングチャート

1つはPSoCの割り込みの問題.
PSoCはGPIOの割り込み可能な入力ピン全体でorをとってしまう.
つまり,どのピンで割り込んだかわからない.

これを解決するためには例えば事前データと比較したり,割り込み後にピンを確認する方法が考えられるが,立下りの割り込みでは見たいピンがすでにLo出力になっているため確認することが出来ない.
もちろん現在の状態から前にHiになっていたピン群を想定することはできるが,先の8つのチャンネルの場合,似たタイミングで終わるものが2ピン有るため特定することは出来ない.
これらの理由から先のアルゴリズムは多チャンネルに拡張することが難しい.


そこで,全体周期の14msごとにタイマで割り込みをかけ,そこでまとめて8チャンネル分の波形を取り込むことを考えたが,,,14.32~14.17ms程度で変動するので,タイマできっちり割り込みをかけるとずれればずれるほどに測定が危うくなる可能性が高い.

そこで,結局立下りの割り込みを8回カウントして,一括でカウント数を読み込むという処理にすることにした.
こういうものは,気づけば簡単なのに気づかないと思いつかない.
ビッグオーの「知らないものは探さない」は名言だと思う.

そんなこんなで不完全燃焼だが,そこそこにオモシロイコトをしたGWでした.
スポンサーサイト

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

プロフィール

ガガタロス

Author:ガガタロス
ノックアウトを短くしたような大学に通う理系院生。
でも、中身は文型。

ロボットを作るのが好きだったり。
ちなみにスーパー派。
ゲッターがすき。

検索フォーム
月別アーカイブ
カテゴリ
 
  
 
バナー
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。