Satyan Raj / UniGraphic

Fork of UniGraphic by GraphicsDisplay

Files at this revision

API Documentation at this revision

Comitter:
Geremia
Date:
Mon Mar 02 10:52:26 2015 +0000
Parent:
18:ffa58f1a680a
Parent:
17:1dafb896c6f5
Child:
20:14daa48ffd4c
Commit message:
Added LCD ST7565, the very basic std one, tested also on UC1701

Changed in this revision

Inits/SSD1306.h Show annotated file Show diff for this revision Revisions of this file
--- a/Inits/SSD1306.cpp	Mon Mar 02 10:35:41 2015 +0000
+++ b/Inits/SSD1306.cpp	Mon Mar 02 10:52:26 2015 +0000
@@ -134,3 +134,44 @@
   
     wr_cmd16(0x8100|(o&0xFF));
 }
+
+////////////////////////////////////////////////////////////////////
+// functions that overrides the standard ones implemented in LCD.cpp
+////////////////////////////////////////////////////////////////////
+
+
+const uint8_t scroll_speed[8]={3,2,1,6,0,5,4,7};
+
+////////////////////////////////////////////////////////////////////
+// functions addon  to LCD.cpp
+////////////////////////////////////////////////////////////////////
+void SSD1306::horizontal_scroll(int l_r,int s_page,int e_page,int speed){
+    wr_cmd8(0x2E);                      // deactivate scroll before change
+    if(l_r == 1){
+        wr_cmd16(0x2700);               // horizontal scroll left
+    }
+    else {
+        wr_cmd16(0x2600);
+    }
+    wr_cmd16((s_page & 0x07)<<8 | (scroll_speed[speed & 0x07]));
+    wr_cmd16((e_page & 0x07)<<8 );
+    wr_cmd16(0xFF2F);
+}
+
+void SSD1306::horiz_vert_scroll(int l_r,int s_page,int e_page,int v_off,int speed){
+    wr_cmd8(0x2E);                      // deactivate scroll before change
+    if(l_r == 1){
+            wr_cmd16(0x2A00);               // horizontal scroll left
+        }
+        else {
+            wr_cmd16(0x2900);
+        }
+        wr_cmd16((s_page & 0x07)<<8 | (scroll_speed[speed & 0x07]));
+        wr_cmd16((e_page & 0x07)<<8 | (v_off & 0x3F) );
+        wr_cmd8(0x2F);
+
+}
+
+void SSD1306::end_scroll(){
+    wr_cmd8(0x2E);
+}
--- a/Inits/SSD1306.h	Mon Mar 02 10:35:41 2015 +0000
+++ b/Inits/SSD1306.h	Mon Mar 02 10:52:26 2015 +0000
@@ -47,7 +47,28 @@
       */
     virtual void set_contrast(int o);
     
-protected:
+    /** set automatc horizontal scroll mode
+     * @param l_r direction - left = 0, right = 1
+     * @param s_page start page
+     * @param e_page end page
+     * @param speed time between horizontal shift. 0 slow .. 7 fast
+     */
+    void horizontal_scroll(int l_r,int s_page,int e_page,int speed);
+
+    /** automatic horizontal + vertical scroll mode
+     * @param l_r direction - left = 0, right = 1
+     * @param s_page start page
+     * @param e_page end page
+     * @param v_off vertical offset for scroll
+     * @param speed time between horizontal shift. 0 slow .. 7 fast
+     */
+    void horiz_vert_scroll(int l_r,int s_page,int e_page,int v_off,int speed);
+
+    /** end scroll mode
+     *
+     */
+    void end_scroll(void);
+    protected:
     
     
     /** Init command sequence