So-net無料ブログ作成

K2K 2008年バージョン [RS08]このエントリーを含むはてなブックマーク#

2718253

はるか昔、部品調達リスト (4) - K2K2008で紹介した基板にようやく部品を実装しました。

回路図は、これだ

k2k2008pcb-sch.png

なんてことはない、ポートに電流制限抵抗とLEDを接続しただけの簡単設計です。 配線スペースの関係から、LED番号とポートの対応が少々不自然です。 まあ、このくらいはソフトウェアに泣いてもらうことにしましょう。

PTAD = (~(pattern >> 8) & 0x0F) | (PTAD & 0xF0)
PTBD = ~(((pattern >> 12) & 0x0F) | (pattern &0xF0));

このプログラム断片は、16ビットの変数"pattern"上位12ビットの内容をLEDに転送するものです。 このまま、8ビットシフトと12ビットシフトをそのままコンパイラに喰わせると、妙なコードを生成してくれます。 そのため、変数"pattern"は、"union"で宣言して使用します。

union {
  word      W;
  byte      B[2];
} pattern;

    :

      PTAD = ~(pattern.B[0] & 0x0F) | (PTAD & 0xF0);
      PTBD = ~(((pattern.B[0] >> 4) & 0x0F) | (pattern.B[1] &0xF0)));

プログラムは、ProcessorExpertで

RS08が出たばかりの頃のCodeWarriorは、アセンブラしかサポートしていませんでした。 それが今、Cが普通に使えるまでに成長しています。 また、簡単にプログラムをするためのサポート・ツールProcessorExpertも対応しています。 これで、面倒なところはツールに任せて、やねこい部分だけを人間が考えれば済むようになりました。

まだ、ろくにサンプル・プログラムを作っていないので、プロジェクトの公開は省略します。


nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。