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/

Revision:
36:668396f861d2
Parent:
33:f87f06292637
Child:
37:5de028b08308
--- a/Inits/SSD1306.h	Sun May 21 20:50:09 2017 +0000
+++ b/Inits/SSD1306.h	Sun Apr 22 21:41:24 2018 +0000
@@ -47,11 +47,12 @@
     * @param address I2C address
     * @param sda I2C pin
     * @param scl I2C pin
+    * @param reset pin connected to RESET of display    
     * @param name The name used by the parent class to access the interface
     * @param LCDSIZE_X x size in pixel - optional
     * @param LCDSIZE_Y y size in pixel - optional
     */ 
-    SSD1306(proto_t displayproto, int Hz, int address, PinName sda, PinName scl, const char* name , unsigned int LCDSIZE_X = 128, unsigned  int LCDSIZE_Y = 64);
+    SSD1306(proto_t displayproto, int Hz, int address, PinName sda, PinName scl, PinName reset, const char* name , unsigned int LCDSIZE_X = 128, unsigned  int LCDSIZE_Y = 64);
 
 
 
@@ -67,6 +68,22 @@
      * @param e_page end page
      * @param speed time between horizontal shift. 0 slow .. 7 fast
      */
+     
+    /** Framebuffer is used, it needs to be sent to LCD from time to time
+    */
+    virtual void copy_to_lcd();
+
+    /** clear the entire screen
+    */
+    virtual void cls();   
+
+    /** Draw a pixel in the specified color.
+    * @param x is the horizontal offset to this pixel.
+    * @param y is the vertical offset to this pixel.
+    * @param color defines the color for the pixel.
+    */    
+    virtual void pixel(int x, int y, unsigned short color);
+    
     void horizontal_scroll(int l_r,int s_page,int e_page,int speed);
 
     /** automatic horizontal + vertical scroll mode