P4:CGRAM アクセス成功
昨日作ったソースを見直してから動かしてみると...、動かない (; ;)。見直しをかけると、CGRAM に送るデータをコマンド(RS=0)として送っていた。そこを直すと無事動いた。フォントもこちらでイメージしたとおり。
と、ここで不具合発見。自前のプログラムから直で LCD をアクセスするとうまく表示されない。一度 H8OS を使って LCD 表示をしてからだとうまくいく。初期化ルーチンに問題があるのか...。
それはそれとして、今日の残り時間はコードを短くする検討に入る。
と、ここで不具合発見。自前のプログラムから直で LCD をアクセスするとうまく表示されない。一度 H8OS を使って LCD 表示をしてからだとうまくいく。初期化ルーチンに問題があるのか...。
それはそれとして、今日の残り時間はコードを短くする検討に入る。
void lcd_putch(char ch) {こういう関数があって、中身は
LCD_RS = 1;
lcd_write(ch);
}
void lcd_putch(char ch) {となっていて、サイズが 20H。
IO.PDR5.BIT.B6 = 1;
lcd_write(ch);
}
これを、下のように書き換えるとサイズは 1AH
#define PDR5 (*(volatile unsigned char *)0xffd8)IO ポートのレジスタへの構造体アクセスはザッと見て 2-30 はありそうなのでこれを全部直せば 150 byte 前後は節約できそう。
void lcd_putch(char ch) {
PDR5 |= 0x20;
lcd_write(ch);
}
移植性は落ちるが仕方あるまい。ま、違うハードで使いまわす予定もないし (^^;
ちなみに、下のように、ポートアクセスを削除すると 10H。メモリを 1byte OR するだけで 10byte か。
void lcd_putch(char ch) {
// LCD_RS = 1;
// PDR5 |= 0x20;
lcd_write(ch);
}
トラックバック(0)
このブログ記事を参照しているブログ一覧: P4:CGRAM アクセス成功
このブログ記事に対するトラックバックURL: http://www.co-mind.info/cgi-bin/mt/mt-tb.cgi/1080