74595 Library
Revision 0:bca974772920, committed 2014-08-23
- Comitter:
- zoop57
- Date:
- Sat Aug 23 21:15:47 2014 +0000
- Commit message:
- Initial commit;
Changed in this revision
ShiftRegister.cpp | Show annotated file Show diff for this revision Revisions of this file |
ShiftRegister.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r bca974772920 ShiftRegister.cpp --- /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
diff -r 000000000000 -r bca974772920 ShiftRegister.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ShiftRegister.h Sat Aug 23 21:15:47 2014 +0000 @@ -0,0 +1,20 @@ +#ifndef MBED_ShiftRegister_H +#define MBED_ShiftRegister_H + +#include "mbed.h" + +class ShiftRegister +{ + public: + ShiftRegister(); + ShiftRegister(PinName clockPin, PinName latchPin, PinName dataPin); + void shiftByte(unsigned char data); + void shiftBit(unsigned char bit); + + private: + DigitalOut _clockPin; + DigitalOut _latchPin; + DigitalOut _dataPin; +}; + +#endif \ No newline at end of file