vielen dank, botty für den code...
mache Dir bitte keine gedanken über "zu viel erklärender text" und so, lieber mehr als weniger. Und auch wenn mein englisch ausreichend ist um beim lesen technischer texte halbwegs zu verstehen um was es geht - die deutschen kommentare und erklärungen sind richtig wohltuend...
für meinen "programmierstand" ist der code recht ambitioniert, ich brauche zeit um alles zu verstehen. Ich versuche so zu lernen, dass ich fremden code zuerst zu erfassen versuche, dann starte und durch veränderungen mir verborgen gebliebenes zu verstehen versuche. Dazu brauche ich - wie schon gesagt - zeit und einen funktionierenden sketch
---- ist da evtl. beim copy und paste etwas verloren gegangen? Oder muss ich irgendwo etwas ergänzen/anpassen?
schon hier:
Code:
enum motoren_e {
M_VL = 0, // Motor vorne links
M_HL,
M_VR,
M_HR,
M_MAX
};
die reiehnfolge meiner motoren ist durch die lage des mega und des darauf gesteckten motorshilds eine andere (die zahlen entsprechen den motoren 1 bis 4 des motorshields...):
Code:
M_Hl = 1
M_Hr = 2
M_Vr = 3
M_Vl = 4
die eigentliche zuordnung zu den motorbezeichnungen aus der lib findet aber - wenn ich es richtig verstehe - erst hier statt:
Code:
/*
* Hier werden die PWM Channel - Encoder Pin Paare gesetzt.
* Restliche Elemente muessen ebenfalls initialisiert werden.
* Werte pruefen ob sie zu den Namen oben passen.
* Fuer die externen Interrupts sind die Pins 2,5,18-21
* erlaubt. Hardware anpassen.
*/
struct motor motoren[M_MAX] = {
{ AF_DCMotor(1), 18, 0, 0, 0 }, // M_VL
{ AF_DCMotor(2), 19, 0, 0, 0 }, // M_HL
{ AF_DCMotor(3), 20, 0, 0, 0 }, // M_VR
{ AF_DCMotor(4), 21, 0, 0, 0 } // M_HR
};
Beim versuch den sketch zu kompilieren bekomme ich folgende fehlermeldung:
Code:
botty_4_motoren_1.ino: In function ‘void setup()’:
botty_4_motoren_1.ino:70:62: error: ‘digitalPinToInterrupt’ was not declared in this scope
botty_4_motoren_1.ino: In function ‘void loop()’:
botty_4_motoren_1.ino:93:13: error: ambiguous overload for ‘operator+=’ (operand types are ‘String’ and ‘double’)
botty_4_motoren_1.ino:93:13: note: candidates are:
In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h:192:0,
from botty_4_motoren_1.ino:9:
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:108:11: note: String& String::operator+=(char)
String & operator += (char c) {concat(c); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:109:11: note: String& String::operator+=(unsigned char)
String & operator += (unsigned char num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:110:11: note: String& String::operator+=(int)
String & operator += (int num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:111:11: note: String& String::operator+=(unsigned int)
String & operator += (unsigned int num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:112:11: note: String& String::operator+=(long int)
String & operator += (long num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:113:11: note: String& String::operator+=(long unsigned int)
String & operator += (unsigned long num) {concat(num); return (*this);}
^
botty_4_motoren_1.ino: In function ‘void setupMulti()’:
botty_4_motoren_1.ino:116:62: error: ‘digitalPinToInterrupt’ was not declared in this scope
botty_4_motoren_1.ino: In function ‘void loopMulti()’:
botty_4_motoren_1.ino:157:15: error: ambiguous overload for ‘operator+=’ (operand types are ‘String’ and ‘double’)
botty_4_motoren_1.ino:157:15: note: candidates are:
In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h:192:0,
from botty_4_motoren_1.ino:9:
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:108:11: note: String& String::operator+=(char)
String & operator += (char c) {concat(c); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:109:11: note: String& String::operator+=(unsigned char)
String & operator += (unsigned char num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:110:11: note: String& String::operator+=(int)
String & operator += (int num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:111:11: note: String& String::operator+=(unsigned int)
String & operator += (unsigned int num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:112:11: note: String& String::operator+=(long int)
String & operator += (long num) {concat(num); return (*this);}
^
/usr/share/arduino/hardware/arduino/cores/arduino/WString.h:113:11: note: String& String::operator+=(long unsigned int)
String & operator += (unsigned long num) {concat(num); return (*this);}
^
an der verstehe ich nur, dass ‘digitalPinToInterrupt’ nicht deklariert wurde, deshalb die frage ob es beim kopieren passiert sein könnte, oder ob ich woanders suchen muss?
Lesezeichen