ADコンバータ動いた、、、でも
Tuesday, April 17, 2007
DAコンバーターを使って、ADコンバーターにするんだが、早速テスト。
こんな感じで、コンパレーターにしてるオペアンプから、青いコードで、プリンターポートの
10番ピンに返します。
結果は、、、 おおっと、精度ばっちし。とりあえず、ちゃんと測定できる。
ただし、ちょっとした問題あり。
4096回カウンター上げるのに、こんな感じで、、、
for ( i=0; i<4096; i++){
10番ピンの値を見る;
値が変わってれば、その電圧;
カウンターにパルスを与え、DAコンバーターの電圧を1段階上げる;
usleep( xxx )して、コンパレーターが安定するのを待つ;
}
いろいろと測定した結果では、usleepのところで、0.2m秒ぐらい待てば、十分な精度が得られる。
つまり、4096回ループするのに、だいたい0.8秒。これでも、十分遅いが、、、
ところがusleepが曲者で、どうやら、AT互換機は、タイマーの精度が100分の1らしい。
で実際には、usleep(十分小さい値)ってやったら、15m秒ぐらい。つまり、4096回ループするのに、6秒ぐらいかかります。んんん、曲者だなあ。
で、そもそも、オペアンプの出力がちゃんと出るのが遅すぎるので、オペアンプをちゃんとしたコンパレーターにしてみるのかなあ。
以下、ちょっと独り言。
#そもそもコンパレーターとしてのオペアンプが遅いのが理由かどうかも、不明だけど、、、
#カウンターアップの時の、ON/OFFの隙間で毎回いったん0Vになってる、というのもあるかも。
#ってそんなことはないはずか、、単にD-FFつないだだけだもんなあ。
#オペアンプの反応が遅いとしても、データシートによると、出力がついていくのに、
#だいたい10マイクロ秒のオーダーなんで、、なにか違う原因があるんだろうなあ。
#これ以上は、オシロとかで調べないとわからないの???そんなの買えなーい。
##買っても、使い方わからなーい。
独り言、終わり。
で、もっと少ない時間sleepしたいとなったら、どうするんだろ。
ちなみに、そもそも0.2m秒ぐらい待てばいい、というのをしらべるのには、無益に、
for(k=0;k<20000;k++){
kk=kk+1;
};
とかやってみるしかなかったんだけど、、、これ、たかが、電池充電するのに、電気代の無駄だよなあ。
こんな感じで、コンパレーターにしてるオペアンプから、青いコードで、プリンターポートの
10番ピンに返します。
結果は、、、 おおっと、精度ばっちし。とりあえず、ちゃんと測定できる。
ただし、ちょっとした問題あり。
4096回カウンター上げるのに、こんな感じで、、、
for ( i=0; i<4096; i++){
10番ピンの値を見る;
値が変わってれば、その電圧;
カウンターにパルスを与え、DAコンバーターの電圧を1段階上げる;
usleep( xxx )して、コンパレーターが安定するのを待つ;
}
いろいろと測定した結果では、usleepのところで、0.2m秒ぐらい待てば、十分な精度が得られる。
つまり、4096回ループするのに、だいたい0.8秒。これでも、十分遅いが、、、
ところがusleepが曲者で、どうやら、AT互換機は、タイマーの精度が100分の1らしい。
で実際には、usleep(十分小さい値)ってやったら、15m秒ぐらい。つまり、4096回ループするのに、6秒ぐらいかかります。んんん、曲者だなあ。
で、そもそも、オペアンプの出力がちゃんと出るのが遅すぎるので、オペアンプをちゃんとしたコンパレーターにしてみるのかなあ。
以下、ちょっと独り言。
#そもそもコンパレーターとしてのオペアンプが遅いのが理由かどうかも、不明だけど、、、
#カウンターアップの時の、ON/OFFの隙間で毎回いったん0Vになってる、というのもあるかも。
#ってそんなことはないはずか、、単にD-FFつないだだけだもんなあ。
#オペアンプの反応が遅いとしても、データシートによると、出力がついていくのに、
#だいたい10マイクロ秒のオーダーなんで、、なにか違う原因があるんだろうなあ。
#これ以上は、オシロとかで調べないとわからないの???そんなの買えなーい。
##買っても、使い方わからなーい。
独り言、終わり。
で、もっと少ない時間sleepしたいとなったら、どうするんだろ。
ちなみに、そもそも0.2m秒ぐらい待てばいい、というのをしらべるのには、無益に、
for(k=0;k<20000;k++){
kk=kk+1;
};
とかやってみるしかなかったんだけど、、、これ、たかが、電池充電するのに、電気代の無駄だよなあ。
コメントする
トラックバック
この記事へのトラックバックURL:
これまでに受信したトラックバックはありません。