2010/12/01(水)aitendoのOLEDモジュールと戦う その2
まず、Rect描画命令、Line描画命令だが、これはどちらも右肩下がり以外はバグが発生していた。ちあきさんに相談した時点ではLineのみと言っていたが、解析の結果どうやらアドレスインクリメントに逆らう描画の時にバグることがわかった。Line描画に関しては、つまりこうしてしまえば良い、
- 画面左上を(0,0)とした場合
- 右肩下がりの描画はそのまま命令転送
- 右肩上がりの描画は、画面のアドレスを反転させ右肩下がりとして命令転送
結果、Line描画に関しては通常描画・反転処理して描画・垂直は始点座標を上から下へ値のスワップ、の3つに分類することによって回避できた。
次にRect描画命令のバグだが、これも基本はLineバグと同様の症状だ。四角形の座標指定方法としては、
- 始点を左上、終点を右下
- 始点を右上、終点を左下
- 始点を左下、終点を右上
- 始点を右下、終点を左上
そんなわけで、漸くこのOLEDを使用するスタートラインに立つことができた。実はすでに半角フォント描画も入れてあるので後は何かを作るだけなのだ。