Свой блок из кода

Вопросы от новичков
Ответить
ProTV
Рядовой
Сообщения: 11
Зарегистрирован: 13 сен 2017, 08:59

Свой блок из кода

Сообщение ProTV »

Добрый день всем форумчанам.
Озадачился сделать свой блок из кода для ЦАПа MCP4921.
Сам код работает корректно, а вот перенести его в блок не получается.
Задача такая, что на входе блока имеем значение от 0 до 100%, масштабируем штатными средствами до 0 ...4095.
Но перезапись данного значения должна происходить только при изменении текущего значения на новое (пользователь изменил значение).
Используем библиотеку SPI.

Вход блока - In
Разрешение на запись - Write (Enable)
В свойствах необходимо выбрать номер пина - CS

Таких микросхем на шине SPI планируется - 6, вот так же думаю как сделать что бы не было конфликта, и соблюдалась очерёдность.
То есть данные по SPI приходили на нужный CS.


Под спойлером рабочий пример, в котором значение на выходе ЦАПа меняется по нарастающей, а после по убывающей.
Буду признателен за советы и рекомендации.


[spoiler]

Код: Выделить всё

#include <SPI.h>
#define CS_DAC1 44
void setup()
{   
  pinMode(CS_DAC1,OUTPUT);
  digitalWrite(CS_DAC1,HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV2);
}

void loop()
{
  for (int i=0; i<4095; i++){
                             Write4921(i, CS_DAC1) ;
                            delay(10);
                            }
 for (int i=4095; i>1; i--){
                             Write4921(i, CS_DAC1) ;
                              delay(10);
                            }
}

void Write4921(int value, int CS) {
  byte data;
  digitalWrite(CS, LOW);
  data = highByte(value);
  data = B00001111 & data; // D7 D6 D5 D4 D3 D2 D1 D0
  data = B00010000 | data; // A/B BUF GA SHDN D11 D10 D9 D8
  SPI.transfer (data); 
  data = lowByte(value);
  SPI.transfer (data); 
  digitalWrite(CS, HIGH);
}
[/spoiler]
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Свой блок из кода

Сообщение Sancho »

Типа так...
Вход 0-4095, отправляется при смене значения на Input при En true.

Отправлено спустя 6 минут 51 секунду:
ProTV писал(а): 03 июн 2018, 18:22Таких микросхем на шине SPI планируется - 6, вот так же думаю как сделать что бы не было конфликта, и соблюдалась очерёдность.
То есть данные по SPI приходили на нужный CS.
Поставь SN74HC595 - будешь выбирать нужный CS с её помощью или CD4028B. Вариантов много...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ProTV
Рядовой
Сообщения: 11
Зарегистрирован: 13 сен 2017, 08:59

Свой блок из кода

Сообщение ProTV »

Спасибо большое :). Просветили немного.
Всё работает, теперь разбираюсь с блоком ПИД Бороды. Не могу заставить его работать.

Отправлено спустя 2 минуты 22 секунды:
Офтоп: подскажите где программа хранит созданные блоки пользователя, в папке программы нет.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Свой блок из кода

Сообщение Sancho »

ProTV писал(а): 04 июн 2018, 18:44где программа хранит созданные блоки пользователя, в папке программы нет.
Пока Вы не сохраните блок - его как-бы нет, он внутри проги.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ProTV
Рядовой
Сообщения: 11
Зарегистрирован: 13 сен 2017, 08:59

Свой блок из кода

Сообщение ProTV »

Век живи, век учись :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26 ноя 2017, 23:18
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Свой блок из кода

Сообщение Golan »

ProTV писал(а): 04 июн 2018, 18:44Офтоп: подскажите где программа хранит созданные блоки пользователя, в папке программы нет.
Вот тут у меня, у Вас примерно там же c:\Users\Name\AppData\Roaming\flprog\userBlocks.sixx

Отправлено спустя 6 минут 55 секунд:
ProTV писал(а): 04 июн 2018, 19:17Век живи, век учись
Блоки без описания и авторства, жесть!
Добро не ценится в современном мире, люди от него наглеют!
Ответить

Вернуться в «Начинающим»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя