Farin
13.03.2014, 23:15
Hallo zusammen,
wir benutzen Servomotoren um einen Roboterarm zu bewegen und wollen die Library VarSpeedServo nutzen um die Geschwindigkeit der Servos steuern zu können. Allerdings haben wir ein Problem beim kompilieren des Programmcodes.
#include <VarSpeedServo.h> // hier wird die Servo-Befehls-Bilbliothek eigebunden
// diese ist standardmäßig vorhanden und muss nicht extra installiert werden
VarSpeedServo servo_armUnten;
int pos = 0; // variable to store the servo position
void setup() // Setup-Funktion die einmalig nach dem Start des Arduino ausgeführt wird.
{
servo_armUnten.attach(5);
pos=90;
servo_armUnten.slowmove(pos, 1); // tell servo to go to position in variable 'pos'
} // Ende der Serup-Funktion
void loop() // Loop-Funktion, die das Board immer wieder durchläuft
{
}
Unser Board ist das ARM Board Arduino Due. Wenn wir für dieses Board den Code kompilieren wollen bekommen wir folgende Fehlermeldung:
Arduino: 1.5.6-r2 (Windows 7), Board: "Arduino Due (Programming Port)"
Build options changed, rebuilding all
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:158: error: expected constructor, destructor, or type conversion before '(' token
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp: In function 'void initISR(timer16_Sequence_t)':
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:206: error: 'TCCR1A' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:207: error: 'TCCR1B' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:207: error: 'CS11' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:207: error: '_BV' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:208: error: 'TCNT1' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:214: error: 'TIFR1' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:214: error: 'OCF1A' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:215: error: 'TIMSK1' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:215: error: 'OCIE1A' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp: In member function 'void VarSpeedServo::writeMicroseconds(int)':
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:368: error: 'SREG' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:369: error: 'cli' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp: In member function 'void VarSpeedServo::write(int, uint8_t)':
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:414: error: 'SREG' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:415: error: 'cli' was not declared in this scope
Testweise haben wir das ganze mal für ein beliebiges AVR Board kompilieren lassen, was problemlos funktionierte. Der Fehler liegt also offenbar in der VarSpeedServo Library, da diese anscheinend nur mit AVR Boards funktioniert. Hat jemand eine Idee, wie wir dieses Problem lösen können? Am liebsten wäre es uns, wenn wir die Library einfach irgendwie anpassen könnten, da diese die Geschwindigkeitssteuerung ganz simpel über einen einzigen Parameter ermöglicht.
Dann viel Spaß beim Grübeln und schonmal vielen Dank für eure Unterstützung.
Viele Grüße
Farin
wir benutzen Servomotoren um einen Roboterarm zu bewegen und wollen die Library VarSpeedServo nutzen um die Geschwindigkeit der Servos steuern zu können. Allerdings haben wir ein Problem beim kompilieren des Programmcodes.
#include <VarSpeedServo.h> // hier wird die Servo-Befehls-Bilbliothek eigebunden
// diese ist standardmäßig vorhanden und muss nicht extra installiert werden
VarSpeedServo servo_armUnten;
int pos = 0; // variable to store the servo position
void setup() // Setup-Funktion die einmalig nach dem Start des Arduino ausgeführt wird.
{
servo_armUnten.attach(5);
pos=90;
servo_armUnten.slowmove(pos, 1); // tell servo to go to position in variable 'pos'
} // Ende der Serup-Funktion
void loop() // Loop-Funktion, die das Board immer wieder durchläuft
{
}
Unser Board ist das ARM Board Arduino Due. Wenn wir für dieses Board den Code kompilieren wollen bekommen wir folgende Fehlermeldung:
Arduino: 1.5.6-r2 (Windows 7), Board: "Arduino Due (Programming Port)"
Build options changed, rebuilding all
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:158: error: expected constructor, destructor, or type conversion before '(' token
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp: In function 'void initISR(timer16_Sequence_t)':
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:206: error: 'TCCR1A' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:207: error: 'TCCR1B' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:207: error: 'CS11' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:207: error: '_BV' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:208: error: 'TCNT1' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:214: error: 'TIFR1' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:214: error: 'OCF1A' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:215: error: 'TIMSK1' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:215: error: 'OCIE1A' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp: In member function 'void VarSpeedServo::writeMicroseconds(int)':
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:368: error: 'SREG' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:369: error: 'cli' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp: In member function 'void VarSpeedServo::write(int, uint8_t)':
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:414: error: 'SREG' was not declared in this scope
C:\Users\Stefan\Documents\Arduino\libraries\VarSpe edServo\VarSpeedServo.cpp:415: error: 'cli' was not declared in this scope
Testweise haben wir das ganze mal für ein beliebiges AVR Board kompilieren lassen, was problemlos funktionierte. Der Fehler liegt also offenbar in der VarSpeedServo Library, da diese anscheinend nur mit AVR Boards funktioniert. Hat jemand eine Idee, wie wir dieses Problem lösen können? Am liebsten wäre es uns, wenn wir die Library einfach irgendwie anpassen könnten, da diese die Geschwindigkeitssteuerung ganz simpel über einen einzigen Parameter ermöglicht.
Dann viel Spaß beim Grübeln und schonmal vielen Dank für eure Unterstützung.
Viele Grüße
Farin