P/ECE研究室〜S1C33分室


* Tue May 21 22:00:00 JST 2002 Naoyuki Sawa

ひさびさの、S1C33分室、更新です。

今回より、数回の予定で、「シリアルコントローラ」をとりあげてみたいと思います。
と言いつつも、実際にシリアルコントローラの話に持っていけるかどうか、まだわかりません。
実は、今回の本当のテーマは、「LCDコントローラ」なのです。

既にお気付きの方も多いと思いますが、P/ECEの液晶画面の一番下のラインにはゴミが出ます。
まずは確認のために、次のようなサンプルプログラムを用意してみました。

	ソースはこちら

小さなラインパターンを、十字キーで上下左右に動かします。
また、Bボタンでラインの色を変えることができます。
Aボタンを押すと、プログラムが終了します。

ラインパターンをの一番下に持ってきた状態で、画面をキャプチャおよび撮影してみました。

キャプチャ 撮影
3(黒)
1(明るい灰色)
撮影した画像、たいへん見づらいですが、ゴミおよびラインパターンの欠けが出ています。 まず、色=3(黒)の場合、ラインパターンはきちんど描かれていますが、ラインパターンの左側、 画面一番下のラインに、ゴミが出ているのが見えるでしょうか? また、色=1(明るい灰色)では、ゴミに加えて、ラインパターンの下1ラインが欠けています。 既存のゲームなどのアプリケーションでも、画面の下の方にキャラクタが移動してきたときに、 これと同様の現象(ゴミ・欠け)が確認できます。 いろいろ試してみた結果、ゴミ・欠けが現れる状況には、一定の法則があるようです。 ・画面一番下のラインに色=3(黒)または1(明るい灰色)のピクセルを描いた場合、  そのピクセルの左8ドット以内にゴミが現れる。  画面一番下のラインに色=2(暗い灰色)でピクセルを描いた場合は、ゴミは現れない。 ・画面一番下のラインに色=1(明るい灰色)でピクセルを描いても、描いたはずのピクセルが表示されない。  色=0(白)になってしまう。 次回より、これらの現象が発生する原因を探っていこうと思います。 いまのところ、予想できる原因としては、次のようなものがあります。 1.pceLCDLine()やpceLCDPoint()の問題。仮想画面への描画の時点で、ゴミ・欠けが発生している。 2.仮想画面からLCDへの転送形式への変換コードの問題。転送形式の段階で、ゴミ・欠けが発生している。 3.LCDコントローラとの通信段階での問題。手順やタイミングが微妙にマズイ。 1.はさっそく除外されます。なぜなら、仮想画面の時点でゴミ・欠けが発生しているのなら、 キャプチャ画像にもゴミ・欠けが現れるはずだからです。 ご覧の通り、キャプチャ画像には、ゴミ・欠けは発生していません。よって、1.は除外します。 2.の可能性はまだ残っています。次回より、2.を検証して行きます。 そして、もし2.でなければ、3.でやっとシリアルコントローラの話になりそうです。 さて、原因はいったい何なのでしょうか。「原因不明」のまま終わる可能性も充分あるのですが…(^^; (続きます...)

nsawa@piece-me.org