отправка 16-битной команды через SPI на NCV7719 (полумост)

Я пытаюсь отправить 16-битную команду на полумост (техническое описание здесь http://www.onsemi.com/pub/Collateral/NCV7719-D.PDF), чтобы открыть один из транзисторов и включить светодиод. Внизу технического описания (стр. 13) указано, какой бит должен быть 1 или 0, чтобы активировать полумост. Это код, который я написал, но он не работает (я предполагаю, что я неправильно отправляю 16 бит). Может кто-нибудь выяснить, почему это не работает?

#include <SPI.h>

void setup() {
  // put your setup code here, to run once:
  pinMode(10,OUTPUT);
  pinMode(8,OUTPUT);
  digitalWrite(8,HIGH);
  SPI.begin();

}

void loop() {
  // put your main code here, to run repeatedly:

  //pulling pin low to decide to write to device 
  digitalWrite(10,LOW);

  //function to send information
  //truning on half bridge 4 
  SPI.transfer(0000010000000000);
delay(500);
  //finish transfering data
  digitalWrite(10,HIGH);

}

, 👍0

Обсуждение

К вашему сведению, 0000010000000000 не является двоичной константой в синтаксисе C++., @Dmitry Grigoryev


1 ответ


1

SPI пишет 8-битными байтами. Поэтому записи должны выглядеть так:

  SPI.transfer(0b00000100);  // первый байт
  SPI.transfer(0b00000000);  // второй байт

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

,