![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
LPC1768 Mini-DK board with 2.8" SPI TFT and SPI touch
Dependencies: Mini-DK SDFileSystem mbed
Fork of LPC1768_Mini-DK by
Diff: main.cpp
- Revision:
- 10:d07f76421408
- Parent:
- 9:3e117b89c705
- Child:
- 13:a10300cac491
--- a/main.cpp Fri Jan 04 14:08:03 2013 +0000 +++ b/main.cpp Tue Jan 08 16:12:13 2013 +0000 @@ -1,7 +1,29 @@ +/* +This file contains 3 examples: + +ONE : Original example with paint demo. +TWO : Example for displaying a bitmap read from SD card. + Download the house.bmp bitmap file from http://mbed.org/media/uploads/frankvnk/house.bmp + Copy this file to the root of an SD card, insert it into the Mini-DK. +THREE : Example for copying a bitmap from SD to flash memory, use it as background and + write text without disrupting the background image. + Download the house.bmp bitmap file from http://mbed.org/media/uploads/frankvnk/house.bmp + Copy this file to the root of an SD card, insert it into the Mini-DK. + +IMPORTANT: +Enable #define USE_FLASH_BUFFER in SPI_TFT.h to allow copy to flash. +If copy to flash option is not needed - disable it. + +UNCOMMENT THE DESIRED CODE TO TEST. + +*/ + +// ========================================================================================================= +// ================================================== ONE ================================================== +// ========================================================================================================= #include "stdio.h" #include "mbed.h" #include "Mini_DK.h" -//#include "string" extern unsigned char p1[]; // the mbed logo #define RGB565CONVERT(red, green, blue) (uint16_t)( (( red >> 3 ) << 11 ) | (( green >> 2 ) << 5 ) | ( blue >> 3 )) @@ -27,20 +49,20 @@ TFT.set_font((unsigned char*) Arial12x12); TFT.set_orientation(0); TFT.locate(0,0); - TFT.printf(" Hello Mbed 0"); + printf(" Hello Mbed 0"); TFT.set_orientation(1); TFT.locate(0,0); - TFT.printf(" Hello Mbed 1"); + printf(" Hello Mbed 1"); TFT.set_orientation(2); TFT.locate(0,0); - TFT.printf(" Hello Mbed 2"); + printf(" Hello Mbed 2"); TFT.set_orientation(3); TFT.locate(0,0); - TFT.printf(" Hello Mbed 3"); + printf(" Hello Mbed 3"); TFT.set_orientation(1); TFT.set_font((unsigned char*) Arial24x23); TFT.locate(50,100); - TFT.printf("TFT orientation"); + printf("TFT orientation"); wait(2); @@ -49,7 +71,7 @@ TFT.set_orientation(1); TFT.set_font((unsigned char*) Arial24x23); TFT.locate(120,115); - TFT.printf("Graphic"); + printf("Graphic"); TFT.line(0,0,100,200,Green); TFT.rect(100,50,50,50,Red); TFT.fillrect(180,25,40,45,Blue); @@ -68,22 +90,22 @@ TFT.cls(); TFT.set_font((unsigned char*) Arial24x23); TFT.locate(0,0); - TFT.printf("Different Fonts :"); + printf("Different Fonts :"); TFT.set_font((unsigned char*) Neu42x35); TFT.locate(0,50); - TFT.printf("Hello"); + printf("Hello"); TFT.set_font((unsigned char*) Arial24x23); TFT.locate(50,100); - TFT.printf("Hello"); + printf("Hello"); TFT.set_font((unsigned char*) Arial12x12); TFT.locate(55,150); - TFT.printf("Hello"); + printf("Hello"); TFT.set_orientation(2); TFT.set_font((unsigned char*) Arial24x23); TFT.locate(10,10); - TFT.printf("Hi mbed"); + printf("Hi mbed"); wait(2); // mbed logo @@ -96,7 +118,7 @@ TFT.set_orientation(0); LCD_id = TFT.Read_ID(); TFT.locate(10,10); - TFT.printf("LCD: ILI%04X", LCD_id); + printf("LCD: ILI%04X", LCD_id); wait(2); // RGB color wheel demo (cycle through all colors) @@ -104,7 +126,7 @@ TFT.foreground(Yellow); // set chars to yellow TFT.set_font((unsigned char*) Arial12x12); TFT.locate(10,10); - TFT.printf("RGB color wheel (2x)"); + printf("RGB color wheel (2x)"); uint8_t r = 255, g = 0, b = 0, step = 1, i; for (i=0;i<2;i++) @@ -118,15 +140,14 @@ } wait(2); - // Touchpanel demo TP.TouchPanel_Calibrate(); TFT.set_font((unsigned char*) Arial12x12); TFT.set_orientation(0); TFT.locate(0,0); - TFT.printf(" X:"); + printf(" X:"); TFT.locate(70,0); - TFT.printf(" Y:"); + printf(" Y:"); while (1) { if (!TP._tp_irq) @@ -136,20 +157,134 @@ TP.getDisplayPoint() ; TP.TP_DrawPoint(TP.display.x,TP.display.y, Blue); TFT.locate(25,0); - TFT.printf("%03d",TP.display.x); + printf("%03d",TP.display.x); TFT.locate(95,0); - TFT.printf("%03d",TP.display.y); + printf("%03d",TP.display.y); // Touchscreen area is larger than LCD area. // We use the bottom area outside the LCD area to clear the screen (y value > 320). if (TP.display.y > 320) { TFT.cls(); TFT.locate(0,0); - TFT.printf(" X:"); + printf(" X:"); TFT.locate(70,0); - TFT.printf(" Y:"); + printf(" Y:"); } } } } } + +/* +// ========================================================================================================= +// ================================================== TWO ================================================== +// ========================================================================================================= + +#include "stdio.h" +#include "mbed.h" +#include "SDFileSystem.h" +#include "Mini_DK.h" + +// SD card +SDFileSystem sd(SD_SDI, SD_SDO, SD_SCK, SD_CS, "sd"); +// TFT -> mosi, miso, sclk, cs +SPI_TFT TFT(LCD_SDI, LCD_SDO, LCD_SCK, LCD_CS,"TFT"); +// ADS7843 -> mosi, miso, sclk, cs, irq, SPI_TFT +TouchScreenADS7843 TP(TP_SDI ,TP_SDO ,TP_SCK ,TP_CS ,TP_IRQ, &TFT); + +int main() +{ + TFT.background(Black); // set background to black + TFT.foreground(White); // set chars to white + + TFT.claim(stdout); // send stdout to the TFT display + TFT.cls(); + TFT.set_font((unsigned char*) Arial12x12); + TFT.set_orientation(1); + + DISABLE_LCD_MISO; + int dummy = TFT.Bitmap(0,0,"/sd/house.bmp"); + ENABLE_LCD_MISO; + TFT.locate(0,0); + printf("%02d",dummy); +} +*/ + +/* +// ========================================================================================================= +// ================================================= THREE ================================================= +// ========================================================================================================= + +#include "stdio.h" +#include "mbed.h" +#include "SDFileSystem.h" +#include "Mini_DK.h" + +// SD card +SDFileSystem sd(SD_SDI, SD_SDO, SD_SCK, SD_CS, "sd"); +// TFT -> mosi, miso, sclk, cs +SPI_TFT TFT(LCD_SDI, LCD_SDO, LCD_SCK, LCD_CS,"TFT"); +// ADS7843 -> mosi, miso, sclk, cs, irq, SPI_TFT +TouchScreenADS7843 TP(TP_SDI ,TP_SDO ,TP_SCK ,TP_CS ,TP_IRQ, &TFT); + + +Timer timer; + +int main() +{ + DISABLE_LCD_MISO; + TFT.background(Black); // set background to black + TFT.foreground(White); // set chars to white + + TFT.claim(stdout); // send stdout to the TFT display + TFT.cls(); + TFT.set_font((unsigned char*) Arial12x12); + TFT.set_orientation(1); + + TFT.locate(0,200); + printf("Loading from SD..."); + TFT.Bitmap(0,0,"/sd/house.bmp"); + + TFT.locate(0,0); + printf("Copying to flash..."); + TFT.fileToFlash("/sd/house.bmp"); + TFT.locate(0,40); + printf("Done: CLS in 2 seconds"); + wait(2); + TFT.backgroundImage(false); + TFT.cls(); + wait(2); + TFT.backgroundImage(true); + + + timer.reset(); + timer.start(); + TFT.cls(); + timer.stop(); + TFT.foreground(Black); + TFT.locate(0,200); + printf("Wrote background in %d ms",timer.read_ms()); + TFT.foreground(Black); + + TFT.set_orientation(3); + TFT.locate(0,200); + printf("Wrote background in %d ms",timer.read_ms()); + + wait(5); + TFT.cls(); + TFT.set_font((unsigned char*) Neu42x35); + TFT.locate(0,50); + printf("Orient = 3"); + TFT.set_orientation(0); + TFT.locate(0,50); + printf("Orient = 0"); + wait(5); + + TFT.set_orientation(0); + TFT.cls(); + TFT.locate(0,50); + printf("Orient = 0"); + + while(1); +} +*/ \ No newline at end of file