液晶搭載マイコン・モジュール (5) 階調表示
(※関連記事はカテゴリーの「液晶搭載マイコンモジュール」をご覧ください。)
今日は液晶の階調表示実験をやってみました。
今回はゲームのようなAP部はなし。ごく簡単な表示TPをmain()において階調表示ができるか、どう見えるかを試しました。
結果はこのようになんとか0〜3段階の4階調がでています。
方式は以下のようなものです。
・LCD表示領域と同じ大きさの仮想画面を3枚分用意する。
・キャラクタを仮想画面に描くときに以下のようにする。
・最も濃い階調は全仮想画面に描く
・2番目に濃い階調は2つの画面だけに描く
・3番目に濃い会長は1つの画面だけに描く
・表示は、液晶フレーム割り込みごとに3枚の仮想画面を順番にコピーする。
この方式はメモリ効率が悪いですが、フレーム割り込み処理時間が短くなると思って採用しました。
まだ洗練されていないですが、サンプルコードを公開します。
※※注意事項※※
@ このソフトはCQ出版社殿が「液晶マイコン基板特設ページ」で提供されているサンプルコードを
流用して開発されています。
A 個人での使用、改変、流用は自由です(大いにやってください。)が、外部公開する場合は
@のように必ず流用元を明記してください。
B このサンプルコードを使用して万一発生した直接的、間接的ないかなる内容の損失に対しても、
流用元及び当Blogの管理人は一切の保証責任を負いません。
今回の機能に関係する関数は以下の通りです。ご参考に。
main.c
void display2lcd(void)__attribute__ ((interrupt_handler));
lcdmanager.c
void clearGrayscaleScreen(unsigned char *);
void putCharWithGrayscale(unsigned char *,unsigned int , unsigned int , unsigned char ,unsigned int);
使いやすさを考えると、昔のBASICのCOLOR文みたいなもので、その後のPrint文の色指定するような関数にした方がいいかなあ、などとも考えています。今日は階調が見れればそれでよかったのでとりあえずここまでとします。
以上です。
にほんブログ村 ←記事が面白かったらクリックしてやってください。
コメント