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:
- 19:c747b9e2e7b8
- Parent:
- 18:bd65dc10f27f
- Child:
- 20:e0da005a777f
diff -r bd65dc10f27f -r c747b9e2e7b8 TextLCD.h
--- a/TextLCD.h Sat Mar 09 19:39:53 2013 +0000
+++ b/TextLCD.h Fri Apr 19 19:36:37 2013 +0000
@@ -5,6 +5,7 @@
* 2013, v03: WH, Added support for LCD40x4 which uses 2 controllers
* 2013, v04: WH, Added support for Display On/Off, improved 4bit bootprocess
* 2013, v05: WH, Added support for 8x2B, added some UDCs
+ * 2013, v06: WH, Added support for devices that use internal DC/DC converters
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -35,6 +36,7 @@
*
* Currently supports 8x1, 8x2, 12x4, 16x1, 16x2, 16x4, 20x2, 20x4, 24x2, 24x4, 40x2 and 40x4 panels
* Interface options include direct mbed pins, I2C portexpander (PCF8474) or SPI bus shiftregister (74595)
+ * Supports some controllers that provide internal DC/DC converters for VLCD or VLED.
*
* @code
* #include "mbed.h"
@@ -49,6 +51,7 @@
* TextLCD lcd(p15, p16, p17, p18, p19, p20); // RS, E, D4-D7, LCDType=LCD16x2
* //TextLCD lcd(&spi_lcd, p8, TextLCD::LCD40x4); // SPI bus, CS pin, LCD Type
* //TextLCD lcd(&i2c_lcd, 0x42, TextLCD::LCD20x4); // I2C bus, PCF8574 Slaveaddress, LCD Type
+ * //TextLCD lcd(&i2c_lcd, 0x42, TextLCD::LCD16x2, TextLCD::WS0010); // I2C bus, PCF8574 Slaveaddress, LCD Type, Device Type
*
* int main() {
* lcd.printf("Hello World!\n");
@@ -157,6 +160,14 @@
LCD40x4 /**< 40x4 LCD panel, Two controller version */
};
+ /** LCD Controller Device */
+ enum LCDCtrl {
+ HD44780, /**< HD44780 (default) */
+ WS0010, /**< WS0010 OLED Controller */
+ ST7063 /**< ST7063 */
+ };
+
+
/** LCD Cursor control */
enum LCDCursor {
CurOff_BlkOff = 0x00, /**< Cursor Off, Blinking Char Off */
@@ -179,17 +190,19 @@
* @param e Enable line (clock)
* @param d4-d7 Data lines for using as a 4-bit interface
* @param type Sets the panel size/addressing mode (default = LCD16x2)
- * @param e2 Enable2 line (clock for second controller, LCD40x4 only)
+ * @param e2 Enable2 line (clock for second controller, LCD40x4 only)
+ * @param ctrl LCD controller (default = HD44780)
*/
- TextLCD(PinName rs, PinName e, PinName d4, PinName d5, PinName d6, PinName d7, LCDType type = LCD16x2, PinName e2 = NC);
+ TextLCD(PinName rs, PinName e, PinName d4, PinName d5, PinName d6, PinName d7, LCDType type = LCD16x2, PinName e2 = NC, LCDCtrl ctrl = HD44780);
/** Create a TextLCD interface using an I2C PC8574 portexpander
*
* @param i2c I2C Bus
* @param deviceAddress I2C slave address (PCF8574)
* @param type Sets the panel size/addressing mode (default = LCD16x2)
+ * @param ctrl LCD controller (default = HD44780)
*/
- TextLCD(I2C *i2c, char deviceAddress, LCDType type = LCD16x2);
+ TextLCD(I2C *i2c, char deviceAddress, LCDType type = LCD16x2, LCDCtrl ctrl = HD44780);
/** Create a TextLCD interface using an SPI 74595 portexpander
@@ -197,8 +210,9 @@
* @param spi SPI Bus
* @param cs chip select pin (active low)
* @param type Sets the panel size/addressing mode (default = LCD16x2)
+ * @param ctrl LCD controller (default = HD44780)
*/
- TextLCD(SPI *spi, PinName cs, LCDType type = LCD16x2);
+ TextLCD(SPI *spi, PinName cs, LCDType type = LCD16x2, LCDCtrl ctrl = HD44780);
#if DOXYGEN_ONLY
@@ -286,7 +300,7 @@
};
/* LCD controller select, mainly used for LCD40x4 */
- enum _LCDCtrl {
+ enum _LCDCtrl_Idx {
_LCDCtrl_0, /*< Primary */
_LCDCtrl_1, /*< Secondary */
};
@@ -343,8 +357,11 @@
//Display type
LCDMode _currentMode;
+//Controller type
+ LCDCtrl _ctrl;
+
//Controller select, mainly used for LCD40x4
- _LCDCtrl _ctrl;
+ _LCDCtrl_Idx _ctrl_idx;
// Cursor
int _column;