I2C 接続の LCD AQM1602XA-RN-GBW 用のライブラリの使用例. Demo program of library for LCD 1602XA-RN-GBW connected using I2C interface.

Dependencies:   mbed UIT_AQM1602

Committer:
MikamiUitOpen
Date:
Sat Jul 22 01:57:58 2017 +0000
Revision:
8:ac09e00d2903
Parent:
7:3b3317e5f14e
Child:
9:3ccc730c6f1b
9, mbed Rev.130 ??????????????????????? DISCO-F746 ?????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 7:3b3317e5f14e 1 //----------------------------------------------------------------
MikamiUitOpen 7:3b3317e5f14e 2 // Demo program for LCD AQM1602XA-RN-GBW using I2C interface
MikamiUitOpen 0:e1b05c7eb023 3 // Pullup resistors for SDA and SCL: 10 kΩ
MikamiUitOpen 7:3b3317e5f14e 4 // Use mbed Rev.129 for Nucleo-F401/446/746 and DISCO-F746
MikamiUitOpen 7:3b3317e5f14e 5 //
MikamiUitOpen 8:ac09e00d2903 6 // mbed Rev.130 以降で起こる,割り込み処理での動作不良を修正した
MikamiUitOpen 8:ac09e00d2903 7 // Aqm1602 クラスを使用
MikamiUitOpen 8:ac09e00d2903 8 // DISCO-F746 では動作不良は修正できないようだ
MikamiUitOpen 8:ac09e00d2903 9 //
MikamiUitOpen 8:ac09e00d2903 10 // 2017/07/22, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 7:3b3317e5f14e 11 //----------------------------------------------------------------
MikamiUitOpen 0:e1b05c7eb023 12
MikamiUitOpen 0:e1b05c7eb023 13 #include "AQM1602.hpp"
MikamiUitOpen 1:6c838e71e330 14
MikamiUitOpen 0:e1b05c7eb023 15 using namespace Mikami;
MikamiUitOpen 0:e1b05c7eb023 16
MikamiUitOpen 4:291e82d910d0 17 Aqm1602 lcd_; // Default, OK
MikamiUitOpen 4:291e82d910d0 18 //Aqm1602 lcd_(D14, D15); // OK
MikamiUitOpen 4:291e82d910d0 19 //Aqm1602 lcd_(D14, D15, 200000); // OK
MikamiUitOpen 4:291e82d910d0 20 //Aqm1602 lcd_(D14, D15, 200000, true, true); // OK
MikamiUitOpen 4:291e82d910d0 21 //Aqm1602 lcd_(PB_3, PB_10); // OK
MikamiUitOpen 4:291e82d910d0 22 //Aqm1602 lcd_(PC_9, PA_8); // OK
MikamiUitOpen 4:291e82d910d0 23 //Aqm1602 lcd_(PB_4, PA_8); // OK
MikamiUitOpen 4:291e82d910d0 24 //I2C i2cObj_(D14, D15);
MikamiUitOpen 4:291e82d910d0 25 //Aqm1602 lcd_(i2cObj_); // OK
MikamiUitOpen 4:291e82d910d0 26
MikamiUitOpen 4:291e82d910d0 27 // Following: for LPC1114
MikamiUitOpen 4:291e82d910d0 28 //Aqm1602 lcd_(dp5, dp27); // OK
MikamiUitOpen 4:291e82d910d0 29 //I2C i2cObj_(dp5, dp27);
MikamiUitOpen 4:291e82d910d0 30 //Aqm1602 lcd_(i2cObj_); // OK
MikamiUitOpen 4:291e82d910d0 31
MikamiUitOpen 4:291e82d910d0 32 // Following: for LPC1768
MikamiUitOpen 4:291e82d910d0 33 //Aqm1602 lcd_(p9, p10); // OK
MikamiUitOpen 0:e1b05c7eb023 34
MikamiUitOpen 0:e1b05c7eb023 35 Ticker timer_;
MikamiUitOpen 7:3b3317e5f14e 36 #ifdef STM_USER_BUTTON
MikamiUitOpen 0:e1b05c7eb023 37 DigitalIn uButton_(USER_BUTTON);
MikamiUitOpen 4:291e82d910d0 38 #endif
MikamiUitOpen 0:e1b05c7eb023 39
MikamiUitOpen 0:e1b05c7eb023 40 void TimerIsr()
MikamiUitOpen 0:e1b05c7eb023 41 {
MikamiUitOpen 0:e1b05c7eb023 42 static int k = 0;
MikamiUitOpen 5:d63f1c2d8027 43 lcd_.WriteValueXY("%5.1f", (float)(k++/10.0f), 0, 1);
MikamiUitOpen 0:e1b05c7eb023 44 }
MikamiUitOpen 0:e1b05c7eb023 45
MikamiUitOpen 0:e1b05c7eb023 46 void WaitButton()
MikamiUitOpen 0:e1b05c7eb023 47 {
MikamiUitOpen 7:3b3317e5f14e 48 #ifdef STM_USER_BUTTON
MikamiUitOpen 1:6c838e71e330 49 lcd_.WriteStringXY("Push blue button", 0, 1);
MikamiUitOpen 7:3b3317e5f14e 50 #ifdef STM32F7
MikamiUitOpen 7:3b3317e5f14e 51 while (uButton_ == 0) {}
MikamiUitOpen 7:3b3317e5f14e 52 #else
MikamiUitOpen 0:e1b05c7eb023 53 while (uButton_ == 1) {}
MikamiUitOpen 7:3b3317e5f14e 54 #endif
MikamiUitOpen 4:291e82d910d0 55 #else
MikamiUitOpen 5:d63f1c2d8027 56 wait(1);
MikamiUitOpen 4:291e82d910d0 57 #endif
MikamiUitOpen 1:6c838e71e330 58 lcd_.ClearLine(1);
MikamiUitOpen 1:6c838e71e330 59 wait(0.5);
MikamiUitOpen 0:e1b05c7eb023 60 }
MikamiUitOpen 0:e1b05c7eb023 61
MikamiUitOpen 0:e1b05c7eb023 62 int main()
MikamiUitOpen 0:e1b05c7eb023 63 {
MikamiUitOpen 6:3dcecef3aa21 64 if (lcd_.IsConnected()) printf("\r\nConnected\r\n");
MikamiUitOpen 6:3dcecef3aa21 65 else printf("\r\nDisconnected\r\n");
MikamiUitOpen 3:fe2f8abf2120 66
MikamiUitOpen 0:e1b05c7eb023 67 lcd_.Clear();
MikamiUitOpen 0:e1b05c7eb023 68 lcd_.WriteString("Hello!");
MikamiUitOpen 0:e1b05c7eb023 69 WaitButton(); // Waiting, push blue user button
MikamiUitOpen 0:e1b05c7eb023 70 lcd_.WriteStringXY("0123456789ABCDEF", 0, 0);
MikamiUitOpen 0:e1b05c7eb023 71 WaitButton(); // Waiting, push blue user button
MikamiUitOpen 0:e1b05c7eb023 72 lcd_.ClearLine(0);
MikamiUitOpen 0:e1b05c7eb023 73 WaitButton(); // Waiting, push blue user button
MikamiUitOpen 1:6c838e71e330 74 string str = "AQM1602";
MikamiUitOpen 1:6c838e71e330 75 lcd_.WriteStringXY(str+"XA-RN-GBW", 0, 0);
MikamiUitOpen 0:e1b05c7eb023 76 TimerIsr();
MikamiUitOpen 5:d63f1c2d8027 77 timer_.attach(&TimerIsr, 0.1f);
MikamiUitOpen 0:e1b05c7eb023 78
MikamiUitOpen 0:e1b05c7eb023 79 while (true) {}
MikamiUitOpen 0:e1b05c7eb023 80 }