Reference.ShiftIn History

Hide minor edits - Show changes to output

November 13, 2013, at 01:55 PM by Scott Fitzgerald -
Added lines 6-7:
If you're interfacing with a device that's clocked by rising edges, you'll need to make sure that the clock pin is low before the first call to shiftIn(), e.g. with a call to digitalWrite(clockPin, LOW).
Deleted line 31:
December 23, 2011, at 04:14 PM by Tom Igoe -
Changed lines 10-11 from:
shiftIn(dataPin, clockPin, bitOrder)
to:
[@
byte incoming = shiftIn(dataPin, clockPin, bitOrder)
@]
Changed lines 15-19 from:
dataPin: the pin on which to output each bit (''int'')

clockPin: the pin to toggle once the '''dataPin''' has been set to the correct value (''int'')

bitOrder: which order to shift out the bits; either '''MSBFIRST''' or '''LSBFIRST'''.\\
to:
dataPin: the pin on which to input each bit (''int'')

clockPin: the pin to toggle to signal a read from '''dataPin'''

bitOrder: which order to shift in the bits; either '''MSBFIRST''' or '''LSBFIRST'''.\\
March 11, 2011, at 06:35 PM by David A. Mellis -
Changed lines 6-7 from:
Note: this is a software implementation; Arduino also provides an [[SPI | SPI library]] that uses the hardware implementation.
to:
Note: this is a software implementation; Arduino also provides an [[SPI | SPI library]] that uses the hardware implementation, which is faster but only works on specific pins.
December 16, 2010, at 04:07 AM by David A. Mellis -
Added lines 24-28:
!!!!See also

* [[ShiftOut | shiftOut()]]
* [[SPI | SPI]]
December 16, 2010, at 04:06 AM by David A. Mellis -
Added lines 1-23:
!!shiftIn()

!!!!Description
Shifts in a byte of data one bit at a time. Starts from either the most (i.e. the leftmost) or least (rightmost) significant bit. For each bit, the clock pin is pulled high, the next bit is read from the data line, and then the clock pin is taken low.

Note: this is a software implementation; Arduino also provides an [[SPI | SPI library]] that uses the hardware implementation.

!!!!Syntax

shiftIn(dataPin, clockPin, bitOrder)

!!!!Parameters
dataPin: the pin on which to output each bit (''int'')

clockPin: the pin to toggle once the '''dataPin''' has been set to the correct value (''int'')

bitOrder: which order to shift out the bits; either '''MSBFIRST''' or '''LSBFIRST'''.\\
(Most Significant Bit First, or, Least Significant Bit First)

!!!!Returns

the value read (''byte'')

Share