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
  Fehler in meinem Programm Franz54 7 143 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 117 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 231 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 247 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 284 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 447 22.08.2016 08:07
Letzter Beitrag: b3ta
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 179 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 537 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 453 05.06.2016 11:28
Letzter Beitrag: rpt007
  Brauche etwas Hilfe bei der Umsetzung einer Idee raspido 3 526 23.04.2016 10:26
Letzter Beitrag: rkuehle

Gehe zu:


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