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
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 1 49 Gestern 20:21
Letzter Beitrag: Tommy56
Photo Hilfe bei meinem Arduino Projekt Niklas 10 355 23.09.2017 21:05
Letzter Beitrag: Niklas
  Arduino Zumo, Felerhaftes Programm (2) Werner Lage 2 400 18.09.2017 06:51
Letzter Beitrag: Werner Lage
  Ublox Neo 6M und Nextion ! Bitte um Hilfe. b3ta 19 1.085 13.07.2017 14:52
Letzter Beitrag: Tommy56
  Anfänger sucht erfahrene Hilfe Customizer 21 1.403 11.07.2017 21:37
Letzter Beitrag: Customizer
  Arduino Zumo, Felerhaftes Programm ? Werner Lage 1 273 20.06.2017 13:57
Letzter Beitrag: Tommy56
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 2.004 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Brauche Hilfe für meine Abfüllanlage/ millis() Slash96 8 774 10.05.2017 21:04
Letzter Beitrag: MicroBahner
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.325 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Zeitschaltuhr Hilfe für RTC Anfänger 4Jordy 4 688 24.03.2017 15:23
Letzter Beitrag: MicroBahner

Gehe zu:


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