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.
Fork of RA8875 by
Diff: RA8875.cpp
- Revision:
- 100:0b084475d5a9
- Parent:
- 98:ecebed9b80b2
- Child:
- 101:e0aad446094a
--- a/RA8875.cpp Thu Dec 17 12:19:01 2015 +0000 +++ b/RA8875.cpp Sat Dec 19 15:55:09 2015 +0000 @@ -146,6 +146,8 @@ WriteCommand(0x1e, 0x06); //VSTR1 //VSYNC Start Position[8] WriteCommand(0x1f, 0x01); //VPWR //VSYNC Polarity ,VSYNC Pulse Width[6:0] + portraitmode = false; + if (width >= 800 && height >= 480 && color_bpp > 8) { WriteCommand(0x20, 0x00); // DPCR - 1-layer mode when the resolution is too high } else { @@ -386,9 +388,13 @@ #ifdef PERF_METRICS void RA8875::ClearPerformance() { - for (int i=0; i<METRICCOUNT; i++) + int i; + + for (i=0; i<METRICCOUNT; i++) metrics[i] = 0; idletime_usec = 0; + for (i=0; i<256; i++) + commandsUsed[i] = 0; } @@ -409,14 +415,16 @@ void RA8875::ReportPerformance(Serial & pc) { + int i; + pc.printf("\r\nPerformance Metrics\r\n"); - for (int i=0; i<METRICCOUNT; i++) { + for (i=0; i<METRICCOUNT; i++) { pc.printf("%10d uS %s\r\n", metrics[i], metricsName[i]); } pc.printf("%10d uS Idle time polling display for ready.\r\n", idletime_usec); for (i=0; i<256; i++) { if (commandsUsed[i]) - pc.printf("Command %02X used %5d times.\r\n", i, commandsUsed[i]) + pc.printf("Command %02X used %5d times.\r\n", i, commandsUsed[i]); } } #endif @@ -738,6 +746,7 @@ default: return bad_parameter; } + INFO("Orientation: %d, %d", angle, portraitmode); WriteCommand(0x22, fncr1Val); return WriteCommand(0x20, dpcrVal); } @@ -882,14 +891,8 @@ void RA8875::puts(const char * string) { - unsigned char mwcr0 = ReadCommand(0x40); - if (font == NULL) { - if ((mwcr0 & 0x80) == 0x00) { - WriteCommand(0x40,0x80); // Put in Text mode if not already - } - //} else { - // _StartGraphicsStream(); + WriteCommand(0x40,0x80); // Put in Text mode if internal font } if (*string != '\0') { #if 1 @@ -907,8 +910,6 @@ _select(false); #endif } - //if (font) - // _EndGraphicsStream(); } @@ -1162,9 +1163,9 @@ PERFORMANCE_RESET; // check for bad_parameter if (x1 < 0 || x1 >= width() || x2 < 0 || x2 >= width() - || y1 < 0 || y1 >= height() || y2 < 0 || y2 >= height()) + || y1 < 0 || y1 >= height() || y2 < 0 || y2 >= height()) { ret = bad_parameter; - else { + } else { if (x1 == x2 && y1 == y2) { pixel(x1, y1); } else if (x1 == x2) { @@ -1476,15 +1477,6 @@ return (float)(GetBacklight_u8())/255; } -RetCode_t RA8875::set_font(const unsigned char * _font) -{ - if (font && ! _font) { - SetTextCursor(cursor_x, cursor_y); // soft-font cursor -> hw cursor - } - font = _font; - return GraphicsDisplay::set_font(_font); // trusting them, but it might be good to put some checks in here... -} - RetCode_t RA8875::SelectUserFont(const uint8_t * _font) { INFO("Cursor(%d,%d) %p", cursor_x, cursor_y, _font); @@ -1716,8 +1708,6 @@ if (pixelBuffer) free(pixelBuffer); free(lineBuffer); - if (pixelBuffer) - free(pixelBuffer); return(not_enough_ram); } @@ -1812,8 +1802,6 @@ if (pixelBuffer) free(pixelBuffer); free(lineBuffer); - if (pixelBuffer) - free(pixelBuffer); INFO("Image closed"); return noerror; } else { @@ -1883,8 +1871,6 @@ if (pixelBuffer) free(pixelBuffer); free(lineBuffer); - if (pixelBuffer) - free(pixelBuffer); return(not_enough_ram); } @@ -1898,8 +1884,6 @@ if (pixelBuffer) free(pixelBuffer); free(lineBuffer); - if (pixelBuffer) - free(pixelBuffer); return(file_not_found); } @@ -1986,8 +1970,6 @@ if (pixelBuffer) free(pixelBuffer); free(lineBuffer); - if (pixelBuffer) - free(pixelBuffer); INFO("Image closed"); return noerror; } else { @@ -2026,7 +2008,7 @@ display.foreground(Blue); display.cls(); display.Backlight_u8(255); - display.puts(0,0, "Text Wrap Test.\r\n"); + display.puts("Text Wrap Test.\r\n"); for (int i=1; i<60; i++) { display.printf("L%2d\n", i % 17); if (!SuppressSlowStuff) @@ -2080,7 +2062,7 @@ display.foreground(Blue); display.cls(); display.Backlight_u8(255); - display.puts(0,0, "KeyPad Test. Touch the keypad..."); + display.puts("KeyPad Test. Touch the keypad..."); pc.printf("\r\n" "Raw KeyPad Test. Keypad returns the key-number.\r\n" "Press [most] any PC keyboard key to advance to next test.\r\n"); @@ -2129,7 +2111,7 @@ const char * bCursor = "The Block cursor should be visible for this text.\r\n"; const char * bbCursor = "The Blinking Block cursor should be visible for this text.\r\n"; const char * p; - int delay = 100; + int delay = 60; if (!SuppressSlowStuff) pc.printf("Text Cursor Test\r\n"); @@ -2139,7 +2121,7 @@ display.foreground(Blue); display.cls(); display.Backlight_u8(255); - display.puts(0,0, "Text Cursor Test."); + display.puts("Text Cursor Test."); // visible, non-blinking display.SetTextCursor(0,20); @@ -2191,8 +2173,8 @@ display.background(White); display.foreground(Blue); display.cls(); + display.puts("RA8875 Backlight Test - Ramp up."); wait_ms(delay); - display.puts(0,0, "RA8875 Backlight Test - Ramp up."); for (int i=0; i <= 255; i++) { sprintf(buf, "%3d, %4d", i, w); display.puts(100,100,buf); @@ -2230,8 +2212,8 @@ display.background(Black); display.foreground(Blue); display.cls(); + display.puts("External Font Test."); display.Backlight(1); - display.puts(0,0, "External Font Test."); display.SelectUserFont(BPG_Arial08x08); display.puts(0,30, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n"); @@ -2240,7 +2222,6 @@ display.puts("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n"); display.SelectUserFont(); - //display.set_font(); // restore to internal display.puts("Normal font again."); //display.window(0,0, display.width(), display.height()); @@ -2254,7 +2235,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "DOS Colors - Fore"); + display.puts("DOS Colors - Fore"); display.puts(280,0, "Back"); display.background(Gray); for (int i=0; i<16; i++) { @@ -2306,7 +2287,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Pixel Test"); + display.puts("Pixel Test"); for (i=0; i<1000; i++) { x = rand() % 480; y = 16 + rand() % (272-16); @@ -2326,7 +2307,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Line Test"); + display.puts("Line Test"); for (i=0; i<16; i++) { // Lines x = rand() % 480; @@ -2379,7 +2360,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Rectangle Test"); + display.puts("Rectangle Test"); for (i=0; i<16; i++) { x1 = rand() % 240; y1 = 50 + rand() % 200; @@ -2407,7 +2388,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Layer 0"); + display.puts("Layer 0"); for (i=0; i<16; i++) { x1 = rand() % 240; y1 = 50 + rand() % 200; @@ -2467,7 +2448,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Rounded Rectangle Test"); + display.puts("Rounded Rectangle Test"); for (i=0; i<16; i++) { x1 = rand() % 240; @@ -2560,7 +2541,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Circle Test"); + display.puts("Circle Test"); for (i=0; i<16; i++) { x = 100 + rand() % 100; y = 70 + rand() % 200; @@ -2586,7 +2567,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Ellipse Test"); + display.puts("Ellipse Test"); for (i=0; i<16; i++) { x = 100 + rand() % 100; y = 70 + rand() % 200; @@ -2611,7 +2592,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Graphics Test, loading /local/TestPat.bmp"); + display.puts("Graphics Test, loading /local/TestPat.bmp"); wait(3); int r = display.RenderBitmapFile(0,0, "/local/TestPat.bmp"); @@ -2629,7 +2610,7 @@ display.background(Black); display.foreground(Blue); display.cls(); - display.puts(0,0, "Touch Panel Test\r\n"); + display.puts("Touch Panel Test\r\n"); pc.printf("Touch Panel Test\r\n"); display.TouchPanelInit(); pc.printf(" TP: c - calibrate, r - restore, t - test\r\n");