• 締切済み

H8/3048 マイコンボードについて

初心者の質問ですみません。 今、H8/3048のマイコンを使っていろいろやってみようと思っています。 マザーボードにP1の出力をLEDで表示できるような回路を組み、スイッチを押すとLEDを光らせるようなプログラムを作成し、実際に光らせることはできたのですが、A/D変換機能が使えません。 プログラムはネット上のサンプルプログラムを参考にしたので間違ってはいないと思うのですが、うまく変換されません。 入力電圧はきちんとAN0に入ってますし、ICやソケット部も拡大鏡で確認しましたがショートしている様子もありません。 これは故障してしまったのでしょうか? 何かの拍子に何処かがショートしてAD変換機能のみが壊れるというような事はあるのでしょうか? 非常に困っています。 どなたか回答よろしくお願いいたします。 ちなみにこのようなプログラムです。 #include <3048.h> void main(void){ int ad_data; P1.DDR = 0xff; P4.DDR = 0x00; P4.PCR.BYTE = 0xff; AD.ADDRA = 0; P1.DR.BYTE = 0xff; AD.ADCSR.BYTE = 0x33; while(AD.ADCSR.BIT.ADF == 0){} while(1){ if(P4.DR.BIT.B4 == 0){ ad_data = AD.ADDRA>>8; } P1.DR.BYTE = ad_data & 0xFF; } }

みんなの回答

回答No.4

>予備に買ったマイコンを組み立て、 >同じプログラムを書き込んだところ、 >正常に動作 ということはマイコンを含めたハード面ではないでしょうか. テスターを使って所望の電圧が出ているか等, 地道にデバックしてみて下さい.

vb_777
質問者

補足

結局頑張ってみましたが、不良個所をみつけることはできませんでした。 これを教訓にこれからマイコンの取り扱いは慎重に行いたいと思います。 みなさん、回答ありがとうございました!!

回答No.3

>何かの拍子に何処かがショートしてAD変換機能のみが壊れるというような事はあるのでしょうか? 経験上ありえません. >マザーボードにP1の出力をLEDで表示できるような回路を組み、スイッチを押すとLEDを光らせるようなプログラムを作成し、実際に光らせることはできた これはマイコンを使って特定のポートから電圧の出力ができたということですか. つまり,同じマイコンで,出力機能は正常に使えたけど,AD変換器が使えないということですか? ※もしそうだとして, 使用しているコンパイラとサンプルプログラムは対応していますか? つまり,サンプルプログラムを書いた人と同じ環境でコンパイルしてますか? 開発環境の設定の問題のような気がします.

vb_777
質問者

補足

回答ありがとうございます。 あの後、予備に買ったマイコンを組み立て、 同じプログラムを書き込んだところ、 正常に動作し、P1のLEDがカウントアップしていきました。 ということはやはりプログラムは悪くなく、 マイコンの方に問題があるのでしょうか? 予備があるとはいえ、もったいないので直して使いたいので、、、

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

> while(AD.ADCSR.BIT.ADF == 0){} > while(1){ > if(P4.DR.BIT.B4 == 0){ > ad_data = AD.ADDRA>>8; > } > P1.DR.BYTE = ad_data & 0xFF; > } > } ここのループ、内側のwhile(1)が脱出条件のない無限ループになってますが大丈夫ですか?

  • kaZho_em
  • ベストアンサー率50% (2950/5879)
回答No.1

DAコントロールレジスタ(DACR)のDAアウトプットイネーブル (DAOEi)、 DAイネーブル(DAE)をイネーブルにし忘れていませんか?

関連するQ&A