This includes all known improvements from other people's spins on the Nokia library, including Alistair Popple's fix to the very poor contrast on newer LCD 6100 displays.

Fork of NokiaLCD by Iftekhar Choudhury

Revision:
3:ea0c085881f3
Parent:
1:8f005b0dcfa7
Child:
4:0a17a8a82c4c
--- a/NokiaLCD.cpp	Fri Nov 19 22:12:28 2010 +0000
+++ b/NokiaLCD.cpp	Tue Mar 05 18:52:17 2013 +0000
@@ -9,7 +9,7 @@
 #define NOKIALCD_ROWS 16
 #define NOKIALCD_COLS 16
 #define NOKIALCD_WIDTH 130
-#define NOKIALCD_HEIGHT 130
+#define NOKIALCD_HEIGHT 132
 #define NOKIALCD_FREQUENCY 5000000
 
 NokiaLCD::NokiaLCD(PinName mosi, PinName sclk, PinName cs, PinName rst, LCDType type)
@@ -67,7 +67,7 @@
         case LCD6610:
             command(0xCA);    // display control
             data(0);
-            data(31);
+            data(32);
             data(0);
             command(0xBB);
             data(1);
@@ -115,7 +115,7 @@
 }
 
 void NokiaLCD::_window(int x, int y, int width, int height) {
-    int x1 = x + 2;
+    int x1 = x + 0;
     int y1 = y + 0;
     int x2 = x1 + width - 1;
     int y2 = y1 + height - 1;
@@ -322,14 +322,14 @@
         case LCD6610:
             for (int i=0; i<width*height/2; i++) {
                 int r4 = (colour >> (16 + 4)) & 0xF;
-    	        int g4 = (colour >> (8 + 4)) & 0xF;
+                int g4 = (colour >> (8 + 4)) & 0xF;
                 int b4 = (colour >> (0 + 4)) & 0xF;
-        	    int d1 = (r4 << 4) | g4;
+                int d1 = (r4 << 4) | g4;
                 int d2 = (b4 << 4) | r4;
                 int d3 = (g4 << 4) | b4;
                 data(d1); 
-    	        data(d2);   
-    	        data(d3);
+                data(d2);   
+                data(d3);
             }
             break;
     }
@@ -350,19 +350,19 @@
              break;
         case LCD6610:
             for (int i=0; i<width*height/2; i++) {
-        	    int r41 = (colour[i*2] >> (16 + 4)) & 0xF;
-        	    int g41 = (colour[i*2] >> (8 + 4)) & 0xF;
-        	    int b41 = (colour[i*2] >> (0 + 4)) & 0xF;
-    	   
+                int r41 = (colour[i*2] >> (16 + 4)) & 0xF;
+                int g41 = (colour[i*2] >> (8 + 4)) & 0xF;
+                int b41 = (colour[i*2] >> (0 + 4)) & 0xF;
+           
                 int r42 = (colour[i*2+1] >> (16 + 4)) & 0xF;
-        	    int g42 = (colour[i*2+1] >> (8 + 4)) & 0xF;
-        	    int b42 = (colour[i*2+1] >> (0 + 4)) & 0xF;   
-        	    int d1 = (r41 << 4) | g41;
-        	    int d2 = (b41 << 4) | r42;
-        	    int d3 = (g42 << 4) | b42;               
-       	        data(d1); 
-    	        data(d2); 
-    	        data(d3); 
+                int g42 = (colour[i*2+1] >> (8 + 4)) & 0xF;
+                int b42 = (colour[i*2+1] >> (0 + 4)) & 0xF;   
+                int d1 = (r41 << 4) | g41;
+                int d2 = (b41 << 4) | r42;
+                int d3 = (g42 << 4) | b42;               
+                   data(d1); 
+                data(d2); 
+                data(d3); 
             }
             break;
      }            
@@ -388,24 +388,24 @@
             for(int i=0; i<height*width/2; i++) {
                 int byte1 = (i*2) / 8;
                 int bit1 = (i*2) % 8;   
-        	    int colour1 = ((bitstream[byte1] << bit1) & 0x80) ? _foreground : _background;
-        	    int byte2 = (i*2+1) / 8;
+                int colour1 = ((bitstream[byte1] << bit1) & 0x80) ? _foreground : _background;
+                int byte2 = (i*2+1) / 8;
                 int bit2 = (i*2+1) % 8;   
                 int colour2 = ((bitstream[byte2] << bit2) & 0x80) ? _foreground : _background;
-	
-        	    int r41 = (colour1 >> (16 + 4)) & 0xF;
-        	    int g41 = (colour1 >> (8 + 4)) & 0xF;
-        	    int b41 = (colour1 >> (0 + 4)) & 0xF;
-    	   
+    
+                int r41 = (colour1 >> (16 + 4)) & 0xF;
+                int g41 = (colour1 >> (8 + 4)) & 0xF;
+                int b41 = (colour1 >> (0 + 4)) & 0xF;
+           
                 int r42 = (colour2 >> (16 + 4)) & 0xF;
-        	    int g42 = (colour2 >> (8 + 4)) & 0xF;
-        	    int b42 = (colour2 >> (0 + 4)) & 0xF;   
-        	    int d1 = (r41 << 4) | g41;
-        	    int d2 = (b41 << 4) | r42;
-        	    int d3 = (g42 << 4) | b42;               
-       	        data(d1); 
-    	        data(d2); 
-    	        data(d3); 
+                int g42 = (colour2 >> (8 + 4)) & 0xF;
+                int b42 = (colour2 >> (0 + 4)) & 0xF;   
+                int d1 = (r41 << 4) | g41;
+                int d2 = (b41 << 4) | r42;
+                int d3 = (g42 << 4) | b42;               
+                   data(d1); 
+                data(d2); 
+                data(d3); 
             }
             break;
      }