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.
Dependents: PROTECTOFINAL PROTECTOFINALPWM
Diff: TextLCD.h
- Revision:
- 37:ce348c002929
- Parent:
- 36:9f5f86dfd44a
- Child:
- 38:cbe275b0b647
diff -r 9f5f86dfd44a -r ce348c002929 TextLCD.h
--- a/TextLCD.h Tue Nov 25 19:21:18 2014 +0000
+++ b/TextLCD.h Sun Mar 29 13:08:03 2015 +0000
@@ -1,4 +1,4 @@
-/* mbed TextLCD Library, for a 4-bit LCD based on HD44780
+/* mbed TextLCD Library, for LCDs based on HD44780 controllers
* Copyright (c) 2007-2010, sford, http://mbed.org
* 2013, v01: WH, Added LCD types, fixed LCD address issues, added Cursor and UDCs
* 2013, v02: WH, Added I2C and SPI bus interfaces
@@ -17,6 +17,7 @@
* added 16 UDCs for supported devices (eg PCF2103), moved UDC defines to TextLCD_UDC file, added TextLCD_Config.h for feature and footprint settings.
* 2014, v15: WH, Added AC780 support, added I2C expander modules, fixed setBacklight() for inverted logic modules. Fixed bug in LCD_SPI_N define
* 2014, v16: WH, Added ST7070 and KS0073 support, added setIcon(), clrIcon() and setInvert() method for supported devices
+ * 2015, v17: WH, Clean up low-level _writeCommand() and _writeData(), Added support for alternative fonttables (eg PCF21XX), Added ST7066_ACM controller for ACM1602 module
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -130,21 +131,27 @@
#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 */
+#define LCD_C_FT2 0x00002000 /*Font2 */
/** A TextLCD interface for driving 4-bit HD44780-based LCDs
*
* @brief Currently supports 8x1, 8x2, 12x2, 12x3, 12x4, 16x1, 16x2, 16x3, 16x4, 20x2, 20x4, 24x2, 24x4, 40x2 and 40x4 panels
- * Interface options include direct mbed pins, I2C portexpander (PCF8474/PCF8574A or MCP23008) or SPI bus shiftregister (74595) and some native I2C or SPI devices
- *
+ * Interface options include direct mbed pins, I2C portexpander (PCF8474/PCF8574A or MCP23008) or
+ * SPI bus shiftregister (74595) or native I2C or SPI interfaces for some supported devices.
*/
class TextLCD_Base : public Stream {
-//class TextLCD_Base{
+//class TextLCD_Base {
-//Unfortunately this #define selection breaks Doxygen !!!
+//Unfortunately the following #define selection breaks Doxygen !!!
+//Add it manually when you want to disable the Stream inheritance
//#if (LCD_PRINTF == 1)
//class TextLCD_Base : public Stream {
//#else
-//class TextLCD_Base{
+//class TextLCD_Base {
//#endif
public:
@@ -199,28 +206,32 @@
/** LCD Controller Device */
enum LCDCtrl {
- HD44780 = 0 | LCD_C_PAR, /**< HD44780 or full equivalent (default) */
- WS0010 = 1 | (LCD_C_PAR | LCD_C_SPI3_10 | LCD_C_PDN), /**< WS0010/RS0010 OLED Controller, 4/8 bit, SPI3 */
- ST7036_3V3 = 2 | (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 = 3 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< ST7036 5V no Booster, 4/8 bit, SPI4, I2C */
- ST7032_3V3 = 4 | (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 = 5 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_CTR), /**< ST7032 5V no Booster, 4/8 bit, SPI4, I2C */
- KS0078 = 6 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_PDN), /**< KS0078 24x4 support, 4/8 bit, SPI3 */
- PCF2103_3V3 = 7 | (LCD_C_PAR | LCD_C_I2C), /**< PCF2103 3V3 no Booster, 4/8 bit, I2C */
- PCF2113_3V3 = 8 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< PCF2113 3V3 with Booster, 4/8 bit, I2C */
- PCF2116_3V3 = 9 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST), /**< PCF2116 3V3 with Booster, 4/8 bit, I2C */
- PCF2116_5V = 10 | (LCD_C_PAR | LCD_C_I2C), /**< PCF2116 5V no Booster, 4/8 bit, I2C */
- PCF2119_3V3 = 11 | (LCD_C_PAR | LCD_C_I2C | LCD_C_BST | LCD_C_CTR), /**< PCF2119 3V3 with Booster, 4/8 bit, I2C */
-// PCF2119_5V = 12 | (LCD_C_PAR | LCD_C_I2C), /**< PCF2119 5V no Booster, 4/8 bit, I2C */
- AIP31068 = 13 | (LCD_C_SPI3_9 | LCD_C_I2C | LCD_C_BST), /**< AIP31068 I2C, 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 */
- US2066_3V3 = 16 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_I2C | LCD_C_CTR | LCD_C_PDN), /**< US2066/SSD1311 3V3, 4/8 bit, I2C, SPI3 */
- PT6314 = 17 | (LCD_C_PAR | LCD_C_SPI3_16 | LCD_C_CTR), /**< PT6314 VFD, 4/8 bit, SPI3 */
- AC780 = 18 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_PDN), /**< AC780/KS0066i 4/8 bit, SPI, I2C */
-// WS0012 = 19 | (LCD_C_PAR | LCD_C_SPI3_10 | LCD_C_I2C | LCD_C_PDN), /**< WS0012 4/8 bit, SPI, I2C */
- ST7070 = 20 | (LCD_C_PAR | LCD_C_SPI3_8 | LCD_C_SPI4), /**< ST7070 4/8 bit, SPI3 */
- KS0073 = 21 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_PDN) /**< KS0073 4/8 bit, SPI3 */
+ HD44780 = 0 | LCD_C_PAR, /**< HD44780 or full equivalent (default) */
+ AC780 = 1 | (LCD_C_PAR | LCD_C_SPI4 | LCD_C_I2C | LCD_C_PDN), /**< AC780/KS0066i 4/8 bit, SPI, I2C */
+ AIP31068 = 2 | (LCD_C_SPI3_9 | LCD_C_I2C | LCD_C_BST), /**< AIP31068 I2C, SPI3 */
+ KS0073 = 3 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_PDN), /**< KS0073 4/8 bit, SPI3 */
+ KS0078 = 4 | (LCD_C_PAR | LCD_C_SPI3_24 | LCD_C_PDN), /**< KS0078 24x4 support, 4/8 bit, SPI3 */
+ 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 */
+ 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 */
+ 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 */
+// PCF2119_5V = 12 | (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 */
+ 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 */
+ 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 */
+ ST7070 = 21 | (LCD_C_PAR | LCD_C_SPI3_8 | LCD_C_SPI4), /**< ST7070 4/8 bit, SPI3 */
+ 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 */
+
};
@@ -266,6 +277,14 @@
};
+ /** 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);
+
+
#if(LCD_PRINTF != 1)
/** Write a character to the LCD
*
@@ -436,7 +455,7 @@
_LCDCtrl_1, /*< Secondary */
};
- /** LCD Datalength control to select between 4 or 8 bit data/commands, used for native Serial interface */
+ /** LCD Datalength control to select between 4 or 8 bit data/commands, mainly used for native Serial interface */
enum _LCDDatalength {
_LCD_DL_4 = 0x00, /**< Datalength 4 bit */
_LCD_DL_8 = 0x10 /**< Datalength 8 bit */
@@ -529,17 +548,18 @@
virtual void _writeByte(int value);
//Display type
- LCDType _type;
- int _nr_cols;
+ LCDType _type; // Display type
+ int _nr_cols;
int _nr_rows;
- int _addr_mode;
-
+ int _addr_mode; // Addressing mode of LCDType, defines relation between display row,col and controller memory address
+
//Display mode
LCDMode _currentMode;
//Controller type
- LCDCtrl _ctrl;
-
+ LCDCtrl _ctrl; // Controller type
+ int _font; // ASCII character fonttable
+
//Controller select, mainly used for LCD40x4
_LCDCtrl_Idx _ctrl_idx;
@@ -607,7 +627,6 @@
*/
virtual void _setData(int value);
-
/** Regular mbed pins bus
*/
DigitalOut _rs, _e;
@@ -616,7 +635,7 @@
/** Optional Hardware pins for the Backlight and LCD40x4 device
* Default PinName value is NC, must be used as pointer to avoid issues with mbed lib and DigitalOut pins
*/
- DigitalOut *_bl, *_e2;
+ DigitalOut *_bl, *_e2;
};
//----------- End TextLCD ---------------
@@ -633,7 +652,7 @@
/** Create a TextLCD interface using an I2C PCF8574 (or PCF8574A) or MCP23008 portexpander
*
* @param i2c I2C Bus
- * @param deviceAddress I2C slave address (PCF8574 or PCF8574A, default = PCF8574_SA0 = 0x40)
+ * @param deviceAddress I2C slave address (PCF8574 (or PCF8574A) or MCP23008 portexpander, default = PCF8574_SA0 = 0x40)
* @param type Sets the panel size/addressing mode (default = LCD16x2)
* @param ctrl LCD controller (default = HD44780)
*/
@@ -641,6 +660,13 @@
private:
+/** Place the Enable bit in the databus shadowvalue
+ * Used for mbed I2C portexpander
+ * @param value data to write
+ * @return none
+ */
+ void _setEnableBit(bool value);
+
/** Implementation of pure Virtual Low level writes to LCD Bus (serial expander)
* Set the Enable pin.
*/
@@ -656,24 +682,38 @@
*/
virtual void _setBL(bool value);
+/** Place the 4bit data in the databus shadowvalue
+ * Used for mbed I2C portexpander
+ * @param value data to write
+ * @return none
+ */
+ void _setDataBits(int value);
+
/** Implementation of pure Virtual Low level writes to LCD Bus (serial expander)
* Set the databus value (4 bit).
*/
virtual void _setData(int value);
-
+
+//New optimized
+//Test faster _writeByte 0.11s vs 0.27s for a 20x4 fillscreen (PCF8574)
+//Test faster _writeByte 0.14s vs 0.34s for a 20x4 fillscreen (MCP23008)
+
+/** Low level writes to LCD serial bus expander
+ */
+ virtual void _writeByte(int value);
+
/** Write data to MCP23008 I2C portexpander
* @param reg register to write
* @param value data to write
* @return none
- *
*/
- void _write_register (int reg, int value);
+ void _writeRegister (int reg, int value);
//I2C bus
I2C *_i2c;
char _slaveAddress;
-// Internal bus mirror value for serial bus only
+// Internal bus shadow value for serial bus only
char _lcd_bus;
};
#endif /* I2C Expander PCF8574/MCP23008 */
@@ -718,28 +758,82 @@
/** Implementation of pure Virtual Low level writes to LCD Bus (serial expander)
* Set the databus value (4 bit).
*/
- virtual void _setData(int value);
-
-/** Implementation of Low level writes to LCD Bus (serial expander)
- * Set the CS pin (0 = select, 1 = deselect).
- */
- virtual void _setCS(bool value);
-
-///** Low level writes to LCD serial bus only (serial expander)
-// */
-// void _writeBus();
+ virtual void _setData(int value);
// SPI bus
SPI *_spi;
DigitalOut _cs;
-// Internal bus mirror value for serial bus only
+// Internal bus shadow value for serial bus only
char _lcd_bus;
};
#endif /* SPI Expander SN74595 */
//---------- End TextLCD_SPI ------------
+//--------- Start TextLCD_I2C_N -----------
+#if(LCD_I2C_N == 1) /* Native I2C */
+
+/** Create a TextLCD interface using a controller with native I2C interface
+ *
+ */
+class TextLCD_I2C_N : public TextLCD_Base {
+public:
+ /** Create a TextLCD interface using a controller with native I2C interface
+ *
+ * @param i2c I2C Bus
+ * @param deviceAddress I2C slave address (default = ST7032_SA = 0x7C)
+ * @param type Sets the panel size/addressing mode (default = LCD16x2)
+ * @param bl Backlight control line (optional, default = NC)
+ * @param ctrl LCD controller (default = ST7032_3V3)
+ */
+ TextLCD_I2C_N(I2C *i2c, char deviceAddress = ST7032_SA, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = ST7032_3V3);
+
+ /** Destruct a TextLCD interface using a controller with native I2C interface
+ */
+ virtual ~TextLCD_I2C_N(void);
+
+private:
+
+/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
+ * Set the Enable pin.
+ */
+ virtual void _setEnable(bool value);
+
+/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
+ * Set the RS pin ( 0 = Command, 1 = Data).
+ */
+ virtual void _setRS(bool value);
+
+/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
+ * Set the BL pin (0 = Backlight Off, 1 = Backlight On).
+ */
+ virtual void _setBL(bool value);
+
+/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
+ * Set the databus value (4 bit).
+ */
+ virtual void _setData(int value);
+
+/** Low level writes to LCD serial bus only (serial native)
+ */
+ virtual void _writeByte(int value);
+
+//I2C bus
+ I2C *_i2c;
+ char _slaveAddress;
+
+// controlbyte to select between data and command. Internal shadow value for serial bus only
+ char _controlbyte;
+
+//Backlight
+ DigitalOut *_bl;
+
+};
+#endif /* Native I2C */
+//---------- End TextLCD_I2C_N ------------
+
+
//--------- Start TextLCD_SPI_N -----------
#if(LCD_SPI_N == 1) /* Native SPI bus */
@@ -758,6 +852,9 @@
* @param ctrl LCD controller (default = ST7032_3V3)
*/
TextLCD_SPI_N(SPI *spi, PinName cs, PinName rs, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = ST7032_3V3);
+
+ /** Destruct a TextLCD interface using a controller with native SPI4 interface
+ */
virtual ~TextLCD_SPI_N(void);
private:
@@ -800,7 +897,10 @@
//-------- Start TextLCD_SPI_N_3_8 --------
#if(LCD_SPI_N_3_8 == 1) /* Native SPI bus */
-
+/** Create a TextLCD interface using a controller with native SPI3 8 bits interface
+ * This mode is supported by ST7070.
+ *
+ */
class TextLCD_SPI_N_3_8 : public TextLCD_Base {
public:
/** Create a TextLCD interface using a controller with a native SPI3 8 bits interface
@@ -815,6 +915,8 @@
*/
TextLCD_SPI_N_3_8(SPI *spi, PinName cs, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = ST7070);
+ /** Destruct a TextLCD interface using a controller with native SPI3_8 interface
+ */
virtual ~TextLCD_SPI_N_3_8(void);
private:
@@ -847,7 +949,7 @@
SPI *_spi;
DigitalOut _cs;
-// controlbyte to select between data and command. Internal value for serial bus only
+// controlbyte to select between data and command. Internal shadow value for serial bus only
char _controlbyte;
//Backlight
@@ -858,7 +960,6 @@
//------- End TextLCD_SPI_N_3_8 -----------
-
//------- Start TextLCD_SPI_N_3_9 ---------
#if(LCD_SPI_N_3_9 == 1) /* Native SPI bus */
//Code checked out on logic analyser. Not yet tested on hardware..
@@ -879,6 +980,9 @@
* @param ctrl LCD controller (default = AIP31068)
*/
TextLCD_SPI_N_3_9(SPI *spi, PinName cs, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = AIP31068);
+
+ /** Destruct a TextLCD interface using a controller with native SPI3_9 interface
+ */
virtual ~TextLCD_SPI_N_3_9(void);
private:
@@ -911,7 +1015,7 @@
SPI *_spi;
DigitalOut _cs;
-// controlbyte to select between data and command. Internal value for serial bus only
+// controlbyte to select between data and command. Internal shadow value for serial bus only
char _controlbyte;
//Backlight
@@ -940,6 +1044,9 @@
* @param ctrl LCD controller (default = AIP31068)
*/
TextLCD_SPI_N_3_10(SPI *spi, PinName cs, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = AIP31068);
+
+ /** Destruct a TextLCD interface using a controller with native SPI3_10 interface
+ */
virtual ~TextLCD_SPI_N_3_10(void);
private:
@@ -972,7 +1079,7 @@
SPI *_spi;
DigitalOut _cs;
-// controlbyte to select between data and command. Internal value for serial bus only
+// controlbyte to select between data and command. Internal shadow value for serial bus only
char _controlbyte;
//Backlight
@@ -985,7 +1092,6 @@
//------- Start TextLCD_SPI_N_3_16 ---------
#if(LCD_SPI_N_3_16 == 1) /* Native SPI bus */
-//Code checked out on logic analyser. Not yet tested on hardware..
/** Create a TextLCD interface using a controller with native SPI3 16 bits interface
*
@@ -1001,6 +1107,9 @@
* @param ctrl LCD controller (default = PT6314)
*/
TextLCD_SPI_N_3_16(SPI *spi, PinName cs, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = PT6314);
+
+ /** Destruct a TextLCD interface using a controller with native SPI3_16 interface
+ */
virtual ~TextLCD_SPI_N_3_16(void);
private:
@@ -1033,7 +1142,7 @@
SPI *_spi;
DigitalOut _cs;
-// controlbyte to select between data and command. Internal value for serial bus only
+// controlbyte to select between data and command. Internal shadow value for serial bus only
char _controlbyte;
//Backlight
@@ -1062,6 +1171,9 @@
* @param ctrl LCD controller (default = SSD1803)
*/
TextLCD_SPI_N_3_24(SPI *spi, PinName cs, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = SSD1803_3V3);
+
+ /** Destruct a TextLCD interface using a controller with native SPI3_24 interface
+ */
virtual ~TextLCD_SPI_N_3_24(void);
private:
@@ -1103,64 +1215,4 @@
#endif /* Native SPI bus */
//-------- End TextLCD_SPI_N_3_24 ----------
-
-//--------- Start TextLCD_I2C_N -----------
-#if(LCD_I2C_N == 1) /* Native I2C */
-
-/** Create a TextLCD interface using a controller with native I2C interface
- *
- */
-class TextLCD_I2C_N : public TextLCD_Base {
-public:
- /** Create a TextLCD interface using a controller with native I2C interface
- *
- * @param i2c I2C Bus
- * @param deviceAddress I2C slave address (default = ST7032_SA = 0x7C)
- * @param type Sets the panel size/addressing mode (default = LCD16x2)
- * @param bl Backlight control line (optional, default = NC)
- * @param ctrl LCD controller (default = ST7032_3V3)
- */
- TextLCD_I2C_N(I2C *i2c, char deviceAddress = ST7032_SA, LCDType type = LCD16x2, PinName bl = NC, LCDCtrl ctrl = ST7032_3V3);
- virtual ~TextLCD_I2C_N(void);
-
-private:
-
-/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
- * Set the Enable pin.
- */
- virtual void _setEnable(bool value);
-
-/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
- * Set the RS pin ( 0 = Command, 1 = Data).
- */
- virtual void _setRS(bool value);
-
-/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
- * Set the BL pin (0 = Backlight Off, 1 = Backlight On).
- */
- virtual void _setBL(bool value);
-
-/** Implementation of pure Virtual Low level writes to LCD Bus (serial native)
- * Set the databus value (4 bit).
- */
- virtual void _setData(int value);
-
-/** Low level writes to LCD serial bus only (serial native)
- */
- virtual void _writeByte(int value);
-
-//I2C bus
- I2C *_i2c;
- char _slaveAddress;
-
-// controlbyte to select between data and command. Internal value for serial bus only
- char _controlbyte;
-
-//Backlight
- DigitalOut *_bl;
-
-};
-#endif /* Native I2C */
-//---------- End TextLCD_I2C_N ------------
-
#endif