Um auszuschließen, dass ein komplettes Offenlassen der Kontakte Probleme macht, habe ich mal einen 10kOhm Widerstand eingesteckt, der dann Werte von ca. 1023/2 liefern sollte.

Hier der Code für die Auswertung

Code:
void sensorData(unsigned int* left, unsigned int* right)
{
	static unsigned int leftBright, leftDark;
	static unsigned int rightBright, rightDark;

	FrontLED(OFF); Msleep(1);
	leftDark = ReadADC(IR_LEFT, 7*36);
	rightDark = ReadADC(IR_RIGHT, 7*36);
	FrontLED(ON); Msleep(1);
	leftBright = ReadADC(IR_LEFT, 7*36);
	rightBright = ReadADC(IR_RIGHT, 7*36);

	*left = leftBright-leftDark;
	*right = rightBright-rightDark;


	SerPrint("\nDark: "); PrintInt(leftDark); SerPrint(" / "); PrintInt(rightDark); 
	SerPrint(" Bright: "); PrintInt(leftBright); SerPrint(" / "); PrintInt(rightBright); 

}
Ich benutze hier zum Test direkt ReadADC() um etwas längere Sleep-Zeiten zu haben. Sicher ist sicher.

Ergebnis:

Wenn ich die Kurzschlussbrücke und den Widerstand einstecke, bekomme ich für beide Seiten 1023. Wenn ich nur den Widerstand einstecke und die andere Seite offen lasse, bekomme ich ca. 1023/2 (meist so 514) - auch auf beiden Seiten.

Die Seite, in die man etwas einsteckt, ist dabei egal, es tritt immer das gleiche Phänomen auf: Nur der höhere ADC-Wert kommt an.

Ich hab seit Stunden alle Verbindungen durchgemessen und kann keine Kurzschlüsse o.ä. feststellen. Jetzt weiß ich nicht mehr weiter ...