Revision:
2:1c5dea5d8783
Parent:
1:0eb3365ec819
Child:
3:704f87be7993
--- a/I2CTextLCD.cpp	Sun Dec 19 19:19:39 2010 +0000
+++ b/I2CTextLCD.cpp	Thu Dec 23 12:42:37 2010 +0000
@@ -36,13 +36,14 @@
      *
      */
 
-I2CTextLCD::I2CTextLCD(PinName sda, PinName scl, int i2cAddress , int columns, int rows) :
-        _i2c(sda, scl) {
+I2CTextLCD::I2CTextLCD(PinName sda, PinName scl, int i2cAddress , int columns, int rows,
+                       bool backlight) : _i2c(sda, scl) {
 
     _i2cAddress = i2cAddress;
     _columns = columns;
     _rows = rows;
-    _backlight=true;
+    _backlight=backlight;
+  
 
     // Should theoretically wait 15ms, but most things will be powered up pre-reset
     // so i'll disable that for the minute. If implemented, could wait 15ms post reset
@@ -62,6 +63,8 @@
     writeCommand(0x6);  //  Cursor Direction and Display Shift : 0000 01 CD S (CD 0-left, 1-right S(hift) 0-no, 1-yes
 
     cls();
+
+
 }
 
 int I2CTextLCD::_putc(int value) {
@@ -77,8 +80,12 @@
     return 0;
 }
 
-void I2CTextLCD::backlight(bool on) {
-  _backlight=on;
+void I2CTextLCD::backlight(bool status) {
+    _backlight=status;
+    if (_backlight)
+        writeI2CByte(BACKLIGHT_ON | E_ON);
+    else
+        writeI2CByte(E_ON);
 }
 
 
@@ -129,7 +136,7 @@
     writeI2CByte(data | E_ON); // E=1
 
     wait(0.000040f);
-    writeI2CByte(data );   // E=0
+    writeI2CByte(data);   // E=0
 
     wait(0.000040f);
     writeI2CByte(data | E_ON);  // E=1
@@ -163,3 +170,6 @@
 }
 
 
+
+
+