Program to demonstrate the features of the DisplayModule DM-TFT24-104 display using the UniGraphics library.
Dependencies: DmTouch_UniGraphic UniGraphic mbed
Fork of DisplayModule24_demo by
main.cpp@13:3489b8566dbc, 2016-01-27 (annotated)
- Committer:
- bentogami
- Date:
- Wed Jan 27 00:09:39 2016 +0000
- Revision:
- 13:3489b8566dbc
- Parent:
- 10:ca16a309a737
Current working code (v 1.0)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Geremia | 0:2ccd65a72ab8 | 1 | #include "stdio.h" |
Geremia | 0:2ccd65a72ab8 | 2 | #include "mbed.h" |
Geremia | 0:2ccd65a72ab8 | 3 | #include "string" |
JLarkin | 7:1dbfaba27e99 | 4 | #include "ILI932x.h" |
JLarkin | 9:8917e707fe8e | 5 | #include "DmTouch.h" |
JLarkin | 9:8917e707fe8e | 6 | |
JLarkin | 6:6b6e93790b4c | 7 | |
Geremia | 0:2ccd65a72ab8 | 8 | #include "Arial12x12.h" |
Geremia | 0:2ccd65a72ab8 | 9 | #include "Arial24x23.h" |
Geremia | 4:818956c30cae | 10 | #include "pavement_48x34.h" |
Geremia | 0:2ccd65a72ab8 | 11 | |
Geremia | 0:2ccd65a72ab8 | 12 | Serial pc(USBTX, USBRX); |
Geremia | 0:2ccd65a72ab8 | 13 | |
JLarkin | 7:1dbfaba27e99 | 14 | /* Configure the DisplayModule ILI9325 2.4" display for 8-bit bus communication |
JLarkin | 6:6b6e93790b4c | 15 | |
JLarkin | 6:6b6e93790b4c | 16 | mbed pin display pin |
JLarkin | 6:6b6e93790b4c | 17 | -------- ----------- |
JLarkin | 7:1dbfaba27e99 | 18 | p15 CS (L15) |
JLarkin | 7:1dbfaba27e99 | 19 | p17 RST (L17) |
JLarkin | 7:1dbfaba27e99 | 20 | p16 RS (L4) |
JLarkin | 7:1dbfaba27e99 | 21 | p14 WR (L5) |
JLarkin | 7:1dbfaba27e99 | 22 | p20 RD (L6) |
JLarkin | 6:6b6e93790b4c | 23 | |
JLarkin | 7:1dbfaba27e99 | 24 | p30 DB8 (L7) |
JLarkin | 7:1dbfaba27e99 | 25 | p29 DB9 (L8) |
JLarkin | 7:1dbfaba27e99 | 26 | p28 DB10 (L9) |
JLarkin | 7:1dbfaba27e99 | 27 | p27 DB11 (L10) |
JLarkin | 7:1dbfaba27e99 | 28 | p26 DB12 (L11) |
JLarkin | 7:1dbfaba27e99 | 29 | p25 DB13 (L12) |
JLarkin | 7:1dbfaba27e99 | 30 | p24 DB14 (L13) |
JLarkin | 7:1dbfaba27e99 | 31 | p23 DB15 (L14) |
JLarkin | 6:6b6e93790b4c | 32 | |
JLarkin | 7:1dbfaba27e99 | 33 | p1 GND (L1) |
JLarkin | 7:1dbfaba27e99 | 34 | p40 Vin (L2) |
JLarkin | 9:8917e707fe8e | 35 | p40 LED Backlight (L19) |
JLarkin | 6:6b6e93790b4c | 36 | */ |
JLarkin | 7:1dbfaba27e99 | 37 | PinName dataBus[]= {p30, p29, p28, p27, p26, p25, p24, p23}; |
JLarkin | 7:1dbfaba27e99 | 38 | ILI932x myLCD(BUS_8, dataBus, p15, p17, p16, p14, p20, "myLCD", 240, 320); // Bus 8 bit, bus pin array, CS, RST, DC, WR, RD, name, xpixels, ypixels |
Geremia | 0:2ccd65a72ab8 | 39 | |
JLarkin | 9:8917e707fe8e | 40 | /* Additional connections to add touch response |
JLarkin | 9:8917e707fe8e | 41 | |
JLarkin | 9:8917e707fe8e | 42 | mbed pin display pin |
JLarkin | 9:8917e707fe8e | 43 | -------- ----------- |
JLarkin | 9:8917e707fe8e | 44 | p5 T_MOSI (R11) |
JLarkin | 9:8917e707fe8e | 45 | p6 T_MISO (R13) |
JLarkin | 9:8917e707fe8e | 46 | p7 T_CLK (R9) |
JLarkin | 9:8917e707fe8e | 47 | p8 T_CS (R10) |
bentogami | 13:3489b8566dbc | 48 | |
JLarkin | 9:8917e707fe8e | 49 | p9 T_IRQ (R14) |
JLarkin | 9:8917e707fe8e | 50 | */ |
JLarkin | 9:8917e707fe8e | 51 | DmTouch touch(DmTouch::DM_TFT24_104, p5, p6, p7, p8, p9); |
JLarkin | 9:8917e707fe8e | 52 | |
JLarkin | 10:ca16a309a737 | 53 | char orient=3; |
JLarkin | 7:1dbfaba27e99 | 54 | int x,y; |
JLarkin | 9:8917e707fe8e | 55 | uint16_t tx, ty; |
bentogami | 13:3489b8566dbc | 56 | Timer t, debounce, f; |
bentogami | 13:3489b8566dbc | 57 | DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); |
bentogami | 13:3489b8566dbc | 58 | DigitalOut flash(p21); |
bentogami | 13:3489b8566dbc | 59 | |
bentogami | 13:3489b8566dbc | 60 | void flashLight(); |
JLarkin | 7:1dbfaba27e99 | 61 | |
Geremia | 0:2ccd65a72ab8 | 62 | int main() |
Geremia | 0:2ccd65a72ab8 | 63 | { |
bentogami | 13:3489b8566dbc | 64 | bool down, lastDown, flashing; |
bentogami | 13:3489b8566dbc | 65 | flash = 1; |
JLarkin | 9:8917e707fe8e | 66 | touch.init(); |
JLarkin | 9:8917e707fe8e | 67 | t.start(); |
bentogami | 13:3489b8566dbc | 68 | debounce.start(); |
bentogami | 13:3489b8566dbc | 69 | f.start(); |
Geremia | 4:818956c30cae | 70 | myLCD.set_orientation(orient); |
JLarkin | 6:6b6e93790b4c | 71 | myLCD.set_font((unsigned char*) Arial24x23); |
JLarkin | 9:8917e707fe8e | 72 | myLCD.background(Blue); // set background to Blue |
JLarkin | 9:8917e707fe8e | 73 | myLCD.foreground(White); // set chars to White |
Geremia | 4:818956c30cae | 74 | myLCD.cls(); // clear the screen |
JLarkin | 6:6b6e93790b4c | 75 | myLCD.locate(10,30); |
bentogami | 13:3489b8566dbc | 76 | myLCD.printf("Touchscreen Demo\r\n"); |
bentogami | 13:3489b8566dbc | 77 | wait(1); |
bentogami | 13:3489b8566dbc | 78 | myLCD.cls(); |
JLarkin | 6:6b6e93790b4c | 79 | while(1) |
JLarkin | 6:6b6e93790b4c | 80 | { |
bentogami | 13:3489b8566dbc | 81 | |
bentogami | 13:3489b8566dbc | 82 | myLCD.background(White); // set background to White |
bentogami | 13:3489b8566dbc | 83 | myLCD.foreground(Black); // set chars to Black |
bentogami | 13:3489b8566dbc | 84 | myLCD.cls(); // clear the screen |
JLarkin | 6:6b6e93790b4c | 85 | |
bentogami | 13:3489b8566dbc | 86 | // Rectangles |
bentogami | 13:3489b8566dbc | 87 | myLCD.rect(40, 20, 120, 140, Green); // left upper |
bentogami | 13:3489b8566dbc | 88 | myLCD.rect(200, 20, 280, 140, Red); // right upper |
bentogami | 13:3489b8566dbc | 89 | myLCD.rect(40, 160, 280, 220, Blue); // lower center |
bentogami | 13:3489b8566dbc | 90 | myLCD.locate(70, 70); |
bentogami | 13:3489b8566dbc | 91 | myLCD.printf("<"); |
bentogami | 13:3489b8566dbc | 92 | myLCD.locate(230, 70); |
bentogami | 13:3489b8566dbc | 93 | myLCD.printf(">"); |
bentogami | 13:3489b8566dbc | 94 | myLCD.locate(70, 180); |
bentogami | 13:3489b8566dbc | 95 | myLCD.printf("Send Request"); |
JLarkin | 6:6b6e93790b4c | 96 | |
JLarkin | 9:8917e707fe8e | 97 | touch.setOrientation(orient); |
JLarkin | 9:8917e707fe8e | 98 | down = false; |
JLarkin | 9:8917e707fe8e | 99 | lastDown = false; |
bentogami | 13:3489b8566dbc | 100 | flashing = false; |
JLarkin | 9:8917e707fe8e | 101 | tx = (uint16_t)0; |
JLarkin | 9:8917e707fe8e | 102 | ty = (uint16_t)0; |
bentogami | 13:3489b8566dbc | 103 | |
bentogami | 13:3489b8566dbc | 104 | t.reset(); |
bentogami | 13:3489b8566dbc | 105 | |
bentogami | 13:3489b8566dbc | 106 | // Code for rectangles |
bentogami | 13:3489b8566dbc | 107 | while(1) { |
JLarkin | 9:8917e707fe8e | 108 | touch.readTouchData(tx, ty, down); |
bentogami | 13:3489b8566dbc | 109 | if (down && debounce.read_ms() > 200) { |
bentogami | 13:3489b8566dbc | 110 | if (tx > 40 && tx < 120 && ty > 20 && ty < 140) { led1 = !led1; debounce.reset();} |
bentogami | 13:3489b8566dbc | 111 | if (tx > 200 && tx < 280 && ty > 20 && ty < 140) { led2 = !led2; debounce.reset();} |
bentogami | 13:3489b8566dbc | 112 | if (tx > 40 && tx < 280 && ty > 160 && ty < 220) { |
bentogami | 13:3489b8566dbc | 113 | flash = 1; |
bentogami | 13:3489b8566dbc | 114 | flashing = !flashing; |
bentogami | 13:3489b8566dbc | 115 | myLCD.fillrect(40, 160, 280, 220, Blue); |
bentogami | 13:3489b8566dbc | 116 | myLCD.locate(70, 180); |
bentogami | 13:3489b8566dbc | 117 | myLCD.printf("Request Sent"); |
bentogami | 13:3489b8566dbc | 118 | debounce.reset(); |
bentogami | 13:3489b8566dbc | 119 | } |
JLarkin | 9:8917e707fe8e | 120 | } |
bentogami | 13:3489b8566dbc | 121 | else if (lastDown) { |
bentogami | 13:3489b8566dbc | 122 | myLCD.circle(0,0,1, Black); |
bentogami | 13:3489b8566dbc | 123 | if (!flashing) { |
bentogami | 13:3489b8566dbc | 124 | myLCD.fillrect(40, 160, 280, 220, White); |
bentogami | 13:3489b8566dbc | 125 | myLCD.rect(40, 160, 280, 220, Blue); |
bentogami | 13:3489b8566dbc | 126 | myLCD.locate(70, 180); |
bentogami | 13:3489b8566dbc | 127 | myLCD.printf("Send Request"); |
bentogami | 13:3489b8566dbc | 128 | } |
bentogami | 13:3489b8566dbc | 129 | } |
bentogami | 13:3489b8566dbc | 130 | if ((f.read() > 0.2) && flashing){ |
bentogami | 13:3489b8566dbc | 131 | flash = !flash; |
bentogami | 13:3489b8566dbc | 132 | f.reset(); |
bentogami | 13:3489b8566dbc | 133 | } |
JLarkin | 9:8917e707fe8e | 134 | lastDown = down; |
bentogami | 13:3489b8566dbc | 135 | } |
bentogami | 13:3489b8566dbc | 136 | } |
bentogami | 13:3489b8566dbc | 137 | } |