Shift registers working

Files at this revision

API Documentation at this revision

Comitter:
mwthewsey
Date:
Tue May 07 13:19:27 2019 +0000
Parent:
0:a0e3fd47970f
Commit message:
arse bicuits

Changed in this revision

ShiftReg.cpp Show annotated file Show diff for this revision Revisions of this file
ShiftReg.h Show annotated file Show diff for this revision Revisions of this file
diff -r a0e3fd47970f -r 9cc13bd590df ShiftReg.cpp
--- a/ShiftReg.cpp	Fri Nov 09 01:03:30 2012 +0000
+++ b/ShiftReg.cpp	Tue May 07 13:19:27 2019 +0000
@@ -1,63 +1,50 @@
 #include "mbed.h"
 #include "ShiftReg.h"
 
-#define MY_DEBUG 0
-
-ShiftReg::ShiftReg
-(PinName data
-,PinName store
-,PinName clock
-): _ds(data), _st(store), _sh(clock)
-{
-}
-
-
-void ShiftReg::ShiftByte
-(int8_t  data
-,BitOrd  ord
-)
+ShiftReg::ShiftReg(PinName data, PinName store, PinName clock ): _ds(data), _st(store), _sh(clock){}//Constructor
+void ShiftReg::ShiftByte (uint16_t  data, BitOrd  ord )
 {
-    uint8_t mask;
-    
-    if (ord == MSBFirst) mask = 0x80;
-    else                 mask = 0x01;
-    
-    for (int i = 0; i < 8; i++)
+    uint16_t mask;
+    if (ord == MSBFirst) 
+    {       
+        mask = 0x8000;
+    }
+    else
+    {
+        mask = 0x0001;
+    }
+    for (uint8_t i = 0; i < 16; i++)
     {
-        if (data & mask) _ds = 1;
-        else             _ds = 0;
-
-#if MY_DEBUG > 0
-        printf("%d ", _ds.read());
-#endif /* MY_DEBUG */
-
-        if (ord == MSBFirst) mask = mask >> 1;
-        else                 mask = mask << 1;
+        //_ds = data;
         
+        if (data & mask)
+        {
+            _ds = 1;
+        }
+        else
+        {
+            _ds = 0;
+        }
+        if (ord == MSBFirst)
+        {   
+            mask = mask >> 1;
+        }
+        else
+        {
+            mask = mask << 1;
+        }
         _sh = 0;
         _sh = 1;
     }
-
-#if MY_DEBUG > 0
-    printf("\n");
-#endif /* MY_DEBUG */
-
 }
-
-void
-ShiftReg::ShiftBit
-(int8_t  data
-)
+void ShiftReg::ShiftBit(int8_t  data)
 {
     _ds = data;
     _sh = 0;
     _sh = 1;
 }
 
-void 
-ShiftReg::Latch
-(
-)
+void ShiftReg::Latch()
 {
   _st = 1;
   _st = 0;
diff -r a0e3fd47970f -r 9cc13bd590df ShiftReg.h
--- a/ShiftReg.h	Fri Nov 09 01:03:30 2012 +0000
+++ b/ShiftReg.h	Tue May 07 13:19:27 2019 +0000
@@ -63,10 +63,7 @@
 {
 public:
     /** Bit order out format */
-    enum BitOrd {
-        MSBFirst = 0x80,  /**< Most  significant bit first */
-        LSBFirst = 0x01   /**< Least significant bit first */
-    };
+    enum BitOrd {MSBFirst = 0x8000,  /**< Most  significant bit first */LSBFirst = 0x0001   /**< Least significant bit first */};
 
     /** Create a ShiftReg interface to shift register
      *
@@ -74,36 +71,24 @@
      * @param store    Pin to store register
      * @param clock    Pin to shift into register
      */
-    ShiftReg
-    (PinName data
-    ,PinName store
-    ,PinName clock
-    );
+    ShiftReg(PinName data, PinName store, PinName clock);//Constructor
 
     /** Shift out 8-bit data via the serial pin
      *
      * @param data    Data to be shifted out via the serial pin
      * @param order   Bit order to shift out data. Default is MSBFirst
      */
-    void 
-    ShiftByte
-    (int8_t  data
-    ,BitOrd  ord    = MSBFirst
-    );
+    void ShiftByte(uint16_t  data,BitOrd  ord    = MSBFirst);//Shifting the data member function
     
     /** Shift out 1-bit data via the serial pin
      *
      * @param data    Data to be shifted out via the serial pin
      */
-    void
-    ShiftBit
-    (int8_t  data = 0
-    );
+    void ShiftBit(int8_t  data = 0);//Shifting a single bit in
 
     /** Latch data out 
      */
-    void 
-    Latch();
+    void Latch();
 
 private:
     DigitalOut _ds;          // Serial in