74595 Library
ShiftRegister.cpp@0:bca974772920, 2014-08-23 (annotated)
- Committer:
- zoop57
- Date:
- Sat Aug 23 21:15:47 2014 +0000
- Revision:
- 0:bca974772920
Initial commit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zoop57 | 0:bca974772920 | 1 | #include "ShiftRegister.h" |
zoop57 | 0:bca974772920 | 2 | #include "mbed.h" |
zoop57 | 0:bca974772920 | 3 | |
zoop57 | 0:bca974772920 | 4 | ShiftRegister::ShiftRegister():_clockPin(NC), _latchPin(NC), _dataPin(NC) {}; |
zoop57 | 0:bca974772920 | 5 | ShiftRegister::ShiftRegister(PinName clockPin, PinName latchPin, PinName dataPin) |
zoop57 | 0:bca974772920 | 6 | :_clockPin(clockPin), _latchPin(latchPin), _dataPin(dataPin) |
zoop57 | 0:bca974772920 | 7 | { |
zoop57 | 0:bca974772920 | 8 | _clockPin = 0; |
zoop57 | 0:bca974772920 | 9 | _latchPin = 0; |
zoop57 | 0:bca974772920 | 10 | _dataPin = 0; |
zoop57 | 0:bca974772920 | 11 | } |
zoop57 | 0:bca974772920 | 12 | |
zoop57 | 0:bca974772920 | 13 | void ShiftRegister::shiftByte(unsigned char data) |
zoop57 | 0:bca974772920 | 14 | { |
zoop57 | 0:bca974772920 | 15 | //Make sure all pins are initialised |
zoop57 | 0:bca974772920 | 16 | _clockPin = 0; |
zoop57 | 0:bca974772920 | 17 | _dataPin = 0; |
zoop57 | 0:bca974772920 | 18 | _latchPin = 0; |
zoop57 | 0:bca974772920 | 19 | |
zoop57 | 0:bca974772920 | 20 | //Shift out data |
zoop57 | 0:bca974772920 | 21 | for (int i=7; i>=0; i--) |
zoop57 | 0:bca974772920 | 22 | { |
zoop57 | 0:bca974772920 | 23 | shiftBit( (data & (1<<i)) ? 1:0); |
zoop57 | 0:bca974772920 | 24 | } |
zoop57 | 0:bca974772920 | 25 | |
zoop57 | 0:bca974772920 | 26 | //Shift data to output |
zoop57 | 0:bca974772920 | 27 | _latchPin = 1; |
zoop57 | 0:bca974772920 | 28 | _latchPin = 0; |
zoop57 | 0:bca974772920 | 29 | } |
zoop57 | 0:bca974772920 | 30 | |
zoop57 | 0:bca974772920 | 31 | void ShiftRegister::shiftBit(unsigned char bit) |
zoop57 | 0:bca974772920 | 32 | { |
zoop57 | 0:bca974772920 | 33 | _clockPin = 0; |
zoop57 | 0:bca974772920 | 34 | _dataPin = bit; |
zoop57 | 0:bca974772920 | 35 | _clockPin = 1; |
zoop57 | 0:bca974772920 | 36 | _clockPin = 0; |
zoop57 | 0:bca974772920 | 37 | _dataPin = 0; |
zoop57 | 0:bca974772920 | 38 | |
zoop57 | 0:bca974772920 | 39 | } |