I2C 接続の LCD AQM1602XA-RN-GBW 用のライブラリの使用例. Demo program of library for LCD 1602XA-RN-GBW connected using I2C interface.
Dependencies: mbed UIT_AQM1602
main.cpp@8:ac09e00d2903, 2017-07-22 (annotated)
- 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?
User | Revision | Line number | New 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 | } |