I2C 接続の LCD AQM1602XA-RN-GBW 用のライブラリ. Library for LCD 1602XA-RN-GBW connected using I2C interface.
Dependents: UIT2_MovingAv_Intr UIT2_VariableFIR UIT2_VowelSynthesizer UIT2_ALE_LeakyLMS ... more
Diff: AQM1602.cpp
- Revision:
- 11:f650f1e809a9
- Parent:
- 10:6e6c0f24e81f
- Child:
- 12:21830002e12d
--- a/AQM1602.cpp Sat Dec 24 02:36:19 2016 +0000 +++ b/AQM1602.cpp Sat Jul 22 01:56:41 2017 +0000 @@ -1,8 +1,10 @@ //--------------------------------------------------------------- // Class for LCD, AQM1602XA-RN-GBW // Use mbed Rev.129 for Nucleo-F401/446/746 and DISCO-F746 +// mbed Rev.130 以降で起こる,割り込み処理での動作不良を修正 +// DISCO-F746 では動作不良は修正できないようだ // -// 2016/12/24, Copyright (c) 2016 MIKAMI, Naoki +// 2017/07/21, Copyright (c) 2016 MIKAMI, Naoki //--------------------------------------------------------------- #include "AQM1602.hpp" @@ -91,9 +93,20 @@ // Send command and data bool Aqm1602::LcdTx(uint8_t cmdData, uint8_t data) { +/* + // mbed Rev.130 以降では割り込み処理でうまく動作しない場合がある char tx[2] = { cmdData, data }; int rt = i2c_.write(LCD_ADDRESS_, tx, 2); wait_us(30); return (rt == 0) ? true : false; +*/ + // mbed Rev.130 以降は下記を使う + i2c_.start(); + int ack = i2c_.write(LCD_ADDRESS_); + ack &= i2c_.write(cmdData); + ack &= i2c_.write(data); + i2c_.stop(); + wait_us(30); + return (ack == 1) ? true : false; } }