Arduino due и modbus master

YaFikus
Offline
Зарегистрирован: 20.02.2017

Пытаюсь связать подуль вывода овен и ардуино DUE. 

Выдает ошибку exit status 1

ошибка компиляции для платы arduino due (programming port)

<Брал такой пример

#include <SimpleModbusMaster.h>


// Общая сумма доступной памяти на master устройстве, для хранения данных
// не забудьте изменить макроопределение TOTAL_NO_OF_REGISTERS. Если из слейва 
// запрашиваешь 4 регистра, то тогда в массиве reg должно быть не меньше 4х ячеек 
// для хранения полученных данных.
#define TOTAL_NO_OF_REGISTERS 4

// Масив пакетов modbus
// Для добавления новых пакетов просто добавте ихсюда
// сколько вам нужно.
enum
{
  PACKET1,
  PACKET2,
  PACKET3,
  PACKET4,
  TOTAL_NO_OF_PACKETS // эту строку неменять
};

// Масив пакетов модбус
Packet packets[TOTAL_NO_OF_PACKETS];

// Массив хранения содержимого принятых и передающихся регистров
unsigned int regs[TOTAL_NO_OF_REGISTERS];

void setup()
{
 // Настраиваем пакеты
 // Шестой параметр - это индекс ячейки в массиве, размещенном в памяти ведущего устройства, в которую будет 
 // помещен результат или из которой будут браться данные для передачи в подчиненное устройство. В нашем коде - это массив reg
  
 // Пакет,SLAVE адрес,функция модбус,адрес регистра,количесво запрашиваемых регистров,локальный адрес регистра.
 modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS,    0, 1, 0); // чтение данных slave-master (slave адрес 1, регистр 0) 
 modbus_construct(&packets[PACKET2], 1, READ_HOLDING_REGISTERS,    1, 1, 1); // чтение данных slave-master (slave адрес 1, регистр 1)
 
 // Пакет,SLAVE адрес,функция модбус,адрес регистра,данные,локальный адрес регистра.
 modbus_construct(&packets[PACKET3], 1, PRESET_MULTIPLE_REGISTERS, 2, 1, 2); // запись данных master-slave (slave адрес 1, регистр 2)
 modbus_construct(&packets[PACKET4], 1, PRESET_MULTIPLE_REGISTERS, 3, 1, 3); // запись данных master-slave (slave адрес 1, регистр 3)
 
 // инициализируем протокол модбус
 modbus_configure(&Serial, 115200, SERIAL_8N1, 1000, 100, 10, 2, packets, TOTAL_NO_OF_PACKETS, regs);
  

} // конец void setup()

void loop()
{
  modbus_update(); // запуск обмена по Modbus

  // если пришло 255 зажигаем светодиод 
 
  regs[2] = 255;           // запись данных master-slave (slave адрес 1, регистр 2), запись константы
  regs[3] = analogRead(0); // запись данных master-slave (slave адрес 1, регистр 3), значение из аналогового входа 0
} // конец void loop()

В чем может быть проблема?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

в библиотеках, как минимум неправильно установили для вашей IDE

YaFikus
Offline
Зарегистрирован: 20.02.2017

Подскажите тогда подходящую библиатеку для due)) а то что то не найду.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

YaFikus пишет:

Подскажите тогда подходящую библиатеку для due)) а то что то не найду.

Не подскажу, пойдите другим путём, скачайте более старую IDE и уже к ней подключите эту плату, должно заработать

YaFikus
Offline
Зарегистрирован: 20.02.2017

Скачал 1.6.4. Там поддержки due еще нет)) 

Оказывается процессор у нее arm 32 бита. Моэтому жопа с библиотеками почему-то(( или я что-то не понимаю? 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

YaFikus пишет:

Скачал 1.6.4. Там поддержки due еще нет)) 

Оказывается процессор у нее arm 32 бита. Моэтому жопа с библиотеками почему-то(( или я что-то не понимаю? 

Попробуйте скомпилировать для другой платы, когда скомпилируется, можно пробовать на DUE

YaFikus
Offline
Зарегистрирован: 20.02.2017

Выдаёт ошибку при загрузке((

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

YaFikus пишет:

Выдаёт ошибку при загрузке((

там библиотеке 5 лет, надо думаю совсем в старой версии компилировать, потом править библиотеки чтобы заработало в 1.6.5