プログラムからの問い合わせ | A/D変換器からの回答
|
それは 5×128/256[V] よりも高いですか? | 高いか、同じです(1)
|
それは 5×192/256[V] よりも高いですか? | 低いです(0)
|
それは 5×160/256[V] よりも高いですか? | 低いです(0)
|
それは 5×144/256[V] よりも高いですか? | 高いか、同じです(1)
|
それは 5×152/256[V] よりも高いですか? | 高いか、同じです(1)
|
それは 5×156/256[V] よりも高いですか? | 高いか、同じです(1)
|
それは 5×158/256[V] よりも高いですか? | 低いです(0)
|
それは 5×157/256[V] よりも高いですか? | 低いです(0)
|
じゃあ、5×157/256 = 3.07[V] ですね。
|
※細部は忘れてしまいましたが、だいたいこんな感じだったと思います。
A/D変換器からの回答は、一回の問い合わせに対して1ビット分しかありませんので、
8ビット精度の結果を得るためには、以上の8回の手続きを行う必要がありました。
当時、MSXturboRのA/D変換器のプログラムを試しながら、
「ああ、A/D変換器というのは結局のところ、二つの電圧の高い低いの判断しかできないんだな」
と思ったのを覚えています。
S1C33のA/D変換器は、1ビットづつ結果を取り出したりする必要はなく、電圧測定完了後に、
結果が格納されているレジスタを読み出すだけで、一度で10ビット全部のデータが得られます。
しかしきっと、電圧測定開始〜終了までの間に、内部では同じような繰り返し処理を行っているんだろうな、
と想像できます。そもそもA/D変換器というのはそういうものなのかも知れませんが、
ハードウェアにまるっきり疎い自分にとって、MSXturboRのA/D変換器はとてもいい勉強になったのでした。