UniGraphic-Fork for ST7920-LCD-controller and SH1106. Tested with 128x64 LCD with SPI and 128x64-OLED with IIC

Dependents:   UniGraphic-St7920-Test AfficheurUTILECO

Fork of UniGraphic by GraphicsDisplay

Fork of the UniGraphic-Library for monochrome LCDs with ST7920 controller and 128x64-IIC-OLED-Display with SH1106-Controller

/media/uploads/charly/20170522_210344.jpg

/media/uploads/charly/20180425_230623.jpg

Had to adapt LCD for following reasons:

  • Give access to screenbuffer buffer[] to parent class
  • pixel() and pixel_read() as they are hardware-dependent
  • added reset-pin to IIC-Interface

GraphicDisplay:: sends buffer to LCD when auto_update is set to true.

Testprogram for ST7920 can be found here:

https://developer.mbed.org/users/charly/code/UniGraphic-St7920-Test/

Files at this revision

API Documentation at this revision

Comitter:
Geremia
Date:
Mon Feb 23 16:05:16 2015 +0000
Parent:
14:29bab588ba75
Child:
16:244f9563ebc1
Commit message:
LCD macro undef workaround for KL46Z KL43Z, thanks ban4jp

Changed in this revision

Display/LCD.h Show annotated file Show diff for this revision Revisions of this file
Display/TFT.cpp Show annotated file Show diff for this revision Revisions of this file
Inits/SSD1306.cpp Show annotated file Show diff for this revision Revisions of this file
Inits/SSD1306.h Show annotated file Show diff for this revision Revisions of this file
--- a/Display/LCD.h	Sun Feb 22 18:55:54 2015 +0000
+++ b/Display/LCD.h	Mon Feb 23 16:05:16 2015 +0000
@@ -8,6 +8,10 @@
 #include "SPI16.h"
 #include "Protocols.h"
 
+// undefine the KL43Z and KL46Z LCD macro
+#ifdef LCD
+#undef LCD
+#endif
 
 /** Draw mode
   * NORMAl
--- a/Display/TFT.cpp	Sun Feb 22 18:55:54 2015 +0000
+++ b/Display/TFT.cpp	Mon Feb 23 16:05:16 2015 +0000
@@ -18,7 +18,7 @@
 
 #include "TFT.h"
 
-#include "mbed_debug.h"
+//#include "mbed_debug.h"
 
 #define SWAP(a, b)  { a ^= b; b ^= a; a ^= b; }
 
--- a/Inits/SSD1306.cpp	Sun Feb 22 18:55:54 2015 +0000
+++ b/Inits/SSD1306.cpp	Mon Feb 23 16:05:16 2015 +0000
@@ -132,5 +132,5 @@
 {
     contrast = o;
   
-    wr_cmd16(0x8100|(o));
+    wr_cmd16(0x8100|(o&0xFF));
 }
--- a/Inits/SSD1306.h	Sun Feb 22 18:55:54 2015 +0000
+++ b/Inits/SSD1306.h	Mon Feb 23 16:05:16 2015 +0000
@@ -40,7 +40,13 @@
     * @param LCDSIZE_Y y size in pixel - optional
     */ 
     SSD1306(proto_t displayproto, int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC, const char* name , unsigned int LCDSIZE_X = 128, unsigned  int LCDSIZE_Y = 64);
-  
+
+    /** set the contrast of the screen
+      * @note here overrided because of not standard value range
+      * @param o contrast 0-255
+      */
+    virtual void set_contrast(int o);
+    
 protected: