Kompilierfehler Azurit 1.0a6 und Arduino IDE 1.0.6

treiss

New member
Hallo,

versuche eben den Ardumower Code Azurit 1.0a6 und der mitgelieferten IDE 1.0.6 und OpenSuse 13.2 zu prüfen und hochzuladen, erhalten aber folgende Fehler:

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Linux), Board: "Arduino Mega 2560 or Mega ADK"
In file included from mower.h:29,
from config.h:10,
from mega.cpp:39:
robot.h:194: error: ISO C++ forbids initialization of member ‘esp8266ConfigString’
robot.h:194: error: making ‘esp8266ConfigString’ static
robot.h:194: error: invalid in-class initialization of static data member of non-integral type ‘String’

Ich habe dann in robot.h folgendes abgeändert:

char esp8266Use; // use ESP8266 Wifi module?
//String esp8266ConfigString = "";
String esp8266ConfigString;

Allerdings kommen dann folgende Fehler beim 2. Durchlauf:


This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Linux), Board: "Arduino Mega 2560 or Mega ADK"
mini.cpp.o:(.bss.senSonarTurn+0x0): multiple definition of `senSonarTurn'
mega.cpp.o:(.bss.senSonarTurn+0x0): first defined here
/home/thomas/arduino-1.0.6/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../avr/bin/ld: Disabling relaxation: it will not work with multiple definitions
mower.cpp.o: In function `Mower::Mower()':
mower.cpp:134: multiple definition of `senSonarTurn'
mega.cpp.o:(.bss.senSonarTurn+0x0): first defined here
pfod.cpp.o: In function `RemoteControl::initSerial(HardwareSerial*, unsigned long)':
pfod.cpp:47: multiple definition of `senSonarTurn'
mega.cpp.o:(.bss.senSonarTurn+0x0): first defined here
robot.cpp.o: In function `Robot::Robot()':
robot.cpp:43: multiple definition of `senSonarTurn'
mega.cpp.o:(.bss.senSonarTurn+0x0): first defined here
ardumower.cpp.o: In function `setup':
/home/thomas/arduino-1.0.6/ardumower.ino:48: multiple definition of `senSonarTurn'
mega.cpp.o:(.bss.senSonarTurn+0x0): first defined here
Wire/Wire.cpp.o: In function `TwoWire::begin(int)':
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:75: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:76: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:76: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:76: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:76: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:76: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/libraries/Wire/Wire.cpp:76: warning: internal error: out of range error
core.a(HardwareSerial.cpp.o): In function `global constructors keyed to rx_buffer':
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/HardwareSerial.cpp:504: warning: internal error: out of range error
core.a(HardwareSerial.cpp.o): In function `global constructors keyed to rx_buffer':
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/Print.h:43: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/Print.h:43: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/Print.h:43: warning: internal error: out of range error
core.a(HardwareSerial.cpp.o): In function `global constructors keyed to rx_buffer':
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/Stream.h:53: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/Stream.h:53: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/Stream.h:53: warning: internal error: out of range error
core.a(main.cpp.o): In function `main':
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/main.cpp:44: warning: internal error: out of range error
/home/thomas/arduino-1.0.6/hardware/arduino/cores/arduino/main.cpp:44: warning: internal error: out of range error

Mache ich was falsch oder sind das bekannte Sachen im aktuellen Code?

Gruß
Thomas
 
Hallo,

bist Du streng nach dem Wiki vorgegangen? ;) http://wiki.ardumower.de/index.php?title=Ardumower_LP#Programm_downloaden_und_Arduino_programmieren
Ich würde als erstes eine aktuellere Arduino IDE versuchen. Man kann natürlich versuchen es mit der alten 1.0 hinzubekommen, entwickelt und getestet wurde jedoch mit der aktuellen Arduino IDE.

PS: Die Arduino IDE 1.0 im Github ist nur für spezielle Atmel-Controller gedacht (einige davon werden wohl auf zukünftigen PCBs sitzen).

Gruss,
Alexander
 
Ah, ich denke in

robot.h

muss sich "SenSonarTurn" nicht bei den "Sensor" enum bestimmt innerhalb der geschweiften Klammer befinden, oder?

/ sensors
enum {
SEN_PERIM_LEFT, // 0..MAX_PERIMETER
SEN_PERIM_RIGHT, // 0..MAX_PERIMETER
SEN_PERIM_LEFT_EXTRA, // 0..MAX_PERIMETER
SEN_PERIM_RIGHT_EXTRA, // 0..MAX_PERIMETER
SEN_LAWN_FRONT,
SEN_LAWN_BACK,
SEN_BAT_VOLTAGE, // Volt * 100
SEN_CHG_CURRENT, // Ampere * 100
SEN_CHG_VOLTAGE, // Volt * 100
SEN_MOTOR_LEFT, // 0..MAX_MOTOR_CURRENT
SEN_MOTOR_RIGHT, // 0..MAX_MOTOR_CURRENT
SEN_MOTOR_MOW, // 0..MAX_MOW_CURRENT
SEN_BUMPER_LEFT, // LOW = pressed
SEN_BUMPER_RIGHT, // LOW = pressed
SEN_DROP_LEFT, // LOW = pressed // Dropsensor - Absturzsensor
SEN_DROP_RIGHT, // LOW = pressed // Dropsensor - Absturzsensor

SEN_SONAR_CENTER, // 0..SONAR_TRIGGER_DISTANCE
SEN_SONAR_LEFT, // 0..SONAR_TRIGGER_DISTANCE
SEN_SONAR_RIGHT, // 0..SONAR_TRIGGER_DISTANCE
SEN_BUTTON, // LOW = pressed
SEN_IMU,
SEN_MOTOR_MOW_RPM,
SEN_RTC,
SEN_RAIN,
senSonarTurn // falsch plaziert?
};

war vorher

/ sensors
enum {
SEN_PERIM_LEFT, // 0..MAX_PERIMETER
SEN_PERIM_RIGHT, // 0..MAX_PERIMETER
SEN_PERIM_LEFT_EXTRA, // 0..MAX_PERIMETER
SEN_PERIM_RIGHT_EXTRA, // 0..MAX_PERIMETER
SEN_LAWN_FRONT,
SEN_LAWN_BACK,
SEN_BAT_VOLTAGE, // Volt * 100
SEN_CHG_CURRENT, // Ampere * 100
SEN_CHG_VOLTAGE, // Volt * 100
SEN_MOTOR_LEFT, // 0..MAX_MOTOR_CURRENT
SEN_MOTOR_RIGHT, // 0..MAX_MOTOR_CURRENT
SEN_MOTOR_MOW, // 0..MAX_MOW_CURRENT
SEN_BUMPER_LEFT, // LOW = pressed
SEN_BUMPER_RIGHT, // LOW = pressed
SEN_DROP_LEFT, // LOW = pressed // Dropsensor - Absturzsensor
SEN_DROP_RIGHT, // LOW = pressed // Dropsensor - Absturzsensor

SEN_SONAR_CENTER, // 0..SONAR_TRIGGER_DISTANCE
SEN_SONAR_LEFT, // 0..SONAR_TRIGGER_DISTANCE
SEN_SONAR_RIGHT, // 0..SONAR_TRIGGER_DISTANCE
SEN_BUTTON, // LOW = pressed
SEN_IMU,
SEN_MOTOR_MOW_RPM,
SEN_RTC,
SEN_RAIN,
}senSonarTurn;
 
Wer hat das denn da eingefügt :huh: - Das gehört ganz weg ... Danke Dir für den Fund!

...
EN_IMU,
SEN_MOTOR_MOW_RPM,
SEN_RTC,
SEN_RAIN,
};
 
Hallo,

das ist ja eine schnelle Reaktion.

Ich habe zuerst mit der aktuellen IDE 1.6.9 begonnen und auch auf solche Meldungen gestoßen.

Dann dachte ich mir, da die IDE 1.0.6 im kompletten heruntergeladenen tar.gz Packt enthalten ist, sollte evtl. damit gearbeitet werden.

Ich habe lt. Wiki die Sensoren alle in mower.cpp deaktiviert, aber das Board erstmal nur per USB am PC und nicht direkt im Mower angeschlossen.

Die Software habe ich vorerst nur in der IDE prüfen lassen ohne es hochzuladen.

Gruß
Thomas
 
Oben