Wrapped version of the ILI9341 graphics library with some MBED tweaks
Dependencies: SDFileSystem SPI_TFT_ILI9341 TFT_fonts
tft.cpp@0:988d0db2f0b8, 2015-02-05 (annotated)
- Committer:
- vtraveller
- Date:
- Thu Feb 05 12:40:05 2015 +0000
- Revision:
- 0:988d0db2f0b8
Added wrapper
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vtraveller | 0:988d0db2f0b8 | 1 | #include "mbed.h" |
vtraveller | 0:988d0db2f0b8 | 2 | #include "tft.h" |
vtraveller | 0:988d0db2f0b8 | 3 | |
vtraveller | 0:988d0db2f0b8 | 4 | #include "Arial12x12.h" |
vtraveller | 0:988d0db2f0b8 | 5 | #include "Arial24x23.h" |
vtraveller | 0:988d0db2f0b8 | 6 | #include "Arial28x28.h" |
vtraveller | 0:988d0db2f0b8 | 7 | #include "font_big.h" |
vtraveller | 0:988d0db2f0b8 | 8 | #include "Tahoma22x26.h" |
vtraveller | 0:988d0db2f0b8 | 9 | |
vtraveller | 0:988d0db2f0b8 | 10 | #define PIN_MOSI D11 |
vtraveller | 0:988d0db2f0b8 | 11 | #define PIN_MISO D12 |
vtraveller | 0:988d0db2f0b8 | 12 | #define PIN_SCLK D13 |
vtraveller | 0:988d0db2f0b8 | 13 | #define PIN_DC D4 |
vtraveller | 0:988d0db2f0b8 | 14 | #define PIN_RST D3 |
vtraveller | 0:988d0db2f0b8 | 15 | #define PIN_CS D2 |
vtraveller | 0:988d0db2f0b8 | 16 | |
vtraveller | 0:988d0db2f0b8 | 17 | #define PIN_SD_MOSI PC_12 |
vtraveller | 0:988d0db2f0b8 | 18 | #define PIN_SD_SCLK PC_10 |
vtraveller | 0:988d0db2f0b8 | 19 | #define PIN_SD_MISO PC_11 |
vtraveller | 0:988d0db2f0b8 | 20 | #define PIN_SD_CS PD_2 |
vtraveller | 0:988d0db2f0b8 | 21 | |
vtraveller | 0:988d0db2f0b8 | 22 | extern unsigned char p1[]; // the mbed logo graphic |
vtraveller | 0:988d0db2f0b8 | 23 | |
vtraveller | 0:988d0db2f0b8 | 24 | TFT::TFT() |
vtraveller | 0:988d0db2f0b8 | 25 | : SPI_TFT_ILI9341(PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS, PIN_RST, PIN_DC,"TFT") |
vtraveller | 0:988d0db2f0b8 | 26 | , m_cSD(PIN_SD_MOSI, PIN_SD_MISO, PIN_SD_SCLK, PIN_SD_CS, "sd") |
vtraveller | 0:988d0db2f0b8 | 27 | { |
vtraveller | 0:988d0db2f0b8 | 28 | init(); |
vtraveller | 0:988d0db2f0b8 | 29 | } |
vtraveller | 0:988d0db2f0b8 | 30 | |
vtraveller | 0:988d0db2f0b8 | 31 | void TFT::init() |
vtraveller | 0:988d0db2f0b8 | 32 | { |
vtraveller | 0:988d0db2f0b8 | 33 | set_orientation(3); |
vtraveller | 0:988d0db2f0b8 | 34 | background(Blue); // set background to black |
vtraveller | 0:988d0db2f0b8 | 35 | foreground(White); // set chars to white |
vtraveller | 0:988d0db2f0b8 | 36 | cls(); // clear the screen |
vtraveller | 0:988d0db2f0b8 | 37 | |
vtraveller | 0:988d0db2f0b8 | 38 | set_font((unsigned char*)Tahoma22x26); |
vtraveller | 0:988d0db2f0b8 | 39 | locate(0,0); |
vtraveller | 0:988d0db2f0b8 | 40 | } |
vtraveller | 0:988d0db2f0b8 | 41 | |
vtraveller | 0:988d0db2f0b8 | 42 | void TFT::test() |
vtraveller | 0:988d0db2f0b8 | 43 | { |
vtraveller | 0:988d0db2f0b8 | 44 | //first show the 4 directions |
vtraveller | 0:988d0db2f0b8 | 45 | set_orientation(0); |
vtraveller | 0:988d0db2f0b8 | 46 | background(Black); |
vtraveller | 0:988d0db2f0b8 | 47 | cls(); |
vtraveller | 0:988d0db2f0b8 | 48 | |
vtraveller | 0:988d0db2f0b8 | 49 | set_font((unsigned char*) Arial12x12); |
vtraveller | 0:988d0db2f0b8 | 50 | locate(0,0); |
vtraveller | 0:988d0db2f0b8 | 51 | printf(" Hello Mbed 0"); |
vtraveller | 0:988d0db2f0b8 | 52 | set_orientation(1); |
vtraveller | 0:988d0db2f0b8 | 53 | locate(0,0); |
vtraveller | 0:988d0db2f0b8 | 54 | printf(" Hello Mbed 1"); |
vtraveller | 0:988d0db2f0b8 | 55 | set_orientation(2); |
vtraveller | 0:988d0db2f0b8 | 56 | locate(0,0); |
vtraveller | 0:988d0db2f0b8 | 57 | printf(" Hello Mbed 2"); |
vtraveller | 0:988d0db2f0b8 | 58 | set_orientation(3); |
vtraveller | 0:988d0db2f0b8 | 59 | locate(0,0); |
vtraveller | 0:988d0db2f0b8 | 60 | printf(" Hello Mbed 3"); |
vtraveller | 0:988d0db2f0b8 | 61 | set_orientation(3); |
vtraveller | 0:988d0db2f0b8 | 62 | set_font((unsigned char*) Arial24x23); |
vtraveller | 0:988d0db2f0b8 | 63 | locate(50,100); |
vtraveller | 0:988d0db2f0b8 | 64 | printf("TFT orientation"); |
vtraveller | 0:988d0db2f0b8 | 65 | |
vtraveller | 0:988d0db2f0b8 | 66 | wait(5); // wait two seconds |
vtraveller | 0:988d0db2f0b8 | 67 | |
vtraveller | 0:988d0db2f0b8 | 68 | // draw some graphics |
vtraveller | 0:988d0db2f0b8 | 69 | cls(); |
vtraveller | 0:988d0db2f0b8 | 70 | set_font((unsigned char*) Arial24x23); |
vtraveller | 0:988d0db2f0b8 | 71 | locate(100,100); |
vtraveller | 0:988d0db2f0b8 | 72 | printf("Graphic"); |
vtraveller | 0:988d0db2f0b8 | 73 | |
vtraveller | 0:988d0db2f0b8 | 74 | line(0,0,100,0,Green); |
vtraveller | 0:988d0db2f0b8 | 75 | line(0,0,0,200,Green); |
vtraveller | 0:988d0db2f0b8 | 76 | line(0,0,100,200,Green); |
vtraveller | 0:988d0db2f0b8 | 77 | |
vtraveller | 0:988d0db2f0b8 | 78 | rect(100,50,150,100,Red); |
vtraveller | 0:988d0db2f0b8 | 79 | fillrect(180,25,220,70,Blue); |
vtraveller | 0:988d0db2f0b8 | 80 | |
vtraveller | 0:988d0db2f0b8 | 81 | circle(80,150,33,White); |
vtraveller | 0:988d0db2f0b8 | 82 | fillcircle(160,190,20,Yellow); |
vtraveller | 0:988d0db2f0b8 | 83 | |
vtraveller | 0:988d0db2f0b8 | 84 | double s; |
vtraveller | 0:988d0db2f0b8 | 85 | |
vtraveller | 0:988d0db2f0b8 | 86 | for (int i=0; i<320; i++) { |
vtraveller | 0:988d0db2f0b8 | 87 | s =20 * sin((long double) i / 10 ); |
vtraveller | 0:988d0db2f0b8 | 88 | pixel(i,100 + (int)s ,Red); |
vtraveller | 0:988d0db2f0b8 | 89 | } |
vtraveller | 0:988d0db2f0b8 | 90 | |
vtraveller | 0:988d0db2f0b8 | 91 | |
vtraveller | 0:988d0db2f0b8 | 92 | wait(5); // wait two seconds |
vtraveller | 0:988d0db2f0b8 | 93 | |
vtraveller | 0:988d0db2f0b8 | 94 | // bigger text |
vtraveller | 0:988d0db2f0b8 | 95 | foreground(White); |
vtraveller | 0:988d0db2f0b8 | 96 | background(Blue); |
vtraveller | 0:988d0db2f0b8 | 97 | cls(); |
vtraveller | 0:988d0db2f0b8 | 98 | set_font((unsigned char*) Arial24x23); |
vtraveller | 0:988d0db2f0b8 | 99 | locate(0,0); |
vtraveller | 0:988d0db2f0b8 | 100 | printf("Different Fonts :"); |
vtraveller | 0:988d0db2f0b8 | 101 | |
vtraveller | 0:988d0db2f0b8 | 102 | set_font((unsigned char*) Neu42x35); |
vtraveller | 0:988d0db2f0b8 | 103 | locate(10,30); |
vtraveller | 0:988d0db2f0b8 | 104 | printf("Hello Mbed 1"); |
vtraveller | 0:988d0db2f0b8 | 105 | set_font((unsigned char*) Arial24x23); |
vtraveller | 0:988d0db2f0b8 | 106 | locate(20,80); |
vtraveller | 0:988d0db2f0b8 | 107 | printf("Hello Mbed 2"); |
vtraveller | 0:988d0db2f0b8 | 108 | set_font((unsigned char*) Arial12x12); |
vtraveller | 0:988d0db2f0b8 | 109 | locate(35,120); |
vtraveller | 0:988d0db2f0b8 | 110 | printf("Hello Mbed 3"); |
vtraveller | 0:988d0db2f0b8 | 111 | wait(5); |
vtraveller | 0:988d0db2f0b8 | 112 | |
vtraveller | 0:988d0db2f0b8 | 113 | background(Black); |
vtraveller | 0:988d0db2f0b8 | 114 | cls(); |
vtraveller | 0:988d0db2f0b8 | 115 | locate(10,10); |
vtraveller | 0:988d0db2f0b8 | 116 | printf("Graphic from Flash"); |
vtraveller | 0:988d0db2f0b8 | 117 | |
vtraveller | 0:988d0db2f0b8 | 118 | // mbed logo |
vtraveller | 0:988d0db2f0b8 | 119 | // defined in graphics.c |
vtraveller | 0:988d0db2f0b8 | 120 | //__align(4) |
vtraveller | 0:988d0db2f0b8 | 121 | //unsigned char p1[18920] = { |
vtraveller | 0:988d0db2f0b8 | 122 | //0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, .... |
vtraveller | 0:988d0db2f0b8 | 123 | // |
vtraveller | 0:988d0db2f0b8 | 124 | Bitmap(90,90,172,55,p1); |
vtraveller | 0:988d0db2f0b8 | 125 | |
vtraveller | 0:988d0db2f0b8 | 126 | wait(5); |
vtraveller | 0:988d0db2f0b8 | 127 | cls(); |
vtraveller | 0:988d0db2f0b8 | 128 | |
vtraveller | 0:988d0db2f0b8 | 129 | // to compare the speed of the internal file system and a SD-card |
vtraveller | 0:988d0db2f0b8 | 130 | locate(10,10); |
vtraveller | 0:988d0db2f0b8 | 131 | printf("Graphic from internal File System"); |
vtraveller | 0:988d0db2f0b8 | 132 | locate(10,20); |
vtraveller | 0:988d0db2f0b8 | 133 | printf("open test.bmp"); |
vtraveller | 0:988d0db2f0b8 | 134 | int err = BMP_16(1,50,"/local/test.bmp"); |
vtraveller | 0:988d0db2f0b8 | 135 | if (err != 1) printf(" - Err: %d",err); |
vtraveller | 0:988d0db2f0b8 | 136 | |
vtraveller | 0:988d0db2f0b8 | 137 | locate(10,110); |
vtraveller | 0:988d0db2f0b8 | 138 | printf("Graphic from external SD-card"); |
vtraveller | 0:988d0db2f0b8 | 139 | locate(10,120); |
vtraveller | 0:988d0db2f0b8 | 140 | BMP_16(1,140,"/sd/test.bmp"); |
vtraveller | 0:988d0db2f0b8 | 141 | if (err != 1) printf(" - Err: %d",err); |
vtraveller | 0:988d0db2f0b8 | 142 | |
vtraveller | 0:988d0db2f0b8 | 143 | wait(5); |
vtraveller | 0:988d0db2f0b8 | 144 | init(); |
vtraveller | 0:988d0db2f0b8 | 145 | } |