Basically i glued Peter Drescher and Simon Ford libs in a GraphicsDisplay class, then derived TFT or LCD class (which inherits Protocols class), then the most derived ones (Inits), which are per-display and are the only part needed to be adapted to diff hw.

Dependents:   testUniGraphic_150217 maze_TFT_MMA8451Q TFT_test_frdm-kl25z TFT_test_NUCLEO-F411RE ... more

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: