e-paper whereabouts board program
Dependencies: SDFileSystem mbed
Diff: extdio.cpp
- Revision:
- 1:cb28911c7ba5
- Parent:
- 0:e4c67c26ba3f
--- a/extdio.cpp Sun May 01 03:12:28 2016 +0000 +++ b/extdio.cpp Tue May 23 05:06:14 2017 +0000 @@ -1,3 +1,5 @@ +/* EDP interface board control progtam */ + #include "mbed.h" #include "extdio.h" @@ -8,33 +10,33 @@ DigitalOut sdlatch(dp14); DigitalOut sclatch(dp13); -char contBasState = 0; -bool olddata[8] = { 0,0,0,0,0,0,0,0 }; +char _contBusState = 0; //control bus states keep +char _olddata; //data bus state keep -//set CL pin void setCL( bool state ) { CL = state; + return; } -//chane the contral port -void setContBas( char mask , bool state ) +//chenge control bus +void setContBus( char mask , bool state ) { sclock = 0; sclatch = 0; if( state == true) { - contBasState = contBasState | mask; + _contBusState = _contBusState | mask; } else { - contBasState = contBasState & (~mask); + _contBusState = _contBusState & (~mask); } char sendData; - sendData = contBasState; + sendData = _contBusState; char bitMask = 0x80; - //transfer to shift registor bit by bit from MSB + //transfur from MSB sdata = sendData & bitMask; sclock = 1; bitMask = bitMask >> 1; @@ -75,59 +77,61 @@ bitMask = bitMask >> 1; sclock = 0; - //latch the data + //set data sclatch = 1; sclatch = 0; + + return; } -//change the data port -void setDataBas( bool d7 , bool d6 , bool d5 , bool d4 , bool d3 , bool d2 , bool d1 , bool d0 ) +//set data bus +void setDataBus( char data ) { 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 ) + //skip process when data is same with old data + if( _olddata == data ) { return; } + _olddata = data; - 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; + sdata = data&0x01; sclock = 1; sclock = 0; - sdata = d1; + sdata = data&0x02; sclock = 1; sclock = 0; - sdata = d2; + sdata = data&0x04; + sclock = 1; + sclock = 0; + + sdata = data&0x08; sclock = 1; sclock = 0; - sdata = d3; + sdata = data&0x10; sclock = 1; sclock = 0; - sdata = d4; - sclock = 1; - sclock = 0; - - sdata = d5; + sdata = data&0x20; sclock = 1; sclock = 0; - sdata = d6; + sdata = data&0x40; sclock = 1; sclock = 0; - sdata = d7; + sdata = data&0x80; sclock = 1; sclock = 0; - //latch the data + //set data sdlatch = 1; sdlatch = 0; + + return; } -