Abstract
The shiftIn() gets 8 bit of data and assembles them into 1 byte of data.
Source Code
The shiftIn() is defined in hardware/arduino/avr/cores/arduino/wiring_shift.c as below.
|
|
The inputs are dataPin, clockPin and bitOrder and they all are uint8_t, returns uint8_t.
|
|
It loops to get 8 bits of data. First it makes the clockPin HIGH using digitalWrite().
|
|
Put the received data, which is got by digitalRead(), into the value.
|
|
When the bitOrder is LSBFIRST, this function assembles data from LSB. In the i-th loop, it puts the received data to the i-th bit of value.
When the bitOrder is not LSBFIRST, this function assembles data from MSB. In the i-th loop, it puts the received data to the (7 - i-th) bit of value.
After receiving a bit, it outputs LOW to the clockPin.
Finally it returns the value.
|
|
Version
Arduino AVR Boards 1.8.6
Last Update
March 21, 2023