● 実験テーマ54

「PIC32MX_簡易4CHロジアナの実験ソフト修正日記」
(トリガ開始点から、エッジ描画するようにソフトを修正してみました。)

 

■ 2014.7.16
  ・実験テーマ53の、アップが終わってから、次にやることを何にするか、いろいろと頭を巡らせて
   いたが、その中に、本テーマ54からは横道に逸れるが、時間軸カーソルを出力して、それをキーで
   動かし、トリガ点からの(あるいは、A-B間の)時間を液晶上に表示する実験をしてみよう・・
   というのが、あった。
   結局、実際に使えるようになるまでは時間が掛りそうなので、保留にしたが、その時のメモ
   が残っているので、以下にアップしました。

  ※ この時、作成した簡単なテストプログラム例です。→ Move_Cursor_QVGA_TEST.c


■ 2014.7.17
  ・この前の実験テーマ53の、私の簡易プログラムでは、1回目のサンプルで、CH1のエッジセンス
   を行い、センスしたら、Buffer[0]に、その時のデータを格納。
   但し、ここでは未だ描画はしない。
   (TRIG前のデータ収集を省略しているため、1回目から、ロジック状態を判断できず。)
   2回目のサンプルでようやくロジック状態の判断が出来るので、そこから描画をスタート
   させている。
   よって、1回目サンプル時の、エッジ描画は飛ばしている形になっている。
   また、時間軸線も、トリガ点から最初の目盛は、1dot分少なくして合うようにしてある。


■ 2014.7.18
  ・やはり、立上り或いは立下りエッジから表示した方が自然なので、何とかソフトを修正
   してみようと思う。
   それには、エッジ検知の前に数データサンプルしてデータ収集する必要がある。
   この考えが何故か当初は浮かばなかった。


■ 2014.7.19〜 2014.7.20
  ・エッジ検知の前に50データサンプルするようにしてみた。
   この間も、エッジ検知を行いながら、未検知の場合でも、バッファ格納はするようにした。
   また、50サンプルしても検知できない場合は、ポインタを0に戻し、見付かるまでエッジセンス
   を繰返すことにした。

   動作検証には、同期性のある信号が発生できる方が良いと思い、PLD MASTER基板を使用した。
   検証結果は、毎回、エッジ検知描画位置がズレるが、50dot(1目盛)内に入っていることから
   50サンプルリトライ動作は、うまく行っているようである。
   この時の実験模様を以下にアップしました。

  ・トリガ点前の、サンプル数を最小の2サンプルにすれば、2dot分のズレに落ち着くのではと思い
   そのように修正してみる。
   確かに2dot分のズレに落ち着くが、トリガ点のエッジ描画をしない時がある。 
   描画されない時の動きをよく観察すると、1dot手前にズレて描画されているように見える。
   つまり、最初のエッジ描画が、画面から追いやられて見えなくなっている感じだ。


■ 2014.7.23
  ・自分の頭の中では、毎回画面更新毎に、必ず、最左端ライン上に、トリガ点のエッジ描画がされる
   ように記述されていると思っているのだが・・・・
    ここで、もう一度、ソースを見直してみた。
   見直したら、気が付いた点あり!!
   現在、エッジセンスをするに当たっては、CH1の、そのポートビットのみを読込んで、テンポラリ
   に記憶させている。
   そして、エッジ検知判断ルーチン処理後、4CH分の入力データをバッファに格納している。
   この間の時間差が問題と考えられる。
   ※ つまり、エッジセンスと、4CH入力データのバッファ格納は、同時(1ステップ)でないと
      まずい。
      そうでないと、エッジセンス時のロジック状態と、バッファ格納時のロジック状態が変化して
      しまうことも有り得る(入力信号のエッジ付近で起こり得る)ので修正が必要と考えた。

   これを修正したら、毎回画面更新毎に、必ず、最左端ライン上に、トリガ点のエッジ描画が
   されるようになった。
   ここまで悩んでいたことが解消したので、少しは気が晴れた気分だ。


<最終ソース>
 ・こちらから、どうぞ→ Easy_4CH_LogAna_TEST.c (修正ソースですが、ファイル名は変えていません)


← 実験テーマ1に戻る   TOP PAGEに戻る   実験テーマ55へ →