Arduino 1.0.6 unterschied zu Arduino 1.6.9

Gast #4646477
Lesenswert?

Hallo!

Ich habe vor langer Zeit ein Programm in Arduino 1.0.6 geschrieben, 
heute wollte ich etwas verändern und hab dazu schon das neu Arduino 
1.6.9 verwendet. Ohne Veränderung kommt der Fehler:

C:\Program Files 
(x86)\arduino-1.6.9\libraries\ModbusMaster/ModbusMaster.h:88:24: fatal 
error: util/crc16.h: No such file or directory

Könnt Ihr mir bei diesem Problem helfen? (Ich möchte gerne Arduino 
1.6.9) weiter verwenden)

Danke!
Gast #4646581
Lesenswert?

Habe nun die neue Libary für Modbus installiert. Damit lese ich einen 
SDM630 Zähler aus, senden kann ich aber empfangen nichts.

Hat jemand eine Ahnung ?

Meine SOFT:

#include <ModbusMaster.h>

ModbusMaster node(1,1); //MODBUS PORT UND ADRESSE
static int MAX_ITERATION = 20;
const int SDM_SIZE = 30;
float SDM_Data[SDM_SIZE];


void setup() {
  node.begin(9600);         //ModBus UART
  Serial.begin(9600);
}


void loop() {
for(int i = 0; i < SDM_SIZE;i++)
SDM_Data[i] = -1;

getRTUMore(0x000C,3,7);  // Parameter   7 -   9 Watt
getRTUMore(0x0000,3,1);  // Parameter   1 -   3 Spannung
Serial.print(SDM_Data[1]);
Serial.print(" : ");
Serial.print(SDM_Data[2]);
Serial.print(" : ");
Serial.println(SDM_Data[3]);
delay(1000);
}

boolean getRTUMore(uint16_t m_startAddress,uint8_t m_length,int 
arrayPosition){
  uint16_t result;
  int counter = 0;
  while(counter < MAX_ITERATION)
  {
    digitalWrite(3, HIGH); // TX
    if (node.ku8MBSuccess == node.readInputRegisters(m_startAddress, 
(m_length*2))) {
      for(int i = 0; i < m_length; i++){
        SDM_Data[arrayPosition] = 
reform_uint16_2_float32(node.getResponseBuffer(i*2),node.getResponseBuff 
er((i*2)+1));
        arrayPosition++;
      }
      node.clearResponseBuffer();
      return true;
    }
    counter++;
   digitalWrite(3, LOW);
  }
  return false;
}

float reform_uint16_2_float32(uint16_t u1, uint16_t u2)
{
   uint32_t num = ((uint32_t)u1 & 0xFFFF) << 16 | ((uint32_t)u2 & 
0xFFFF);
    float numf;
    memcpy(&numf, &num, 4);
    return numf;
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren