====== SPI ====== Класс предназначен для работы с SPI-интерфейсом. class:: SPI() Для непосредственной работы с аппаратными SPI используются экземпляры класса — ''SPI1'', ''SPI2'' и ''SPI3''. Так же можно создать программный интерфейс, создав новый экземпляр класса ''new SPI()''. Программный SPI имеет ограниченный функционал (не настраивается скорость передачи), но может работать на любых пинах. func:: SPI.find(pin) Возвращает экземпляр аппаратного SPI, который работает на пине ''pin'', иначе — ''undefined''. func:: SPIn.setup(options) Настраивает SPI шину. Параметры ''options'': * ''sck'' — пин тактирования; * ''miso'' — пин передачи данных к Iskra JS; * ''mosi'' — пин передачи данных от Iskra JS; * ''baud'' — скорость соединения, по умолчанию 100000; * ''mode'' — режим 0/1/2/3; * ''order'' — начальный бит в байте 'msb'/'lsb', по умолчанию 'msb' SPI2.setup({baud:3200000, mosi:B15, sck:B13, miso:B14}); func:: SPIn.send4bit(data, bit0, bit1, nss_pin) func:: SPIn.send8bit(data, bit0, bit1, nss_pin) func:: SPIn.send(data, nss) Отправляет данные ''data'' и возвращает результат. Если ''data'' типа ''Integer'' — будет возвращен ''Integer'', если ''String'' — то ''String'', в остальных случаях — ''Uint8Array''. ''nss'' — пин контакта ''nSS'', который будет переведен в ''0'' при начале передачи, в ''1'' — при ожидании получения данных. Для увеличения производительности предпочтительней передать несколько байт в ''data'', чем вызывать ''SPIn.send()'' несколько раз. Для максимальной скорости ''data'' должен быть типа ''String'' или ''TypedArray''. func:: SPIn.write(data, [ ... , nss]) Функция записывает строку или массив, соединенный в строку, без последующего чтения. Можно передавать несколько параметров, которые будут переданы последовательно. Последним параметром может быть пин ''nSS'', который будет задействован.