Basic library for SHARP LCD LS027B4DH01/LS027B7DH01

Dependents:   AkiSpiLcd_demo AkiSpiLcd_demo2 LCDRAM AkiSpiLcd_example

Revision:
3:f835b8daf9a0
Parent:
2:01979b296ab5
Child:
4:844693a617dc
--- a/AkiSpiLcd.cpp	Tue May 06 17:25:03 2014 +0000
+++ b/AkiSpiLcd.cpp	Thu Aug 28 01:51:04 2014 +0000
@@ -5,14 +5,14 @@
 #include "mbed.h"
 #include "AkiSpiLcd.h"
 
-AkiSpiLcd::AkiSpiLcd(PinName mosi,PinName sck, PinName cs, PinName disp)
-    :_spi(mosi,NC,sck), _cs(cs), _disp(disp)
+AkiSpiLcd::AkiSpiLcd(PinName mosi,PinName sck, PinName csl, PinName csr)
+    :_spi(mosi,NC,sck), _csl(csl), _csr(csr)
 {
-    _cs=0;
+    _csl=0;
     _spi.format(8,0);
     _spi.frequency(2000000);
     comflag = modeflag = clearflag = 0;
-    _disp=1;
+    _csr=0;
 }
 
 void AkiSpiLcd::cls()
@@ -20,14 +20,14 @@
     modeflag=0;
     clearflag=1;
 
-    _cs=1;
+    _csl=1;
     wait_us(5);
 
     _spi.write( (modeflag << 7) | (comflag << 6) | (clearflag << 5) );
     _spi.write(0x00);
 
     wait_us(5);
-    _cs=0;
+    _csl=0;
 
     if(comflag == 0) {
         comflag = 1;
@@ -36,15 +36,16 @@
     }
 }
 
-void AkiSpiLcd::updateSingle(int line, uint8_t* data)
+void AkiSpiLcd::directUpdateSingle(int line, uint8_t* data)
 {
     modeflag=1;
     clearflag=0;
 
-    _cs=1;
+    _csl=1;
     wait_us(5);
 
     _spi.write( (modeflag << 7) | (comflag << 6) | (clearflag << 5) );
+
     _spi.write(
         ( ( (line+1) & 0x01 ) << 7 )|
         ( ( (line+1) & 0x02 ) << 5 )|
@@ -55,7 +56,6 @@
         ( ( (line+1) & 0x40 ) >> 5 )|
         ( ( (line+1) & 0x80 ) >> 7 )
     );
-
     for(int i=0; i<50; i++) {
         _spi.write( *(data+i) );
     }
@@ -63,7 +63,7 @@
     _spi.write(0x00);
 
     wait_us(5);
-    _cs=0;
+    _csl=0;
 
     if(comflag == 0) {
         comflag = 1;
@@ -72,13 +72,13 @@
     }
 }
 
-void AkiSpiLcd::updateMulti(int line, int length, uint8_t* data)
+void AkiSpiLcd::directUpdateMulti(int line, int length, uint8_t* data)
 {
     modeflag=1;
     clearflag=0;
 
     if(length>0) {
-        _cs=1;
+        _csl=1;
         wait_us(5);
         for (int j=0; j<length; j++) {
             _spi.write( (modeflag << 7) | (comflag << 6) | (clearflag << 5) );
@@ -101,7 +101,7 @@
         _spi.write(0x00);
         _spi.write(0x00);
         wait_us(5);
-        _cs=0;
+        _csl=0;
     }
     if(comflag == 0) {
         comflag = 1;
@@ -115,24 +115,25 @@
     modeflag=0;
     clearflag=0;
 
-    _cs=1;
+    _csl=1;
 
     _spi.write( (modeflag << 7) | (comflag << 6) | (clearflag << 5) );
     _spi.write(0x00);
     wait_us(5);
-    _cs=0;
+    _csl=0;
     if(comflag == 0) {
         comflag = 1;
     } else {
         comflag = 0;
     }
 }
-
+/*
 void AkiSpiLcd::dispOn(bool disp)
 {
     if(disp) {
-        _disp=1;
+        _csr=1;
     } else {
-        _disp=0;
+        _csr=0;
     }
 }
+*/