INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Headtracker programm feheler hilfe?
23.05.2013, 14:26
Beitrag #1
Headtracker programm feheler hilfe?
hallo habe einen headtracker nach gebaut jedoch haut das programm net ganz so hin ;(
vielleicht kann mir wer helfen. da ich mal keinen plan vom programmschreiben hab :)

hier das programm:

// Written by Dennis Frie - 2012
// Contact: Dennis.frie@gmail.com

// Version 0.08

// Discussion:
// http://www.rcgroups.com/forums/showthread.php?t=1677559


/*
Channel mapping/config for PPM out:

1 = PPM CHANNEL 1
2 = PPM CHANNEL 2
3 = PPM CHANNEL 3
4 = PPM CHANNEL 4
5 = PPM CHANNEL 5
6 = PPM CHANNEL 6
7 = PPM CHANNEL 7
8 = PPM CHANNEL 8
9 = PPM CHANNEL 9
10 = PPM CHANNEL 10
11 = PPM CHANNEL 11
12 = PPM CHANNEL 12

20 = ANALOG INPUT 0
21 = ANALOG INPUT 1
22 = ANALOG INPUT 2
23 = ANALOG INPUT 3
24 = ANALOG INPUT 4
25 = ANALOG INPUT 5
26 = ANALOG INPUT 6
27 = ANALOG INPUT 7

20 = DIGITAL INPUT 0
21 = DIGITAL INPUT 1
22 = DIGITAL INPUT 2
23 = DIGITAL INPUT 3
24 = DIGITAL INPUT 4
25 = DIGITAL INPUT 5
26 = DIGITAL INPUT 6
27 = DIGITAL INPUT 7

30 = HT pan
31 = HT tilt
32 = HT roll

Mapping example:
$123456789111CH

*/
#include <Wire.h>

#include "config.h"
#include "functions.h"
#include "sensors.h"
#include "PPM_Read.h"

#include <EEPROM.h>

extern unsigned char channel_mapping[];
extern unsigned char PpmIn_PpmOut[13];
extern char read_sensors;
extern long channel_value[];

extern float gyroOff[];


int counter =0; // Delay for serial-output.
char printPlot = 0; // print plot for GUI?

// External variables (from sensors.h):
extern float tiltBeta;
extern float panBeta;
extern float gyroWeight;
extern float GyroWeightPan;
extern int maxPulse;
extern int servoPanCenter;
extern int servoTiltCenter;
extern int servoRollCenter;

extern int panMaxPulse;
extern int panMinPulse;
extern int tiltMaxPulse;
extern int tiltMinPulse;
extern int rollMaxPulse;
extern int rollMinPulse;

extern float panFactor;
extern float tiltFactor;
extern float rollFactor;

extern char tiltInverse;
extern char rollInverse;
extern char panInverse;

extern float magOffset[];

extern int accOffset[];

extern unsigned char htChannels[];

extern char resetValues;

void setup() {

Serial.begin(SERIAL_BAUD);


pinMode(7,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);

pinMode(0,INPUT);
pinMode(1,INPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(6,INPUT);
pinMode(7,INPUT);
pinMode(8,INPUT);

//Set button pin to input:
pinMode(BUTTON_INPUT,INPUT);

//Set internal pull-up resistor.
digitalWrite(BUTTON_INPUT,HIGH);

digitalWrite(0,LOW); // pull-down resistor
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);


// attachInterrupt(0,detect_PPM,CHANGE); // Interrupt to detect PPM-in.
init_pwm_interrupt(); // Start PWM interrupt

Wire.begin(); // Start I2C


// If the device have just been programmed, write initial config/values to EEPROM:
if (EEPROM.read(0) != 8) {

// #if (DEBUG)
Serial.println("New board - saving default values!");
// #endif

init_sensors();
#if (ALWAYS_CAL_GYRO ==0)
setSensorOffset();
#endif

saveSettings();
saveMagData();
saveAccData();
EEPROM.write(0,8);
}



getSettings(); // Get settings saved in EEPROM

init_sensors(); // Initialise I2C sensors
calMag();
resetCenter();
init_timer_interrupt(); // Start timer interrupt (for sensors)


}


char serial_data[101]; // Array for serial-data
unsigned char serial_index =0; // How many bytes have been received?
char string_started = 0; // Only saves data if string starts with right byte

char outputMag = 0;
char outputAcc = 0;


void loop() {

// Check button
if (digitalRead(BUTTON_INPUT)==0) {
resetValues = 1;
}


// All this is used for communication with GUI
if (Serial.available()) {

if (string_started == 1) {

// Read incoming byte
serial_data[serial_index++] = Serial.read();

// If string ends with 'CH" it's channel configuration, that have been received.
// String must always be 12 chars/bytes and ending with CH to be valid.
if (serial_data[serial_index-2] == 'C' && serial_data[serial_index-1] == 'H' && serial_index == 14) {

// To keep it simple, we will not let the channels be 0-initialised, but start from 1 to match actual channels.
for (unsigned char i=0; i<13; i++) {
channel_mapping[i+1] = serial_data[i]-48;

// Update the dedicated PPM-in -> PPM-out array for faster performance.
if (serial_data[i]-48 < 14) {
// PpmIn_PpmOut[i+1] = serial_data[i]-48;
PpmIn_PpmOut[serial_data[i]-48] =i+1;
}

}

Serial.println("Channel mapping received");

// Reset serial_index and serial_started
serial_index=0;
string_started = 0;
}



if (serial_data[serial_index-2] == 'H' && serial_data[serial_index-1] == 'E') {


// We need 8 parameters:

// LP_tilt
// LP_pan
// Gyro_weight_tilt
// Gyro_weight_pan
// servo_max
// servo_min
// tilt_servo_gain
// pan_servo_gain

Serial.println("HT config received:");

/*
for (unsigned char k = 0; k< 10; k++) {
valuesReceived[k] =0;
}
*/
int valuesReceived[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int comma_index =0;



for (unsigned char k = 0; k < serial_index-2; k++) {

// Looking for comma
if (serial_data[k] == 44) {
comma_index++;
}

else {
valuesReceived[comma_index] = valuesReceived[comma_index]*10 + (serial_data[k]-48);
}


// Mainly for debug:
#if (DEBUG)
Serial.print(serial_data[k]);
#endif

}




#if (DEBUG)
Serial.println();
for (unsigned char k = 0; k < comma_index+1; k++) {
Serial.print(valuesReceived[k]);
Serial.print(",");
}
Serial.println();
#endif

tiltBeta = (float)valuesReceived[0] / 100;
panBeta = (float)valuesReceived[1] / 100;
gyroWeight = (float)valuesReceived[2] / 100;
GyroWeightPan = (float)valuesReceived[3] / 100;

tiltFactor = (float)valuesReceived[4] / 10;
panFactor = (float)valuesReceived[5] / 10;
rollFactor = (float)valuesReceived[6] / 10;



tiltInverse = 1;
rollInverse = 1;
panInverse = 1;

if (valuesReceived[7] / 100 == 1) {
panInverse = -1;
valuesReceived[7]-=100;
}

if (valuesReceived[7] / 10 == 1) {
rollInverse = -1;
valuesReceived[7]-=10;
}

if (valuesReceived[7] / 1 == 1) {
tiltInverse = -1;
}
serial_index=0;
string_started = 0;



servoPanCenter = valuesReceived[8];
panMinPulse = valuesReceived[9];
panMaxPulse = valuesReceived[10];

servoTiltCenter = valuesReceived[11];
tiltMinPulse = valuesReceived[12];
tiltMaxPulse = valuesReceived[13];

servoRollCenter = valuesReceived[14];
rollMinPulse = valuesReceived[15];
rollMaxPulse = valuesReceived[16];

htChannels[0] = valuesReceived[17];
htChannels[1] = valuesReceived[18];
htChannels[2] = valuesReceived[19];

Serial.println(htChannels[0]);
Serial.println(htChannels[1]);
Serial.println(htChannels[2]);

saveSettings();

}

// Debug info
else if (serial_data[serial_index-5] == 'D' && serial_data[serial_index-4] == 'E' && serial_data[serial_index-3] == 'B' && serial_data[serial_index-2] == 'U' && serial_data[serial_index-1] == 'G') {
debugOutput();

serial_index=0;
string_started = 0;
}


// Start magnetometer cal
else if (serial_data[serial_index-4] == 'C' && serial_data[serial_index-3] == 'A' && serial_data[serial_index-2] == 'S' && serial_data[serial_index-1] == 'T') {
outputMag = 1;

serial_index=0;
string_started = 0;
}


// Start accelerometer cal
else if (serial_data[serial_index-4] == 'G' && serial_data[serial_index-3] == 'R' && serial_data[serial_index-2] == 'A' && serial_data[serial_index-1] == 'V') {
outputAcc = 1;

serial_index=0;
string_started = 0;
}

// Stop magnetometer cal
else if (serial_data[serial_index-4] == 'C' && serial_data[serial_index-3] == 'A' && serial_data[serial_index-2] == 'E' && serial_data[serial_index-1] == 'N') {
outputMag = 0;

serial_index=0;
string_started = 0;
}

// Stop accelerometer cal
else if (serial_data[serial_index-4] == 'G' && serial_data[serial_index-3] == 'R' && serial_data[serial_index-2] == 'E' && serial_data[serial_index-1] == 'N') {
outputAcc = 0;

serial_index=0;
string_started = 0;
}




// Start plotting if PLST received:
else if (serial_data[serial_index-4] == 'P' && serial_data[serial_index-3] == 'L' && serial_data[serial_index-2] == 'S' && serial_data[serial_index-1] == 'T') {
printPlot = 1;

serial_index=0;
string_started = 0;
}

// Stop plotting if PLEN received:
else if (serial_data[serial_index-4] == 'P' && serial_data[serial_index-3] == 'L' && serial_data[serial_index-2] == 'E' && serial_data[serial_index-1] == 'N') {
printPlot = 0;

serial_index=0;
string_started = 0;
}

// Save settings
else if (serial_data[serial_index-4] == 'S' && serial_data[serial_index-3] == 'A' && serial_data[serial_index-2] == 'V' && serial_data[serial_index-1] == 'E') {
saveSettings();

serial_index=0;
string_started = 0;
}

//Calibrate gyro
else if (serial_data[serial_index-4] == 'C' && serial_data[serial_index-3] == 'A' && serial_data[serial_index-2] == 'L' && serial_data[serial_index-1] == 'I') {
setSensorOffset();
saveSettings();

Serial.print("Gyro offset measured:");
Serial.print(gyroOff[0]);
Serial.print(",");
Serial.print(gyroOff[1]);
Serial.print(",");
Serial.println(gyroOff[2]);

serial_index=0;
string_started = 0;
}


else if (serial_data[serial_index-2] == 'M' && serial_data[serial_index-1] == 'A') {
Serial.println(serial_data);
int valuesReceived[5] = {0,0,0,0,0};
int comma_index =0;

for (unsigned char k = 0; k < serial_index-2; k++) {

// Looking for comma
if (serial_data[k] == 44) {
comma_index++;
}

else {
valuesReceived[comma_index] = valuesReceived[comma_index]*10 + (serial_data[k]-48);
}



}


magOffset[0] = valuesReceived[0]-2000;
magOffset[1] = valuesReceived[2]-2000;
magOffset[2] = valuesReceived[1]-2000;

saveMagData();
}


else if (serial_data[serial_index-3] == 'A' && serial_data[serial_index-2] == 'C' && serial_data[serial_index-1] == 'C') {
Serial.println(serial_data);
int valuesReceived[5] = {0,0,0,0,0};
int comma_index =0;

for (unsigned char k = 0; k < serial_index-3; k++) {

// Looking for comma
if (serial_data[k] == 44) {
comma_index++;
}

else {
valuesReceived[comma_index] = valuesReceived[comma_index]*10 + (serial_data[k]-48);
}



}

accOffset[0] = valuesReceived[0]-2000;
accOffset[1] = valuesReceived[1]-2000;
accOffset[2] = valuesReceived[2]-2000;

saveAccData();
}



// If more than 100 bytes have been received, the string is not valid. Reset and "try again" (wait for $ to indicate start of new string).
else if (serial_index > 100) {
serial_index = 0;
string_started = 0;
}

}

else if (Serial.read() == '$') {
string_started = 1;
}



}

// if "read_sensors" flag is set high, read sensors and update
if (read_sensors == 1) {

updateSensors();

gyroCalc();
accCalc();
magCalc();
filter();

if (counter++ >7) {

// testGyroOutput();
// testMagOutput();
// quickTest();

if (printPlot == 1) {
headtrackerOutput();

}

else if (outputMag) {
calMagOutput();
}

else if (outputAcc) {
calAccOutput();
}

counter=0;
}


// Will first update read_sensors when everything's done.
read_sensors = 0;

}


}

void saveSettings() {

// This is the necessary head-tracler settings:
/*
tiltBeta = (float)valuesReceived[0] / 100;
panBeta = (float)valuesReceived[1] / 100;
gyroWeight = (float)valuesReceived[2] / 100;
GyroWeightPan = (float)valuesReceived[3] / 100;
maxPulse = valuesReceived[4];
servoCenter = valuesReceived[5];
tiltFactor = (float)valuesReceived[6] / 10;
panFactor = (float)valuesReceived[7] / 10;
*/

// Chars
EEPROM.write(1,(unsigned char) (tiltBeta*100));
EEPROM.write(2,(unsigned char) (panBeta*100));
EEPROM.write(3,(unsigned char) (gyroWeight*100));
EEPROM.write(4,(unsigned char) (GyroWeightPan*100));

// And some integers
EEPROM.write(5,(unsigned char)maxPulse);
EEPROM.write(6,(unsigned char)(maxPulse>>8));

EEPROM.write(7,(unsigned char)servoPanCenter);
EEPROM.write(8,(unsigned char)(servoPanCenter>>8));

EEPROM.write(9,(unsigned char) (tiltFactor*10));
EEPROM.write(10,(int)((tiltFactor*10))>>8);

EEPROM.write(11,(unsigned char) (panFactor*10));
EEPROM.write(12,(int)((panFactor*10))>>8);

// Channel inverse settings:
EEPROM.write(13,(unsigned char)(tiltInverse+1));
EEPROM.write(14,(unsigned char)(rollInverse+1));
EEPROM.write(15,(unsigned char)(panInverse+1));

EEPROM.write(16,(unsigned char)servoTiltCenter);
EEPROM.write(17,(unsigned char)(servoTiltCenter>>8));

EEPROM.write(18,(unsigned char)servoRollCenter);
EEPROM.write(19,(unsigned char)(servoRollCenter>>8));


EEPROM.write(20,(unsigned char)panMaxPulse);
EEPROM.write(21,(unsigned char)(panMaxPulse>>8));

EEPROM.write(22,(unsigned char)panMinPulse);
EEPROM.write(23,(unsigned char)(panMinPulse>>8));

EEPROM.write(24,(unsigned char)tiltMaxPulse);
EEPROM.write(25,(unsigned char)(tiltMaxPulse>>8));

EEPROM.write(26,(unsigned char)tiltMinPulse);
EEPROM.write(27,(unsigned char)(tiltMinPulse>>8));


EEPROM.write(28,(unsigned char)rollMaxPulse);
EEPROM.write(29,(unsigned char)(rollMaxPulse>>8));

EEPROM.write(30,(unsigned char)rollMinPulse);
EEPROM.write(31,(unsigned char)(rollMinPulse>>8));


EEPROM.write(32,(unsigned char)htChannels[0]);
EEPROM.write(33,(unsigned char)htChannels[1]);
EEPROM.write(34,(unsigned char)htChannels[2]);

// Saving gyro calibration values
int temp = (int)(gyroOff[0]+500.5);
EEPROM.write(35,(unsigned char)temp);
EEPROM.write(36,(unsigned char)(temp>>8));

temp = (int)(gyroOff[1]+500.5);
EEPROM.write(37,(unsigned char)temp);
EEPROM.write(38,(unsigned char)(temp>>8));

temp = (int)(gyroOff[2]+500.5);
EEPROM.write(39,(unsigned char)temp);
EEPROM.write(40,(unsigned char)(temp>>8));

Serial.println("Settings saved!");
}


void getSettings() {

tiltBeta = (float)EEPROM.read(1)/100;
panBeta = (float)EEPROM.read(2)/100;
gyroWeight = (float)EEPROM.read(3)/100;
GyroWeightPan = (float)EEPROM.read(4)/100;

maxPulse = EEPROM.read(5)+(EEPROM.read(6)<<8);

servoPanCenter = EEPROM.read(7)+(EEPROM.read(8)<<8);

tiltFactor = (float)(EEPROM.read(9)+(EEPROM.read(10)<<8)) / 10;

panFactor = (float)(EEPROM.read(11)+(EEPROM.read(12)<<8)) / 10;


servoTiltCenter = EEPROM.read(16)+(EEPROM.read(17)<<8);
servoRollCenter = EEPROM.read(18)+(EEPROM.read(19)<<8);

panMaxPulse = EEPROM.read(20)+(EEPROM.read(21)<<8);
panMinPulse = EEPROM.read(22)+(EEPROM.read(23)<<8);

tiltMaxPulse = EEPROM.read(24)+(EEPROM.read(25)<<8);
tiltMinPulse = EEPROM.read(26)+(EEPROM.read(27)<<8);

rollMaxPulse = EEPROM.read(28)+(EEPROM.read(29)<<8);
rollMinPulse = EEPROM.read(30)+(EEPROM.read(31)<<8);

htChannels[0] = EEPROM.read(32);
htChannels[1] = EEPROM.read(33);
htChannels[2] = EEPROM.read(34);

gyroOff[0] = EEPROM.read(35)+(EEPROM.read(36)<<8)-500;
gyroOff[1] = EEPROM.read(37)+(EEPROM.read(38)<<8)-500;
gyroOff[2] = EEPROM.read(39)+(EEPROM.read(40)<<8)-500;


tiltInverse = -1;
rollInverse = -1;
panInverse = -1;

if (EEPROM.read(13) == 2) {
tiltInverse = 1;
}

if (EEPROM.read(14) == 2) {
rollInverse = 1;
}

if (EEPROM.read(15) == 2) {
panInverse = 1;
}


magOffset[0] = EEPROM.read(200)+(EEPROM.read(201)<<8)-2000;
magOffset[1] = EEPROM.read(202)+(EEPROM.read(203)<<8)-2000;
magOffset[2] = EEPROM.read(204)+(EEPROM.read(205)<<8)-2000;

accOffset[0] = EEPROM.read(206)+(EEPROM.read(207)<<8)-2000;
accOffset[1] = EEPROM.read(208)+(EEPROM.read(209)<<8)-2000;
accOffset[2] = EEPROM.read(210)+(EEPROM.read(211)<<8)-2000;


#if (DEBUG)

debugOutput();

#endif

}


void saveMagData() {
int temp;
temp = (int)(magOffset[0]+2000);
EEPROM.write(200,(unsigned char)temp);
EEPROM.write(201,(unsigned char)(temp>>8));

temp = (int)(magOffset[1]+2000);
EEPROM.write(202,(unsigned char)temp);
EEPROM.write(203,(unsigned char)(temp>>8));

temp = (int)(magOffset[2]+2000);
EEPROM.write(204,(unsigned char)temp);
EEPROM.write(205,(unsigned char)(temp>>8));

Serial.println("Mag-offset saved!");

}



void saveAccData() {
int temp;
temp = (int)(accOffset[0]+2000);
EEPROM.write(206,(unsigned char)temp);
EEPROM.write(207,(unsigned char)(temp>>8));

temp = (int)(accOffset[1]+2000);
EEPROM.write(208,(unsigned char)temp);
EEPROM.write(209,(unsigned char)(temp>>8));

temp = (int)(accOffset[2]+2000);
EEPROM.write(210,(unsigned char)temp);
EEPROM.write(211,(unsigned char)(temp>>8));

Serial.println("Acc-offset saved!");
Serial.print(accOffset[0]);
Serial.print(",");
Serial.print(accOffset[1]);
Serial.print(",");
Serial.println(accOffset[2]);

}



void debugOutput() {

Serial.println();
Serial.println();
Serial.println();
Serial.println("------ Debug info------");

Serial.print("tiltBeta: ");
Serial.println(tiltBeta);

Serial.print("panBeta: ");
Serial.println(panBeta);

Serial.print("gyroWeight: ");
Serial.println(gyroWeight);

Serial.print("GyroWeightPan: ");
Serial.println(GyroWeightPan);

Serial.print("servoPanCenter: ");
Serial.println(servoPanCenter);

Serial.print("servoTiltCenter: ");
Serial.println(servoTiltCenter);

Serial.print("servoRollCenter: ");
Serial.println(servoRollCenter);

Serial.print("tiltFactor: ");
Serial.println(tiltFactor);

Serial.print("panFactor: ");
Serial.println(panFactor);

Serial.print("Gyro offset saved ");
Serial.print(gyroOff[0]);
Serial.print(",");
Serial.print(gyroOff[1]);
Serial.print(",");
Serial.println(gyroOff[2]);

Serial.print("Mag offset saved ");
Serial.print(magOffset[0]);
Serial.print(",");
Serial.print(magOffset[1]);
Serial.print(",");
Serial.println(magOffset[2]);

Serial.print("Acc offset saved ");
Serial.print(accOffset[0]);
Serial.print(",");
Serial.print(accOffset[1]);
Serial.print(",");
Serial.println(accOffset[2]);


SensorInfoPrint();


}


und hier die fehlermeldungen nach dem überprüfen:::

DIY_headtracker\functions.cpp.o: In function `init_pwm_interrupt()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:71: multiple definition of `init_pwm_interrupt()'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:71: first defined here
DIY_headtracker\functions.cpp.o: In function `init_timer_interrupt()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:111: multiple definition of `init_timer_interrupt()'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:111: first defined here
DIY_headtracker\functions.cpp.o: In function `__vector_11':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:149: multiple definition of `__vector_11'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:149: first defined here
DIY_headtracker\functions.cpp.o:(.data.channel_number+0x0): multiple definition of `channel_number'
functions.cpp.o:(.data.channel_number+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.data.channel_value+0x0): multiple definition of `channel_value'
functions.cpp.o:(.data.channel_value+0x0): first defined here
DIY_headtracker\functions.cpp.o: In function `__vector_14':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:214: multiple definition of `__vector_14'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:214: first defined here
DIY_headtracker\functions.cpp.o:(.bss.shift+0x0): multiple definition of `shift'
functions.cpp.o:(.bss.shift+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.read_sensors+0x0): multiple definition of `read_sensors'
functions.cpp.o:(.bss.read_sensors+0x0): first defined here
DIY_headtracker\functions.cpp.o: In function `get_data()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:254: multiple definition of `get_data()'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:254: first defined here
DIY_headtracker\functions.cpp.o: In function `set_pwm()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:257: multiple definition of `set_pwm()'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:257: first defined here
DIY_headtracker\functions.cpp.o: In function `__vector_13':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:140: multiple definition of `__vector_13'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:140: first defined here
DIY_headtracker\functions.cpp.o: In function `test_output()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:264: multiple definition of `test_output()'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:264: first defined here
DIY_headtracker\functions.cpp.o:(.data.acc_raw+0x0): multiple definition of `acc_raw'
functions.cpp.o:(.data.acc_raw+0x0): first defined here
DIY_headtracker\functions.cpp.o: In function `printPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/functions.cpp:48: multiple definition of `printPPM()'
functions.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/functions.cpp:48: first defined here
DIY_headtracker\functions.cpp.o:(.data.gyro_raw+0x0): multiple definition of `gyro_raw'
functions.cpp.o:(.data.gyro_raw+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.data.mag_raw+0x0): multiple definition of `mag_raw'
functions.cpp.o:(.data.mag_raw+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.channel_mapping+0x0): multiple definition of `channel_mapping'
functions.cpp.o:(.bss.channel_mapping+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.data.PpmIn_PpmOut+0x0): multiple definition of `PpmIn_PpmOut'
functions.cpp.o:(.data.PpmIn_PpmOut+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.analog_readings+0x0): multiple definition of `analog_readings'
functions.cpp.o:(.bss.analog_readings+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.test+0x0): multiple definition of `test'
functions.cpp.o:(.bss.test+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.test2+0x0): multiple definition of `test2'
functions.cpp.o:(.bss.test2+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.data.PPMIn+0x0): multiple definition of `PPMIn'
functions.cpp.o:(.data.PPMIn+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.last_time+0x0): multiple definition of `last_time'
functions.cpp.o:(.bss.last_time+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.this_time+0x0): multiple definition of `this_time'
functions.cpp.o:(.bss.this_time+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.servo_time+0x0): multiple definition of `servo_time'
functions.cpp.o:(.bss.servo_time+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.data.read_ppm_channel+0x0): multiple definition of `read_ppm_channel'
functions.cpp.o:(.data.read_ppm_channel+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.temp2+0x0): multiple definition of `temp2'
functions.cpp.o:(.bss.temp2+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.timeTest+0x0): multiple definition of `timeTest'
functions.cpp.o:(.bss.timeTest+0x0): first defined here
DIY_headtracker\functions.cpp.o:(.bss.time_out+0x0): multiple definition of `time_out'
functions.cpp.o:(.bss.time_out+0x0): first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `detectPPM()'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `pulseTime'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `channel'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `channelsDetected'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `channelValues'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `__vector_10':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:58: multiple definition of `__vector_10'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:58: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `state'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `timeRead'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\PPM_Read.cpp.o: In function `detectPPM()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/PPM_Read.cpp:26: multiple definition of `lastTime'
PPM_Read.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/PPM_Read.cpp:26: first defined here
DIY_headtracker\sensors.cpp.o: In function `gyroCalc':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:511: multiple definition of `gyroCalc()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:511: first defined here
DIY_headtracker\sensors.cpp.o:(.data.mag0Max+0x0): multiple definition of `mag0Max'
sensors.cpp.o:(.data.mag0Max+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.mag0Min+0x0): multiple definition of `mag0Min'
sensors.cpp.o:(.data.mag0Min+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.magOffset+0x0): multiple definition of `magOffset'
sensors.cpp.o:(.bss.magOffset+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.mag1Max+0x0): multiple definition of `mag1Max'
sensors.cpp.o:(.data.mag1Max+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.mag1Min+0x0): multiple definition of `mag1Min'
sensors.cpp.o:(.data.mag1Min+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.mag2Max+0x0): multiple definition of `mag2Max'
sensors.cpp.o:(.data.mag2Max+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.mag2Min+0x0): multiple definition of `mag2Min'
sensors.cpp.o:(.data.mag2Min+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `quickTest()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:369: multiple definition of `quickTest()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:369: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.quick_test+0x0): multiple definition of `quick_test'
sensors.cpp.o:(.bss.quick_test+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `testAllData()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:341: multiple definition of `testAllData()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:341: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.angle+0x0): multiple definition of `angle'
sensors.cpp.o:(.bss.angle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.accAngle+0x0): multiple definition of `accAngle'
sensors.cpp.o:(.bss.accAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltAngle+0x0): multiple definition of `tiltAngle'
sensors.cpp.o:(.data.tiltAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.rollAngle+0x0): multiple definition of `rollAngle'
sensors.cpp.o:(.bss.rollAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.magAngle+0x0): multiple definition of `magAngle'
sensors.cpp.o:(.bss.magAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.panStart+0x0): multiple definition of `panStart'
sensors.cpp.o:(.bss.panStart+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panAngle+0x0): multiple definition of `panAngle'
sensors.cpp.o:(.data.panAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `headtrackerOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:292: multiple definition of `headtrackerOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:292: first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltAngleLP+0x0): multiple definition of `tiltAngleLP'
sensors.cpp.o:(.data.tiltAngleLP+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.tiltStart+0x0): multiple definition of `tiltStart'
sensors.cpp.o:(.bss.tiltStart+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.rollAngleLP+0x0): multiple definition of `rollAngleLP'
sensors.cpp.o:(.data.rollAngleLP+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.rollStart+0x0): multiple definition of `rollStart'
sensors.cpp.o:(.bss.rollStart+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panAngleLP+0x0): multiple definition of `panAngleLP'
sensors.cpp.o:(.data.panAngleLP+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `testPanOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:284: multiple definition of `testPanOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:284: first defined here
DIY_headtracker\sensors.cpp.o: In function `testRollOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:276: multiple definition of `testRollOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:276: first defined here
DIY_headtracker\sensors.cpp.o: In function `testTiltOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:268: multiple definition of `testTiltOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:268: first defined here
DIY_headtracker\sensors.cpp.o: In function `testMagOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:251: multiple definition of `testMagOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:251: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.magRaw+0x0): multiple definition of `magRaw'
sensors.cpp.o:(.bss.magRaw+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `testGyroOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:232: multiple definition of `testGyroOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:232: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.gyroRaw+0x0): multiple definition of `gyroRaw'
sensors.cpp.o:(.bss.gyroRaw+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `SensorInfoPrint()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:812: multiple definition of `SensorInfoPrint()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:812: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.magNegOff+0x0): multiple definition of `magNegOff'
sensors.cpp.o:(.bss.magNegOff+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.magPosOff+0x0): multiple definition of `magPosOff'
sensors.cpp.o:(.bss.magPosOff+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.magGain+0x0): multiple definition of `magGain'
sensors.cpp.o:(.bss.magGain+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.ADXL345_ID+0x0): multiple definition of `ADXL345_ID'
sensors.cpp.o:(.bss.ADXL345_ID+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.ITG3205_ID+0x0): multiple definition of `ITG3205_ID'
sensors.cpp.o:(.bss.ITG3205_ID+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.HMC_ID+0x0): multiple definition of `HMC_ID'
sensors.cpp.o:(.bss.HMC_ID+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `calAccOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:308: multiple definition of `calAccOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:308: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.accRaw+0x0): multiple definition of `accRaw'
sensors.cpp.o:(.bss.accRaw+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `calMagOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:300: multiple definition of `calMagOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:300: first defined here
DIY_headtracker\sensors.cpp.o: In function `magCalc()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:547: multiple definition of `magCalc()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:547: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.Rmag+0x0): multiple definition of `Rmag'
sensors.cpp.o:(.bss.Rmag+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.mx+0x0): multiple definition of `mx'
sensors.cpp.o:(.bss.mx+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.my+0x0): multiple definition of `my'
sensors.cpp.o:(.bss.my+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `accCalc()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:514: multiple definition of `accCalc()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:514: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.accOffset+0x0): multiple definition of `accOffset'
sensors.cpp.o:(.bss.accOffset+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.accG+0x0): multiple definition of `accG'
sensors.cpp.o:(.bss.accG+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.R+0x0): multiple definition of `R'
sensors.cpp.o:(.bss.R+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `plot_all_sensors()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:317: multiple definition of `plot_all_sensors()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:317: first defined here
DIY_headtracker\sensors.cpp.o: In function `testAccOutput()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:208: multiple definition of `testAccOutput()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:208: first defined here
DIY_headtracker\sensors.cpp.o: In function `ReadFromI2C(int, char, char)':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:188: multiple definition of `ReadFromI2C(int, char, char)'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:188: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.sensorBuffer+0x0): multiple definition of `sensorBuffer'
sensors.cpp.o:(.bss.sensorBuffer+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `updateSensors()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:377: multiple definition of `updateSensors()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:377: first defined here
DIY_headtracker\sensors.cpp.o: In function `filter()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:610: multiple definition of `filter()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:610: first defined here
DIY_headtracker\sensors.cpp.o:(.data.resetValues+0x0): multiple definition of `resetValues'
sensors.cpp.o:(.data.resetValues+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.gyroOff+0x0): multiple definition of `gyroOff'
sensors.cpp.o:(.bss.gyroOff+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.gyroWeight+0x0): multiple definition of `gyroWeight'
sensors.cpp.o:(.data.gyroWeight+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.GyroWeightPan+0x0): multiple definition of `GyroWeightPan'
sensors.cpp.o:(.data.GyroWeightPan+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.TrackerStarted+0x0): multiple definition of `TrackerStarted'
sensors.cpp.o:(.bss.TrackerStarted+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltBeta+0x0): multiple definition of `tiltBeta'
sensors.cpp.o:(.data.tiltBeta+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.lastTiltAngle+0x0): multiple definition of `lastTiltAngle'
sensors.cpp.o:(.data.lastTiltAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.lastRollAngle+0x0): multiple definition of `lastRollAngle'
sensors.cpp.o:(.data.lastRollAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panBeta+0x0): multiple definition of `panBeta'
sensors.cpp.o:(.data.panBeta+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.lastPanAngle+0x0): multiple definition of `lastPanAngle'
sensors.cpp.o:(.data.lastPanAngle+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panInverse+0x0): multiple definition of `panInverse'
sensors.cpp.o:(.data.panInverse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panFactor+0x0): multiple definition of `panFactor'
sensors.cpp.o:(.data.panFactor+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panMinPulse+0x0): multiple definition of `panMinPulse'
sensors.cpp.o:(.data.panMinPulse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.panMaxPulse+0x0): multiple definition of `panMaxPulse'
sensors.cpp.o:(.data.panMaxPulse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.servoPanCenter+0x0): multiple definition of `servoPanCenter'
sensors.cpp.o:(.data.servoPanCenter+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.bss.temp+0x0): multiple definition of `temp'
sensors.cpp.o:(.bss.temp+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.htChannels+0x0): multiple definition of `htChannels'
sensors.cpp.o:(.data.htChannels+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltInverse+0x0): multiple definition of `tiltInverse'
sensors.cpp.o:(.data.tiltInverse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltFactor+0x0): multiple definition of `tiltFactor'
sensors.cpp.o:(.data.tiltFactor+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltMinPulse+0x0): multiple definition of `tiltMinPulse'
sensors.cpp.o:(.data.tiltMinPulse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.tiltMaxPulse+0x0): multiple definition of `tiltMaxPulse'
sensors.cpp.o:(.data.tiltMaxPulse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.servoTiltCenter+0x0): multiple definition of `servoTiltCenter'
sensors.cpp.o:(.data.servoTiltCenter+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.rollInverse+0x0): multiple definition of `rollInverse'
sensors.cpp.o:(.data.rollInverse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.rollFactor+0x0): multiple definition of `rollFactor'
sensors.cpp.o:(.data.rollFactor+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.rollMinPulse+0x0): multiple definition of `rollMinPulse'
sensors.cpp.o:(.data.rollMinPulse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.servoRollCenter+0x0): multiple definition of `servoRollCenter'
sensors.cpp.o:(.data.servoRollCenter+0x0): first defined here
DIY_headtracker\sensors.cpp.o: In function `resetCenter()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:784: multiple definition of `resetCenter()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:784: first defined here
DIY_headtracker\sensors.cpp.o: In function `setSensorOffset()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:414: multiple definition of `setSensorOffset()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:414: first defined here
DIY_headtracker\sensors.cpp.o: In function `WriteToI2C(int, unsigned char, unsigned char)':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:180: multiple definition of `WriteToI2C(int, unsigned char, unsigned char)'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:180: first defined here
DIY_headtracker\sensors.cpp.o: In function `init_sensors()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:710: multiple definition of `init_sensors()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:710: first defined here
DIY_headtracker\sensors.cpp.o: In function `calMag()':
C:\Dokumente und Einstellungen\siegert\Eigene Dateien\Arduino\libraries\DIY_headtracker/sensors.cpp:439: multiple definition of `calMag()'
sensors.cpp.o:C:\DOKUME~1\siegert\LOKALE~1\Temp\build9028640038908959385.tmp/sensors.cpp:439: first defined here
DIY_headtracker\sensors.cpp.o:(.bss.angleRaw+0x0): multiple definition of `angleRaw'
sensors.cpp.o:(.bss.angleRaw+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.maxPulse+0x0): multiple definition of `maxPulse'
sensors.cpp.o:(.data.maxPulse+0x0): first defined here
DIY_headtracker\sensors.cpp.o:(.data.rollMaxPulse+0x0): multiple definition of `rollMaxPulse'
sensors.cpp.o:(.data.rollMaxPulse+0x0): first defined here

wäre absolut geil wenn mir wer helfen könnte :)
vielen dank schon mal :))
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Zumo, Felerhaftes Programm ? Werner Lage 1 78 20.06.2017 13:57
Letzter Beitrag: Tommy56
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 1.122 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Brauche Hilfe für meine Abfüllanlage/ millis() Slash96 8 402 10.05.2017 21:04
Letzter Beitrag: MicroBahner
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 924 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Zeitschaltuhr Hilfe für RTC Anfänger 4Jordy 4 286 24.03.2017 15:23
Letzter Beitrag: MicroBahner
Rainbow Programm mit Tastr unterbrechen Schwinge117 12 525 02.03.2017 21:17
Letzter Beitrag: Tommy56
  Hilfe bei Taster huber5093 11 483 14.02.2017 19:26
Letzter Beitrag: Tommy56
  Programm Elegoo Smart Robot kit Thorsten_S 3 547 29.01.2017 17:40
Letzter Beitrag: Micha06
  Fehler in meinem Programm Franz54 7 421 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 367 14.10.2016 21:40
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste