rftgyふじこlp:今は反芻している…JP1NOM

のんべんだらりと生きてしまいましたよ。

今日のLCD

2019年05月30日 10時30分00秒 | mbed
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を表示。カーソルブリンク。



ドットパターンはこんな感じ。

初期化ルーチンで定義するのが良いのか悪いのかわからんけど、この方法で外字登録できたというお話。


最新の画像もっと見る

コメントを投稿