derived from Aidafruit SSD1306 library

Dependents:   Test_SSD1306 L152RE_OLED_SSD1306 EcranZumo

Fork of SSD1306 by Jonathan Gaul

Revision:
1:1d58d378221c
Parent:
0:21cb91208386
Child:
2:e479b0296757
--- a/ssd1306.h	Tue Feb 05 09:46:58 2013 +0000
+++ b/ssd1306.h	Tue Feb 05 17:18:23 2013 +0000
@@ -6,9 +6,20 @@
 #define FONT_DATA_OFFSET    2    /* Data starts at this position */
 #define FONT_START          ' '  /* First character value in the font table */
 
+/** SSD1306 Controller Driver
+ *
+ * Information taken from the datasheet at: 
+ *   http://www.adafruit.com/datasheets/SSD1306.pdf
+ */
 class SSD1306
 {
 public:
+    /** Construct a new SSD1306 object.
+     *  @param cs The connected C/S pin.
+     *  @param rs The connected RS pin.
+     *  @param dc The connected DC pin.
+     *  @param clk The connected CLK pin.
+     *  @param data The connected Data pin.
     SSD1306(PinName cs, PinName rs, PinName dc, PinName clk, PinName data);
 
     void initialise();
@@ -17,13 +28,15 @@
     void off();
     void on();
     
-    void invert(int i);
-
+    // Sends the display to sleep, but leaves RAM intact
+    void sleep();
+    
+    // 
+    void wake();
+   
     void set_low_column(int value);
     void set_high_column(int value);
-    void set_start_line(int value);
-
-    void set_display_offset(int value);
+    void set_start_line(int value);    
 
     void clear();
     void set_pixel(int x, int y);
@@ -32,6 +45,15 @@
     
     void draw_string(char *font, int x, int y, const char *string);
     void draw_char(char *font, int x, int y, char c);
+    
+    void set_contrast(unsigned char value); // 1-256
+    void set_inverse(unsigned char value); // 0 or 1
+    void set_display_start_line(unsigned char value); // 0-63
+    void set_horizontal_flip(unsigned char value); // 0 or 1
+    void set_display_offset(unsigned char value); // 0-63
+    void set_multiplex_ratio(unsigned char value); // 15-63 (value+1 mux)
+    void set_com_output_scan_direction(unsigned char value); // 0 or 1
+    void set_com_pins_hardware_configuration(unsigned char sequential, unsigned char lr_remap); // 0 or 1 for both parametrs
 
 private:
     SPI _spi;
@@ -40,8 +62,8 @@
 
     int _cursor_x, _cursor_y;
 
-    void _send_command(int code);
-    void _send_data(int value);
+    void _send_command(unsigned char code);
+    void _send_data(unsigned char value);
 };
 
 #define SSD1306_LCDWIDTH 128