Hallo erstmal und danke für die ganzen Antworten.

Muss mich aber erstmal berichtigen, denn in dem Joystick sind nicht 50kohm Potis eingebaut sondern 100kohm Potis.
Denke mal das damit auch mein Fehler sich erklären lässt, werde erstmal 2 10Kohm Potis verdrahten und diese dann messen, wenn das funktioniert ohne Propleme liegts am Joystick.

- - - Aktualisiert - - -

Zitat Zitat von damfino Beitrag anzeigen
Du musst mal die Variablentypen gleich ziehen:
es wird ein "double" mit "int" und "unsigned long" vermischt (Fließkommazahlen mit vorzeichenbehafteten Integer mit nicht vorzeichenbehafteten Integer), da sollte der Compiler doch schon einige Warnings anzeigen.
Meines wissens ist ein "int" nicht exakt definiert, es kann je nach Compiler ein short oder sonstwas sein.

Von der Rechengenauigkeit her kommst mit "short" Variablen oder "int16_t" aus, die haben einen Zahlenbereich von −32.768 bis +32.767.

dtostrf: schaut etwas knapp aus, probier mal mehr Speicher bereitzustellen (zB char ystr[6] )

Add: AT8adc.h
*.h bedeutet einen Header Datei, da steht schon sicher mal kein Code drinnen, sondern nur zB Definitionen von Funktionen: "extern void lcd_home(void);"
erst in einer *.c Datei steht dann die genaue Funktion:
void lcd_home(void)
{
lcd_command(1<<LCD_HOME);
}

So gesehen sollte das Programm nie funktionieren, oder ist es doch unter *.c gespeichert?

LG!
natürlich habe ich alles in einer Joystick.c datei gespeichert, aber da ich alles was den ADC angeht in der AT8adc.H geschrieben habe hab ich auch nur diese hier aufgelistet, kann aber gerne auch noch meine *.c vorzeigen, fals es erwünscht wird.