LCDのレジスタを叩く関数をいくつか作り、コマンドを送ってみたところ
とりあえず表示は出るようになりました。
上の写真では全ページにインクリメントデータのパタンを送っています。
任意の座標にドットを描画するには、引数のX,Y座標から左右のプレーン、ページ、カラムアドレス、
ビット位置を算出してデータを書きこむ必要がありますが、既に描画済みものを消さないように
読出したデータと論理和を取って書戻すことになります。
たとえば・・
void set_pixel(char x,char y)
{
int degit,adrs,plane,page,data;
adrs = x % 61;
plane = x / 61;
degit = y % 8;
page = y / 8;
lcd_area(plane,page);
data=lcd_dget(plane,adrs);
data|=(1<<degit);
lcd_dset(plane,adrs,data);
}
ただLCD内の処理やメモリは遅そうなので同じデータ構造の仮想VRAMをボード上のSRAMに準備して
まずこの中で描画を行い、完了したら1画面分を丸々LCDに転送するような処理の方が速そうです。
あと問題なのが画面上に文字を表示する場合、フォントデータが立て切りのものが要るという事。
普通、フォントデータはラスタ方向(横1列)のバイトデータなので変換しなければなりません。