I2C-LCDスレーブ通信仕様練り中
I2C-LCDスレーブ通信仕様練り中
I2Cスレーブが動いてLCD表示ドライバが動いたので合体した物を作っています。
LCDへの文字の表示、座標の指定、クリア、カスタムキャラクタ対応、バー表示機能 などの機能をどのようにI2C越しに指定するか、その通信仕様を考えているところです。
第1案ではコマンドを打って機能を確定させてから諸パラメータを送るものでした。コマンドを打って文字表示、コマンドとパラメータを打って座標指定、などなど。
しかしこれではいちいち文字を打つのにコマンドを打たなくてはいけない。文字の表示は軽く素通しにしておきたいところです。
LCDのキャラクタ表を見ると一部にスキマがあります*1ので、スキマキャラクタの特定文字がきたらコマンドシーケンスに移行するようにしたらいいかな、と今思いつきました。通常シーケンスでは来たデータをそのままlcdDataWriteしてしまおうかと。
ということで第1案のコードを捨てて第2案を練り始めました。
特定文字でシーケンス移行することを忘れて、0x00~0xFFインクリメントでテストデータ書きをしちゃうと困ったことになりますね。下端0x00と上端0xFFはキャラクタが割り当てられているので途中の文字でなんかするしかありません。0x1B でいいかなぁ。
*1:JISX0211でいうところのC0集合の半分とC1集合のコードの領域