получается манипуляцией последних двух значений (int (&data), 1) либо записать 0 или 770 или 1280.
спасибо.
Код: Выделить всё
#include <SimpleModbusMaster.h>
#define TxEnablePin 2
#define TOTAL_NO_OF_REGISTERS 2
#define _local_start_address 1
int data = 90;
enum
{ PACKET1,
PACKET2,
TOTAL_NO_OF_PACKETS
};
Packet packets[TOTAL_NO_OF_PACKETS];
unsigned int regs[TOTAL_NO_OF_REGISTERS];
int reading(int r)// функция чтения из ведомого
{ delay(200);
modbus_construct(&packets[PACKET1], 2, 3, r, 1, 0);
modbus_update();
return Serial.println(regs[0]);//просмотр на ведомом значения с адресом r
}
void setup()
{
modbus_configure(&Serial1, 4800, SERIAL_8N2, 1000, 200, 5, TxEnablePin , packets, TOTAL_NO_OF_PACKETS, regs);
Serial.begin(9600);
}
void loop()
{
reading(0x0501);
delay(100);
modbus_construct(&packets[PACKET2], 2, 6, 0x0501, int (&data), 2); // проблема здесь!!!! где и как указать данные что нужно записать
modbus_update();
Serial.println(int (&data)); // просмотр номер ячейки памяти