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: Menu_IHM Menu_IHM Teste_2Motores_Joystick_copy
Fork of TextLCD by
Diff: TextLCD.cpp
- Revision:
- 18:bd65dc10f27f
- Parent:
- 17:652ab113bc2e
- Child:
- 19:c747b9e2e7b8
diff -r 652ab113bc2e -r bd65dc10f27f TextLCD.cpp
--- a/TextLCD.cpp Sat Mar 02 16:51:01 2013 +0000
+++ b/TextLCD.cpp Sat Mar 09 19:39:53 2013 +0000
@@ -3,7 +3,8 @@
* 2013, v01: WH, Added LCD types, fixed LCD address issues, added Cursor and UDCs
* 2013, v02: WH, Added I2C and SPI bus interfaces
* 2013, v03: WH, Added support for LCD40x4 which uses 2 controllers
- * 2013, v04: WH, Added support for Display On/Off, improved 4bit bootprocess
+ * 2013, v04: WH, Added support for Display On/Off, improved 4bit bootprocess
+ * 2013, v05: WH, Added support for 8x2B, added some UDCs
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -172,10 +173,32 @@
_writeByte(0x2); // 4-bit mode
wait_us(40); // most instructions take 40us
#endif
+
+ // Display is now in 4-bit mode
+
+#if(0)
+ // ST7036 controller: Initialise Voltage booster for VLCD. VDD=5V
+ // Note: supports 1,2 or 3 lines
+ _writeByte( 0x29 ); // 4-bit Databus, 2 Lines, Select Instruction table 1
+ wait_us(27); // > 26,3ms
+ _writeByte( 0x14 ); // Bias: 1/5, 2-Lines LCD
+ wait_us(30); // > 26,3ms
+ _writeByte( 0x55 ); // Icon off, Booster on, Set Contrast C5, C4
+ wait_us(30); // > 26,3ms
+ _writeByte( 0x6d ); // Voltagefollower On, Ampl ratio Rab2, Rab1, Rab0
+ wait_ms(200); // > 200ms!
+ _writeByte( 0x78 ); // Set Contrast C3, C2, C1, C0
+ wait_us(30); // > 26,3ms
+ _writeByte( 0x28 ); // Return to Instruction table 0
+ wait_ms(50);
+#endif
- // Display is now in 4-bit mode
+ // Initialise Display configuration
switch (_type) {
case LCD8x1:
+ case LCD8x2B:
+ //8x1 is a regular 1 line display
+ //8x2B is a special case of 16x1
_writeCommand(0x20); // Function set 001 DL N F - -
// DL=0 (4 bits bus)
// N=0 (1 line)
@@ -611,7 +634,15 @@
switch (_type) {
case LCD8x1:
return 0x00 + column;
-
+
+ case LCD8x2B:
+ // LCD8x2B is a special layout of LCD16x1
+ if (row==0)
+ return 0x00 + column;
+ else
+ return 0x08 + column;
+
+
case LCD16x1:
// LCD16x1 is a special layout of LCD8x2
if (column<8)
@@ -672,7 +703,7 @@
case LCD16x2B:
return 0x00 + (row * 40) + column;
- case LCD8x2:
+ case LCD8x2:
case LCD12x2:
case LCD16x2:
case LCD20x2:
@@ -756,6 +787,7 @@
switch (_type) {
case LCD8x1:
case LCD8x2:
+ case LCD8x2B:
return 8;
case LCD12x2:
@@ -793,6 +825,7 @@
return 1;
case LCD8x2:
+ case LCD8x2B:
case LCD12x2:
case LCD16x2:
case LCD16x2B:
