Works

Dependencies:   BMP180 BNO055_fusion Fonts GPSISR HTU21D SDFileSystem UniGraphic mbed uGUI

Fork of Bicycl_Computer_NUCLEO-F411RE by Darren Ulrich

Committer:
trevieze
Date:
Mon Feb 20 19:10:30 2017 +0000
Revision:
10:a3cb458d7b1c
Parent:
9:855884782f67
Child:
11:869a102dd31c
GPS serial interrupt service routine is working with nmea library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:cd5e3d371b54 1 /* mbed main.cpp to test adafruit 2.8" TFT LCD shiled w Touchscreen
Rhyme 0:cd5e3d371b54 2 * Copyright (c) 2014, 2015 Motoo Tanaka @ Design Methodology Lab
Rhyme 0:cd5e3d371b54 3 *
Rhyme 0:cd5e3d371b54 4 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Rhyme 0:cd5e3d371b54 5 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Rhyme 0:cd5e3d371b54 6 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Rhyme 0:cd5e3d371b54 7 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Rhyme 0:cd5e3d371b54 8 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Rhyme 0:cd5e3d371b54 9 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Rhyme 0:cd5e3d371b54 10 * THE SOFTWARE.
Rhyme 0:cd5e3d371b54 11 */
Rhyme 0:cd5e3d371b54 12
Rhyme 0:cd5e3d371b54 13 /*
Rhyme 0:cd5e3d371b54 14 * Note: This program is derived from the SeeeStudioTFTv2 program.
Rhyme 0:cd5e3d371b54 15 * Although both program share same ILI9341 TFT driver,
Rhyme 0:cd5e3d371b54 16 * the touch sensor was not same with the Display I purchased from Akizuki.
Rhyme 0:cd5e3d371b54 17 * http://akizukidenshi.com/catalog/g/gM-07747/
Rhyme 0:cd5e3d371b54 18 * The touch sensor on the display is STMPE610,
Rhyme 0:cd5e3d371b54 19 * so I hacked the minimum spi driver for it (polling mode only).
Rhyme 0:cd5e3d371b54 20 */
Rhyme 0:cd5e3d371b54 21
Rhyme 0:cd5e3d371b54 22 #include "mbed.h"
Rhyme 0:cd5e3d371b54 23 #include <math.h>
Rhyme 0:cd5e3d371b54 24 #include "ILI9341.h"
trevieze 2:c5085faf2aa5 25 #include "SeeedStudioTFTv2.h"
trevieze 6:6eb4b9322931 26 #include "BNO055.h"
trevieze 6:6eb4b9322931 27 #include "HTU21D.h"
trevieze 6:6eb4b9322931 28 #include "BMP180.h"
trevieze 8:8aa9cdab4a07 29 #include "SDFileSystem.h"
trevieze 8:8aa9cdab4a07 30 #include "GPSISR.h"
trevieze 9:855884782f67 31
trevieze 6:6eb4b9322931 32
Rhyme 0:cd5e3d371b54 33 #include "Arial12x12.h"
Rhyme 0:cd5e3d371b54 34 #include "Arial24x23.h"
Rhyme 0:cd5e3d371b54 35 #include "Arial28x28.h"
Rhyme 0:cd5e3d371b54 36 #include "Arial43x48_numb.h"
Rhyme 0:cd5e3d371b54 37
trevieze 8:8aa9cdab4a07 38 //#define PIN_CS_TSC PA_9
trevieze 8:8aa9cdab4a07 39 //#define PIN_TSC_INTR PA_8
Rhyme 0:cd5e3d371b54 40 #define PIN_RESET_TFT PC_13 /* place holder */
trevieze 8:8aa9cdab4a07 41 //ILI9341 SPI PINS
trevieze 1:e265e7245ab8 42 #define PIN_XP A3
trevieze 1:e265e7245ab8 43 #define PIN_XM A1
trevieze 1:e265e7245ab8 44 #define PIN_YP A2
trevieze 1:e265e7245ab8 45 #define PIN_YM A0
trevieze 8:8aa9cdab4a07 46 #define PIN_MOSI_SPI1 D11 //SPI 1 MOSI
trevieze 8:8aa9cdab4a07 47 #define PIN_MISO_SPI1 D12 //SPI 1 MISO
trevieze 8:8aa9cdab4a07 48 #define PIN_SCLK_SPI1 D13 //SPI 1 SLCK
trevieze 8:8aa9cdab4a07 49 #define PIN_CS_SPI1 D5 // SPI CS D10 Was D5
trevieze 1:e265e7245ab8 50 #define PIN_DC_TFT D6
trevieze 1:e265e7245ab8 51 #define PIN_CS_SD D4
trevieze 6:6eb4b9322931 52 #define PIN_RESET D7
trevieze 8:8aa9cdab4a07 53 // SD Card on GPS shield PINS
trevieze 8:8aa9cdab4a07 54 #define PIN_MOSI_SPI3 PB_15 //SPI 1 MOSI
trevieze 8:8aa9cdab4a07 55 #define PIN_MISO_SPI3 PB_14 //SPI 1 MISO
trevieze 8:8aa9cdab4a07 56 #define PIN_SCLK_SPI3 PB_13 //SPI 1 SLCK
trevieze 8:8aa9cdab4a07 57 #define PIN_CS_SPI3 D2 // SPI CS
trevieze 8:8aa9cdab4a07 58 #define PIN_RX_GPS PA_12 //GPS Shield RX pin
trevieze 8:8aa9cdab4a07 59 #define PIN_TX_GPS PA_11 //GPS Shield TX pin
trevieze 8:8aa9cdab4a07 60
trevieze 6:6eb4b9322931 61
trevieze 6:6eb4b9322931 62 BNO055_ID_INF_TypeDef bno055_id_inf;
trevieze 6:6eb4b9322931 63 BNO055_EULER_TypeDef euler_angles;
trevieze 6:6eb4b9322931 64 BNO055_QUATERNION_TypeDef quaternion;
trevieze 6:6eb4b9322931 65 BNO055_LIN_ACC_TypeDef linear_acc;
trevieze 6:6eb4b9322931 66 BNO055_GRAVITY_TypeDef gravity;
trevieze 6:6eb4b9322931 67 BNO055_TEMPERATURE_TypeDef chip_temp;
trevieze 1:e265e7245ab8 68
Rhyme 0:cd5e3d371b54 69 #define DEVICE_NAME "F411RE"
Rhyme 0:cd5e3d371b54 70
Rhyme 0:cd5e3d371b54 71 #ifndef TARGET_NECLEO_F411RE
Rhyme 0:cd5e3d371b54 72 #define TARGET_NECLEO_F411RE
Rhyme 0:cd5e3d371b54 73 #endif
Rhyme 0:cd5e3d371b54 74
trevieze 7:b78ff34209e5 75 //DigitalOut backlight(PB_3) ;
trevieze 6:6eb4b9322931 76 // DigitalOut tsc_cs(PA_9, 1) ;
trevieze 6:6eb4b9322931 77 // DigitalOut tft_cs(PB_6, 1) ;
Rhyme 0:cd5e3d371b54 78
trevieze 8:8aa9cdab4a07 79 Serial pc(USBTX, USBRX);
trevieze 8:8aa9cdab4a07 80
trevieze 6:6eb4b9322931 81 // Display
Rhyme 0:cd5e3d371b54 82 ILI9341 TFT(SPI_8, 10000000,
trevieze 8:8aa9cdab4a07 83 PIN_MOSI_SPI1, PIN_MISO_SPI1, PIN_SCLK_SPI1,
trevieze 8:8aa9cdab4a07 84 PIN_CS_SPI1, PIN_RESET_TFT, PIN_DC_TFT, "Adafruit2.8") ;
trevieze 6:6eb4b9322931 85
trevieze 6:6eb4b9322931 86 // TouchScreen
trevieze 2:c5085faf2aa5 87 TouchScreen TSC(PIN_XP, PIN_XM, PIN_YP, PIN_YM);
Rhyme 0:cd5e3d371b54 88
trevieze 6:6eb4b9322931 89 // 3 Axis IMU
trevieze 7:b78ff34209e5 90 BNO055 imu(I2C_SDA, I2C_SCL, PIN_RESET); // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
trevieze 6:6eb4b9322931 91
trevieze 6:6eb4b9322931 92 // Humidity and Temperature
trevieze 6:6eb4b9322931 93 HTU21D temphumid(I2C_SDA, I2C_SCL);
trevieze 6:6eb4b9322931 94
trevieze 6:6eb4b9322931 95 // Pressure
trevieze 7:b78ff34209e5 96 BMP180 bmp180(I2C_SDA, I2C_SCL);
trevieze 6:6eb4b9322931 97
trevieze 8:8aa9cdab4a07 98 // SD Card Reader On Adafruit GPS Shield
trevieze 8:8aa9cdab4a07 99 SDFileSystem sd(PIN_MOSI_SPI3, PIN_MISO_SPI3, PIN_SCLK_SPI3, PIN_CS_SPI3, "sd"); // the pinout on the mbed Cool Components workshop board
trevieze 8:8aa9cdab4a07 100
trevieze 9:855884782f67 101 // Set up serial interrupe service handler for gps characters.
trevieze 8:8aa9cdab4a07 102 GPS MyGPS(PIN_TX_GPS,PIN_RX_GPS, 9600);
trevieze 9:855884782f67 103
trevieze 8:8aa9cdab4a07 104
Rhyme 0:cd5e3d371b54 105 int page = 0 ;
Rhyme 0:cd5e3d371b54 106 int numPage = 2 ;
Rhyme 0:cd5e3d371b54 107
Rhyme 0:cd5e3d371b54 108 void initTFT(void)
Rhyme 0:cd5e3d371b54 109 {
Rhyme 0:cd5e3d371b54 110 //Configure the display driver
Rhyme 0:cd5e3d371b54 111 TFT.BusEnable(true) ;
Rhyme 0:cd5e3d371b54 112 TFT.FastWindow(true) ;
Rhyme 0:cd5e3d371b54 113 TFT.background(Black);
Rhyme 0:cd5e3d371b54 114 TFT.foreground(White);
Rhyme 0:cd5e3d371b54 115 wait(0.01) ;
Rhyme 0:cd5e3d371b54 116 TFT.cls();
Rhyme 0:cd5e3d371b54 117 TFT.BusEnable(false) ;
Rhyme 0:cd5e3d371b54 118 }
Rhyme 0:cd5e3d371b54 119
Rhyme 0:cd5e3d371b54 120 void screen1(void) // Welcome Screen
Rhyme 0:cd5e3d371b54 121 {
Rhyme 0:cd5e3d371b54 122 TFT.BusEnable(true) ;
trevieze 7:b78ff34209e5 123 //backlight = 0 ;
Rhyme 0:cd5e3d371b54 124 TFT.background(White) ;
Rhyme 0:cd5e3d371b54 125 wait(0.1) ;
Rhyme 0:cd5e3d371b54 126 TFT.cls() ;
Rhyme 0:cd5e3d371b54 127 wait(0.1) ;
Rhyme 0:cd5e3d371b54 128
Rhyme 0:cd5e3d371b54 129 TFT.set_font((unsigned char*) Arial24x23);
Rhyme 0:cd5e3d371b54 130 TFT.foreground(Red) ;
Rhyme 0:cd5e3d371b54 131 TFT.locate(80, 40) ;
trevieze 8:8aa9cdab4a07 132 TFT.printf("MBED") ;
Rhyme 0:cd5e3d371b54 133 TFT.foreground(Blue);
Rhyme 0:cd5e3d371b54 134 TFT.locate(60, 80) ;
Rhyme 0:cd5e3d371b54 135 TFT.printf("2.8\"TFT") ;
Rhyme 0:cd5e3d371b54 136 TFT.locate(40, 120) ;
Rhyme 0:cd5e3d371b54 137 TFT.printf("with touch") ;
Rhyme 0:cd5e3d371b54 138 TFT.foreground(Black);
Rhyme 0:cd5e3d371b54 139 TFT.set_font((unsigned char*) Arial12x12);
Rhyme 0:cd5e3d371b54 140 TFT.foreground(Blue) ;
Rhyme 0:cd5e3d371b54 141 TFT.locate(30, 180) ;
Rhyme 0:cd5e3d371b54 142 TFT.printf("This program is running on") ;
Rhyme 0:cd5e3d371b54 143 TFT.locate(30, 200) ;
Rhyme 0:cd5e3d371b54 144 TFT.printf("ST Nucleo F411RE with") ;
Rhyme 0:cd5e3d371b54 145 TFT.locate(30, 220) ;
Rhyme 0:cd5e3d371b54 146 TFT.printf("a program developed in mbed") ;
Rhyme 0:cd5e3d371b54 147 TFT.foreground(Green) ;
Rhyme 0:cd5e3d371b54 148 TFT.locate(30, 260) ;
Rhyme 0:cd5e3d371b54 149 TFT.printf("To advance demo page, touch") ;
Rhyme 0:cd5e3d371b54 150 TFT.locate(30, 280) ;
Rhyme 0:cd5e3d371b54 151 TFT.printf("and hold right side of screen") ;
Rhyme 0:cd5e3d371b54 152 TFT.locate(30, 300) ;
Rhyme 0:cd5e3d371b54 153 TFT.printf("until the next screen starts") ;
Rhyme 0:cd5e3d371b54 154 TFT.BusEnable(false) ;
trevieze 7:b78ff34209e5 155 //backlight = 1 ;
Rhyme 0:cd5e3d371b54 156 }
Rhyme 0:cd5e3d371b54 157
Rhyme 0:cd5e3d371b54 158 void screen2(void) // Graphics
Rhyme 0:cd5e3d371b54 159 {
Rhyme 0:cd5e3d371b54 160 //Draw some graphics
Rhyme 0:cd5e3d371b54 161 int i, x[2], y[2] ;
trevieze 7:b78ff34209e5 162 //backlight = 0 ;
Rhyme 0:cd5e3d371b54 163 TFT.BusEnable(true) ;
Rhyme 0:cd5e3d371b54 164 TFT.background(Black);
Rhyme 0:cd5e3d371b54 165 wait(0.1) ;
Rhyme 0:cd5e3d371b54 166 TFT.foreground(White);
Rhyme 0:cd5e3d371b54 167 wait(0.1) ;
Rhyme 0:cd5e3d371b54 168 TFT.cls() ;
Rhyme 0:cd5e3d371b54 169 wait(0.1) ;
Rhyme 0:cd5e3d371b54 170 TFT.set_font((unsigned char*) Arial12x12);
Rhyme 0:cd5e3d371b54 171 TFT.locate(90,0);
Rhyme 0:cd5e3d371b54 172 TFT.printf("Graphics");
Rhyme 0:cd5e3d371b54 173
Rhyme 0:cd5e3d371b54 174 x[0] = 25 ; x[1] = 224 ;
Rhyme 0:cd5e3d371b54 175 y[0] = 20 ; y[1] = 219 ;
Rhyme 0:cd5e3d371b54 176 for (i = 20 ; i < 220 ; i += 10) {
Rhyme 0:cd5e3d371b54 177 TFT.line(i+5, y[0], i+5, y[1], Blue) ;
Rhyme 0:cd5e3d371b54 178 TFT.line(x[0], i, x[1], i, Blue) ;
Rhyme 0:cd5e3d371b54 179 }
Rhyme 0:cd5e3d371b54 180 TFT.line(125, y[0], 125, y[1], Green) ;
Rhyme 0:cd5e3d371b54 181 TFT.line(x[0], 120, x[1], 120, Green) ;
Rhyme 0:cd5e3d371b54 182 TFT.rect(x[0],y[0], x[1], y[1], Green) ;
Rhyme 0:cd5e3d371b54 183 TFT.locate(10, 20) ;
Rhyme 0:cd5e3d371b54 184 TFT.printf("V") ;
Rhyme 0:cd5e3d371b54 185 TFT.locate(0, 115) ;
Rhyme 0:cd5e3d371b54 186 TFT.printf("0.0") ;
Rhyme 0:cd5e3d371b54 187 TFT.locate(115, 225) ;
Rhyme 0:cd5e3d371b54 188 TFT.printf("0.0") ;
Rhyme 0:cd5e3d371b54 189 TFT.locate(215, 225) ;
Rhyme 0:cd5e3d371b54 190 TFT.printf("T") ;
Rhyme 0:cd5e3d371b54 191
Rhyme 0:cd5e3d371b54 192 double s;
Rhyme 0:cd5e3d371b54 193 for (int i = x[0]; i < 225; i++) {
Rhyme 0:cd5e3d371b54 194 s = 40 * sin((long double)i / 20);
Rhyme 0:cd5e3d371b54 195 TFT.pixel(i, 120 + (int)s, White);
Rhyme 0:cd5e3d371b54 196 }
Rhyme 0:cd5e3d371b54 197
Rhyme 0:cd5e3d371b54 198 TFT.fillrect(10, 240, 229, 309, White) ;
Rhyme 0:cd5e3d371b54 199 TFT.rect(10, 240, 229, 309, Red) ;
Rhyme 0:cd5e3d371b54 200 TFT.rect(11, 241, 228, 308, Red) ;
Rhyme 0:cd5e3d371b54 201
Rhyme 0:cd5e3d371b54 202 TFT.background(White) ;
Rhyme 0:cd5e3d371b54 203 TFT.foreground(Black) ;
Rhyme 0:cd5e3d371b54 204 TFT.locate(20, 250) ;
Rhyme 0:cd5e3d371b54 205 TFT.printf("With QVGA resolution") ;
Rhyme 0:cd5e3d371b54 206 TFT.locate(20, 270) ;
Rhyme 0:cd5e3d371b54 207 TFT.printf("simple graphics drawing") ;
Rhyme 0:cd5e3d371b54 208 TFT.locate(20, 290) ;
Rhyme 0:cd5e3d371b54 209 TFT.printf("capability is provided") ;
Rhyme 0:cd5e3d371b54 210 TFT.BusEnable(false) ;
trevieze 7:b78ff34209e5 211 //backlight = 1 ;
Rhyme 0:cd5e3d371b54 212 }
Rhyme 0:cd5e3d371b54 213
Rhyme 0:cd5e3d371b54 214 double clip(double src)
Rhyme 0:cd5e3d371b54 215 {
Rhyme 0:cd5e3d371b54 216 double value ;
Rhyme 0:cd5e3d371b54 217 value = src ;
Rhyme 0:cd5e3d371b54 218 if (value < 0.0) {
Rhyme 0:cd5e3d371b54 219 value = 0.0 ;
Rhyme 0:cd5e3d371b54 220 } else if (value > 2.0) {
Rhyme 0:cd5e3d371b54 221 value = 2.0 ;
Rhyme 0:cd5e3d371b54 222 }
Rhyme 0:cd5e3d371b54 223 return( value ) ;
Rhyme 0:cd5e3d371b54 224 }
Rhyme 0:cd5e3d371b54 225
Rhyme 0:cd5e3d371b54 226 void incPage(void)
Rhyme 0:cd5e3d371b54 227 {
Rhyme 0:cd5e3d371b54 228 page++ ;
Rhyme 0:cd5e3d371b54 229 if (page >= numPage) {
Rhyme 0:cd5e3d371b54 230 page = 0 ;
Rhyme 0:cd5e3d371b54 231 }
Rhyme 0:cd5e3d371b54 232 }
Rhyme 0:cd5e3d371b54 233
Rhyme 0:cd5e3d371b54 234 void decPage(void)
Rhyme 0:cd5e3d371b54 235 {
Rhyme 0:cd5e3d371b54 236 page-- ;
Rhyme 0:cd5e3d371b54 237 if (page < 0) {
Rhyme 0:cd5e3d371b54 238 page = numPage - 1 ;
Rhyme 0:cd5e3d371b54 239 }
Rhyme 0:cd5e3d371b54 240 }
Rhyme 0:cd5e3d371b54 241
trevieze 8:8aa9cdab4a07 242
Rhyme 0:cd5e3d371b54 243 int main()
Rhyme 0:cd5e3d371b54 244 {
trevieze 10:a3cb458d7b1c 245 TFT.BusEnable(true) ;
trevieze 10:a3cb458d7b1c 246 TFT.FastWindow(true) ;
trevieze 10:a3cb458d7b1c 247 wait(0.1);
trevieze 10:a3cb458d7b1c 248 TFT.cls();
trevieze 10:a3cb458d7b1c 249 wait(0.1);
trevieze 8:8aa9cdab4a07 250 Timer refresh_Timer; //sets up a timer for use in loop; how often do we print GPS info?
trevieze 10:a3cb458d7b1c 251 const int refresh_Time = 2000; //refresh time in ms
trevieze 8:8aa9cdab4a07 252 refresh_Timer.start(); //starts the clock on the timer
trevieze 8:8aa9cdab4a07 253 //backlight = 0 ;
trevieze 10:a3cb458d7b1c 254 TFT.set_font((unsigned char*) Arial24x23);
trevieze 10:a3cb458d7b1c 255 TFT.fillrect(2, 2, 237, 317, White);
trevieze 10:a3cb458d7b1c 256 TFT.foreground(Blue);
trevieze 10:a3cb458d7b1c 257 TFT.background(White);
trevieze 10:a3cb458d7b1c 258 wait(0.1);
trevieze 10:a3cb458d7b1c 259
trevieze 10:a3cb458d7b1c 260
trevieze 8:8aa9cdab4a07 261 while (1) {
trevieze 8:8aa9cdab4a07 262 //check if we recieved a new message from GPS, if so, attempt to parse it,
trevieze 8:8aa9cdab4a07 263 if (refresh_Timer.read_ms() >= refresh_Time) {
trevieze 8:8aa9cdab4a07 264 refresh_Timer.reset();
trevieze 10:a3cb458d7b1c 265
trevieze 10:a3cb458d7b1c 266 if (MyGPS.dataready()) {
trevieze 10:a3cb458d7b1c 267 MyGPS.read();
trevieze 9:855884782f67 268 pc.printf("NMEA has valid data");
trevieze 10:a3cb458d7b1c 269 pc.printf("Sats : %d \n", MyGPS.buffer.satellites);
trevieze 10:a3cb458d7b1c 270 pc.printf("%d-%d-%d\n", MyGPS.buffer.month, MyGPS.buffer.day, MyGPS.buffer.year);
trevieze 10:a3cb458d7b1c 271 pc.printf("%d:%d:%d\n", MyGPS.buffer.hours, MyGPS.buffer.minutes, MyGPS.buffer.seconds);
trevieze 10:a3cb458d7b1c 272
trevieze 10:a3cb458d7b1c 273
trevieze 10:a3cb458d7b1c 274 TFT.locate(2, 2) ;
trevieze 10:a3cb458d7b1c 275 TFT.printf("%d-%d-%d", MyGPS.buffer.month, MyGPS.buffer.day, MyGPS.buffer.year);
trevieze 10:a3cb458d7b1c 276 TFT.locate(2, 26) ;
trevieze 10:a3cb458d7b1c 277 TFT.printf("%d:%d:%d", MyGPS.buffer.hours, MyGPS.buffer.minutes, MyGPS.buffer.seconds);
trevieze 10:a3cb458d7b1c 278
trevieze 9:855884782f67 279 }
trevieze 9:855884782f67 280 else {
trevieze 9:855884782f67 281 pc.printf("NMEA has no valid data");
trevieze 9:855884782f67 282 }
trevieze 9:855884782f67 283
trevieze 8:8aa9cdab4a07 284 }
trevieze 8:8aa9cdab4a07 285 }
trevieze 7:b78ff34209e5 286
trevieze 6:6eb4b9322931 287 // uint16_t x, y, z ;
Rhyme 0:cd5e3d371b54 288 int prevPage = 99 ;
Rhyme 0:cd5e3d371b54 289 bool waitTouch = false ;
trevieze 2:c5085faf2aa5 290 point p;
Rhyme 0:cd5e3d371b54 291
Rhyme 0:cd5e3d371b54 292 printf("Hello World\n") ;
trevieze 7:b78ff34209e5 293
trevieze 6:6eb4b9322931 294 // screen0() ;
Rhyme 0:cd5e3d371b54 295
Rhyme 0:cd5e3d371b54 296 printf("Program Started!\n\r") ;
Rhyme 0:cd5e3d371b54 297
Rhyme 0:cd5e3d371b54 298 for(;;) {
Rhyme 0:cd5e3d371b54 299 // printf("TFT width = %d, height = %d\n\r", TFT.width(), TFT.height()) ;
trevieze 6:6eb4b9322931 300 // tft_cs = 0 ;
Rhyme 0:cd5e3d371b54 301 switch(page) {
Rhyme 0:cd5e3d371b54 302 case 0:
Rhyme 0:cd5e3d371b54 303 if (prevPage != page) {
Rhyme 0:cd5e3d371b54 304 screen1() ;
Rhyme 0:cd5e3d371b54 305 }
Rhyme 0:cd5e3d371b54 306 waitTouch = true ;
Rhyme 0:cd5e3d371b54 307 break ;
Rhyme 0:cd5e3d371b54 308 case 1:
Rhyme 0:cd5e3d371b54 309 if (prevPage != page) {
Rhyme 0:cd5e3d371b54 310 screen2() ;
Rhyme 0:cd5e3d371b54 311 }
Rhyme 0:cd5e3d371b54 312 waitTouch = true ;
Rhyme 0:cd5e3d371b54 313 break ;
Rhyme 0:cd5e3d371b54 314 default:
Rhyme 0:cd5e3d371b54 315 page = 0 ;
Rhyme 0:cd5e3d371b54 316 break ;
Rhyme 0:cd5e3d371b54 317 }
Rhyme 0:cd5e3d371b54 318 prevPage = page ;
Rhyme 0:cd5e3d371b54 319
trevieze 6:6eb4b9322931 320 // tft_cs = 1 ;
Rhyme 0:cd5e3d371b54 321 do {
trevieze 2:c5085faf2aa5 322 TSC.getTouch(p);
trevieze 7:b78ff34209e5 323 //printf("Touched X %d\n\r", p.x) ;
trevieze 7:b78ff34209e5 324 //printf("Touched Y %d\n\r", p.y) ;
trevieze 7:b78ff34209e5 325 //printf("Touched Z %d\n\r", p.z) ;
trevieze 4:25554dc066a0 326 wait(3) ;
trevieze 2:c5085faf2aa5 327 if (p.z > __PRESURE) {
trevieze 2:c5085faf2aa5 328 if (p.y < 30000) { // left
Rhyme 0:cd5e3d371b54 329 decPage() ;
trevieze 2:c5085faf2aa5 330 } else if (p.y > 90000) { // right
Rhyme 0:cd5e3d371b54 331 incPage() ;
Rhyme 0:cd5e3d371b54 332 }
Rhyme 0:cd5e3d371b54 333 waitTouch = false ;
Rhyme 0:cd5e3d371b54 334 }
trevieze 2:c5085faf2aa5 335 //tsc_cs = 1 ;
trevieze 2:c5085faf2aa5 336 }
trevieze 2:c5085faf2aa5 337 while(waitTouch != false) ;
trevieze 3:6f47fcd415ab 338 //wait(1) ;
Rhyme 0:cd5e3d371b54 339 }
trevieze 10:a3cb458d7b1c 340 }