Shows how to use a display and the touch controller. Will display the X and Y coordinates of the current touch event.

Dependencies:   DmTftLibrary mbed

Committer:
displaymodule
Date:
Tue May 20 15:44:16 2014 +0000
Revision:
0:144e2312d558
Child:
1:63e25ac12708
First version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
displaymodule 0:144e2312d558 1 /**********************************************************************************************
displaymodule 0:144e2312d558 2 Copyright (c) 2014 DisplayModule. All rights reserved.
displaymodule 0:144e2312d558 3
displaymodule 0:144e2312d558 4 Redistribution and use of this source code, part of this source code or any compiled binary
displaymodule 0:144e2312d558 5 based on this source code is permitted as long as the above copyright notice and following
displaymodule 0:144e2312d558 6 disclaimer is retained.
displaymodule 0:144e2312d558 7
displaymodule 0:144e2312d558 8 DISCLAIMER:
displaymodule 0:144e2312d558 9 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES
displaymodule 0:144e2312d558 10 NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
displaymodule 0:144e2312d558 11 ********************************************************************************************/
displaymodule 0:144e2312d558 12
displaymodule 0:144e2312d558 13 /******************************************************************************
displaymodule 0:144e2312d558 14 * Includes
displaymodule 0:144e2312d558 15 *****************************************************************************/
displaymodule 0:144e2312d558 16
displaymodule 0:144e2312d558 17 #include "mbed.h"
displaymodule 0:144e2312d558 18
displaymodule 0:144e2312d558 19 #include "DmTftHX8353C.h"
displaymodule 0:144e2312d558 20 #include "DmTftS6D0164.h"
displaymodule 0:144e2312d558 21 #include "DmTftIli9325.h"
displaymodule 0:144e2312d558 22 #include "DmTftIli9341.h"
displaymodule 0:144e2312d558 23 #include "DmTftSsd2119.h"
displaymodule 0:144e2312d558 24 #include "DmTouch.h"
displaymodule 0:144e2312d558 25
displaymodule 0:144e2312d558 26 /******************************************************************************
displaymodule 0:144e2312d558 27 * Typedefs and defines
displaymodule 0:144e2312d558 28 *****************************************************************************/
displaymodule 0:144e2312d558 29
displaymodule 0:144e2312d558 30 //#define log(...) printf(__VA_ARGS__)
displaymodule 0:144e2312d558 31 #define log(...)
displaymodule 0:144e2312d558 32
displaymodule 0:144e2312d558 33 #if 0 /* Displays without adapter */
displaymodule 0:144e2312d558 34 #define DM_PIN_SPI_MOSI D11
displaymodule 0:144e2312d558 35 #define DM_PIN_SPI_MISO D12
displaymodule 0:144e2312d558 36 #define DM_PIN_SPI_SCLK D13
displaymodule 0:144e2312d558 37
displaymodule 0:144e2312d558 38 #define DM_PIN_CS_TOUCH D4
displaymodule 0:144e2312d558 39 #define DM_PIN_CS_TFT D10
displaymodule 0:144e2312d558 40 #define DM_PIN_CS_SDCARD D8
displaymodule 0:144e2312d558 41 #define DM_PIN_CS_FLASH D6
displaymodule 0:144e2312d558 42 #else /* Displays with adapter */
displaymodule 0:144e2312d558 43 #define DM_PIN_SPI_MOSI A0
displaymodule 0:144e2312d558 44 #define DM_PIN_SPI_MISO D9
displaymodule 0:144e2312d558 45 #define DM_PIN_SPI_SCLK A1
displaymodule 0:144e2312d558 46
displaymodule 0:144e2312d558 47 #define DM_PIN_CS_TOUCH D8
displaymodule 0:144e2312d558 48 #define DM_PIN_CS_TFT A3
displaymodule 0:144e2312d558 49 #define DM_PIN_CS_SDCARD D10
displaymodule 0:144e2312d558 50 #endif
displaymodule 0:144e2312d558 51
displaymodule 0:144e2312d558 52 /******************************************************************************
displaymodule 0:144e2312d558 53 * Local variables
displaymodule 0:144e2312d558 54 *****************************************************************************/
displaymodule 0:144e2312d558 55
displaymodule 0:144e2312d558 56 //DmTftHX8353C tft; /* DM_TFT18_101 */
displaymodule 0:144e2312d558 57 //DmTftS6D0164 tft; /* DM_TFT22_102 */
displaymodule 0:144e2312d558 58 DmTftIli9325 tft; /* DM_TFT28_103 and DM_TFT24_104 */
displaymodule 0:144e2312d558 59 //DmTftIli9341 tft; /* DM_TFT28_105 */
displaymodule 0:144e2312d558 60 //DmTftSsd2119 tft; /* DM_TFT35_107 */
displaymodule 0:144e2312d558 61
displaymodule 0:144e2312d558 62 DmTouch touch(DmTouch::DM_TFT28_103, false); /* For LPC4088 QuickStart Board */
displaymodule 0:144e2312d558 63 //DmTouch touch(DmTouch::DM_TFT28_103);
displaymodule 0:144e2312d558 64 //DmTouch touch(DmTouch::DM_TFT24_104, false); /* For LPC4088 QuickStart Board */
displaymodule 0:144e2312d558 65 //DmTouch touch(DmTouch::DM_TFT28_105);
displaymodule 0:144e2312d558 66 //DmTouch touch(DmTouch::DM_TFT35_107);
displaymodule 0:144e2312d558 67
displaymodule 0:144e2312d558 68 DigitalInOut csTouch(DM_PIN_CS_TOUCH, PIN_OUTPUT, PullUp, 1);
displaymodule 0:144e2312d558 69 DigitalInOut csDisplay(DM_PIN_CS_TFT, PIN_OUTPUT, PullUp, 1);
displaymodule 0:144e2312d558 70 DigitalInOut csSDCard(DM_PIN_CS_SDCARD, PIN_OUTPUT, PullUp, 1);
displaymodule 0:144e2312d558 71 #ifdef DM_PIN_CS_FLASH
displaymodule 0:144e2312d558 72 DigitalInOut csFlash(DM_PIN_CS_FLASH, PIN_OUTPUT, PullUp, 1);
displaymodule 0:144e2312d558 73 #endif
displaymodule 0:144e2312d558 74
displaymodule 0:144e2312d558 75 /******************************************************************************
displaymodule 0:144e2312d558 76 * Global variables
displaymodule 0:144e2312d558 77 *****************************************************************************/
displaymodule 0:144e2312d558 78
displaymodule 0:144e2312d558 79 /******************************************************************************
displaymodule 0:144e2312d558 80 * Local functions
displaymodule 0:144e2312d558 81 *****************************************************************************/
displaymodule 0:144e2312d558 82
displaymodule 0:144e2312d558 83
displaymodule 0:144e2312d558 84 /******************************************************************************
displaymodule 0:144e2312d558 85 * Main
displaymodule 0:144e2312d558 86 *****************************************************************************/
displaymodule 0:144e2312d558 87
displaymodule 0:144e2312d558 88 int main() {
displaymodule 0:144e2312d558 89 log("init tft \r\n");
displaymodule 0:144e2312d558 90 tft.init();
displaymodule 0:144e2312d558 91
displaymodule 0:144e2312d558 92 uint16_t x = 0;
displaymodule 0:144e2312d558 93 uint16_t y = 0;
displaymodule 0:144e2312d558 94 uint16_t w = tft.width();
displaymodule 0:144e2312d558 95 uint16_t h = tft.height();
displaymodule 0:144e2312d558 96
displaymodule 0:144e2312d558 97 bool down = false;
displaymodule 0:144e2312d558 98 bool lastDown = false;
displaymodule 0:144e2312d558 99
displaymodule 0:144e2312d558 100 tft.drawString(20, 20, "x:");
displaymodule 0:144e2312d558 101 tft.drawString(100, 20, "y:");
displaymodule 0:144e2312d558 102
displaymodule 0:144e2312d558 103 touch.init();
displaymodule 0:144e2312d558 104 while (1) {
displaymodule 0:144e2312d558 105 touch.readTouchData(x, y, down);
displaymodule 0:144e2312d558 106 if (down) {
displaymodule 0:144e2312d558 107 tft.drawNumber(40, 20, x, 5, false);
displaymodule 0:144e2312d558 108 tft.drawNumber(120, 20, y, 5, false);
displaymodule 0:144e2312d558 109 } else if (lastDown) {
displaymodule 0:144e2312d558 110 // no longer pressed, clean text
displaymodule 0:144e2312d558 111 tft.drawString(40, 20, " ");
displaymodule 0:144e2312d558 112 tft.drawString(120, 20, " ");
displaymodule 0:144e2312d558 113 }
displaymodule 0:144e2312d558 114 wait(0.040);
displaymodule 0:144e2312d558 115 lastDown = down;
displaymodule 0:144e2312d558 116 }
displaymodule 0:144e2312d558 117 }