
以前にやったSDカードのエンコードとBMPのエンコードを
OLEDにも移植しました。
OLED画面サイズ128*128に対してRAM領域132*132これを
しっかり初期化していなかったため、めんどくさいことに
なってしまいました。具体的にいうと表示領域が正確でな
かったために、1ピクセルづつずれた画像やRGBがうまく
定まっていない画像が表示され苦戦し続けました。

文字データはSDから読めれば良いと考えていましたが、
最低でも英語が表示できないと苦しいことに気づき
英語の小文字のフォントのみ作りました。具体的には
SDカードが刺さっていませんという文字を表示したり
now loadingの表示に使うことになると思います。
文字表示用の関数をつくりこんな感じで使います。
draw_string(0,65,"hello thank you for seeing",26);
これは、写真の中心に表示されている文字列表示に使いました。
改行コードが来たり端まで進むと自動で改行するようにしてあります。
画像データは48kバイトのため大きなSRAMなら
なんとか1枚分入ります。次に表示する画像を
SRAMに入れて行ければ、少しは高速な処理が可能
になるやもしれない。さらにBMPは、画像データが上下逆
に入っているためそのまま送ると逆さまに表示されてしまう。
これを回避するのにもSRAMが活躍できるのではないかと考えている。
DMAを使って高速にSRAM(OLEDの表示バッファ)とデータのやり取り
ができると良いと考えていましたが、この基板ではそれは、不可能
であることが判明しました。しかし、コマンドの転送速度
を計算したところ1画面文(128*128*3(色))を送るのに
53μsですむことがわかり、これを用いるだけでかなりの高速化
が期待できます。いままで、遅かったのは,