74595 Library

ShiftRegister.cpp

Committer:
zoop57
Date:
2014-08-23
Revision:
0:bca974772920

File content as of revision 0:bca974772920:

#include "ShiftRegister.h"
#include "mbed.h"
 
ShiftRegister::ShiftRegister():_clockPin(NC), _latchPin(NC), _dataPin(NC) {};
ShiftRegister::ShiftRegister(PinName clockPin, PinName latchPin, PinName dataPin)
  :_clockPin(clockPin), _latchPin(latchPin), _dataPin(dataPin)
{
    _clockPin = 0;
    _latchPin = 0;
    _dataPin = 0;
}
 
void ShiftRegister::shiftByte(unsigned char data)
{
    //Make sure all pins are initialised
    _clockPin = 0;
    _dataPin = 0;
    _latchPin = 0;
    
    //Shift out data
    for (int i=7; i>=0; i--)  
    {
        shiftBit( (data & (1<<i)) ? 1:0);
    }
    
    //Shift data to output
    _latchPin = 1;
    _latchPin = 0;
} 
 
void ShiftRegister::shiftBit(unsigned char bit)
{
    _clockPin = 0;
    _dataPin = bit;
    _clockPin = 1;
    _clockPin = 0;
    _dataPin = 0;

}