Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 0:e67bf8f398ee
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sun Aug 23 15:50:19 2015 +0000
@@ -0,0 +1,221 @@
+/* This demonstration file was copied from Unigraphic _demo for mbed
+*/
+
+
+#include "stdio.h"
+#include "mbed.h"
+#include "string"
+#include "Arial12x12.h"
+#include "Arial24x23.h"
+#include "Arial43x48_numb.h"
+#include "pict.h"
+#include "pavement_48x34.h"
+#include "LGDP4535.h"
+
+
+Serial pc(USBTX, USBRX);
+
+PinName pinSet[8] = {D8,D9,D2,D3,D4,D5,D6,D7};
+
+LGDP4535 myLCD(BUS_8, pinSet, A3, A4, A2, A1, A0, "myLCD");
+
+
+Timer t;
+
+unsigned short backgroundcolor=White;
+unsigned short foregroundcolor=Black;
+//unsigned short backgroundcolor=Black;
+//unsigned short foregroundcolor=White;
+
+char orient=1;
+int main()
+{
+// myLCD.set_contrast(26);//for uc1608
+ // myLCD.set_contrast(46);//for ist3020
+ myLCD.set_orientation(orient);
+ int time, time2;
+ pc.baud (115200);
+ pc.printf("\n\nSystem Core Clock = %.3f MHZ\r\n",(float)SystemCoreClock/1000000);
+ t.start();
+ // myLCD.set_font((unsigned char*) Terminal6x8);
+ // myLCD.claim(stdout); // send stdout to the LCD display
+ //myLCD.claim(stderr); // send stderr to the LCD display
+ myLCD.background(backgroundcolor); // set background to black
+ myLCD.foreground(foregroundcolor); // set chars to white
+
+ while(1)
+ {
+ myLCD.set_orientation((orient++)%4);
+// myLCD.set_orientation(2);
+ myLCD.cls(); // clear the screen
+ myLCD.locate(0,30);
+ myLCD.printf("Display ID: %.8X\r\n", myLCD.tftID);
+ pc.printf("Display ID: %.8X\r\n", myLCD.tftID);
+ // mem write/read test
+ unsigned short readback;
+ unsigned short colorstep = (0x10000/myLCD.width());
+ for(unsigned short i=0; i<myLCD.width(); i++)
+ {
+ myLCD.pixel(i,0,i*colorstep); // write line
+ }
+ bool readerror=false;
+ for(unsigned short i=0; i<myLCD.width(); i++) // verify line
+ {
+ readback = myLCD.pixelread(i,0);
+ if(readback!=i*colorstep)
+ {
+ readerror=true;
+ pc.printf("pix %.4X readback %.4X\r\n", i*colorstep, readback);
+ }
+ }
+ myLCD.locate(0,10);
+ myLCD.printf("pixelread test %s\r\n", readerror ? "FAIL":"PASS");
+ wait(2);
+
+ myLCD.cls();
+ myLCD.set_font((unsigned char*) Terminal6x8,32,127,false); //variable width disabled
+ myLCD.locate(0,0);
+ myLCD.printf("Display Test\r\nSome text just to see if auto carriage return works correctly");
+ myLCD.set_font((unsigned char*) Terminal6x8);
+ // myLCD.locate(0,0);
+ myLCD.printf("\r\nDisplay Test\r\nSome text just to see if auto carriage return works correctly");
+ pc.printf(" Display Test \r\n");
+ wait(3);
+ t.reset();
+ myLCD.cls();
+ time=t.read_us();
+ myLCD.locate(2,55);
+ myLCD.printf("cls: %.3fms", (float)time/1000);
+ pc.printf("cls: %.3fms\r\n", (float)time/1000);
+ wait(3);
+
+ myLCD.cls();
+ t.reset();
+ // draw some graphics
+ //myLCD.cls();
+ myLCD.set_font((unsigned char*) Arial24x23);
+ myLCD.locate(10,10);
+ myLCD.printf("Test");
+
+ myLCD.line(0,0,myLCD.width()-1,0,foregroundcolor);
+ myLCD.line(0,0,0,myLCD.height()-1,foregroundcolor);
+ myLCD.line(0,0,myLCD.width()-1,myLCD.height()-1,foregroundcolor);
+
+ myLCD.rect(10,30,50,40,foregroundcolor);
+ myLCD.fillrect(60,30,100,40,foregroundcolor);
+
+ myLCD.circle(150,32,30,foregroundcolor);
+ myLCD.fillcircle(140,20,10,foregroundcolor);
+
+ double s;
+
+ for (unsigned short i=0; i<myLCD.width(); i++)
+ {
+ s =10 * sin((long double) i / 10 );
+ myLCD.pixel(i,40 + (int)s ,foregroundcolor);
+ }
+
+
+ time=t.read_us();
+ myLCD.locate(2,55);
+ myLCD.set_font((unsigned char*) Terminal6x8);
+ myLCD.printf("plot: %.3fms", (float)time/1000);
+ pc.printf("plot: %.3fms\r\n", (float)time/1000);
+ wait(3);
+ myLCD.cls();
+ t.reset();
+ Bitmap_s pic = {
+ 64, // XSize
+ 64, // YSize
+ 8, // Bytes in Line
+ burp, // Pointer to picture data
+ };
+ myLCD.Bitmap_BW(pic,myLCD.width()-64,0);
+ time=t.read_us();
+ myLCD.locate(2,55);
+ myLCD.printf("bmp: %.3fms", (float)time/1000);
+ pc.printf("bmp: %.3fms\r\n", (float)time/1000);
+ wait(3);
+ myLCD.cls();
+ myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); //only numbers, variable-width disabled
+ t.reset();
+ myLCD.locate(0,0);
+ myLCD.printf("%d", 12345);
+ time=t.read_us();
+ myLCD.locate(2,55);
+ myLCD.set_font((unsigned char*) Terminal6x8);
+ myLCD.printf("Big Font: %.3fms", (float)time/1000);
+ pc.printf("Big Font: %.3fms\r\n", (float)time/1000);
+ wait(3);
+ // sparse pixels test
+ myLCD.cls();
+ myLCD.FastWindow(true);
+ t.reset();
+ for(unsigned int i=0; i<20000; i++)
+ {
+ myLCD.pixel((i+(i*89)%myLCD.width()), (i+(i*61)%myLCD.height()), Red);
+ }
+ myLCD.copy_to_lcd();
+ time=t.read_us();
+ myLCD.cls();
+ myLCD.FastWindow(false);
+ t.reset();
+ for(unsigned int i=0; i<20000; i++)
+ {
+ myLCD.pixel((i+(i*89)%myLCD.width()), (i+(i*61)%myLCD.height()), Blue);
+ }
+ myLCD.copy_to_lcd();
+ time2=t.read_us();
+ myLCD.locate(2,55);
+ myLCD.printf("std:%.3fms fastw:%.3fms", (float)time2/1000, (float)time/1000);
+ pc.printf("std: %.3fms fastw: %.3fms\r\n", (float)time2/1000, (float)time/1000);
+ wait(3);
+ // scroll test, only for TFT
+ myLCD.cls();
+ myLCD.set_font((unsigned char*) Arial24x23);
+ myLCD.locate(2,10);
+ myLCD.printf("Scrolling");
+ myLCD.rect(0,0,myLCD.width()-1,myLCD.height()-1,White);
+ myLCD.rect(1,1,myLCD.width()-2,myLCD.height()-2,Blue);
+ myLCD.setscrollarea(0,myLCD.sizeY());
+ wait(1);
+ myLCD.scroll(1); //up 1
+ wait(1);
+ myLCD.scroll(0); //center
+ wait(1);
+ myLCD.scroll(myLCD.sizeY()-1); //down 1
+ wait(1);
+ myLCD.scroll(myLCD.sizeY()); // same as 0, center
+ wait(1);
+ myLCD.scroll(myLCD.sizeY()>>1); // half screen
+ wait(1);
+ myLCD.scrollreset(); // center
+ wait(1);
+ for(unsigned short i=1; i<=myLCD.sizeY(); i++)
+ {
+ myLCD.scroll(i);
+ wait_ms(2);
+ }
+ wait(2);
+ // color inversion
+ for(unsigned short i=0; i<=8; i++)
+ {
+ myLCD.invert(i&1);
+ wait_ms(200);
+ }
+ wait(2);
+ // bmp 16bit test
+ myLCD.cls();
+ t.reset();
+ for(int y=0; y<myLCD.height(); y+=34)
+ {
+ for(int x=0; x<myLCD.width(); x+=48) myLCD.Bitmap(x,y,48,34,(unsigned char *)pavement_48x34);
+ }
+ time=t.read_us();
+ myLCD.locate(2,55);
+ myLCD.set_font((unsigned char*) Terminal6x8);
+ myLCD.printf("Bmp speed: %.3fms", (float)time/1000);
+ pc.printf("Bmp speed: %.3fms\r\n", (float)time/1000);
+ wait(2);
+ }
+}
\ No newline at end of file