kraus 6 лет назад
Родитель
Сommit
b5e9c972ac
8 измененных файлов с 9052 добавлено и 10818 удалено
  1. 1 1
      README.md
  2. 6 2
      extras/ChangeLog
  3. 10 2
      keywords.txt
  4. 3 3
      library.properties
  5. 3 0
      src/U8g2lib.h
  6. 10 2
      src/clib/u8g2.h
  7. 8962 10779
      src/clib/u8g2_fonts.c
  8. 57 29
      src/clib/u8x8_d_ssd1607_200x200.c

+ 1 - 1
README.md

@@ -8,5 +8,5 @@ Description: https://github.com/olikraus/u8g2/wiki
 
 Issue Tracker: https://github.com/olikraus/u8g2/issues
 
-Download (2.26.13): https://github.com/olikraus/U8g2_Arduino/archive/master.zip
+Download (2.26.14): https://github.com/olikraus/U8g2_Arduino/archive/master.zip
 

+ 6 - 2
extras/ChangeLog

@@ -215,10 +215,10 @@ https://github.com/olikraus/u8g2 ChangeLog
   * Added support for SSD1318 (issue 784)
   * Partial display update with updateDisplayArea (issue 736)
   * Several new decorative and fancy fonts from pentacom.jp (issue 801)
-2019-xx-xx	v2.26.x  olikraus@gmail.com
+2019-06-30	v2.26.14  olikraus@gmail.com
   * Support for Pimoroni 128x128 OLED SH1107 (issue 803)
   * Support for Grove 128x128 OLED SH1107 (issue 877)
-  * Support for Winstar 256x128 ST75256 (issue 891)
+  * Support for Winstar 256x128 ST75256 (ST75256_WO256X128, issue 891)
   * Bugfix: Open Iconic 1x for U8x8 (issue 828)
   * Added sendF command for direct communication with the display (issues 822, 878, 896)
   * Support for CG160160 UC1611 (issue 884)
@@ -227,4 +227,8 @@ https://github.com/olikraus/u8g2 ChangeLog
   * Support for ST7511 (issue 876)
   * Support for SSD1316 132x32 (issue 919)
   * Support for ST75320 (issue 921)
+  * Added JLX256160M for mirrored version of the JLX256160 display (issue 930)
+  * Unifont update to 12.1.02, added several plane 1 fonts (issue 931)
+  * bdfconv.exe: Windows exe created, bugfix with -d option (issue 833)
+  
   

+ 10 - 2
keywords.txt

@@ -947,6 +947,9 @@ u8g2_font_cu12_t_cyrillic	LITERAL1
 u8g2_font_cu12_t_tibetan	LITERAL1
 u8g2_font_cu12_t_hebrew	LITERAL1
 u8g2_font_cu12_t_arabic	LITERAL1
+u8g2_font_unifont_tf	LITERAL1
+u8g2_font_unifont_tr	LITERAL1
+u8g2_font_unifont_te	LITERAL1
 u8g2_font_unifont_t_latin	LITERAL1
 u8g2_font_unifont_t_extended	LITERAL1
 u8g2_font_unifont_t_greek	LITERAL1
@@ -958,6 +961,13 @@ u8g2_font_unifont_t_urdu	LITERAL1
 u8g2_font_unifont_t_polish	LITERAL1
 u8g2_font_unifont_t_devanagari	LITERAL1
 u8g2_font_unifont_t_arabic	LITERAL1
+u8g2_font_unifont_t_symbols	LITERAL1
+u8g2_font_unifont_h_symbols	LITERAL1
+u8g2_font_unifont_t_emoticons	LITERAL1
+u8g2_font_unifont_t_animals	LITERAL1
+u8g2_font_unifont_t_domino	LITERAL1
+u8g2_font_unifont_t_cards	LITERAL1
+u8g2_font_unifont_t_weather	LITERAL1
 u8g2_font_unifont_t_chinese1	LITERAL1
 u8g2_font_unifont_t_chinese2	LITERAL1
 u8g2_font_unifont_t_chinese3	LITERAL1
@@ -1032,8 +1042,6 @@ u8g2_font_f16_t_japanese1	LITERAL1
 u8g2_font_f16_t_japanese2	LITERAL1
 u8g2_font_f16_b_t_japanese1	LITERAL1
 u8g2_font_f16_b_t_japanese2	LITERAL1
-u8g2_font_unifont_t_symbols	LITERAL1
-u8g2_font_unifont_h_symbols	LITERAL1
 u8g2_font_artossans8_8r	LITERAL1
 u8g2_font_artossans8_8n	LITERAL1
 u8g2_font_artossans8_8u	LITERAL1

+ 3 - 3
library.properties

@@ -1,9 +1,9 @@
 name=U8g2
-version=2.26.13
+version=2.26.14
 author=oliver <olikraus@gmail.com>
 maintainer=oliver <olikraus@gmail.com>
-sentence=Monochrome LCD, OLED and eInk Library. Display controller: SSD1305, SSD1306, SSD1309, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701, ST7565, ST7567, ST7588, ST75256, NT7534, IST3020, ST7920, LD7032, KS0108, SED1520, SBN1661, IL3820, MAX7219. Interfaces: I2C, SPI, Parallel.
-paragraph=Monochrome LCD, OLED and eInk Library. Successor of U8glib. Supported display controller: SSD1305, SSD1306, SSD1309, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701, ST7565, ST7567, ST7588, ST75256, NT7534, IST3020, ST7920, LD7032, KS0108, SED1520, SBN1661, IL3820, MAX7219. Supported interfaces: I2C, SPI, Parallel. Features: UTF8, >700 fonts, U8x8 char output.
+sentence=Monochrome LCD, OLED and eInk Library. Display controller: SSD1305, SSD1306, SSD1309, SSD1316, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701, ST7511, ST7565, ST7567, ST7588, ST75256, ST75320, NT7534, IST3020, ST7920, LD7032, KS0108, SED1520, SBN1661, IL3820, MAX7219. Interfaces: I2C, SPI, Parallel.
+paragraph=Monochrome LCD, OLED and eInk Library. Successor of U8glib. Supported display controller: SSD1305, SSD1306, SSD1309, SSD1316, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701, ST7511, ST7565, ST7567, ST7588, ST75256, ST75320, NT7534, IST3020, ST7920, LD7032, KS0108, SED1520, SBN1661, IL3820, MAX7219. Supported interfaces: I2C, SPI, Parallel. Features: UTF8, >700 fonts, U8x8 char output.
 category=Display
 url=https://github.com/olikraus/u8g2
 architectures=*

+ 3 - 0
src/U8g2lib.h

@@ -186,6 +186,9 @@ class U8G2 : public Print
       { u8g2_UpdateDisplayArea(&u8g2, tx, ty, tw, th); }
     void updateDisplay(void)
       { u8g2_UpdateDisplay(&u8g2); }
+    void refreshDisplay(void)
+      { u8x8_RefreshDisplay(u8g2_GetU8x8(&u8g2)); }
+    
 
 
     /* clib/u8g2.hvline.c */

+ 10 - 2
src/clib/u8g2.h

@@ -2142,6 +2142,9 @@ extern const uint8_t u8g2_font_cu12_t_cyrillic[] U8G2_FONT_SECTION("u8g2_font_cu
 extern const uint8_t u8g2_font_cu12_t_tibetan[] U8G2_FONT_SECTION("u8g2_font_cu12_t_tibetan");
 extern const uint8_t u8g2_font_cu12_t_hebrew[] U8G2_FONT_SECTION("u8g2_font_cu12_t_hebrew");
 extern const uint8_t u8g2_font_cu12_t_arabic[] U8G2_FONT_SECTION("u8g2_font_cu12_t_arabic");
+extern const uint8_t u8g2_font_unifont_tf[] U8G2_FONT_SECTION("u8g2_font_unifont_tf");
+extern const uint8_t u8g2_font_unifont_tr[] U8G2_FONT_SECTION("u8g2_font_unifont_tr");
+extern const uint8_t u8g2_font_unifont_te[] U8G2_FONT_SECTION("u8g2_font_unifont_te");
 extern const uint8_t u8g2_font_unifont_t_latin[] U8G2_FONT_SECTION("u8g2_font_unifont_t_latin");
 extern const uint8_t u8g2_font_unifont_t_extended[] U8G2_FONT_SECTION("u8g2_font_unifont_t_extended");
 extern const uint8_t u8g2_font_unifont_t_greek[] U8G2_FONT_SECTION("u8g2_font_unifont_t_greek");
@@ -2153,6 +2156,13 @@ extern const uint8_t u8g2_font_unifont_t_urdu[] U8G2_FONT_SECTION("u8g2_font_uni
 extern const uint8_t u8g2_font_unifont_t_polish[] U8G2_FONT_SECTION("u8g2_font_unifont_t_polish");
 extern const uint8_t u8g2_font_unifont_t_devanagari[] U8G2_FONT_SECTION("u8g2_font_unifont_t_devanagari");
 extern const uint8_t u8g2_font_unifont_t_arabic[] U8G2_FONT_SECTION("u8g2_font_unifont_t_arabic");
+extern const uint8_t u8g2_font_unifont_t_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_t_symbols");
+extern const uint8_t u8g2_font_unifont_h_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_h_symbols");
+extern const uint8_t u8g2_font_unifont_t_emoticons[] U8G2_FONT_SECTION("u8g2_font_unifont_t_emoticons");
+extern const uint8_t u8g2_font_unifont_t_animals[] U8G2_FONT_SECTION("u8g2_font_unifont_t_animals");
+extern const uint8_t u8g2_font_unifont_t_domino[] U8G2_FONT_SECTION("u8g2_font_unifont_t_domino");
+extern const uint8_t u8g2_font_unifont_t_cards[] U8G2_FONT_SECTION("u8g2_font_unifont_t_cards");
+extern const uint8_t u8g2_font_unifont_t_weather[] U8G2_FONT_SECTION("u8g2_font_unifont_t_weather");
 extern const uint8_t u8g2_font_unifont_t_chinese1[] U8G2_FONT_SECTION("u8g2_font_unifont_t_chinese1");
 extern const uint8_t u8g2_font_unifont_t_chinese2[] U8G2_FONT_SECTION("u8g2_font_unifont_t_chinese2");
 extern const uint8_t u8g2_font_unifont_t_chinese3[] U8G2_FONT_SECTION("u8g2_font_unifont_t_chinese3");
@@ -2227,8 +2237,6 @@ extern const uint8_t u8g2_font_f16_t_japanese1[] U8G2_FONT_SECTION("u8g2_font_f1
 extern const uint8_t u8g2_font_f16_t_japanese2[] U8G2_FONT_SECTION("u8g2_font_f16_t_japanese2");
 extern const uint8_t u8g2_font_f16_b_t_japanese1[] U8G2_FONT_SECTION("u8g2_font_f16_b_t_japanese1");
 extern const uint8_t u8g2_font_f16_b_t_japanese2[] U8G2_FONT_SECTION("u8g2_font_f16_b_t_japanese2");
-extern const uint8_t u8g2_font_unifont_t_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_t_symbols");
-extern const uint8_t u8g2_font_unifont_h_symbols[] U8G2_FONT_SECTION("u8g2_font_unifont_h_symbols");
 extern const uint8_t u8g2_font_artossans8_8r[] U8G2_FONT_SECTION("u8g2_font_artossans8_8r");
 extern const uint8_t u8g2_font_artossans8_8n[] U8G2_FONT_SECTION("u8g2_font_artossans8_8n");
 extern const uint8_t u8g2_font_artossans8_8u[] U8G2_FONT_SECTION("u8g2_font_artossans8_8u");

Разница между файлами не показана из-за своего большого размера
+ 8962 - 10779
src/clib/u8g2_fonts.c


+ 57 - 29
src/clib/u8x8_d_ssd1607_200x200.c

@@ -163,10 +163,12 @@ static void u8x8_d_ssd1607_draw_tile(u8x8_t *u8x8, uint8_t arg_int, void *arg_pt
   x = ((u8x8_tile_t *)arg_ptr)->x_pos;
   x *= 8;
   x += u8x8->x_offset;
+  
+  
 
   u8x8_cad_SendCmd(u8x8, 0x045 );	/* window start column */
-  u8x8_cad_SendArg(u8x8, 0);
-  u8x8_cad_SendArg(u8x8, 0);
+  u8x8_cad_SendArg(u8x8, x&255);
+  u8x8_cad_SendArg(u8x8, x>>8);
   u8x8_cad_SendArg(u8x8, 199);		/* end of display */
   u8x8_cad_SendArg(u8x8, 0);
 
@@ -538,31 +540,39 @@ measured 1240 ms with IL3830 196x128
 
   U8X8_C(0x32),	/* write LUT register*/
 
+/*
   U8X8_A(0x50), U8X8_A(0xAA), U8X8_A(0x55), U8X8_A(0xAA), U8X8_A(0x11), 
   U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
   U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
   U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
   
   U8X8_A(0xFF), U8X8_A(0xFF), U8X8_A(0x1F), U8X8_A(0x00), U8X8_A(0x00), 
+  U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
+*/
+  U8X8_A(0x10), U8X8_A(0x18), U8X8_A(0x18), U8X8_A(0x08), U8X8_A(0x18),   // numbers based on Waveshare demo code
+  U8X8_A(0x18), U8X8_A(0x08), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
+  U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
+  U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
+  
+  U8X8_A(0x13), U8X8_A(0x14), U8X8_A(0x44), U8X8_A(0x12), U8X8_A(0x00), 
   U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00),
 
-  U8X8_CA(0x22, 0x04),	/* display update seq. option: clk -> CP -> LUT -> initial display -> pattern display */
+  U8X8_CA(0x22, 0xc4),	/* display update seq. option: clk -> CP -> LUT -> initial display -> pattern display */
   U8X8_C(0x20),	/* execute sequence */
   
   U8X8_DLY(250),	/* delay for 1500ms. The current sequence takes 1300ms */
   U8X8_DLY(250),
   U8X8_DLY(250),
-  U8X8_DLY(250),
+//  U8X8_DLY(250),
   
-  U8X8_DLY(250),
-  U8X8_DLY(250),
+//  U8X8_DLY(250),
+//  U8X8_DLY(250),
   
   
   U8X8_END_TRANSFER(),             	/* disable chip */
   U8X8_END()             			/* end of sequence */
 };
 
-
 uint8_t u8x8_d_ssd1607_gd_200x200(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr)
 {
   switch(msg)
@@ -600,36 +610,53 @@ uint8_t u8x8_d_ssd1607_gd_200x200(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, vo
 
 /*=================================================*/
 
-/* waveshare 200x200 */
-static const uint8_t u8x8_d_ssd1607_ws_200x200_init_seq[] = {    
-  //  original code 
-  
-  // U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
+static const uint8_t u8x8_d_ssd1607_ws_to_display_seq[] = {
+  U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
+
+
+  U8X8_C(0x32),	/* write LUT register*/
 
-  // U8X8_C(0x01),
-  // U8X8_A(199),U8X8_A(0),U8X8_A(0),
+  U8X8_A(0x10), U8X8_A(0x18), U8X8_A(0x18), U8X8_A(0x08), U8X8_A(0x18),   // numbers based on Waveshare demo code
+  U8X8_A(0x18), U8X8_A(0x08), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
+  U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
+  U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), 
   
+  U8X8_A(0x13), U8X8_A(0x14), U8X8_A(0x44), U8X8_A(0x12), U8X8_A(0x00), 
+  U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00), U8X8_A(0x00),
+
+  U8X8_CA(0x22, 0xc4),	/* display update seq. option: clk -> CP -> LUT -> initial display -> pattern display */
+  U8X8_C(0x20),	/* execute sequence */
   
-  // U8X8_CA(0x03, 0x00), 	/* Gate Driving voltage: 15V (lowest value)*/
-  // U8X8_CA(0x04, 0x0a), 	/* Source Driving voltage: 15V (mid value and POR)*/
+  U8X8_DLY(250),	/* delay for 1250ms.  */
+  U8X8_DLY(250),
+  U8X8_DLY(250),
+  U8X8_DLY(250),
+  U8X8_DLY(250),
   
-  // U8X8_CA(0x0f, 0x00),		/* scan start ? */
   
-  // U8X8_CA(0xf0, 0x1f),	/* set booster feedback to internal */
+  U8X8_END_TRANSFER(),             	/* disable chip */
+  U8X8_END()             			/* end of sequence */
+};
 
-  // U8X8_CA(0x2c, 0xa8),	/* write vcom value*/
-  // U8X8_CA(0x3a, 0x1a),	/* dummy lines */
-  // U8X8_CA(0x3b, 0x08),	/* gate time */
-  // U8X8_CA(0x3c, 0x33),	/* select boarder waveform */
-  
-  // U8X8_CA(0x11, 0x03),		/* cursor increment mode */
-  // U8X8_CAA(0x44, 0, 24),	/* RAM x start & end, each byte has 8 pixel, 25*4=200 */
-  // U8X8_CAAAA(0x45, 0, 0, 299&255, 299>>8),	/* RAM y start & end, 0..299 */
+
+static const uint8_t u8x8_d_ssd1607_ws_to_refresh_seq[] = {
+  U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
+
+
+  U8X8_CA(0x22, 0x04),	/* display update seq. option: clk -> CP -> LUT -> initial display -> pattern display */
+  U8X8_C(0x20),	/* execute sequence */
   
-  // U8X8_END_TRANSFER(),             	/* disable chip */
-  // U8X8_END()             			/* end of sequence */
+//  U8X8_DLY(250),
+//  U8X8_DLY(250),
   
   
+  U8X8_END_TRANSFER(),             	/* disable chip */
+  U8X8_END()             			/* end of sequence */
+};
+
+
+/* waveshare 200x200 */
+static const uint8_t u8x8_d_ssd1607_ws_200x200_init_seq[] = {    
   // suggested code from https://github.com/olikraus/u8g2/issues/637
   
   U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
@@ -667,6 +694,7 @@ uint8_t u8x8_d_ssd1607_ws_200x200(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, vo
       u8x8_cad_SendSequence(u8x8, u8x8_d_ssd1607_ws_200x200_init_seq);    
       u8x8_cad_SendSequence(u8x8, u8x8_d_ssd1607_200x200_powersave0_seq);
       u8x8_d_ssd1607_200x200_first_init(u8x8);
+      u8x8_cad_SendSequence(u8x8, u8x8_d_ssd1607_ws_to_display_seq);; // to setup LUT
       break;
     case U8X8_MSG_DISPLAY_SET_POWER_SAVE:
       if ( arg_int == 0 )
@@ -680,7 +708,7 @@ uint8_t u8x8_d_ssd1607_ws_200x200(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, vo
       u8x8_d_ssd1607_draw_tile(u8x8, arg_int, arg_ptr);
       break;
     case U8X8_MSG_DISPLAY_REFRESH:
-      u8x8_cad_SendSequence(u8x8, u8x8_d_ssd1607_to_display_seq);
+      u8x8_cad_SendSequence(u8x8, u8x8_d_ssd1607_ws_to_refresh_seq);
       break;
     default:
       return 0;

Некоторые файлы не были показаны из-за большого количества измененных файлов