Both displays functioning independently, we will use this program to bring them both into the same code.

Dependencies:   SPI_TFT_ILI9341 TFT_fonts TextLCD mbed

Committer:
JHutchinson
Date:
Thu May 25 11:14:53 2017 +0000
Revision:
5:9246294b9f70
Parent:
4:970713d48893
*Final Testing Code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JHutchinson 0:51158f3940e0 1
JHutchinson 0:51158f3940e0 2 #include "mbed.h"
JHutchinson 0:51158f3940e0 3 #include "TextLCD.h"
JHutchinson 0:51158f3940e0 4 #include "stdio.h"
JHutchinson 0:51158f3940e0 5 #include "SPI_TFT_ILI9341.h"
JHutchinson 0:51158f3940e0 6 #include "string"
JHutchinson 2:16a5516577af 7 #include "Arial28x28.h"
JHutchinson 0:51158f3940e0 8 #include "Arial24x23.h"
JHutchinson 2:16a5516577af 9 #include "Arial12x12.h"
JHutchinson 2:16a5516577af 10
JHutchinson 0:51158f3940e0 11
JHutchinson 0:51158f3940e0 12 // Host PC Communication channels
JHutchinson 0:51158f3940e0 13 Serial pc(USBTX, USBRX); // tx, rx
JHutchinson 0:51158f3940e0 14
JHutchinson 0:51158f3940e0 15 // LCD instantiation
JHutchinson 4:970713d48893 16 TextLCD lcd(PTC7, PTC0, PTD4, PTA12, PTC5, PTC6); // 4bit bus: rs, e, d4-d7
JHutchinson 0:51158f3940e0 17
JHutchinson 0:51158f3940e0 18 // the display has a backlight switch on board
JHutchinson 0:51158f3940e0 19 DigitalOut LCD_LED(PTA13);
JHutchinson 0:51158f3940e0 20 DigitalOut pwr(PTD7);
JHutchinson 0:51158f3940e0 21
JHutchinson 0:51158f3940e0 22 // the TFT is connected to SPI pin 5-7
JHutchinson 0:51158f3940e0 23 //SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc for lpc1768
JHutchinson 0:51158f3940e0 24 SPI_TFT_ILI9341 TFT(PTD2, PTD3, PTD1, PTD5, PTD0, PTA13,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z
JHutchinson 0:51158f3940e0 25
JHutchinson 2:16a5516577af 26 //void updateDisplay(int time, int date, int temp) {
JHutchinson 0:51158f3940e0 27
JHutchinson 3:d93153494516 28 int main() { // Main program
JHutchinson 0:51158f3940e0 29
JHutchinson 0:51158f3940e0 30 int time = 1234;
JHutchinson 5:9246294b9f70 31 int date = 220517;
JHutchinson 0:51158f3940e0 32 int temp = 27;
JHutchinson 2:16a5516577af 33 int weather = 2; // 0 - Rain, 1 - Cloud, 2 - Sun
JHutchinson 0:51158f3940e0 34
JHutchinson 0:51158f3940e0 35 // Adjust format of time to reflect hours and minutes
JHutchinson 0:51158f3940e0 36 int hours = time/100;
JHutchinson 0:51158f3940e0 37 int minutes = time - hours*100;
JHutchinson 0:51158f3940e0 38
JHutchinson 0:51158f3940e0 39 // Adjust format of date to reflect days and minutes
JHutchinson 0:51158f3940e0 40 int day = date/10000;
JHutchinson 0:51158f3940e0 41 int month = (date - day*10000)/100;
JHutchinson 0:51158f3940e0 42 int year = date - month*100 - day*10000;
JHutchinson 0:51158f3940e0 43
JHutchinson 0:51158f3940e0 44 // Print correctly spaced values on the display
JHutchinson 0:51158f3940e0 45
JHutchinson 0:51158f3940e0 46 lcd.printf("Time %d:%d", hours, minutes);
JHutchinson 0:51158f3940e0 47
JHutchinson 0:51158f3940e0 48 // Locate cursor to start of second line
JHutchinson 0:51158f3940e0 49
JHutchinson 0:51158f3940e0 50 lcd.setAddress(0, 1);
JHutchinson 0:51158f3940e0 51
JHutchinson 0:51158f3940e0 52 lcd.printf("Date %d/%d/%d", day, month, year);
JHutchinson 0:51158f3940e0 53
JHutchinson 2:16a5516577af 54 // Control for the touch screen display
JHutchinson 2:16a5516577af 55
JHutchinson 3:d93153494516 56 pwr=1; // Power On
JHutchinson 0:51158f3940e0 57
JHutchinson 3:d93153494516 58 LCD_LED = 1; // Backlight on
JHutchinson 0:51158f3940e0 59
JHutchinson 3:d93153494516 60 TFT.claim(stdout); // Send stdout to the TFT display
JHutchinson 3:d93153494516 61 TFT.set_orientation(1); // Orients screen to wipe in the horizontal direction
JHutchinson 3:d93153494516 62 TFT.background(Black); // Sets background to black
JHutchinson 3:d93153494516 63 TFT.foreground(White); // Sets text to white
JHutchinson 3:d93153494516 64 TFT.cls(); // Clear the screen
JHutchinson 0:51158f3940e0 65
JHutchinson 3:d93153494516 66 TFT.set_orientation(0); // Ensures orientation vertical 0 degrees
JHutchinson 3:d93153494516 67 TFT.background(Black); // Sets background to black
JHutchinson 3:d93153494516 68 TFT.cls(); // Clear the screen
JHutchinson 2:16a5516577af 69
JHutchinson 3:d93153494516 70 TFT.set_font((unsigned char*) Arial24x23); // Select header font
JHutchinson 3:d93153494516 71 TFT.locate(10, 180); // x,y - locates cursor
JHutchinson 3:d93153494516 72 TFT.printf("Oxford"); // Print Oxford
JHutchinson 0:51158f3940e0 73
JHutchinson 3:d93153494516 74 TFT.set_font((unsigned char*) Arial28x28); // Select header font
JHutchinson 3:d93153494516 75 TFT.locate(10,220); // x,y - locates cursor
JHutchinson 3:d93153494516 76 TFT.printf("%dC", temp); // Print temperature data
JHutchinson 0:51158f3940e0 77
JHutchinson 2:16a5516577af 78 // Print weather dependant images on the touch screen
JHutchinson 2:16a5516577af 79
JHutchinson 2:16a5516577af 80 switch(weather) { // Decides which weather state to print based on the web update
JHutchinson 2:16a5516577af 81
JHutchinson 2:16a5516577af 82 case 0: // Rain
JHutchinson 2:16a5516577af 83
JHutchinson 2:16a5516577af 84 TFT.fillcircle(115,78,20,DarkGrey); // An image of the rain, stored on the board and loaded if weather = 0
JHutchinson 2:16a5516577af 85 TFT.fillcircle(130,60,15,DarkGrey);
JHutchinson 2:16a5516577af 86 TFT.fillcircle(160,55,30,DarkGrey);
JHutchinson 2:16a5516577af 87 TFT.fillcircle(190,60,15,DarkGrey);
JHutchinson 2:16a5516577af 88 TFT.fillcircle(205,75,20,DarkGrey);
JHutchinson 2:16a5516577af 89 TFT.fillcircle(158,75,22,DarkGrey);
JHutchinson 2:16a5516577af 90 TFT.fillcircle(130,75,20,DarkGrey);
JHutchinson 2:16a5516577af 91 TFT.fillcircle(185,80,15,DarkGrey);
JHutchinson 2:16a5516577af 92
JHutchinson 2:16a5516577af 93 TFT.line(110,100,110,130,Blue);
JHutchinson 2:16a5516577af 94 TFT.line(134,102,134,136,Blue);
JHutchinson 2:16a5516577af 95 TFT.line(158,101,158,139,Blue);
JHutchinson 2:16a5516577af 96 TFT.line(182,102,182,136,Blue);
JHutchinson 2:16a5516577af 97 TFT.line(206,100,206,130,Blue);
JHutchinson 2:16a5516577af 98
JHutchinson 2:16a5516577af 99 break;
JHutchinson 2:16a5516577af 100
JHutchinson 2:16a5516577af 101 case 1: // Cloud
JHutchinson 2:16a5516577af 102
JHutchinson 2:16a5516577af 103 TFT.fillcircle(115,78,20,White); // An image of a cloud, stored on the board and loaded if weather = 1
JHutchinson 2:16a5516577af 104 TFT.fillcircle(130,60,15,White);
JHutchinson 2:16a5516577af 105 TFT.fillcircle(160,55,30,White);
JHutchinson 2:16a5516577af 106 TFT.fillcircle(190,60,15,White);
JHutchinson 2:16a5516577af 107 TFT.fillcircle(205,75,20,White);
JHutchinson 2:16a5516577af 108 TFT.fillcircle(158,75,22,White);
JHutchinson 2:16a5516577af 109 TFT.fillcircle(130,75,20,White);
JHutchinson 2:16a5516577af 110 TFT.fillcircle(185,80,15,White);
JHutchinson 2:16a5516577af 111
JHutchinson 2:16a5516577af 112 break;
JHutchinson 2:16a5516577af 113
JHutchinson 2:16a5516577af 114 case 2: // Sun
JHutchinson 2:16a5516577af 115
JHutchinson 2:16a5516577af 116 TFT.fillcircle(170,80,40,Yellow); // An image of the sun, stored on the board and loaded if weather = 2
JHutchinson 2:16a5516577af 117
JHutchinson 2:16a5516577af 118 break;
JHutchinson 2:16a5516577af 119
JHutchinson 2:16a5516577af 120 }
JHutchinson 2:16a5516577af 121
JHutchinson 2:16a5516577af 122 }