- 締切済み
Aki-h8/3052マイコンについて
今Aki-h8/3052マイコンを勉強しているのですが、初心者のためうまくいかず質問をしました。知識がないと思われるような質問をしてしまいますが、よろしくお願いします。 次のようなプログラムを書き込んで、LEDを点滅させたいのですが点滅しません。原因がわからないので、教えていただける方がいたらよろしくお願いします。 #define P5DDR (*(volatile unsigned char*)0xffffc8) #define P5DR (*(volatile unsigned char*)0xffffca) void wait (long loop){ while(loop--); } int main(void){ P5DDR = 0xff; while(1){ P5DR = 0xff; wait(200000); P5DR = 0; wait(200000); } } ポートBを使用した場合うまくいくのですが、ポート5を使用するとうまくいきません。 コンパイラにはGDLを、書き込みにはH8Write Turboを使用しています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Interest
- ベストアンサー率31% (207/659)
シングルチップモードで動作しているものと仮定します。 P5DDR = 0xff; // ポートの入出力方向は出力になっているのでOK。 > 確認したところ、LEDのつながったさきがポートBだけでした。 転ばぬ先の杖として。 H8/3052Fの場合、ポート1, 2, 5, B はLEDを駆動できるだけの電流(シンク電流で10mA)を流すことができますが、他のポートではそれだけの電流を流せませんのでご注意を。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
各ポートの入出力方向を設定しないで出力をしても、正しく出力されません。 I/Oポートは「デフォルトで入力」「デフォルトで出力」「デフォルトで入出力」のどれかになっているので「このポートは出力になれ」と言う感じで「初期化」が必要です。 なお、ハード的に「出力専用」「入力専用」になっているポートもあるので、入力専用のポートに出力しても出力されません。 あと、念の為に確認ですが「ポート5には、ちゃんとLEDが繋いである」のですよね?LEDがポートBにしか繋がってないなら、LEDはポートBででしか制御できませんよ。
お礼
回答ありがとうござます。 よく確認してみます。
補足
回答ありがとうございました。 確認したところ、LEDのつながったさきがポートBだけでした。 的確なアドバイスありがとうございました。