ACM1602N1-FLW-FBWで外字登録できたのでメモ。
多分ACM1602NI-FLW-FBW-M01も同じかと。
この方法が正解なのかどうかはわからないけど、動いてるからヨシッ!
このI2CのLCDをmbedで使うためにライブラリ"I2cLCD16_ACM1601NI"を使うとして、I2cLCD.cppの中を細工する。
I2cLCD::I2cLCD(PinName sda, PinName scl) : _i2c( sda , scl ){
//_i2c.frequency(50000);
wait_ms(15);
writeCommand(0x01);
wait_ms(5);
writeCommand(0x38);
wait_ms(5);
writeCommand(0x0f);
wait_ms(5);
writeCommand(0x06);
wait_ms(5);
// writeCommand(0x0c);
writeCommand(0x0f);//カーソルとブリンクを設定。二重に命令を発行してるかも。
wait_ms(5);
//
writeCommand(0x40);//CGRAMアドレス0x00からパターンを書き込み(℃)
wait_ms(5);
writeData(0x18);
wait_ms(5);
writeData(0x18);
wait_ms(5);
writeData(0x07);
wait_ms(5);
writeData(0x08);
wait_ms(5);
writeData(0x08);
wait_ms(5);
writeData(0x08);
wait_ms(5);
writeData(0x07);
wait_ms(5);
writeData(0x00);
wait_ms(5);
writeCommand(0x48);//CGRAMアドレス0x08からパターンを書き込み(hp)
wait_ms(5);
writeData(0x10);
wait_ms(5);
writeData(0x1c);
wait_ms(5);
writeData(0x14);
wait_ms(5);
writeData(0x03);
wait_ms(5);
writeData(0x05);
wait_ms(5);
writeData(0x07);
wait_ms(5);
writeData(0x04);
wait_ms(5);
writeData(0x00);
wait_ms(5);
}
こんな感じに8byteづつ書き込んでいけば外字コード0x00と0x01が定義される。"writeCommand(0x48)"は省略可能かもしれない。
℃とhpを表示。カーソルブリンク。
ドットパターンはこんな感じ。
初期化ルーチンで定義するのが良いのか悪いのかわからんけど、この方法で外字登録できたというお話。
多分ACM1602NI-FLW-FBW-M01も同じかと。
この方法が正解なのかどうかはわからないけど、動いてるからヨシッ!
このI2CのLCDをmbedで使うためにライブラリ"I2cLCD16_ACM1601NI"を使うとして、I2cLCD.cppの中を細工する。
I2cLCD::I2cLCD(PinName sda, PinName scl) : _i2c( sda , scl ){
//_i2c.frequency(50000);
wait_ms(15);
writeCommand(0x01);
wait_ms(5);
writeCommand(0x38);
wait_ms(5);
writeCommand(0x0f);
wait_ms(5);
writeCommand(0x06);
wait_ms(5);
// writeCommand(0x0c);
writeCommand(0x0f);//カーソルとブリンクを設定。二重に命令を発行してるかも。
wait_ms(5);
//
writeCommand(0x40);//CGRAMアドレス0x00からパターンを書き込み(℃)
wait_ms(5);
writeData(0x18);
wait_ms(5);
writeData(0x18);
wait_ms(5);
writeData(0x07);
wait_ms(5);
writeData(0x08);
wait_ms(5);
writeData(0x08);
wait_ms(5);
writeData(0x08);
wait_ms(5);
writeData(0x07);
wait_ms(5);
writeData(0x00);
wait_ms(5);
writeCommand(0x48);//CGRAMアドレス0x08からパターンを書き込み(hp)
wait_ms(5);
writeData(0x10);
wait_ms(5);
writeData(0x1c);
wait_ms(5);
writeData(0x14);
wait_ms(5);
writeData(0x03);
wait_ms(5);
writeData(0x05);
wait_ms(5);
writeData(0x07);
wait_ms(5);
writeData(0x04);
wait_ms(5);
writeData(0x00);
wait_ms(5);
}
こんな感じに8byteづつ書き込んでいけば外字コード0x00と0x01が定義される。"writeCommand(0x48)"は省略可能かもしれない。
℃とhpを表示。カーソルブリンク。
ドットパターンはこんな感じ。
初期化ルーチンで定義するのが良いのか悪いのかわからんけど、この方法で外字登録できたというお話。
※コメント投稿者のブログIDはブログ作成者のみに通知されます