Nokia 5110 Library

Files at this revision

API Documentation at this revision

Comitter:
tomazitas
Date:
Fri Jan 14 21:36:29 2022 +0000
Parent:
50:c299b1099189
Commit message:
...

Changed in this revision

N5110.cpp Show annotated file Show diff for this revision Revisions of this file
N5110.h Show annotated file Show diff for this revision Revisions of this file
diff -r c299b1099189 -r f3b30020324f N5110.cpp
--- a/N5110.cpp	Wed Jan 15 16:41:35 2020 +0000
+++ b/N5110.cpp	Fri Jan 14 21:36:29 2022 +0000
@@ -56,17 +56,18 @@
 void N5110::init()
 {
     turnOn();     // power up
+      wait_ms(10);  // small delay seems to prevent spurious pixels during mbed reset
     reset();      // reset LCD - must be done within 100 ms
-    initSPI();    
+   // initSPI();    
     
-    setContrast(0.5);  // this may need tuning (say 0.4 to 0.6)
-    setBias(5);   // datasheet - 48:1 mux - don't mess with if you don't know what you're doing! (0 to 7)
+    setContrast(0.55);  // this may need tuning (say 0.4 to 0.6)
+    setBias(3);   // datasheet - 48:1 mux - don't mess with if you don't know what you're doing! (0 to 7)
     setTempCoefficient(0); // datasheet - may need increasing (range 0 to 3) at very low temperatures
     normalMode();  // normal video mode by default
     
     clearRAM();      // RAM is undefined at power-up so clear to be sure
     clear();   // clear buffer
-    setBrightness(0.1);
+    setBrightness(0.5);
 }
 
 // sets normal video mode (black on white)
@@ -188,8 +189,8 @@
 // function to initialise SPI peripheral
 void N5110::initSPI()
 {
-    _spi->format(8,0);    // 8 bits, Mode 1 - polarity 0, phase 1 - base value of clock is 0, data captured on falling edge/propagated on rising edge
-    _spi->frequency(2250000);  // maximum of screen is 4 MHz
+    _spi->format(8,1);    // 8 bits, Mode 1 - polarity 0, phase 1 - base value of clock is 0, data captured on falling edge/propagated on rising edge
+    _spi->frequency(4000000);  // maximum of screen is 4 MHz
 }
 
 // send a command to the display
@@ -283,8 +284,8 @@
 
     _sce->write(0);  //set CE low to begin frame
 
-    for(int j = BANKS-1; j>=0; j--) {  // be careful to use correct order (j,i) for horizontal addressing
-        for(int i =WIDTH-1; i>=0; i--) {
+    for(int j = 0; j < BANKS; j++) {  // be careful to use correct order (j,i) for horizontal addressing
+        for(int i = 0; i < WIDTH; i++) {
             _spi->write(buffer[i][j]);  // send buffer
         }
     }
diff -r c299b1099189 -r f3b30020324f N5110.h
--- a/N5110.h	Wed Jan 15 16:41:35 2020 +0000
+++ b/N5110.h	Fri Jan 14 21:36:29 2022 +0000
@@ -23,10 +23,10 @@
 @brief The library can print primitive shapes (lines, circles, rectangles)
 @brief Acknowledgements to Chris Yan's Nokia_5110 Library.
 
-@brief Revision 1.3
+@brief Revision 1.4
 
-@author Craig A. Evans
-@date   7th February 2017
+@upgraded Dr. Edmond Nurellari
+@date   1st  December  2021
 
 @code
 
@@ -433,486 +433,102 @@
 };
 
 const unsigned char font5x7[480] = {
-    0x0, 
-0x0, 
-0x0, 
-0x0, 
-0x0, 
-0x0, 
-0x0, 
-0x7d, 
-0x0, 
-0x0, 
-0x0, 
-0x70, 
-0x0, 
-0x70, 
-0x0, 
-0x14, 
-0x7f, 
-0x14, 
-0x7f, 
-0x14, 
-0x12, 
-0x2a, 
-0x7f, 
-0x2a, 
-0x24, 
-0x62, 
-0x64, 
-0x8, 
-0x13, 
-0x23, 
-0x36, 
-0x49, 
-0x55, 
-0x22, 
-0x5, 
-0x0, 
-0x50, 
-0x60, 
-0x0, 
-0x0, 
-0x0, 
-0x1c, 
-0x22, 
-0x41, 
-0x0, 
-0x0, 
-0x41, 
-0x22, 
-0x1c, 
-0x0, 
-0x8, 
-0x2a, 
-0x1c, 
-0x2a, 
-0x8, 
-0x8, 
-0x8, 
-0x3e, 
-0x8, 
-0x8, 
-0x0, 
-0x5, 
-0x6, 
-0x0, 
-0x0, 
-0x8, 
-0x8, 
-0x8, 
-0x8, 
-0x8, 
-0x0, 
-0x3, 
-0x3, 
-0x0, 
-0x0, 
-0x2, 
-0x4, 
-0x8, 
-0x10, 
-0x20, 
-0x3e, 
-0x45, 
-0x49, 
-0x51, 
-0x3e, 
-0x0, 
-0x21, 
-0x7f, 
-0x1, 
-0x0, 
-0x21, 
-0x43, 
-0x45, 
-0x49, 
-0x31, 
-0x42, 
-0x41, 
-0x51, 
-0x69, 
-0x46, 
-0xc, 
-0x14, 
-0x24, 
-0x7f, 
-0x4, 
-0x72, 
-0x51, 
-0x51, 
-0x51, 
-0x4e, 
-0x1e, 
-0x29, 
-0x49, 
-0x49, 
-0x6, 
-0x40, 
-0x47, 
-0x48, 
-0x50, 
-0x60, 
-0x36, 
-0x49, 
-0x49, 
-0x49, 
-0x36, 
-0x30, 
-0x49, 
-0x49, 
-0x4a, 
-0x3c, 
-0x0, 
-0x36, 
-0x36, 
-0x0, 
-0x0, 
-0x0, 
-0x35, 
-0x36, 
-0x0, 
-0x0, 
-0x0, 
-0x8, 
-0x14, 
-0x22, 
-0x41, 
-0x14, 
-0x14, 
-0x14, 
-0x14, 
-0x14, 
-0x41, 
-0x22, 
-0x14, 
-0x8, 
-0x0, 
-0x20, 
-0x40, 
-0x45, 
-0x48, 
-0x30, 
-0x26, 
-0x49, 
-0x4f, 
-0x41, 
-0x3e, 
-0x3f, 
-0x44, 
-0x44, 
-0x44, 
-0x3f, 
-0x7f, 
-0x49, 
-0x49, 
-0x49, 
-0x36, 
-0x3e, 
-0x41, 
-0x41, 
-0x41, 
-0x22, 
-0x7f, 
-0x41, 
-0x41, 
-0x22, 
-0x1c, 
-0x7f, 
-0x49, 
-0x49, 
-0x49, 
-0x41, 
-0x7f, 
-0x48, 
-0x48, 
-0x40, 
-0x40, 
-0x3e, 
-0x41, 
-0x41, 
-0x45, 
-0x26, 
-0x7f, 
-0x8, 
-0x8, 
-0x8, 
-0x7f, 
-0x0, 
-0x41, 
-0x7f, 
-0x41, 
-0x0, 
-0x2, 
-0x1, 
-0x41, 
-0x7e, 
-0x40, 
-0x7f, 
-0x8, 
-0x14, 
-0x22, 
-0x41, 
-0x7f, 
-0x1, 
-0x1, 
-0x1, 
-0x1, 
-0x7f, 
-0x20, 
-0x10, 
-0x20, 
-0x7f, 
-0x7f, 
-0x10, 
-0x8, 
-0x4, 
-0x7f, 
-0x3e, 
-0x41, 
-0x41, 
-0x41, 
-0x3e, 
-0x7f, 
-0x48, 
-0x48, 
-0x48, 
-0x30, 
-0x3e, 
-0x41, 
-0x45, 
-0x42, 
-0x3d, 
-0x7f, 
-0x48, 
-0x4c, 
-0x4a, 
-0x31, 
-0x31, 
-0x49, 
-0x49, 
-0x49, 
-0x46, 
-0x40, 
-0x40, 
-0x7f, 
-0x40, 
-0x40, 
-0x7e, 
-0x1, 
-0x1, 
-0x1, 
-0x7e, 
-0x7c, 
-0x2, 
-0x1, 
-0x2, 
-0x7c, 
-0x7f, 
-0x2, 
-0xc, 
-0x2, 
-0x7f, 
-0x63, 
-0x14, 
-0x8, 
-0x14, 
-0x63, 
-0x60, 
-0x10, 
-0xf, 
-0x10, 
-0x60, 
-0x43, 
-0x45, 
-0x49, 
-0x51, 
-0x61, 
-0x0, 
-0x0, 
-0x7f, 
-0x41, 
-0x41, 
-0x20, 
-0x10, 
-0x8, 
-0x4, 
-0x2, 
-0x41, 
-0x41, 
-0x7f, 
-0x0, 
-0x0, 
-0x10, 
-0x20, 
-0x40, 
-0x20, 
-0x10, 
-0x1, 
-0x1, 
-0x1, 
-0x1, 
-0x1, 
-0x0, 
-0x40, 
-0x20, 
-0x10, 
-0x0, 
-0x2, 
-0x15, 
-0x15, 
-0x15, 
-0xf, 
-0x7f, 
-0x9, 
-0x11, 
-0x11, 
-0xe, 
-0xe, 
-0x11, 
-0x11, 
-0x11, 
-0x2, 
-0xe, 
-0x11, 
-0x11, 
-0x9, 
-0x7f, 
-0xe, 
-0x15, 
-0x15, 
-0x15, 
-0xc, 
-0x8, 
-0x3f, 
-0x48, 
-0x40, 
-0x20, 
-0x8, 
-0x14, 
-0x15, 
-0x15, 
-0x1e, 
-0x7f, 
-0x8, 
-0x10, 
-0x10, 
-0xf, 
-0x0, 
-0x11, 
-0x5f, 
-0x1, 
-0x0, 
-0x2, 
-0x1, 
-0x11, 
-0x5e, 
-0x0, 
-0x0, 
-0x7f, 
-0x4, 
-0xa, 
-0x11, 
-0x0, 
-0x41, 
-0x7f, 
-0x1, 
-0x0, 
-0x1f, 
-0x10, 
-0xc, 
-0x10, 
-0xf, 
-0x1f, 
-0x8, 
-0x10, 
-0x10, 
-0xf, 
-0xe, 
-0x11, 
-0x11, 
-0x11, 
-0xe, 
-0x1f, 
-0x14, 
-0x14, 
-0x14, 
-0x8, 
-0x8, 
-0x14, 
-0x14, 
-0xc, 
-0x1f, 
-0x1f, 
-0x8, 
-0x10, 
-0x10, 
-0x8, 
-0x9, 
-0x15, 
-0x15, 
-0x15, 
-0x2, 
-0x10, 
-0x7e, 
-0x11, 
-0x1, 
-0x2, 
-0x1e, 
-0x1, 
-0x1, 
-0x2, 
-0x1f, 
-0x1c, 
-0x2, 
-0x1, 
-0x2, 
-0x1c, 
-0x1e, 
-0x1, 
-0x6, 
-0x1, 
-0x1e, 
-0x11, 
-0xa, 
-0x4, 
-0xa, 
-0x11, 
-0x18, 
-0x5, 
-0x5, 
-0x5, 
-0x1e, 
-0x11, 
-0x13, 
-0x15, 
-0x19, 
-0x11, 
-0x0, 
-0x8, 
-0x36, 
-0x41, 
-0x0, 
-0x0, 
-0x0, 
-0x7f, 
-0x0, 
-0x0, 
-0x0, 
-0x41, 
-0x36, 
-0x8, 
-0x0, 
-0x8, 
-0x8, 
-0x2a, 
-0x1c, 
-0x8, 
-0x8, 
-0x1c, 
-0x2a, 
-0x8, 
-0x8
+    0x00, 0x00, 0x00, 0x00, 0x00,// (space)
+    0x00, 0x00, 0x5F, 0x00, 0x00,// !
+    0x00, 0x07, 0x00, 0x07, 0x00,// "
+    0x14, 0x7F, 0x14, 0x7F, 0x14,// #
+    0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
+    0x23, 0x13, 0x08, 0x64, 0x62,// %
+    0x36, 0x49, 0x55, 0x22, 0x50,// &
+    0x00, 0x05, 0x03, 0x00, 0x00,// '
+    0x00, 0x1C, 0x22, 0x41, 0x00,// (
+    0x00, 0x41, 0x22, 0x1C, 0x00,// )
+    0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
+    0x08, 0x08, 0x3E, 0x08, 0x08,// +
+    0x00, 0x50, 0x30, 0x00, 0x00,// ,
+    0x08, 0x08, 0x08, 0x08, 0x08,// -
+    0x00, 0x60, 0x60, 0x00, 0x00,// .
+    0x20, 0x10, 0x08, 0x04, 0x02,// /
+    0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
+    0x00, 0x42, 0x7F, 0x40, 0x00,// 1
+    0x42, 0x61, 0x51, 0x49, 0x46,// 2
+    0x21, 0x41, 0x45, 0x4B, 0x31,// 3
+    0x18, 0x14, 0x12, 0x7F, 0x10,// 4
+    0x27, 0x45, 0x45, 0x45, 0x39,// 5
+    0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
+    0x01, 0x71, 0x09, 0x05, 0x03,// 7
+    0x36, 0x49, 0x49, 0x49, 0x36,// 8
+    0x06, 0x49, 0x49, 0x29, 0x1E,// 9
+    0x00, 0x36, 0x36, 0x00, 0x00,// :
+    0x00, 0x56, 0x36, 0x00, 0x00,// ;
+    0x00, 0x08, 0x14, 0x22, 0x41,// <
+    0x14, 0x14, 0x14, 0x14, 0x14,// =
+    0x41, 0x22, 0x14, 0x08, 0x00,// >
+    0x02, 0x01, 0x51, 0x09, 0x06,// ?
+    0x32, 0x49, 0x79, 0x41, 0x3E,// @
+    0x7E, 0x11, 0x11, 0x11, 0x7E,// A
+    0x7F, 0x49, 0x49, 0x49, 0x36,// B
+    0x3E, 0x41, 0x41, 0x41, 0x22,// C
+    0x7F, 0x41, 0x41, 0x22, 0x1C,// D
+    0x7F, 0x49, 0x49, 0x49, 0x41,// E
+    0x7F, 0x09, 0x09, 0x01, 0x01,// F
+    0x3E, 0x41, 0x41, 0x51, 0x32,// G
+    0x7F, 0x08, 0x08, 0x08, 0x7F,// H
+    0x00, 0x41, 0x7F, 0x41, 0x00,// I
+    0x20, 0x40, 0x41, 0x3F, 0x01,// J
+    0x7F, 0x08, 0x14, 0x22, 0x41,// K
+    0x7F, 0x40, 0x40, 0x40, 0x40,// L
+    0x7F, 0x02, 0x04, 0x02, 0x7F,// M
+    0x7F, 0x04, 0x08, 0x10, 0x7F,// N
+    0x3E, 0x41, 0x41, 0x41, 0x3E,// O
+    0x7F, 0x09, 0x09, 0x09, 0x06,// P
+    0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
+    0x7F, 0x09, 0x19, 0x29, 0x46,// R
+    0x46, 0x49, 0x49, 0x49, 0x31,// S
+    0x01, 0x01, 0x7F, 0x01, 0x01,// T
+    0x3F, 0x40, 0x40, 0x40, 0x3F,// U
+    0x1F, 0x20, 0x40, 0x20, 0x1F,// V
+    0x7F, 0x20, 0x18, 0x20, 0x7F,// W
+    0x63, 0x14, 0x08, 0x14, 0x63,// X
+    0x03, 0x04, 0x78, 0x04, 0x03,// Y
+    0x61, 0x51, 0x49, 0x45, 0x43,// Z
+    0x00, 0x00, 0x7F, 0x41, 0x41,// [
+    0x02, 0x04, 0x08, 0x10, 0x20,// "\"
+    0x41, 0x41, 0x7F, 0x00, 0x00,// ]
+    0x04, 0x02, 0x01, 0x02, 0x04,// ^
+    0x40, 0x40, 0x40, 0x40, 0x40,// _
+    0x00, 0x01, 0x02, 0x04, 0x00,// `
+    0x20, 0x54, 0x54, 0x54, 0x78,// a
+    0x7F, 0x48, 0x44, 0x44, 0x38,// b
+    0x38, 0x44, 0x44, 0x44, 0x20,// c
+    0x38, 0x44, 0x44, 0x48, 0x7F,// d
+    0x38, 0x54, 0x54, 0x54, 0x18,// e
+    0x08, 0x7E, 0x09, 0x01, 0x02,// f
+    0x08, 0x14, 0x54, 0x54, 0x3C,// g
+    0x7F, 0x08, 0x04, 0x04, 0x78,// h
+    0x00, 0x44, 0x7D, 0x40, 0x00,// i
+    0x20, 0x40, 0x44, 0x3D, 0x00,// j
+    0x00, 0x7F, 0x10, 0x28, 0x44,// k
+    0x00, 0x41, 0x7F, 0x40, 0x00,// l
+    0x7C, 0x04, 0x18, 0x04, 0x78,// m
+    0x7C, 0x08, 0x04, 0x04, 0x78,// n
+    0x38, 0x44, 0x44, 0x44, 0x38,// o
+    0x7C, 0x14, 0x14, 0x14, 0x08,// p
+    0x08, 0x14, 0x14, 0x18, 0x7C,// q
+    0x7C, 0x08, 0x04, 0x04, 0x08,// r
+    0x48, 0x54, 0x54, 0x54, 0x20,// s
+    0x04, 0x3F, 0x44, 0x40, 0x20,// t
+    0x3C, 0x40, 0x40, 0x20, 0x7C,// u
+    0x1C, 0x20, 0x40, 0x20, 0x1C,// v
+    0x3C, 0x40, 0x30, 0x40, 0x3C,// w
+    0x44, 0x28, 0x10, 0x28, 0x44,// x
+    0x0C, 0x50, 0x50, 0x50, 0x3C,// y
+    0x44, 0x64, 0x54, 0x4C, 0x44,// z
+    0x00, 0x08, 0x36, 0x41, 0x00,// {
+    0x00, 0x00, 0x7F, 0x00, 0x00,// |
+    0x00, 0x41, 0x36, 0x08, 0x00,// }
+    0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
+    0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
 };
 
 #endif
\ No newline at end of file