« A/Dコンバータの基礎 | トップページ | PPG0の出力をヘッドホンで聴いてみる »

2008年6月28日 (土曜日)

5月号のOSDサンプルソース「user_main.c」を読み解く

すでにインターフェース2008年8月号が出ている(私はまだ未購入)が、今更ながら5月号のOSDサンプルソース「user_main.c」を読み解いてみる。

特にfont_disp関数の

IO_OSDC.IO_OSD_CD1.hword

の設定について説明が無かったので調べてみた。

わかってしまえば調べるほどのことは無い内容ではあるが、初心者はこーいう所が分からなくて諦めてしまう事が多い事を繰り返し言いたい。

IO_OSDC.IO_OSD_CD1の定義自体は「_r91310.h」の1675行目付近に共用体、「_ra91310.h」の1675行目にマクロ定義がある。

余談だが、組み込み系ではこういった形でペリフェラルの設定を行うのが当たり前(?)の様で、そういった背景を含め一切の説明が無いが、ここはしっかり説明しておかないいけなと思うのは私だけだろうか?特にC言語未経験で、且つ流行のWeb系業務アプリケーションの作成しかやった事の無い人にとってはとてつもなく高い敷居に見えると思うのだが・・・(私自身はC言語経験者であり、昔から人のソースを解析したりする事は特に苦にならないのでなんとかなるのだが)。

この定義に沿って個別の指定が可能なわけであるが、5月号のサンプルではメンドクセーとばかりにWORD単位で一括設定している。

それ故に、

IO_OSDC.IO_OSD_CD1.hword = 0x0A0F;
IO_OSDC.IO_OSD_CD1.hword = 0x0A0D;

という様な感じのコードになっているわけだ。ちなみに、この「hword」を指定してのWORD単位アクセスの説明をしないまま、6月号の第5章では突然、「文字データ設定(コマンド1・コマンド2)」の説明が出てきてしまっていて、これはちょっといただけないなって感じ。

このあたりの内容は、ハードウェアマニュアルのP590「文字データ設定(コマンド1・コマンド2)」にも同等の説明と一覧があり、これで大体の機能は分かるがMIT~MMについては表示イメージが具体的にどうなるのかはさらに個別の説明がある。以下はマニュアルのページとの対応(MB,MCについては後述)。

MIT→P511
MUL→P514
MBL,MBB→P531
MS(2bit)→P506
MM(2bit)→P537
MR→P539
MG→P527
M(11bit)→P527

MB.MCはそれぞれ背景色、文字色の色番号を4bitで指定する模様。指定するのはおそらくパレット番号。という事で、PedWinの標準パレットからRGBでのカラーコードやWeb上での名称、私が直感的に付けた名前を以下に記載(ちなみにパレットからのカラーコード取得は高見知英さん作の「お気に入りの色」を使用)

標準パレット
0:#000000black:黒
1:#000080:navy:暗い青
2:#800000:maroon:赤茶色
3:#800080:purple:紫
4:#008000:green:緑
5:#008080:teal:青緑
6:#808000:olive:オリーブ(暗い黄緑)
7:#C0C0C0:silver:薄い灰色
8:#808080:gray:灰色
9:#0000FF:blue:青
10:#FF0000:red:赤
11:#FF00FF:fuchsia:マゼンタ
12:#00FF00:lime:明るい緑(黄緑)
13:#00FFFF:aqua:シアン
14:#FFFF00:yellow:黄色
15:#FFFFFF:white:白

ここまでの内容で5月号のサンプルで「This」と表示される部分の設定値「0x0A0F」を上記と照合してみる。16bit2進数では「00 00 10 10 0000 1111」なので、

MIT=0 → イタリック無し
MUL=0 → アンダライン無し
MBL.MBB=00 → ブリンキング指定なし
MS1,MS0=10 → 文字水平サイズ Lサイズ(24ドット)
MM1,MM0=10 → 文字背景設定 影付背景凹
MB3~MB0=0000 → 文字背景色設定 パレット番号0(黒)
MC3~MC0=1111 → 文字色設定 パレット番号15(白)

となる訳だ。標準文字の場合はIO_OSDC.IO_OSD_CD2の設定が無いが、それをdisp_str関数が肩代わりしてくれているという事になる。

|

« A/Dコンバータの基礎 | トップページ | PPG0の出力をヘッドホンで聴いてみる »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2790/41676232

この記事へのトラックバック一覧です: 5月号のOSDサンプルソース「user_main.c」を読み解く:

« A/Dコンバータの基礎 | トップページ | PPG0の出力をヘッドホンで聴いてみる »