P4:CGRAM アクセス成功

| | トラックバック(0)
 昨日作ったソースを見直してから動かしてみると...、動かない (; ;)。見直しをかけると、CGRAM に送るデータをコマンド(RS=0)として送っていた。そこを直すと無事動いた。フォントもこちらでイメージしたとおり。

 と、ここで不具合発見。自前のプログラムから直で LCD をアクセスするとうまく表示されない。一度 H8OS を使って LCD 表示をしてからだとうまくいく。初期化ルーチンに問題があるのか...。

 それはそれとして、今日の残り時間はコードを短くする検討に入る。
void lcd_putch(char ch) {
    LCD_RS = 1;
    lcd_write(ch);
}
 こういう関数があって、中身は

void lcd_putch(char ch) {
    IO.PDR5.BIT.B6 = 1;
    lcd_write(ch);
}
 となっていて、サイズが 20H。

 これを、下のように書き換えるとサイズは 1AH

#define PDR5 (*(volatile unsigned char *)0xffd8)
void lcd_putch(char ch) {
    PDR5 |= 0x20;
    lcd_write(ch);
}
  IO ポートのレジスタへの構造体アクセスはザッと見て 2-30 はありそうなのでこれを全部直せば 150 byte 前後は節約できそう。

 移植性は落ちるが仕方あるまい。ま、違うハードで使いまわす予定もないし (^^;

 ちなみに、下のように、ポートアクセスを削除すると 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

このブログ記事について

このページは、ytaroが2009年5月29日 11:06に書いたブログ記事です。

ひとつ前のブログ記事は「P4:CGRAM アクセスルーチン作成」です。

次のブログ記事は「P4:LCD 初期化失敗」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

track feed Subscribe in a reader
Powered by Movable Type 4.01