e-paper whereabouts board program

Dependencies:   SDFileSystem mbed

extdio.cpp

Committer:
kohacraft
Date:
2017-05-23
Revision:
2:9150515ecd68
Parent:
1:cb28911c7ba5

File content as of revision 2:9150515ecd68:

/* EDP interface board control progtam */

#include "mbed.h"
#include "extdio.h"


DigitalOut CL(dp9);
DigitalOut sdata(dp10);
DigitalOut sclock(dp11);
DigitalOut sdlatch(dp14);
DigitalOut sclatch(dp13);

char    _contBusState = 0; //control bus states keep
char    _olddata;   //data bus state keep

void setCL( bool state )
{
    CL = state;
    return;
}

//chenge control bus
void setContBus( char mask , bool state )
{
    sclock = 0;
    sclatch = 0;
    if( state == true)
    {
        _contBusState = _contBusState | mask;
    }
    else
    {
        _contBusState = _contBusState & (~mask);
    }
    char sendData;
    sendData = _contBusState;
    char bitMask = 0x80;

    //transfur 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;
    
    //set data
    sclatch = 1;
    sclatch = 0;
    
    return;
}

//set data bus
void setDataBus( char data )
{
    sclock = 0;
    sdlatch = 0;
    
    //skip process when data is same with old data
    if( _olddata == data )
    {
        return;
    } 
    _olddata = data;
    
    sdata = data&0x01;
    sclock = 1;
    sclock = 0;

    sdata = data&0x02;
    sclock = 1;
    sclock = 0;

    sdata = data&0x04;
    sclock = 1;
    sclock = 0;

    sdata = data&0x08;
    sclock = 1;
    sclock = 0;

    sdata = data&0x10;
    sclock = 1;
    sclock = 0;

    sdata = data&0x20;
    sclock = 1;
    sclock = 0;

    sdata = data&0x40;
    sclock = 1;
    sclock = 0;

    sdata = data&0x80;
    sclock = 1;
    sclock = 0;

    //set data
    sdlatch = 1;
    sdlatch = 0;
    
    return;
}