Wrapped version of the ILI9341 graphics library with some MBED tweaks

Dependencies:   SDFileSystem SPI_TFT_ILI9341 TFT_fonts

Committer:
vtraveller
Date:
Thu Feb 05 12:40:05 2015 +0000
Revision:
0:988d0db2f0b8
Added wrapper

Who changed what in which revision?

UserRevisionLine numberNew 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 }