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