K2K 2008年バージョン [RS08]
はるか昔、部品調達リスト (4) - K2K2008で紹介した基板にようやく部品を実装しました。
回路図は、これだ
なんてことはない、ポートに電流制限抵抗と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も対応しています。 これで、面倒なところはツールに任せて、やねこい部分だけを人間が考えれば済むようになりました。
まだ、ろくにサンプル・プログラムを作っていないので、プロジェクトの公開は省略します。
コメント 0