Diff: TextLCD.h
- Revision:
- 41:111ca62e8a59
- Parent:
- 40:d3496c3ea301
--- a/TextLCD.h Wed May 20 18:46:51 2015 +0000
+++ b/TextLCD.h Fri Nov 06 18:59:27 2015 +0000
@@ -22,6 +22,8 @@
* 2015, v19: WH, Added 10x2D and 10x4D type for SSD1803
* 2015, v20: WH, Fixed occasional Init fail caused by insufficient wait time after ReturnHome command (0x02), Added defines to reduce memory footprint (eg LCD_ICON),
* Fixed and Added more fonttable support for PCF2119R_3V3, Added HD66712 controller.
+ * 2015, v21: WH, Added LCD32x2 defines and code, Fixed LCD12x4D enum, Added font enums, Added SPLC792A controller,
+ * Added UTF8_2_LCD decode for Cyrilic font (By Andriy Ribalko). Added setFont()
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -87,41 +89,51 @@
/* LCD Type information on Rows, Columns and Variant. This information is encoded in
* an int and used for the LCDType enumerators in order to simplify code maintenance */
-// Columns encoded in b7..b0
-#define LCD_T_COL_MSK 0x000000FF
-#define LCD_T_C6 0x00000006
-#define LCD_T_C8 0x00000008
-#define LCD_T_C10 0x0000000A
-#define LCD_T_C12 0x0000000C
-#define LCD_T_C16 0x00000010
-#define LCD_T_C20 0x00000014
-#define LCD_T_C24 0x00000018
-#define LCD_T_C32 0x00000020
-#define LCD_T_C40 0x00000028
+
+// Type ID encoded in b7..b0
+#define LCD_T_ID_MSK 0x000000FF
+#define LCD_T_ID_SHFT 0
+
+// Columns encoded in b15..b8
+#define LCD_T_COL_MSK 0x0000FF00
+#define LCD_T_COL_SHFT 8
+#define LCD_T_C6 0x00000600
+#define LCD_T_C8 0x00000800
+#define LCD_T_C10 0x00000A00
+#define LCD_T_C12 0x00000C00
+#define LCD_T_C16 0x00001000
+#define LCD_T_C20 0x00001400
+#define LCD_T_C24 0x00001800
+#define LCD_T_C32 0x00002000
+#define LCD_T_C40 0x00002800
+//#define LCD_T_C52 0x00003400
-// Rows encoded in b15..b8
-#define LCD_T_ROW_MSK 0x0000FF00
-#define LCD_T_R1 0x00000100
-#define LCD_T_R2 0x00000200
-#define LCD_T_R3 0x00000300
-#define LCD_T_R4 0x00000400
-#define LCD_T_R6 0x00000600
+// Rows encoded in b23..b16
+#define LCD_T_ROW_MSK 0x00FF0000
+#define LCD_T_ROW_SHFT 16
+#define LCD_T_R1 0x00010000
+#define LCD_T_R2 0x00020000
+#define LCD_T_R3 0x00030000
+#define LCD_T_R4 0x00040000
+#define LCD_T_R6 0x00060000
-// Addressing mode encoded in b19..b16
-#define LCD_T_ADR_MSK 0x000F0000
+// Addressing mode encoded in b27..b24
+#define LCD_T_ADR_MSK 0x0F000000
+#define LCD_T_ADR_SHFT 24
#define LCD_T_A 0x00000000 /*Mode A Default 1, 2 or 4 line display */
-#define LCD_T_B 0x00010000 /*Mode B, Alternate 8x2 (actually 16x1 display) */
-#define LCD_T_C 0x00020000 /*Mode C, Alternate 16x1 (actually 8x2 display) */
-#define LCD_T_D 0x00030000 /*Mode D, Alternate 3 or 4 line display (12x4, 20x4, 24x4) */
-#define LCD_T_D1 0x00040000 /*Mode D1, Alternate 3 out of 4 line display (12x3, 20x3, 24x3) */
-#define LCD_T_E 0x00050000 /*Mode E, 40x4 display (actually two 40x2) */
-#define LCD_T_F 0x00060000 /*Mode F, 16x3 display (actually 24x2) */
-#define LCD_T_G 0x00070000 /*Mode G, 16x3 display */
+#define LCD_T_B 0x01000000 /*Mode B, Alternate 8x2 (actually 16x1 display) */
+#define LCD_T_C 0x02000000 /*Mode C, Alternate 16x1 (actually 8x2 display) */
+#define LCD_T_D 0x03000000 /*Mode D, Alternate 3 or 4 line display (12x4, 20x4, 24x4) */
+#define LCD_T_D1 0x04000000 /*Mode D1, Alternate 3 out of 4 line display (12x3, 20x3, 24x3) */
+#define LCD_T_E 0x05000000 /*Mode E, 40x4 display (actually two 40x2) */
+#define LCD_T_F 0x06000000 /*Mode F, 16x3 display (actually 24x2) */
+#define LCD_T_G 0x07000000 /*Mode G, 16x3 display */
/* LCD Ctrl information on interface support and features. This information is encoded in
* an int and used for the LCDCtrl enumerators in order to simplify code maintenance */
// Interface encoded in b31..b24
#define LCD_C_BUS_MSK 0xFF000000
+#define LCD_C_BUS_SHFT 24
#define LCD_C_PAR 0x01000000 /*Parallel 4 or 8 bit data, E pin, RS pin, RW=GND */
#define LCD_C_SPI3_8 0x02000000 /*SPI 3 line (MOSI, SCL, CS pins), 8 bits (Count Command initiates Data transfer) */
#define LCD_C_SPI3_9 0x04000000 /*SPI 3 line (MOSI, SCL, CS pins), 9 bits (RS + 8 Data) */
@@ -132,15 +144,27 @@
#define LCD_C_I2C 0x80000000 /*I2C (SDA, SCL pin), 8 control bits (Co, RS, RW) + 8 Data */
// Features encoded in b23..b16
#define LCD_C_FTR_MSK 0x00FF0000
+#define LCD_C_FTR_SHFT 16
#define LCD_C_BST 0x00010000 /*Booster */
#define LCD_C_CTR 0x00020000 /*Contrast Control */
#define LCD_C_ICN 0x00040000 /*Icons */
#define LCD_C_PDN 0x00080000 /*Power Down */
// Fonttable encoded in b15..b12
-#define LCD_C_FNT_MSK 0x0000F000
-#define LCD_C_FT0 0x00000000 /*Default */
-#define LCD_C_FT1 0x00001000 /*Font1, C */
-#define LCD_C_FT2 0x00002000 /*Font2, R */
+#define LCD_C_FNT_MSK 0x0000F000
+#define LCD_C_FNT_SHFT 12
+#define LCD_C_F0 0x00000000 /*Default HD44780 UK/JAP */
+#define LCD_C_FC 0x00001000 /*PCF21xxC */
+#define LCD_C_FR 0x00002000 /*PCF21XXR */
+#define LCD_C_FK 0x00003000 /*PCF21XXK */
+#define LCD_C_FRA 0x00004000 /*SSD1803 ROM_A UK/EU */
+#define LCD_C_FRB 0x00005000 /*SSD1803 ROM_B UK/Cyrillic */
+#define LCD_C_FRC 0x00006000 /*SSD1803 ROM_C UK/JAP */
+#define LCD_C_FD 0x00007000 /*SPLC780D EU/Cyrillic */
+#define LCD_C_FT 0x00008000 /*ST7066-0T EU/Cyrillic */
+
+// Type ID encoded in b7..b0
+#define LCD_C_ID_MSK 0x000000FF
+#define LCD_C_ID_SHFT 0
/** A TextLCD interface for driving 4-bit HD44780-based LCDs
*
@@ -168,7 +192,7 @@
// LCD6x2 = (LCD_T_A | LCD_T_C6 | LCD_T_R2), /**< 6x2 LCD panel */
LCD8x1 = (LCD_T_A | LCD_T_C8 | LCD_T_R1), /**< 8x1 LCD panel */
LCD8x2 = (LCD_T_A | LCD_T_C8 | LCD_T_R2), /**< 8x2 LCD panel */
- LCD8x2B = (LCD_T_D | LCD_T_C8 | LCD_T_R2), /**< 8x2 LCD panel (actually 16x1) */
+ LCD8x2B = (LCD_T_B | LCD_T_C8 | LCD_T_R2), /**< 8x2 LCD panel (actually 16x1) */
// LCD10x2D = (LCD_T_D | LCD_T_C10 | LCD_T_R2), /**< 10x2 LCD panel, special mode SSD1803, 4-line but double height */
LCD10x4D = (LCD_T_D | LCD_T_C10 | LCD_T_R4), /**< 10x4 LCD panel, special mode SSD1803 */
LCD12x1 = (LCD_T_A | LCD_T_C12 | LCD_T_R1), /**< 12x1 LCD panel */
@@ -177,7 +201,7 @@
LCD12x3D1 = (LCD_T_D1 | LCD_T_C12 | LCD_T_R3), /**< 12x3 LCD panel, special mode PCF21XX, KS0073 */
// LCD12x3G = (LCD_T_G | LCD_T_C12 | LCD_T_R3), /**< 12x3 LCD panel, special mode ST7036 */
LCD12x4 = (LCD_T_A | LCD_T_C12 | LCD_T_R4), /**< 12x4 LCD panel */
- LCD12x4D = (LCD_T_B | LCD_T_C12 | LCD_T_R4), /**< 12x4 LCD panel, special mode PCF21XX, KS0073 */
+ LCD12x4D = (LCD_T_D | LCD_T_C12 | LCD_T_R4), /**< 12x4 LCD panel, special mode PCF21XX, KS0073 */
LCD16x1 = (LCD_T_A | LCD_T_C16 | LCD_T_R1), /**< 16x1 LCD panel */
LCD16x1C = (LCD_T_C | LCD_T_C16 | LCD_T_R1), /**< 16x1 LCD panel (actually 8x2) */
LCD16x2 = (LCD_T_A | LCD_T_C16 | LCD_T_R2), /**< 16x2 LCD panel (default) */
@@ -191,10 +215,10 @@
LCD20x1 = (LCD_T_A | LCD_T_C20 | LCD_T_R1), /**< 20x1 LCD panel */
LCD20x2 = (LCD_T_A | LCD_T_C20 | LCD_T_R2), /**< 20x2 LCD panel */
// LCD20x3 = (LCD_T_A | LCD_T_C20 | LCD_T_R3), /**< 20x3 LCD panel */
-// LCD20x3D = (LCD_T_D | LCD_T_C20 | LCD_T_R3), /**< 20x3 LCD panel, special mode SSD1803 */
-// LCD20x3D1 = (LCD_T_D1 | LCD_T_C20 | LCD_T_R3), /**< 20x3 LCD panel, special mode SSD1803 */
+// LCD20x3D = (LCD_T_D | LCD_T_C20 | LCD_T_R3), /**< 20x3 LCD panel, special mode SSD1803, KS0073 */
+// LCD20x3D1 = (LCD_T_D1 | LCD_T_C20 | LCD_T_R3), /**< 20x3 LCD panel, special mode SSD1803, KS0073 */
LCD20x4 = (LCD_T_A | LCD_T_C20 | LCD_T_R4), /**< 20x4 LCD panel */
- LCD20x4D = (LCD_T_D | LCD_T_C20 | LCD_T_R4), /**< 20x4 LCD panel, special mode SSD1803 */
+ LCD20x4D = (LCD_T_D | LCD_T_C20 | LCD_T_R4), /**< 20x4 LCD panel, special mode SSD1803, KS0073 */
// LCD20x6 = (LCD_T_E | LCD_T_C20 | LCD_T_R6), /**< 20x6 LCD panel, Two controller version */
LCD24x1 = (LCD_T_A | LCD_T_C24 | LCD_T_R1), /**< 24x1 LCD panel */
LCD24x2 = (LCD_T_A | LCD_T_C24 | LCD_T_R2), /**< 24x2 LCD panel */
@@ -203,12 +227,15 @@
LCD24x4D = (LCD_T_D | LCD_T_C24 | LCD_T_R4), /**< 24x4 LCD panel, special mode KS0078 */
// LCD32x1 = (LCD_T_A | LCD_T_C32 | LCD_T_R1), /**< 32x1 LCD panel */
// LCD32x1C = (LCD_T_C | LCD_T_C32 | LCD_T_R1), /**< 32x1 LCD panel (actually 16x2) */
-// LCD32x2 = (LCD_T_A | LCD_T_C32 | LCD_T_R2), /**< 32x2 LCD panel */
-// LCD32x4 = (LCD_T_A | LCD_T_C32 | LCD_T_R4), /**< 32x4 LCD panel */
+ LCD32x2 = (LCD_T_A | LCD_T_C32 | LCD_T_R2), /**< 32x2 LCD panel */
+// LCD32x4 = (LCD_T_A | LCD_T_C32 | LCD_T_R4), /**< 32x4 LCD panel, Two controller version ? */
// LCD40x1 = (LCD_T_A | LCD_T_C40 | LCD_T_R1), /**< 40x1 LCD panel */
// LCD40x1C = (LCD_T_C | LCD_T_C40 | LCD_T_R1), /**< 40x1 LCD panel (actually 20x2) */
LCD40x2 = (LCD_T_A | LCD_T_C40 | LCD_T_R2), /**< 40x2 LCD panel */
+// LCD52x1 = (LCD_T_A | LCD_T_C52 | LCD_T_R1), /**< 52x1 LCD panel, special mode KS0073 */
+#if (LCD_TWO_CTRL == 1)
LCD40x4 = (LCD_T_E | LCD_T_C40 | LCD_T_R4) /**< 40x4 LCD panel, Two controller version */
+#endif
};
@@ -222,19 +249,20 @@
PCF2103_3V3 = 5 | (LCD_C_PAR | LCD_C_I2C), /**< PCF2103 3V3 no Booster, 4/8 bit, I2C */
PCF2113_3V3 = 6 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< PCF2113 3V3 with Booster, 4/8 bit, I2C */
PCF2116_3V3 = 7 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST), /**< PCF2116 3V3 with Booster, 4/8 bit, I2C */
-// PCF2116C_3V3 = | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_FT1), /**< PCF2116C 3V3 with Booster, 4/8 bit, I2C */
-// PCF2116K_3V3 = | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_FT2), /**< PCF2116K 3V3 with Booster, 4/8 bit, I2C */
+// PCF2116C_3V3 = | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_FC), /**< PCF2116C 3V3 with Booster, 4/8 bit, I2C */
+// PCF2116K_3V3 = | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_FK), /**< PCF2116K 3V3 with Booster, 4/8 bit, I2C */
PCF2116_5V = 8 | (LCD_C_PAR | LCD_C_I2C), /**< PCF2116 5V no Booster, 4/8 bit, I2C */
- PCF2116C_5V = 9 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_FT1), /**< PCF2116C 3V3 with Booster, 4/8 bit, I2C */
+ PCF2116C_5V = 9 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_FC), /**< PCF2116C 3V3 with Booster, 4/8 bit, I2C */
PCF2119_3V3 = 10 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< PCF2119 3V3 with Booster, 4/8 bit, I2C */
-// PCF2119C_3V3 = 11 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR | LCD_C_FT1), /**< PCF2119K 3V3 with Booster, 4/8 bit, I2C */
- PCF2119R_3V3 = 12 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR | LCD_C_FT2), /**< PCF2119R 3V3 with Booster, 4/8 bit, I2C */
+// PCF2119C_3V3 = 11 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR | LCD_C_FC), /**< PCF2119K 3V3 with Booster, 4/8 bit, I2C */
+ PCF2119R_3V3 = 12 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR | LCD_C_FR), /**< PCF2119R 3V3 with Booster, 4/8 bit, I2C */
// PCF2119_5V = | (LCD_C_PAR | LCD_C_I2C), /**< PCF2119 5V no Booster, 4/8 bit, I2C */
- PT6314 = 13 | (LCD_C_PAR | LCD_C_SPI3_16 | LCD_C_CTR), /**< PT6314 VFD, 4/8 bit, SPI3 */
+ PT6314 = 13 | (LCD_C_PAR | LCD_C_SPI3_16 | LCD_C_CTR), /**< PT6314 VFD Controller, 4/8 bit, SPI3 */
+// PT6880 = xx | (LCD_C_PAR | LCD_C_SPI3_16 | LCD_C_CTR), /**< PT6880 OLED controller, 4/8 bit, SPI3 */
SSD1803_3V3 = 14 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR | LCD_C_PDN), /**< SSD1803 3V3 with Booster, 4/8 bit, I2C, SPI3 */
// SSD1803_5V = 15 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR | LCD_C_PDN), /**< SSD1803 3V3 with Booster, 4/8 bit, I2C, SPI3 */
- ST7032_3V3 = 16 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< ST7032 3V3 with Booster, 4/8 bit, SPI4, I2C */
- ST7032_5V = 17 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_CTR), /**< ST7032 5V no Booster, 4/8 bit, SPI4, I2C */
+ ST7032_3V3 = 16 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< ST7032/SPLC792A 3V3 with Booster, 4/8 bit, SPI4, I2C */
+ ST7032_5V = 17 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_CTR), /**< ST7032/SPLC792A 5V no Booster, 4/8 bit, SPI4, I2C */
ST7036_3V3 = 18 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< ST7036 3V3 with Booster, 4/8 bit, SPI4, I2C */
ST7036_5V = 19 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< ST7036 5V no Booster, 4/8 bit, SPI4, I2C */
ST7066_ACM = 20 | (LCD_C_PAR | LCD_C_I2C), /**< ST7066 4/8 bit, I2C on ACM1602 using a PIC */
@@ -242,16 +270,17 @@
US2066_3V3 = 22 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_I2C | LCD_C_CTR | LCD_C_PDN), /**< US2066/SSD1311 3V3, 4/8 bit, I2C, SPI3 */
WS0010 = 23 | (LCD_C_PAR | LCD_C_SPI3_10 | LCD_C_PDN), /**< WS0010/RS0010 OLED Controller, 4/8 bit, SPI3 */
// WS0012 = 24 | (LCD_C_PAR | LCD_C_SPI3_10 | LCD_C_I2C | LCD_C_PDN), /**< WS0012 4/8 bit, SPI, I2C */
- HD66712 = 25 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_BST | LCD_C_PDN) /**< HD66712 Controller, 4/8 bit, SPI3 */
+ HD66712 = 25 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_BST | LCD_C_PDN), /**< HD66712 Controller, 4/8 bit, SPI3 */
+ SPLC792A_3V3 = 26 | (LCD_C_PAR | LCD_C_SPI3_9 | LCD_C_SPI4 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR) /**< ST7032/SPLC792A 3V3 with Booster, 4/8 bit, SPI3, SPI4, I2C */
};
/** LCD Cursor control */
enum LCDCursor {
CurOff_BlkOff = 0x00, /**< Cursor Off, Blinking Char Off */
- CurOn_BlkOff = 0x02, /**< Cursor On, Blinking Char Off */
- CurOff_BlkOn = 0x01, /**< Cursor Off, Blinking Char On */
- CurOn_BlkOn = 0x03 /**< Cursor On, Blinking Char On */
+ CurOff_BlkOn = 0x01, /**< Cursor Off, Blinking Char On */
+ CurOn_BlkOff = 0x02, /**< Cursor On, Blinking Char Off */
+ CurOn_BlkOn = 0x03 /**< Cursor On, Blinking Char On */
};
/** LCD Display control */
@@ -278,6 +307,7 @@
Bottom /**< Upside down view */
};
+#if (LCD_BIGFONT == 1)
/** LCD BigFont control, supported for some Controllers */
enum LCDBigFont {
None, /**< no lines */
@@ -286,15 +316,53 @@
BottomLine, /**< 2+3 line or 3+4 line */
TopBottomLine /**< 1+2 line and 3+4 line */
};
+#endif
+#if (LCD_FONTSEL == 1)
+ /** LCD setFont control.
+ Note: most controllers support only one font and the hardware specific
+ fonttable is encoded as part of the controller type number (eg PCF21XXC or PCF21XXR).
+ Some controllers support multiple tables that can only be selected by logic levels on a few pins.
+ Some controllers also support runtime fontable switching through a specific instruction */
+ enum LCDFont {
+ /**< HD44780 fonttable */
+ Font_0 = LCD_C_F0, /**< default, UK/JAP */
+ /**< PCF21XX fonttables */
+ Font_C = LCD_C_FC, /**< PCF21XXC */
+ Font_R = LCD_C_FR, /**< PCF21XXR */
+ /**< SSD1803 ROM tables */
+ Font_RA = LCD_C_FRA, /**< UK/EU */
+ Font_RB = LCD_C_FRB, /**< UK/Cyrillic */
+ Font_RC = LCD_C_FRC, /**< default, UK/JAP */
+ Font_D = LCD_C_FD, /**< SPLC780D Cyrillic */
+ Font_T = LCD_C_FT /**< ST7066-0T Cyrillic */
+ };
+#endif
+#if ((LCD_C_FONT == 1) || (LCD_R_FONT == 1)) //PCF21xxC or PCF21xxR font
/** Convert ASCII character code to the LCD fonttable code
*
* @param c The character to write to the display
* @return The character code for the specific fonttable of the controller
*/
int ASCII_2_LCD (int c);
+#endif
+#if(LCD_UTF8_FONT == 1)
+ /** Convert UTF8 2-byte character code to the LCD fonttable code
+ * @param c The character to write to the display
+ * @return character code for the specific fonttable of the controller or -1 if UTF8 code is not yet complete or incorrect
+ *
+ * Orig by Andriy, Modified by WH
+ *
+ * Note: The UTF8 decoding table for a specific controller is defined and selected in file TextLCD_UTF8.inc
+ * The table is accessed in this UTF_2_LCD() method through
+ * #define UTF_FIRST, UTF_LAST, UTF_SEQ_REC_FIRST, UTF_SEQ_REC_LAST and
+ * #define UTF_SEQ_RECODE and UTF_RND_RECODE
+ */
+ int UTF_2_LCD (int c);
+#endif
+
#if(LCD_PRINTF != 1)
/** Write a character to the LCD
@@ -399,6 +467,7 @@
void setUDCBlink(LCDBlink blinkMode);
#endif
+#if(LCD_CONTRAST == 1)
/** Set Contrast
* setContrast method is supported by some compatible devices (eg ST7032i) that have onboard LCD voltage generation
* Code imported from fork by JH1PJL
@@ -407,6 +476,7 @@
* @return none
*/
void setContrast(unsigned char c = LCD_DEF_CONTRAST);
+#endif
#if(LCD_POWER == 1)
/** Set Power
@@ -435,10 +505,22 @@
* @param lines The selected Big Font lines (None, TopLine, CenterLine, BottomLine, TopBottomLine)
* Double height characters can be shown on lines 1+2, 2+3, 3+4 or 1+2 and 3+4
* Valid double height lines depend on the LCDs number of rows.
+ * @return none
*/
void setBigFont(LCDBigFont lines);
#endif
+#if(LCD_FONTSEL == 1)
+ /** Set Font
+ * setFont method is supported by some compatible devices (eg SSD1803, US2066, ST7070)
+ *
+ * @param LCDFont font The selected Font
+ * @return none
+ */
+ void setFont(LCDFont font = Font_0);
+#endif
+
+
#if(LCD_ICON==1)
/** Set Icons
*