Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 2:b565b6a8f612, committed 2019-05-07
- Comitter:
- mwthewsey
- Date:
- Tue May 07 13:53:06 2019 +0000
- Parent:
- 1:9cc13bd590df
- Commit message:
- shift regs working
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 |
--- 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)
{
--- a/ShiftReg.h Tue May 07 13:19:27 2019 +0000
+++ b/ShiftReg.h Tue May 07 13:53:06 2019 +0000
@@ -71,7 +71,7 @@
* @param store Pin to store register
* @param clock Pin to shift into register
*/
- ShiftReg(PinName data, PinName store, PinName clock);//Constructor
+ ShiftReg(PinName data, PinName store, PinName clock, PinName enable);//Constructor
/** Shift out 8-bit data via the serial pin
*
@@ -79,7 +79,7 @@
* @param order Bit order to shift out data. Default is MSBFirst
*/
void ShiftByte(uint16_t data,BitOrd ord = MSBFirst);//Shifting the data member function
-
+ void Write(uint16_t data);//Writing data in it
/** Shift out 1-bit data via the serial pin
*
* @param data Data to be shifted out via the serial pin
@@ -94,6 +94,7 @@
DigitalOut _ds; // Serial in
DigitalOut _st; // store register or latch
DigitalOut _sh; // shift register
+ DigitalOut _en; // shift enable
BitOrd _ord; // Bit order to shift out data
};