仮想私事の原理式

この世はワタクシゴトのからみ合い

自作ロボット作業記録(2.5)

 作業記録(2)の後、著者HPマイコン代替による「製作記事」を読み返したところ、AKI-H8/3067FとAKI-H8/3069Fの外部RAMの付き方の違いから、使用するI/Oポートを変えなければならないことが判明。具体的には、

  • P4 → P6
  • PB → P4

ということに。AKI-H8/3069Fでも、そのまま同じポートが使えると思ってI/Oボードの配線を進めてしまっていたのだが、やり直すハメになってしまった。まぁ、導線をつけ直すだけだから、それほど大変ではなかったけど。
 ただ、どうしてポートの変更が必要なのか、理由が知りたくてAKI-H8/3069Fの回路図を眺めてみたけども、やはりよく分からない。つーか、まず外部RAMっていうのがどれなのか分からない。16kByteのRAMと、16kbitのDRAMがあるんですけど、どっちなの? 初心者ナメんなよゴルァ!!

 そんなこんなで迷っていたため、次のステップに進めない日を過ごしたのだけど、だんだんと考えるのが面倒になってきたため、とりあえず次のステップに進むことにした。なんといっても次はプログラミングだ。ここの段階でようやく「自分が操っている」感を味わえるだろうと楽しみにしていたのだ。
 
 しかし、そんなに甘くはなかった。

 書籍に書かれている「LEDを点滅させるプログラム」を「P4→P6」という脳内置換を掛けて書いた。著者のマイコン代替製作記事にも、ポート名を変更するだけで、特に問題は無いように記述されている。しかし、製作記事内のソースコード写真を見ると(非常にちっちゃいが)、define文でのポートのアドレス指定が、どうも違っている。著者HPのサンプルプログラムをダウンロードしてみると、やはり違っている。どうやら「P4→P6」という単純な置換ではダメらしい。H8/3067FとH8/3069Fというマイコン自体は「ポートコンパチ」、つまりマイコンチップのポートに違いは無いので、ポートが変われば指定するアドレスも変わるわけだ。当然と言えば当然だ。しかし、何度でも言う。初心者ナメんなよゴルァ!! この書き方じゃカン違いする初心者続出すんぞゴルァ!! 

 さらに、プログラムのコンパイル段階でも問題発生。
 入門書では、プログラムのコンパイルマイコンが理解できるような機械語に翻訳すること)をするのに、マイコン付属CDについているらしい「CC38H.EXE」というコンパイラを使っているのだが、僕が買った付属CDには入ってなかったのだ。代わりに、cygwinWindows上でUNIXライクなコマンドを使うためのツール)とgcc(無料のCコンパイラ)が入っていて、コレでコンパイルできますよということらしい。
 できるっちゃあ、できるんだろうけど、なんか疲れてしまったので本日は終了。
 「付き方が違う」らしいソースが、どこかにおちてないかなぁ。それが分からないと、今後独自にやろうとしても理解できない気がする。