From b9cf1465a7b9eb517a6ff38cefcfbde6940ec4ff Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 9 Jan 2015 18:49:59 +0100 Subject: [PATCH] updated LCD bouts with new strings and bitmaps new version is pretty generic and should work in most scenarios --- Marlin/dogm_lcd_implementation.h | 66 ++++++++++++++++---------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index bcbe5f792d..fdd68ec740 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -87,49 +87,51 @@ U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 static void lcd_implementation_init() { -#ifdef LCD_PIN_BL - pinMode(LCD_PIN_BL, OUTPUT); // Enable LCD backlight - digitalWrite(LCD_PIN_BL, HIGH); -#endif + #ifdef LCD_PIN_BL // Enable LCD backlight + pinMode(LCD_PIN_BL, OUTPUT); + digitalWrite(LCD_PIN_BL, HIGH); + #endif - u8g.setContrast(lcd_contrast); - // Uncomment this if you have the first generation (V1.10) of STBs board - // pinMode(17, OUTPUT); // Enable LCD backlight - // digitalWrite(17, HIGH); + u8g.setContrast(lcd_contrast); + // FIXME: remove this workaround + // Uncomment this if you have the first generation (V1.10) of STBs board + // pinMode(17, OUTPUT); // Enable LCD backlight + // digitalWrite(17, HIGH); + +#ifdef LCD_SCREEN_ROT_90 + u8g.setRot90(); // Rotate screen by 90° +#elif defined(LCD_SCREEN_ROT_180) + u8g.setRot180(); // Rotate screen by 180° +#elif defined(LCD_SCREEN_ROT_270) + u8g.setRot270(); // Rotate screen by 270° +#endif + // FIXME: whats the purpose of the box? Maybe clear screen? u8g.firstPage(); - do { + do { u8g.setFont(u8g_font_6x10_marlin); u8g.setColorIndex(1); u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight()); u8g.setColorIndex(1); - } while( u8g.nextPage() ); + } while(u8g.nextPage()); -#ifdef LCD_SCREEN_ROT_90 - u8g.setRot90(); // Rotate screen by 90° -#endif - -#ifdef LCD_SCREEN_ROT_180 - u8g.setRot180(); // Rotate screen by 180° -#endif - -#ifdef LCD_SCREEN_ROT_270 - u8g.setRot270(); // Rotate screen by 270° -#endif - - + // Show splashscreen + int off = (u8g.getWidth() - START_BMPWIDTH) / 2; + int txtX = (u8g.getWidth() - sizeof(STRING_SPLASH) - 1) / 2; + int txtY = u8g.getHeight() - 10; u8g.firstPage(); do { - // RepRap init bmp - u8g.drawBitmapP(7,7,START_BMPBYTEWIDTH,START_BMPHEIGHT,start_bmp); - // Welcome message + #ifdef START_BMPHIGH + u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp); + #else + u8g.setScale2x2(); + u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp); + u8g.undoScale(); + #endif - - - u8g.setFont(u8g_font_5x8); - u8g.drawStr(7,51,"V1.0.2 - marlin.reprap.org"); - - } while( u8g.nextPage() ); + u8g.setFont(u8g_font_5x8); + u8g.drawStr(txtX, txtY, STRING_SPLASH); + } while(u8g.nextPage()); } static void lcd_implementation_clear()