LCD Graphics Demo

Dependencies:   LCD_ST7735 mbed

Committer:
taylorza
Date:
Sun Feb 01 06:59:26 2015 +0000
Revision:
1:9ef80594d458
Parent:
0:7260a2716edf
Enhanced demo to show the new font and the measure font function.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taylorza 0:7260a2716edf 1 #include "mbed.h"
taylorza 0:7260a2716edf 2 #include "Color565.h"
taylorza 0:7260a2716edf 3 #include "font_IBM.h"
taylorza 1:9ef80594d458 4 #include "font_OEM.h"
taylorza 0:7260a2716edf 5 #include "LCD_ST7735.h"
taylorza 0:7260a2716edf 6
taylorza 0:7260a2716edf 7 static const uint16_t bmp[] = {
taylorza 0:7260a2716edf 8 0x20, 0x10,
taylorza 0:7260a2716edf 9 0x0000, 0x0000, 0x1081, 0x41e4, 0x7b87, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x7b87, 0x41e4, 0x1081, 0x0000, 0x0000, 0x0000, 0x0000, 0x1081, 0x4204, 0x7b87, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5a85, 0x4204, 0x1081, 0x0000, 0x0000,
taylorza 0:7260a2716edf 10 0x0000, 0x1081, 0x5285, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5285, 0x1081, 0x0000, 0x0000, 0x1081, 0x5a85, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5a85, 0x1081, 0x0000,
taylorza 0:7260a2716edf 11 0x1081, 0x5285, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5285, 0x1081, 0x1081, 0x5a85, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5a85, 0x1081,
taylorza 0:7260a2716edf 12 0x41e4, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x41e4, 0x4204, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x4204,
taylorza 0:7260a2716edf 13 0x7b87, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x7b87, 0x83a8, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x7b87,
taylorza 0:7260a2716edf 14 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x0000, 0x4204, 0x5aa5, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f,
taylorza 0:7260a2716edf 15 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x0000, 0x0000, 0x1081, 0x4204, 0x62c5, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f,
taylorza 0:7260a2716edf 16 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x0000, 0x0000, 0x0000, 0x0000, 0x1081, 0x4204, 0x5aa5, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f,
taylorza 0:7260a2716edf 17 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1081, 0x5244, 0x5aa5, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f,
taylorza 0:7260a2716edf 18 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x0000, 0x0000, 0x1081, 0x4204, 0x4204, 0x6b06, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f,
taylorza 0:7260a2716edf 19 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x0000, 0x4204, 0x5a85, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f,
taylorza 0:7260a2716edf 20 0x7b87, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x7b87, 0x83a8, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x7b87,
taylorza 0:7260a2716edf 21 0x41e4, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x41e4, 0x4204, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x4204,
taylorza 0:7260a2716edf 22 0x1081, 0x5285, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5285, 0x1081, 0x1081, 0x5a85, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5a85, 0x1081,
taylorza 0:7260a2716edf 23 0x0000, 0x1081, 0x5285, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5285, 0x1081, 0x0000, 0x0000, 0x1081, 0x5a85, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5a85, 0x1081, 0x0000,
taylorza 0:7260a2716edf 24 0x0000, 0x0000, 0x1081, 0x41e4, 0x7b87, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x7b87, 0x41e4, 0x1081, 0x0000, 0x0000, 0x0000, 0x0000, 0x1081, 0x4204, 0x7b87, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0xff2f, 0x5a85, 0x1081, 0x0000, 0x0000,
taylorza 0:7260a2716edf 25 };
taylorza 0:7260a2716edf 26
taylorza 0:7260a2716edf 27 LCD_ST7735 Surface(
taylorza 0:7260a2716edf 28 P0_19,
taylorza 0:7260a2716edf 29 P0_20,
taylorza 0:7260a2716edf 30 P0_7,
taylorza 0:7260a2716edf 31 P0_21,
taylorza 0:7260a2716edf 32 P0_22,
taylorza 0:7260a2716edf 33 P1_15,
taylorza 0:7260a2716edf 34 P0_2,
taylorza 0:7260a2716edf 35 LCD_ST7735::RGB);
taylorza 0:7260a2716edf 36
taylorza 1:9ef80594d458 37 const char *text = "LCD Demo";
taylorza 1:9ef80594d458 38
taylorza 0:7260a2716edf 39 main()
taylorza 0:7260a2716edf 40 {
taylorza 0:7260a2716edf 41 Surface.setOrientation(LCD_ST7735::Rotate270, false);
taylorza 0:7260a2716edf 42
taylorza 0:7260a2716edf 43 Surface.setForegroundColor(Color565::White);
taylorza 0:7260a2716edf 44 Surface.setBackgroundColor(Color565::Blue);
taylorza 1:9ef80594d458 45
taylorza 1:9ef80594d458 46 uint8_t width;
taylorza 1:9ef80594d458 47 uint8_t height;
taylorza 1:9ef80594d458 48 int x;
taylorza 1:9ef80594d458 49
taylorza 1:9ef80594d458 50 Surface.measureString(font_ibm, text, width, height);
taylorza 1:9ef80594d458 51 x = (160 - width) / 2;
taylorza 1:9ef80594d458 52 Surface.drawString(font_ibm, x, 0, "LCD Demo");
taylorza 1:9ef80594d458 53 Surface.fillRect(x, height + 2, x + width, height + 4, Color565::Red, Color565::Red);
taylorza 1:9ef80594d458 54
taylorza 1:9ef80594d458 55 Surface.measureString(font_oem, text, width, height);
taylorza 1:9ef80594d458 56 x = (160 - width) / 2;
taylorza 1:9ef80594d458 57 Surface.drawString(font_oem, x, 16, "LCD Demo");
taylorza 1:9ef80594d458 58 Surface.fillRect(x, 16 + height + 2, x + width, 16 + height + 4, Color565::Green, Color565::Green);
taylorza 1:9ef80594d458 59
taylorza 0:7260a2716edf 60
taylorza 0:7260a2716edf 61 while (true) {
taylorza 0:7260a2716edf 62 Surface.drawBitmap(72, 56, bmp, 0, 0, 16, 16);
taylorza 0:7260a2716edf 63 wait_ms(150);
taylorza 0:7260a2716edf 64 Surface.drawBitmap(72, 56, bmp, 16, 0, 16, 16);
taylorza 0:7260a2716edf 65 wait_ms(150);
taylorza 0:7260a2716edf 66 }
taylorza 0:7260a2716edf 67 }