cbcx

Dependencies:   DmTftLibrary mbed

Fork of LCD_Proj by Tobias Fuchsbichler

Committer:
TFuchsbichler
Date:
Mon Dec 14 15:25:49 2015 +0000
Revision:
0:dd55ca105ef3
Child:
1:81d0d835991d
uiggzui; ; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TFuchsbichler 0:dd55ca105ef3 1 /**********************************************************************************************
TFuchsbichler 0:dd55ca105ef3 2 Copyright (c) 2014 DisplayModule. All rights reserved.
TFuchsbichler 0:dd55ca105ef3 3
TFuchsbichler 0:dd55ca105ef3 4 Redistribution and use of this source code, part of this source code or any compiled binary
TFuchsbichler 0:dd55ca105ef3 5 based on this source code is permitted as long as the above copyright notice and following
TFuchsbichler 0:dd55ca105ef3 6 disclaimer is retained.
TFuchsbichler 0:dd55ca105ef3 7
TFuchsbichler 0:dd55ca105ef3 8 DISCLAIMER:
TFuchsbichler 0:dd55ca105ef3 9 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES
TFuchsbichler 0:dd55ca105ef3 10 NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
TFuchsbichler 0:dd55ca105ef3 11 ********************************************************************************************/
TFuchsbichler 0:dd55ca105ef3 12
TFuchsbichler 0:dd55ca105ef3 13 /******************************************************************************
TFuchsbichler 0:dd55ca105ef3 14 * Tested on NUCLEO-F401RE, LPCXpresso11U68, LPCXpresso824-MAX platform.
TFuchsbichler 0:dd55ca105ef3 15 *****************************************************************************/
TFuchsbichler 0:dd55ca105ef3 16
TFuchsbichler 0:dd55ca105ef3 17 #include "mbed.h"
TFuchsbichler 0:dd55ca105ef3 18
TFuchsbichler 0:dd55ca105ef3 19 #include "DmTftHX8353C.h"
TFuchsbichler 0:dd55ca105ef3 20 #include "DmTftS6D0164.h"
TFuchsbichler 0:dd55ca105ef3 21 #include "DmTftIli9325.h"
TFuchsbichler 0:dd55ca105ef3 22 #include "DmTftIli9341.h"
TFuchsbichler 0:dd55ca105ef3 23 #include "DmTftSsd2119.h"
TFuchsbichler 0:dd55ca105ef3 24 #include "DmTftRa8875.h"
TFuchsbichler 0:dd55ca105ef3 25 #include "DmTouch.h"
TFuchsbichler 0:dd55ca105ef3 26 #include "DmTpFt6x06.h"
TFuchsbichler 0:dd55ca105ef3 27
TFuchsbichler 0:dd55ca105ef3 28 /******************************************************************************
TFuchsbichler 0:dd55ca105ef3 29 * Typedefs and defines
TFuchsbichler 0:dd55ca105ef3 30 *****************************************************************************/
TFuchsbichler 0:dd55ca105ef3 31
TFuchsbichler 0:dd55ca105ef3 32 /* Note that there are restrictions on which platforms that can use printf
TFuchsbichler 0:dd55ca105ef3 33 in combinations with the DmTftLibrary. Some platforms (e.g. LPC1549 LPCXpresso)
TFuchsbichler 0:dd55ca105ef3 34 use the same pins for USBRX/USBTX and display control. Printing will
TFuchsbichler 0:dd55ca105ef3 35 cause the display to not work. Read more about this on the display's notebook
TFuchsbichler 0:dd55ca105ef3 36 page. */
TFuchsbichler 0:dd55ca105ef3 37 //#define log(...) printf(__VA_ARGS__)
TFuchsbichler 0:dd55ca105ef3 38 #define log(...)
TFuchsbichler 0:dd55ca105ef3 39
TFuchsbichler 0:dd55ca105ef3 40 #if 1
TFuchsbichler 0:dd55ca105ef3 41 /* Displays without adapter */
TFuchsbichler 0:dd55ca105ef3 42 #define DM_PIN_SPI_MOSI p5
TFuchsbichler 0:dd55ca105ef3 43 #define DM_PIN_SPI_MISO p6
TFuchsbichler 0:dd55ca105ef3 44 #define DM_PIN_SPI_SCLK p7
TFuchsbichler 0:dd55ca105ef3 45 #define DM_PIN_CS_TOUCH p25
TFuchsbichler 0:dd55ca105ef3 46 #define DM_PIN_CS_TFT p21
TFuchsbichler 0:dd55ca105ef3 47 #define DM_PIN_CS_SDCARD p23
TFuchsbichler 0:dd55ca105ef3 48 #define DM_PIN_CS_FLASH p24
TFuchsbichler 0:dd55ca105ef3 49 #else
TFuchsbichler 0:dd55ca105ef3 50 /* Displays with adapter */
TFuchsbichler 0:dd55ca105ef3 51 #define DM_PIN_SPI_MOSI p5
TFuchsbichler 0:dd55ca105ef3 52 #define DM_PIN_SPI_MISO p6
TFuchsbichler 0:dd55ca105ef3 53 #define DM_PIN_SPI_SCLK p7
TFuchsbichler 0:dd55ca105ef3 54 #define DM_PIN_CS_TOUCH p25
TFuchsbichler 0:dd55ca105ef3 55 #define DM_PIN_CS_TFT p21
TFuchsbichler 0:dd55ca105ef3 56 #define DM_PIN_CS_SDCARD p23
TFuchsbichler 0:dd55ca105ef3 57 #endif
TFuchsbichler 0:dd55ca105ef3 58
TFuchsbichler 0:dd55ca105ef3 59 /******************************************************************************
TFuchsbichler 0:dd55ca105ef3 60 * Local variables
TFuchsbichler 0:dd55ca105ef3 61 *****************************************************************************/
TFuchsbichler 0:dd55ca105ef3 62
TFuchsbichler 0:dd55ca105ef3 63 /********* TFT DISPLAY INIT *********/
TFuchsbichler 0:dd55ca105ef3 64 DmTftIli9341 tft(p21, p22, p5, p6, p7); /* DmTftIli9341(PinName cs, PinName dc, PinName mosi, PinName miso, PinName clk) DM_TFT28_105 and DM_TFT28_116*/
TFuchsbichler 0:dd55ca105ef3 65
TFuchsbichler 0:dd55ca105ef3 66 /********* TOUCH PANEL INIT *********/
TFuchsbichler 0:dd55ca105ef3 67
TFuchsbichler 0:dd55ca105ef3 68 DmTouch touch(DmTouch::DM_TFT28_105, p5, p6, p7);
TFuchsbichler 0:dd55ca105ef3 69
TFuchsbichler 0:dd55ca105ef3 70 DigitalInOut csTouch(DM_PIN_CS_TOUCH, PIN_OUTPUT, PullUp, 1);
TFuchsbichler 0:dd55ca105ef3 71 DigitalInOut csDisplay(DM_PIN_CS_TFT, PIN_OUTPUT, PullUp, 1);
TFuchsbichler 0:dd55ca105ef3 72 DigitalInOut csSDCard(DM_PIN_CS_SDCARD, PIN_OUTPUT, PullUp, 1);
TFuchsbichler 0:dd55ca105ef3 73 #ifdef DM_PIN_CS_FLASH
TFuchsbichler 0:dd55ca105ef3 74 DigitalInOut csFlash(DM_PIN_CS_FLASH, PIN_OUTPUT, PullUp, 1);
TFuchsbichler 0:dd55ca105ef3 75 #endif
TFuchsbichler 0:dd55ca105ef3 76
TFuchsbichler 0:dd55ca105ef3 77 /******************************************************************************
TFuchsbichler 0:dd55ca105ef3 78 * Global variables
TFuchsbichler 0:dd55ca105ef3 79 *****************************************************************************/
TFuchsbichler 0:dd55ca105ef3 80
TFuchsbichler 0:dd55ca105ef3 81 /******************************************************************************
TFuchsbichler 0:dd55ca105ef3 82 * Local functions
TFuchsbichler 0:dd55ca105ef3 83 *****************************************************************************/
TFuchsbichler 0:dd55ca105ef3 84
TFuchsbichler 0:dd55ca105ef3 85 Ticker Tick;
TFuchsbichler 0:dd55ca105ef3 86
TFuchsbichler 0:dd55ca105ef3 87 float a;
TFuchsbichler 0:dd55ca105ef3 88 int msek;
TFuchsbichler 0:dd55ca105ef3 89 int sek;
TFuchsbichler 0:dd55ca105ef3 90 int min;
TFuchsbichler 0:dd55ca105ef3 91 int stund;
TFuchsbichler 0:dd55ca105ef3 92 bool mode;
TFuchsbichler 0:dd55ca105ef3 93
TFuchsbichler 0:dd55ca105ef3 94
TFuchsbichler 0:dd55ca105ef3 95 void zaehl()
TFuchsbichler 0:dd55ca105ef3 96 {
TFuchsbichler 0:dd55ca105ef3 97 if(mode==true) {
TFuchsbichler 0:dd55ca105ef3 98 msek++;
TFuchsbichler 0:dd55ca105ef3 99 if(msek==100) {
TFuchsbichler 0:dd55ca105ef3 100 sek++;
TFuchsbichler 0:dd55ca105ef3 101 msek=0;
TFuchsbichler 0:dd55ca105ef3 102
TFuchsbichler 0:dd55ca105ef3 103 }
TFuchsbichler 0:dd55ca105ef3 104
TFuchsbichler 0:dd55ca105ef3 105 if(sek==60) {
TFuchsbichler 0:dd55ca105ef3 106 min++;
TFuchsbichler 0:dd55ca105ef3 107 sek=0;
TFuchsbichler 0:dd55ca105ef3 108
TFuchsbichler 0:dd55ca105ef3 109 }
TFuchsbichler 0:dd55ca105ef3 110
TFuchsbichler 0:dd55ca105ef3 111 if(min==60) {
TFuchsbichler 0:dd55ca105ef3 112 stund++;
TFuchsbichler 0:dd55ca105ef3 113 min=0;
TFuchsbichler 0:dd55ca105ef3 114 }
TFuchsbichler 0:dd55ca105ef3 115 if(stund==24) {
TFuchsbichler 0:dd55ca105ef3 116 msek=0;
TFuchsbichler 0:dd55ca105ef3 117 sek=0;
TFuchsbichler 0:dd55ca105ef3 118 min=0;
TFuchsbichler 0:dd55ca105ef3 119 stund=0;
TFuchsbichler 0:dd55ca105ef3 120 }
TFuchsbichler 0:dd55ca105ef3 121
TFuchsbichler 0:dd55ca105ef3 122 }
TFuchsbichler 0:dd55ca105ef3 123
TFuchsbichler 0:dd55ca105ef3 124 }
TFuchsbichler 0:dd55ca105ef3 125
TFuchsbichler 0:dd55ca105ef3 126 void reset()
TFuchsbichler 0:dd55ca105ef3 127 {
TFuchsbichler 0:dd55ca105ef3 128 msek=0;
TFuchsbichler 0:dd55ca105ef3 129 sek=0;
TFuchsbichler 0:dd55ca105ef3 130 min=0;
TFuchsbichler 0:dd55ca105ef3 131 stund=0;
TFuchsbichler 0:dd55ca105ef3 132 }
TFuchsbichler 0:dd55ca105ef3 133
TFuchsbichler 0:dd55ca105ef3 134 /******************************************************************************
TFuchsbichler 0:dd55ca105ef3 135 * Main
TFuchsbichler 0:dd55ca105ef3 136 *****************************************************************************/
TFuchsbichler 0:dd55ca105ef3 137
TFuchsbichler 0:dd55ca105ef3 138 int main()
TFuchsbichler 0:dd55ca105ef3 139 {
TFuchsbichler 0:dd55ca105ef3 140 log("init tft \r\n");
TFuchsbichler 0:dd55ca105ef3 141 mode=false;
TFuchsbichler 0:dd55ca105ef3 142 tft.init();
TFuchsbichler 0:dd55ca105ef3 143 Tick.attach(&zaehl, 0.01);
TFuchsbichler 0:dd55ca105ef3 144
TFuchsbichler 0:dd55ca105ef3 145 uint16_t x = 0;
TFuchsbichler 0:dd55ca105ef3 146 uint16_t y = 0;
TFuchsbichler 0:dd55ca105ef3 147 uint16_t w = tft.width();
TFuchsbichler 0:dd55ca105ef3 148 uint16_t h = tft.height();
TFuchsbichler 0:dd55ca105ef3 149
TFuchsbichler 0:dd55ca105ef3 150 bool down=false;
TFuchsbichler 0:dd55ca105ef3 151 //Rectangles
TFuchsbichler 0:dd55ca105ef3 152 tft.drawRectangle(25, 285, 74, 310,WHITE);
TFuchsbichler 0:dd55ca105ef3 153 tft.drawRectangle(95, 285, 144, 310,WHITE);
TFuchsbichler 0:dd55ca105ef3 154 tft.drawRectangle(165, 285,214, 310,WHITE);
TFuchsbichler 0:dd55ca105ef3 155 tft.fillRectangle(26, 286, 73, 309, GREEN);
TFuchsbichler 0:dd55ca105ef3 156 tft.fillRectangle(96, 286, 143, 309, RED);
TFuchsbichler 0:dd55ca105ef3 157 //Text
TFuchsbichler 0:dd55ca105ef3 158 tft.drawString(84, 30, "STOPWATCH");
TFuchsbichler 0:dd55ca105ef3 159 tft.drawString(30, 290, "START");
TFuchsbichler 0:dd55ca105ef3 160 tft.drawString(104, 290, "STOP");
TFuchsbichler 0:dd55ca105ef3 161 tft.drawString(170, 290, "RESET");
TFuchsbichler 0:dd55ca105ef3 162
TFuchsbichler 0:dd55ca105ef3 163
TFuchsbichler 0:dd55ca105ef3 164 touch.init();
TFuchsbichler 0:dd55ca105ef3 165 while (1) {
TFuchsbichler 0:dd55ca105ef3 166 touch.readTouchData(x, y, down);
TFuchsbichler 0:dd55ca105ef3 167 if(down==true&&x>=25&&x<=74&&y>=285&&y<=310)
TFuchsbichler 0:dd55ca105ef3 168 mode=true;
TFuchsbichler 0:dd55ca105ef3 169
TFuchsbichler 0:dd55ca105ef3 170 if(down==true&&x>=95&&x<=144&&y>=285&&y<=310)
TFuchsbichler 0:dd55ca105ef3 171 mode=false;
TFuchsbichler 0:dd55ca105ef3 172
TFuchsbichler 0:dd55ca105ef3 173 if(down==true&&x>=165&&x<=214&&y>=285&&y<=310)
TFuchsbichler 0:dd55ca105ef3 174 reset();
TFuchsbichler 0:dd55ca105ef3 175
TFuchsbichler 0:dd55ca105ef3 176 tft.drawNumber(88,70,stund,2,1);
TFuchsbichler 0:dd55ca105ef3 177 tft.drawString(104, 70, ":");
TFuchsbichler 0:dd55ca105ef3 178 tft.drawNumber(112,70,min,2,1);
TFuchsbichler 0:dd55ca105ef3 179 tft.drawString(128, 70, ":");
TFuchsbichler 0:dd55ca105ef3 180 tft.drawNumber(136,70,sek,2,1);
TFuchsbichler 0:dd55ca105ef3 181 tft.drawNumber(136,86,msek,2,1);
TFuchsbichler 0:dd55ca105ef3 182
TFuchsbichler 0:dd55ca105ef3 183 down=false;
TFuchsbichler 0:dd55ca105ef3 184 }
TFuchsbichler 0:dd55ca105ef3 185
TFuchsbichler 0:dd55ca105ef3 186 }