Добрый день, на ардуино нано пытаюсь загрузить в цап по SPI уровень (микруха DAC101S101), по сигналам на пинах на ардуинке непонятно почему идет 4 пакета синхронизации по 8 бит. Пробовал менять режим моде с разными значениями (0-3), на выходе цапа всёравно уровень не меняется и не зависит от входного кода for(int j; j<sizeof(s); j++) { byte b=s>>8*j; SPI.transfer(b); } По даташиту на цап сигнал синхронизации не разрывается и идет все 16 импульсов начиная с младшего. Пробовал передавать код меньше двух байт и ничего не менялось уровень на выходе "0". Может кто мне помочь в данном вопросе?
Так в приведенном куске кода и идет передача двухбайтного кода, в принципе я кажись экспериментами дошел до нужного результата. Поучается что при передаче кода 0x02AA(например) то на цап передается 0хАА02. Вообщем перед отправкой кода я его перекручиваю(меняю байты местами) и тогда уже -> на цап, все получилось, на выходе устанавливается соответствующий уровень. Благодаря даташиту на цап, именно сигналам записи (форме сигнала), для моего случая получилось моде0 и поменять байты местами. Осцыл помог, без него и рыпаться не стоит, Тема закрыта.
Ну как написано, так и передается Код (C++): unsigned s = 0xAA02; for (unsigned j = 0; j < sizeof(s); j++) { byte b = s >> 8 * j; Serial.println(b, BIN); } Вывод: Код (Text): 10 10101010 j в for() нужно инициализировать, локальные переменные не инициализируются автоматически.