Shift registers working

Revision:
2:b565b6a8f612
Parent:
1:9cc13bd590df
--- a/ShiftReg.cpp	Tue May 07 13:19:27 2019 +0000
+++ b/ShiftReg.cpp	Tue May 07 13:53:06 2019 +0000
@@ -1,7 +1,36 @@
 #include "mbed.h"
 #include "ShiftReg.h"
 
-ShiftReg::ShiftReg(PinName data, PinName store, PinName clock ): _ds(data), _st(store), _sh(clock){}//Constructor
+ShiftReg::ShiftReg(PinName data, PinName store, PinName clock, PinName enable ): _ds(data), _st(store), _sh(clock), _en(enable)//Constructor
+{
+    _en = 1;   
+}
+void ShiftReg::Write (uint16_t  data)
+{
+    uint16_t mask; 
+    mask = 0x8000;
+    for (uint8_t i = 0; i < 16; i++)
+    {       
+        if (data & mask)
+        {
+            _ds = 1;
+        }
+        else
+        {
+            _ds = 0;
+        }
+    
+         mask = mask >> 1;
+        
+        _sh = 0;
+        _sh = 1;
+    }
+    //Latch
+    _st = 1;
+    _st = 0;
+    //Latch
+    _en = 0;
+}
 void ShiftReg::ShiftByte (uint16_t  data, BitOrd  ord )
 {
     uint16_t mask;
@@ -36,6 +65,7 @@
         _sh = 0;
         _sh = 1;
     }
+    _en = 0;
 }
 void ShiftReg::ShiftBit(int8_t  data)
 {