Library for interfacing to Nokia 5110 LCD display (as found on the SparkFun website).

Dependents:   LV7_LCDtest LV7_Grupa5_Tim003_Zadatak1 lv7_Grupa5_Tim008_zad1 LV7_PAI_Grupa5_tim10_Zadatak1 ... more

This library is designed to make it easy to interface an mbed with a Nokia 5110 LCD display.

These can be found at Sparkfun (https://www.sparkfun.com/products/10168) and Adafruit (http://www.adafruit.com/product/338).

The library uses the SPI peripheral on the mbed which means it is much faster sending data to the display than other libraries available on other platforms that use software SPI.

The library can print strings as well as controlling individual pixels, meaning that both text and primitive graphics can be displayed.

Revision:
19:ba8addc061ea
Parent:
18:1af393359298
Child:
20:8db6aa25f55e
--- a/N5110.cpp	Wed Apr 22 12:41:45 2015 +0000
+++ b/N5110.cpp	Thu Apr 23 18:57:52 2015 +0000
@@ -179,6 +179,7 @@
     if (x>=0 && x<WIDTH && y>=0 && y<HEIGHT) {  // check within range
         // return relevant bank and mask required bit
         return (int) buffer[x][y/8] & (1 << y%8);
+        // note this does not necessarily return 1 - a non-zero number represents a pixel
     } else {
         return 0;
     }
@@ -220,11 +221,11 @@
 // function to print 5x7 font
 void N5110::printChar(char c,int x,int y)
 {
-    if (y>=0 && y<6) {  // check if printing in range of y banks
+    if (y>=0 && y<BANKS) {  // check if printing in range of y banks
 
         for (int i = 0; i < 5 ; i++ ) {
             int pixel_x = x+i;
-            if (pixel_x > 83)  // ensure pixel isn't outside the buffer size (0 - 83)
+            if (pixel_x > WIDTH-1)  // ensure pixel isn't outside the buffer size (0 - 83)
                 break;
             buffer[pixel_x][y] = font5x7[(c - 32)*5 + i];
             // array is offset by 32 relative to ASCII, each character is 5 pixels wide
@@ -237,7 +238,7 @@
 // function to print string at specified position
 void N5110::printString(const char * str,int x,int y)
 {
-    if (y>=0 && y<6) {  // check if printing in range of y banks
+    if (y>=0 && y<BANKS) {  // check if printing in range of y banks
 
         int n = 0 ; // counter for number of characters in string
         // loop through string and print character
@@ -247,7 +248,7 @@
             // text and pixels can be displayed at the same time
             for (int i = 0; i < 5 ; i++ ) {
                 int pixel_x = x+i+n*6;
-                if (pixel_x > 83) // ensure pixel isn't outside the buffer size (0 - 83)
+                if (pixel_x > WIDTH-1) // ensure pixel isn't outside the buffer size (0 - 83)
                     break;
                 buffer[pixel_x][y] = font5x7[(*str - 32)*5 + i];
             }
@@ -337,7 +338,6 @@
         }
     }
 
-    refresh();
 }
 
 void N5110::drawLine(int x0,int y0,int x1,int y1,int type)
@@ -386,7 +386,6 @@
         }
     }
 
-    refresh();
 }
 
 void N5110::drawRect(int x0,int y0,int width,int height,int fill)