立秋個人用AVRwiki メモ用できたプログラムとかわかった仕組みとか記録用間違ってても知らん

では晴れて画像が表示されたところで、つぎは文字を表示したいと思います。
ここからLCDとしての実用度が増しますが、更にめんどくさくなります…
それでは、まずは原理から↓

フォントの問題

キャラクタLCDには初めからLCD自体にフォントが入っているため、こちらで気にすることはありません。しかしグラフィックLCDの場合、それが無いために自分でフォントを用意してあげなければなりません
前の章で、任意の位置に1バイト好きなドットを書き込めるようになりました。
ですので、まぁ毎回文字データをこんな感じで↓

1バイト1バイト自分で描いてあげればいいわけです。0バイト目:0x00,1バイト目:0x01,2バイト目:0x01,3バイト目:0x61,4バイト目:0x19,5バイト目:0x05,6バイト目:0x03,7バイト目:0x00…
この作業をひらがなだとそれが83個、カタカナだと86個、数字だと10個、英語だと大文字小文字で26個ずつ、あと記号とか漢字とか…これを毎回毎回!8バイトなので8回ずつ!
ムリですね。誰か作ってくれないかな…
作ってる方がいました。→『美咲フォント
しかもライセンスフリーということで、ありがたく使わせていただきます…すげぇこれ作るのに何年かかったんだよ…
というわけでこのフォントを自分に必要な分だけプログラムのフォントヘッダーに入れて使おうと思います。今回僕は欲張って、『ひらがな・カナカナ・数字・英語(大文字小文字)・記号一部』を入れてみました。おかげで容量がヤバイです。(プログラムは下らへんにあります)
先人の頑張りのおかげで、フォントデータはなんとかなりそうです。次はデータの書き込み

LCDにどうやって書き込もう?

そういうわけで、次はどうやってLCD内の任意の場所に文字を書き込みましょうか?
手順はこんな感じです。
  1. 文字を書き込む先頭座標を入力
  2. フォントデータに8個ドットデータが入っているので、そこから8回書き込み繰り返し
  3. 次の文字のために文字を書き込む座標をx+8しておく(右端になったらy+1)
2の書き込み繰り返しですが、実はデータを書き込むとx軸の座標は勝手にx+1してくれます。なので、本当に8回データを書き込むだけで文字が表示されちゃいます。ただし右端に来てもy軸は+1されたりしないので注意が必要です。

文字列のプログラミングについて

僕はこれが一番わかりませんでした。文字をどうやってプログラミングするの?文章をどうやってプログラムにするの??って感じでした…。
これに関してはプログラムを見てもらった方が早いと思います。
char test[] = "エムクリちゃん";
こう書くだけで、testという配列の中に『エムクリちゃん』という文字列が順番に入ります。
ウォッチ式で確かめた結果↓

ちゃんと配列に数値が入ってますね!

じゃあ次はこの意味の説明です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます