e-paper whereabouts board program

Dependencies:   SDFileSystem mbed

Revision:
0:e4c67c26ba3f
Child:
1:cb28911c7ba5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extdio.cpp	Sun May 01 03:12:28 2016 +0000
@@ -0,0 +1,133 @@
+#include "mbed.h"
+#include "extdio.h"
+
+
+DigitalOut CL(dp9);
+DigitalOut sdata(dp10);
+DigitalOut sclock(dp11);
+DigitalOut sdlatch(dp14);
+DigitalOut sclatch(dp13);
+
+char    contBasState = 0;
+bool    olddata[8] = { 0,0,0,0,0,0,0,0 };
+
+//set CL pin
+void setCL( bool state )
+{
+    CL = state;
+}
+
+//chane the contral port 
+void setContBas( char mask , bool state )
+{
+    sclock = 0;
+    sclatch = 0;
+    if( state == true)
+    {
+        contBasState = contBasState | mask;
+    }
+    else
+    {
+        contBasState = contBasState & (~mask);
+    }
+    char sendData;
+    sendData = contBasState;
+    char bitMask = 0x80;
+
+    //transfer to shift registor bit by bit from MSB
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+    
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+
+    sdata = sendData & bitMask;
+    sclock = 1;
+    bitMask = bitMask >> 1;
+    sclock = 0;
+    
+    //latch the data
+    sclatch = 1;
+    sclatch = 0;
+}
+
+//change the data port
+void setDataBas( bool d7 ,  bool d6 ,  bool d5 ,  bool d4 ,  bool d3 ,  bool d2 ,  bool d1 ,  bool d0  )
+{
+    sclock = 0;
+    sdlatch = 0;
+    
+    //if same data value , not chage data port ( for increace in speed processing )
+    if( olddata[0] == d0 && olddata[1] == d1 && olddata[2] == d2 && olddata[3] == d3 && olddata[4] == d4 && olddata[5] == d5 && olddata[6] == d6 && olddata[7] == d7 )
+    {
+        return;
+    } 
+    
+    olddata[0] = d0; olddata[1] = d1; olddata[2] = d2; olddata[3] = d3; olddata[4] = d4; olddata[5] = d5; olddata[6] = d6; olddata[7] = d7;
+    
+    sdata = d0;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d1;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d2;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d3;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d4;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d5;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d6;
+    sclock = 1;
+    sclock = 0;
+
+    sdata = d7;
+    sclock = 1;
+    sclock = 0;
+
+    //latch the data
+    sdlatch = 1;
+    sdlatch = 0;
+}
+