Espruino:Справочник по API/Глобальные методы, переменные и объекты/Функция shiftOut(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[]</ref>= <syntaxhighlight lang="javascri...»)
 
Нет описания правки
 
(не показаны 4 промежуточные версии 2 участников)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=<ref>[]</ref>=
=Функция shiftOut()<ref>[https://www.espruino.com/Reference#t_l__global_shiftOut www.espruino.com - function shiftOut]</ref>=


==Синтаксис==


<syntaxhighlight lang="javascript">
function shiftOut(pins, options, data)
</syntaxhighlight>


==Параметры==


* '''pins''' – контакт или массив контактов, которым надо передать данные
* '''options''' – настройки тактовой частоты (см. ниже)
* '''data''' – данные, которые надо сдвинуть и отправить (см. описание [https://www.espruino.com/Reference#l_E_toUint8Array E.toUint8Array], чтобы посмотреть, в каком виде можно задать данные в этом аргументе)


==Описание==


<syntaxhighlight lang="javascript" enclose="div">
Выполняет побитовый сдвиг и передачу битов заданным контактам, начиная с самого младшего бита.


Пример:
<syntaxhighlight lang="javascript">
// сдвиг и передача битов на один контакт A0
// с использованием «clk» и «data»:
shiftOut(A0, { clk : A1 }, [1,0,1,0]);
// сдвиг и передача целого байта (типа программной SPI)
shiftOut(A0, { clk : A1, repeat: 8 }, [1,2,3,4]);
// сдвиг и передача данных 4 контактам:
shiftOut([A3,A2,A1,A0], { clk : A4 }, [1,2,3,4]);
</syntaxhighlight>
</syntaxhighlight>
Объект options устроен следующим образом:
<syntaxhighlight lang="javascript">
{
  clk : pin,    // контакт для тактовой частоты
                // (undefined = без контакта)
  clkPol : bool, // полярность тактового сигнала,
                // по умолчанию – «0»,
                // так что можно поставить «1»,
                // а затем переключаться на «0» для передачи данных
  repeat : int,  // количество тиков на один элемент массива
}
</syntaxhighlight>
Контактам будет передан каждый элемент массива ''data'', и первым контактом, который будет получать данные, будет самый старший контакт в массиве контактов, а последним – самый младший. Тактовый сигнал будет работать с полярностью заданной в ''clkPol''.
Значение в ''repeat'' – это то, сколько раз будут выполнены сдвиг и отправка данных каждому элементу массива. К примеру, если вам нужно сдвинуть и отправить ''8 бит'' двум контактам, в repeat нужно задать ''«4»''.


=См.также=
=См.также=


{{ads}}
 


=Внешние ссылки=
=Внешние ссылки=
Строка 22: Строка 59:
<references />
<references />


{{Навигационная таблица/Espruino}}
{{Навигационная таблица/Портал/Espruino}}
{{Навигационная таблица/Телепорт}}
 
[[Категория:Функция]]

Текущая версия от 15:11, 20 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция shiftOut()[1]

Синтаксис

function shiftOut(pins, options, data)

Параметры

  • pins – контакт или массив контактов, которым надо передать данные
  • options – настройки тактовой частоты (см. ниже)
  • data – данные, которые надо сдвинуть и отправить (см. описание E.toUint8Array, чтобы посмотреть, в каком виде можно задать данные в этом аргументе)

Описание

Выполняет побитовый сдвиг и передачу битов заданным контактам, начиная с самого младшего бита.

Пример:

// сдвиг и передача битов на один контакт A0
// с использованием «clk» и «data»:
shiftOut(A0, { clk : A1 }, [1,0,1,0]);
// сдвиг и передача целого байта (типа программной SPI)
shiftOut(A0, { clk : A1, repeat: 8 }, [1,2,3,4]);
// сдвиг и передача данных 4 контактам:
shiftOut([A3,A2,A1,A0], { clk : A4 }, [1,2,3,4]);

Объект options устроен следующим образом:

{
  clk : pin,     // контакт для тактовой частоты
                 // (undefined = без контакта)
  clkPol : bool, // полярность тактового сигнала,
                 // по умолчанию – «0»,
                 // так что можно поставить «1»,
                 // а затем переключаться на «0» для передачи данных
  repeat : int,  // количество тиков на один элемент массива
}

Контактам будет передан каждый элемент массива data, и первым контактом, который будет получать данные, будет самый старший контакт в массиве контактов, а последним – самый младший. Тактовый сигнал будет работать с полярностью заданной в clkPol.

Значение в repeat – это то, сколько раз будут выполнены сдвиг и отправка данных каждому элементу массива. К примеру, если вам нужно сдвинуть и отправить 8 бит двум контактам, в repeat нужно задать «4».

См.также

Внешние ссылки