
micro:bit中級者編〜I2CでLCDを制御する(20)
データシートを読んでいくつか分かったことがあるので書き留めておきます。
===
表示に関わる書き込み可能なメモリーには次のものがある
・DDRAM(Display Data RAM) 80 x 8bits
・CGRAM(Character Generator RAM) 64bytes
・ICON RAM 80 bits
※CGRAM/ICON RAMは使わなくても決まった文字は表示できるので今回調査・説明はスキップする。
DDRAM addressを説明している表がわかりにくいのでここに書き直す。
(1) 1-lineモードの時(hexaは0xYYで表記する。それ以外は10進)
1文字目から80文字目のアドレスは0x00から0x4F
※このうち連続する16文字が表示される。
(2) 2-lineモードの時
1行目の1文字目から40文字目のアドレスは0x00から0x27
2行目の1文字目から40文字目のアドレスは0x40から0x67
※このうち連続する8文字が表示される。2行目は1行目のアドレスに0x40を加えたものになる。(5/1訂正。コントローラの説明には16桁とありますが実際にはLCDは8桁です)
===
1-lineモードで80文字中のどの16文字を表示するか、2-lineモードだと40文字中のどの8文字か、を直接指定することはできず、右シフト左シフトできるのみ、と理解しました。(5/1訂正。コントローラの説明には16桁とありますが実際にはLCDは8桁です)
===
ここまでたどり着くのに時間がかかりましたがこれで理解できたはずです。
次回は実際にテストします。
今回はここまで
いいなと思ったら応援しよう!
