74595 Library

Committer:
zoop57
Date:
Sat Aug 23 21:15:47 2014 +0000
Revision:
0:bca974772920
Initial commit;

Who changed what in which revision?

UserRevisionLine numberNew 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 }