白川さん>
> while(AD.CSR.BIT.ADF=0) {} /*AN0の変換終了を待つ*/
ADFフラグによってA/D変換の終了を調べる場合、ADCSRを
一度Readして、フラグが立っていればこのbitを落とす(ゼロを
write)必要があります。そうしないと、ADFフラグは立ったまま
になって次回からA/D変換の終了を知ることができません。
またWhile文の中の’=’は’==’です。
> ad_data=ADDRA;
> P5.DR=ad_data;
ADDRAレジスタは左詰めに10bitのA/D変換値が入ることに注意
してください。P5.DRは8bit幅だと思いますから、このままだとAD値
の2bit分しかP5.DRに反映されません。(良いのかな?)
> ラジコンをマイコンで制御しようとしてまして、ラジコンのモータの電圧を
> AD変換したいのですが、どうもわからないことがあるのでお尋ねします。
> 連続で変化するアナログ電圧を連続でAD変換したくて、以下のプログラ
>ムを書いたのですが、
ラジコン用のモータは、普通はニカドの4.8V〜7.2Vが電源電圧とし
て使われます。CPUのA/D変換端子にモータの電機子電圧を直接
つなぐ訳ではないかと思いますが、直接つなぐ場合CPUの電源電圧
(A/D変換器のリファレンス電圧)を超える恐れがあるので、好ましく
ありません。また、ブラシノイズなどで許容電圧を超える恐れもある
ので、OPアンプなどで適当なバッファ、及びローパスフィルターを
入れることをお奨めします。
尚、サーボ専用のアンプ基板につながれた状態で計測する場合、
単純にA/D変換できるのかちょっとわかりません。
テスターで電圧がどんな風に出ているのか、良く調べてからマイコン
に取り込んだ方が良いかと思います。できればシンクロで波形を
観測できれば一番良いかと思います。
鈴木(正)