Arduinoのオシロ。トリガ周りの処理がそれなりに
ちゃんと出来たっぽいので、これまでトリガレベル
の値はスタブモジュールで生成してたのを、仕上がり
レベルのアナログ入力に変えてみる。
単にアナログ入力に変えるだけといえばそうなん
だけど、上下のレンジをどこまでにするとか、
ちょっぴり工夫。動かしてみる。
やっぱり、それなりにちゃんと動く。大丈夫っぽい。
と思ったんだけど一つ気になる。直流に近い波形の
場合。
ゆっくり波形が変化する場合、なぜかトリガが
掛からない場合がある。
何でだろうと思ってソースを追ってみる。
どうやら、トリガが掛かるまでに、バッファ全体の
1/4分のデータを溜め込むまで、トリガをチェック
しないという処理を行っているので、そのせいみたい。
それだけがすべての原因かは、シミュレータでも
使って追っていかないとなんともだけど、まぁ、
ソースを追った感じでは、ほかには無いはずと
みえるんだけどな。
まぁ、直流波形にトリガ掛ける必要は無いだろうし、
交流波形は思ったとおりにちゃんと掛かるから、
深く考えなくても良いと思うんだけどな。
とりあえず、トリガ関係のソフト面はこれで完了
のはず。
残るは、電圧レンジ切り替えと、周波数(サンプル)
レート切り替え。
後者は、単に上げたり下げたりすればokなんだけど、
前者だな。スイッチ2個でそれぞれ上下とするか、
それとも外部からレンジに相当する電圧のアナログ
入力とかにするか。
とりあえず、どちらでも大丈夫なようにはしてある
んだけど、やっぱ、タクトスイッチの方が楽といえば
楽だよな。ソフトは。問題は、オペアンプのゲイン調整
の抵抗の切り替え。
ダイヤルスイッチでグリグリやるなら、単に抵抗の分圧
してから、平行してゲイン調整の抵抗も切り替えれば
いいんだけど、部品がデカイし、製品も限られる。
逆にタクトスイッチでパチパチ入力するとなると、
抵抗の切り替えはアナログスイッチだろうと。すると、
アナログスイッチの内部抵抗が結構大きくて、ばらつき
もあって、馬鹿にならない。
まぁ、それを踏まえて、外部で0レベル調整できるように
しておけばいいんだろうけど。
そういえば、折角、トリガ条件は上昇下降両方にしたん
だけど、アイパターン表示のこと忘れてた。まぁ、残
メモリ量から考えると難しいんだけどな。
微妙な悩ましさなんだよな。
|