Описание
Вводит последовательно (побитно) байт информации на контакт (т.е. передает байт с внешнего устройства). Ввод может осуществляться со старшего (левого) или младшего (правого) значащего бита. Процесс считывания каждого бита заключается в следующем: тактовый ((синхронизирующий) контакт переводится в высокий уровень, считывается очередной бит из линии данных, после чего тактовый контакт сбрасывается в низкий уровень.
Примечание: Для взаимодействия с устройствами, тактируемыми по фронту импульсов, перед вызовом shiftIn() необходимо убедиться, что тактовый контакт переключен в низкий уровень, например с помощью функции digitalWrite(clockPin, LOW).
Функция является программной реализацией SPI; аппаратная версия реализована в библиотеке SPI, поэтому она является быстрее, но работает только со специальными контактами.
Синтаксис
byte incoming = shiftIn(dataPin, clockPin, bitOrder);
Параметры
dataPin - информационный контакт, которому будет отправляться каждый бит из сдвигаемого байта данных (int)
clockPin - тактовый (синхронизирующий) контакт, который будет переключаться при считывании с dataPin (int)
bitOrder - характеризует порядок, в котором будут сдвигаться и вводиться биты; может принимать значения MSBFIRST или LSBFIRST. (Most Significant Bit First - старший значащий бит первым, или Least Significant Bit - младший значащий бит первым).
Возвращаемые значения
считанное значение (byte)
Смотрите также:
shiftOut()
SPI
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/ShiftIn |