Processing:Библиотеки/Hardware I/O/Класс SPI/transfer()

Материал из Онлайн справочника
Версия от 11:51, 20 мая 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску


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



transfer()[1]

Класс

SPI

Обозначение

transfer()

Описание

Передает данные через шину SPI.

В интерфейсе SPI происходит одновременный обмен данными между ведущим и ведомым устройствами. То есть с каждым отправляемым байтом также считывается один байт.

Синтаксис

.transfer(out)

Параметры

out  отправляемые данные. Это может быть срока, целое число (например, цифровой литерал: от «0» до «255» или от «-128» до «127»), байт или массив байтов. Тип данных  String, int, byte или массив byte[]

Возвращаемое значение

Массив byte[].

Пример

import processing.io.*;
SPI adc;

void setup() {
  //printArray(SPI.list());
  adc = new SPI(SPI.list()[0]);
  adc.settings(500000, SPI.MSBFIRST, SPI.MODE0);
}

void draw() {
  // считываем значения через интерфейс SPI,
  // присланные от цифроаналогового преобразователя;
  // отправляемые данные являются просто нулями – 
  // эти данные необязательно должны что-либо значить:
  byte[] out = { 0, 0 };
  byte[] in = adc.transfer(out);
  // согласно «даташиту», выполняем сдвиг входящих битов:
  int val = ((in[0] & 0x1f) << 5) | ((in[1] & 0xf8) >> 3);
  // значение в диапазоне от «0» до «1023»:
  println(val);
}

См.также

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