Chris Taylor
/
LCD_DEMO
LCD Graphics Demo
main.cpp@1:9ef80594d458, 2015-02-01 (annotated)
- 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?
User | Revision | Line number | New 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 | } |