avr-classes
Public Member Functions | List of all members
ShiftRegister74HC595 Class Reference

#include <shiftregister74hc595.h>

Inheritance diagram for ShiftRegister74HC595:
OutputShiftRegisterWithLatch IntegratedCircuit::hasClear IntegratedCircuit::hasOutputEnable OutputShiftRegister IntegratedCircuit::hasOutputLatch IntegratedCircuit IntegratedCircuit::isClocked

Public Member Functions

 ShiftRegister74HC595 (OutputPin *pinData, OutputPin *pinClock, OutputPin *pinClear, OutputPin *pinLatch, OutputPin *pinEnable)
 
void setData (bool value)
 
virtual void clock (void) override
 
virtual void clear (void) override
 
virtual void enableOutput (bool enable) override
 
virtual void latchOutput (void) override
 

Detailed Description

Implementation of the 74HC595 serial in/parallel out shift register with output latch and output enable functions. Each input of the hardware device can be connected using a OutputPin instance. For functions that are not required it is safe to pass a null pointer.

Pinout of device:

+--v--+
QB 1 | | 16 VCC
QC 2 | | 15 QA
QD 3 | | 14 SER
QE 4 | | 13 /OE
QF 5 | | 12 RCLK
QG 6 | | 11 SRCLK
QH 7 | | 10 /SRCLR
GND 8 | | 9 QH'
+-----+

Constructor & Destructor Documentation

◆ ShiftRegister74HC595()

ShiftRegister74HC595::ShiftRegister74HC595 ( OutputPin pinData,
OutputPin pinClock,
OutputPin pinClear,
OutputPin pinLatch,
OutputPin pinEnable 
)
inline

Constructor. Pins that are not used can be passed as null pointer.

Parameters
pinDataPin to be used for data input.
pinClockPin to be used for clocking data into device.
pinClearPin to be used to clear device.
pinLatchPin to be used to trigger latch.
pinEnablePin to be used to enable/disable the device's outputs.

Member Function Documentation

◆ clear()

virtual void ShiftRegister74HC595::clear ( void  )
inlineoverridevirtual

Toggle clear input.

Implements IntegratedCircuit::hasClear.

◆ clock()

virtual void ShiftRegister74HC595::clock ( void  )
inlineoverridevirtual

Toggle clock input.

Implements IntegratedCircuit::isClocked.

◆ enableOutput()

virtual void ShiftRegister74HC595::enableOutput ( bool  enable)
inlineoverridevirtual

Enable or disable outputs.

Parameters
enableControls if outputs are enabled (true) or disabled (false).
Note
The implementing class maps this to the correct logic (active high or active low), e.g. enabling outputs by passing true will work in both cases as expected.

Implements IntegratedCircuit::hasOutputEnable.

◆ latchOutput()

virtual void ShiftRegister74HC595::latchOutput ( void  )
inlineoverridevirtual

Toggle clock input for output latch.

Implements IntegratedCircuit::hasOutputLatch.

◆ setData()

void ShiftRegister74HC595::setData ( bool  value)
inlinevirtual

Sets data input of shift register to specified value.

Parameters
valueValue of data input, true for HIGH level and false for LOW level.

Implements OutputShiftRegister.