74595 Library
Diff: ShiftRegister.cpp
- Revision:
- 0:bca974772920
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ShiftRegister.cpp Sat Aug 23 21:15:47 2014 +0000 @@ -0,0 +1,39 @@ +#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; + +} \ No newline at end of file