Hallo Stochri,

...vielen Dank erstmal für Deine Antwort. Schwarze Pappe hab' ich schon gekauft, um die Optik abzuschirmen, werd' aber sicher erst am Nachmittag dazu kommen, die Dinger gemäss (1) und (2) zu ändern. Mit Frage 3 habe ich mich vielleicht falsch ausgedrückt:

Zitat Zitat von stochri
Die Interruptroutine ist aber in C geschrieben. In einigen Verionen ist dort eine Hysterese eingebaut. Bei meinem ASURO musste ich die Grenzwerte für die Helligkeitswerte hell/dunkel anpassen. Es scheint bei den Odometriespannungswerten große Toleranzen zu geben.
ich weiss schon, dass das C ist, aber ich habe bisher nie so maschinennah programmiert und schrecke dann immer vor solchen Ausdrücken wie ADCH, ADMUX etc. zurück ... Hier ein Ausschnitt aus der asuro.c, von dem ich annehme, dass er die Werte für dei Helligkeitsunterschiede enthält, die du meinst, also die 140 und die 160? Und was verstehst du unter Hysterese, wie kann ich die ggf. ändern?

Code:
SIGNAL (SIG_ADC)
{
	static unsigned char tmp[2],flag[2],toggle;
	if (autoencode){
	tmp[toggle]= ADCH;
	if (toggle)	ADMUX = (1 <<ADLAR) | (1 <<REFS0) | WHEEL_RIGHT;
	else ADMUX = (1 <<ADLAR) | (1 <<REFS0) | WHEEL_LEFT;

	if ( (tmp[toggle] < 140) && (flag[toggle] == TRUE)) {
		encoder[toggle] ++;
		flag[toggle] = FALSE;
	}
	if ( (tmp[toggle] > 160) && (flag[toggle] == FALSE)) {
		encoder[toggle] ++;
		flag[toggle] = TRUE;
	}
	toggle ^= 1;
}}
... einstweilen vielen Dank vom ölgötz