前回から進めたところと言えば、参考になるWEBを読んでいました。
現在はその中で、連載記事「マイコン制御基礎以前」を読んでいます。連載している組み込み開発 - @IT MONOistには、その他にも、H8とやHEWの記事もあるので少しずつ読んでいく予定です。
前回の記事でKHR-2HVは、Beauto Chaserと同じくH8シリーズのCPUと書きましたが、情報が間違っていたので、訂正します。KHR-2HVは、「M16C」でした。同じルネサス テクノロジだったのでHEWの開発環境が使えたという事ですね。前回の記事には書かれていた箇所は、投稿の次の日に削除しました。
さて、前回はBeauto Chaserを「Beauto Builder NEO」でプログラムを作成していましたが、今回はHEWを使用してC言語で動作させてみたいと思います。
まずは、[Beauto chaser] サポート【ヴイストン株式会社|Vstone Co_,Ltd_】(以下「サポート」という。)にアクセスし、「H8マイコン統合開発環境「HEW」インストールマニュアル」をダウンロードしました。ダウンロードしたインストールマニュアルに、詳しい説明があるので、後は、Vistaに置き換えて作業を進めました。私がインストールしたのは、マニュアルのバージョンと同じですが、若干違う箇所もありました。違う箇所は、マニュアルでは手動で設定するところが既に設定してあるなど、良い面で違っていたので、操作としては同じです。
続いて、サポートから「LEDの点滅」ソース一式および「LEDの点滅」ビルド方法解説もダウンロード。ビルド方法解説に従って、試しました。HEWを起動すると
拡大表示
が表示されます。画面は、ダウンロードした「LEDの点滅」のワークスペースを開いたところです。「ビルド方法解説」通り進め、無事LEDが交互に点滅しました。
続いて、サポートから「VS-WRC004によるサーボモータの制御」 ソース一式をダウンロードして、早速試しました。ただ、反応がいまいちおかしい。VS-WRC004と書かれているので、VS-WRC003と制御方法が違うのかな。動いたことには変わらないので、少しソースを変更してみます。サンプル通りだと、車輪がお互い反対方向に回り、Beauto Chaserがくるくる回るので、まっすぐ前に進むように変更しました。
「
Mtr_Run(-64,-64,-64,-64); //モータ回転
」
の部分を
「
Mtr_Run(-64,64,-64,-64); //モータ回転
」
に変えるだけ。モーターが反対なので、同じ設定にしては、お互いが反対に回るのは当たり前ですね。
「VS-WRC004によるサーボモータの制御」には、スイッチの制御もあり、これで
・LED1
・LED2
・DCモーター×2
・スイッチ
が制御出来た事になります。後は、WEBで、ブザーの鳴る方法も見つける事が出来ましたが、赤外線に関する情報は見つかりませんでした。そこで、どのような仕組みになっているかを確認してみました。
仕組みを理解するために、サポートからVS-WRC003回路図をダウンロードして、回路図とプログラムを比較してみました。ソースを見ると「IO.PDR5.BIT.B5」、「IO.PDR6.BIT.B4」および「IO.PDR6.BIT.B5」が書かれており、これに関連する回路図を見れば何かつかめるかもしれない。そこで、WEBや書籍で情報をあさっているとターゲットボードでLEDを点灯させてみるに、定義されている構造体がH8から出力されているポート番号と一致している事がそれなりに分かり、スイッチなら「PDR5」だから5で、LEDは、「PDR6」なのではないかと思い、回路図を探してみると「P55」が、これはP5の5ということだとわかり「IO.PDR5.BIT.B5」と一致することから線を追っていくと「SW2」の文字がありました!!
LEDも「P65」および「P66」の先に、LED1およびLED2があり、一致しました。なんとなく、回路図の読み方が分かり、「H8/36064 グループ」が分かったような気がします。これなら、他のH8シリーズを買ったとしても、LEDの点滅ぐらいは出来そうです。
新たに「H8マイコン完全マニュアル」の書籍を買いました。C言語中心ではなくアセンブラが中心で書かれています。次はアセンブラで挑戦かな。