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
main.cpp@3:d93153494516, 2017-05-24 (annotated)
- Committer:
- JHutchinson
- Date:
- Wed May 24 16:10:36 2017 +0000
- Revision:
- 3:d93153494516
- Parent:
- 2:16a5516577af
- Child:
- 4:970713d48893
Commented.
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:51158f3940e0 | 16 | TextLCD lcd(PTC7, PTC0, PTC3, PTC4, 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 | 0:51158f3940e0 | 31 | int date = 221217; |
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 | } |