初めまして。
現在大学でH8/3664FでのAD変換を行っているのですが、
AD変換とその値に対する出力への動作が上手くいきません。
分かる方、ご教授お願いいたします。
現状は、1.7V程度の信号をADコンバータ端子(AN1)に入力しています。
AD変換を行い、条件として1V以上のときは出力に設定した
端子(P11)から5V出力しダイオードを光らせようと思っています。
プログラムは以下のように組んでいます。
おかしいところがあればご指摘お願いします。
void main(void){
IO.PMR1.BYTE=0x00;/* ポート1入出力ポート*/
IO.PCR1=0xff;/* ポート1出力*/
/*AD変換の初期設定*/
AD.CSR.BIT.ADST=0; /*AD変換機能停止*/
AD.CSR.BIT.SCAN=1; /*スキャンモード*/
AD.CSR.BIT.CKS=1; /*高速変換*/
TW.TCRW.BIT.CCLR=1; /* TCNTがGRAでクリア*/
TW.TCRW.BIT.CKS=3; /* クロックφ/8*/
TW.GRA=40000; /* パルスの周期20ミリ秒*/
TW.TMRW.BIT.CTS=1;/* カウントスタート*/
while(1){
/* 20ミリ秒間のカウントは約8880となる. */
if(TW.TSRW.BIT.IMFA==1){
TW.TSRW.BIT.IMFA=0;
AD.CSR.BIT.ADST=1; /*AD変換機能開始*/
while(AD.CSR.BIT.ADF==0){}; /*AD変換終了待ち*/
AD.CSR.BIT.ADF=0; /*変換終了フラグクリア*/
AD.CSR.BIT.ADST=0; /*AD変換機能停止*/
x0=(int)(AD.DRA>>6); /*x0に値を格納*/
if(x0>100){/*1V以上の場合*/
IO.PDR1.BIT.B2=1;
}else{
IO.PDR1.BIT.B2=0;
}
No.1ベストアンサー
- 回答日時:
まず、ソースコードがコメントどうり動作するものと仮定します。
1.A/D コントロール/ステータスレジスタ (ADCSR)の設定について
CH2,CH1,CH0の設定を行っていないので、この値が初期値と推測されます。この場合には、スキャンモード(SCAB=1)でA/D変換させると、(16.3.2 A/D コントロール/ステータスレジスタ ADCSR に記載されているとおり)AN0だけが変換されるようですね。
AN1を変換するには、SCAN,CH2,CH1,CH0へ適切な値の組み合わせを設定しなければならないようです。
AN1だけを変換するには SCAN=0,CH2=0,CH1=0,CH0=1
AN0,AN1を連続して変換するには SCAN=1,CH2=0,CH1=0,CH0=1
AN0,AN1,AN2を連続して変換するには SCAN=1,CH2=0,CH1=1,CH0=0
AN0,AN1,AN2,AN3を連続して変換するには SCAN=1,CH2=0,CH1=1,CH0=1
2.A/D データレジスタの読み出しについて
AN1の変換結果は、(16.3.1 A/D データレジスタA~D ADDRA~D に記載のあるとおり)ADDRBへ格納される様なので、ADDRBを読み出す必要があるようですね。
(AD.DRAがADDRBを示すように宣言されていれば問題なさそうです)
3.A/D変換の結果の判定について
ハードウェアマニュアル にはA/D変換のフルスケールの電圧がどうなるか記載が見つからなかったのですが、図16.1 A/D 変換器のブロック図から、フルスケール電圧をAVccに近い電圧かそれ以下と推定すると、変換結果の値100が1.0Vとなる場合のフルスケールの電圧は、(1.0/100*1023)V=10.23V付近と推定されますが、(20.2.4 A/D 変換特性によると)AVccは3.3~5.5Vしか印加できないので、変換結果を100と比較したのでは、1.0V以上と判定できないことがわかります。
AN1に1.0Vを印加した場合のA/D変換結果がどうなるかを確認して、比較する値を決めた方がよさそうです。
参考URL:http://documentation.renesas.com/jpn/products/mp …
回答ありがとうございます。
チャネルとレジスタの設定を行ったらダイオードが光りました!!
ずっと悩んでいたのでホントに助かりました!
教えて頂いたH8のマニュアルも重宝させていただきます。
No.2
- 回答日時:
アプローチ方法が良くないな。
・出力をON/OFFするプログラムを作りテストする。
・A/D変換が行われているか調べるため、データをヘキサでLCD
表示器などに出力する。
ここでA/Dが上手く行かなかったら、プログラムが間違えていないか質問すればいいのです。
その前にCPUの端子にアナログ信号が入っているか確認。
A/D値が予定値と違うのであれば、アナログ入力インピーダンス
によって分圧され電圧が下がったと考えられる。
全段が片電源オペアンプであれば、0V付近まで振れないなどの
トラブルが予想されます。
このように幾つかの可能性を考えて原因を分けないといけません。
いきなりA/D変換のプログラムがおかしいと断定しては行けません。
H8を使った電子装置の製作が初めてだったのと知識の無さで
プログラムが間違っているだけだと思っていました。
今回は運よくプログラムの修正だけでダイオードは光りましたが、
もっと考えるべき面があると教えられました。
これからはもっといろんな角度から原因を探っていくようにします。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(AV機器・カメラ) オーディオインターフェイスの24bitなど量子化bit数はどこで設定できるのでしょうか? 1 2022/06/26 07:58
- Excel(エクセル) フォルダ階層が深いファイルの拡張子の一括変換 2 2022/12/23 18:40
- 英語 TOEIC公式問題集のリスニングの一部分に “I’ll get an ad in the local 2 2022/08/17 18:52
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Excel(エクセル) Excel 2019 32-bit版を64-bit版にするには? 8 2023/07/28 14:20
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) Excel 複数列のある文字を優先して1列に表示したいです 2 2022/12/03 12:07
- 経済学 IS-LM曲線とAD-AS曲線の相関関係を教えていただけませんか? 5 2022/11/27 12:23
- 歴史学 ロシア軍、前線兵士の離脱防ぐ「阻止部隊」って旧ソ連軍の「督戦隊」とどこが違うんでしょ? 3 2022/11/06 16:34
- 数学 数学の質問です。 kを正の実数とする。 点Pは△ABCの内部にあり、 kAP+5BP+3CP = 0 2 2023/07/03 21:24
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
VB6からVB2010への変換について
-
【EXCEL】カナ、ひらがなを英字...
-
Mac 乗数の入力方法
-
シフトJISのCSVファイルをUFT-8...
-
ハフ変換の原理をわかりやすく...
-
bitmapクラスをiconクラスに変...
-
数値英単語変換プログラム
-
Excel-VBAのmsgBox()の不思議
-
3のつく数字と3の倍数のみを表...
-
自作ソフトキーボードによる文...
-
分を時間に変換するプログラム
-
VB 6 を VS 2012に変換するには?
-
bmp→jpgに、jpg→bmpに
-
vb.netの型変換について
-
LPCWSTRへの型変換について
-
VC++2005で、CString型に16進...
-
MATLAB/simulinkでのD/A変換の仕方
-
C/C++→JAVAに変換するツール
-
SJIS⇔UTF-8の文字コード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
Mac 乗数の入力方法
-
家電製品の電力周波数を変える機械
-
3のつく数字と3の倍数のみを表...
-
bmp→jpgに、jpg→bmpに
-
10進数をBCDに変換する方法
-
【EXCEL】カナ、ひらがなを英字...
-
StrConvの使い方について教えて...
-
分を時間に変換するプログラム
-
画像ファイル変換(Tiff→PDF)
-
マンセル⇔XYZ,RGB変換式或いは...
-
C/C++→JAVAに変換するツール
-
VB6からVB2010への変換について
-
c++でmatからvectorへの変換の...
-
DOSコマンドでの文字コード変換...
-
VB.NETをJavaに変換するツール...
-
SJIS⇔UTF-8の文字コード...
-
なぜ通信には16進数文字列が使...
-
C#でのpngからbmpへの変換について
おすすめ情報