Arduino:Справочник языка Arduino/Функции/Дополнительные функции ввода/вывода/shiftIn(): различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c">» на «<syntaxhighlight lang="c" enclose="div">») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 42: | Строка 42: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Справочник языка Arduino}} | |||
{{Навигационная таблица/Arduino библиотеки}} | |||
[[Категория:Функция]] | [[Категория:Функция]] |
Версия от 23:27, 19 июня 2019
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Функция shiftIn()[1]
Выполняет побитовый сдвиг — по одному биту за раз. Начинает с самого (то есть левого) или наименее (то есть правого) значимого бита. Процесс проходит следующим образом: тактовый контакт переключается в состояние HIGH, из линии данных считывается очередной бит, а затем тактовый контакт переключается обратно в положение LOW.
Если вы работаете с девайсом, который синхронизируется по переднему фронту импульса, перед вызовом shiftIn() нужно обязательно перевести тактовый контакт в положении LOW. Сделать это можно, например, при помощи функции
digitalWrite(clockPin, LOW).
Примечание
Функция shiftIn() является программной реализацией. Но в Arduino есть библиотека SPI, которая использует аппаратную реализацию — она быстрее, но работает только со специальными контактами.
Синтаксис
byte incoming = shiftIn(dataPin, clockPin, bitOrder)
Параметры
dataPin — контакт, с которого будут считываться биты (тип данных — int)
clockPin — тактовый контакт, который будет переключатся с LOW на HIGH и наоборот, чтобы задавать «ритм» для считывания с dataPin
bitOrder — порядок, в котором будут сдвигаться биты (MSBFIRST – Most Significant Bit First, т.е. «первым — самый значимый бит»; LSBFIRST — Most Significant Bit First, т.е. «первым — наименее значимый бит»)
Что возвращает
Считанное значение (тип данных — byte)