Pedd0r
13.01.2013, 12:13
Hallo,
ich bin am verzweifeln beim Asuro. Eigentlich schien alles zu funktionieren und der Selbsttest tat das, was er soll, aber jetzt versuche ich, den Asuro einer Linie folgen zu lassen. Ich hab mein Problem nach ewigen hin und herfummeln zumindest schon mal erkannt: Die LineData() Methode spukt nicht aus, was sie soll!
Dazu hab ich hier mal dieses Codeschnippsel gemacht, jetzt verhält sich das Ding folgendermaßen: Bei ersten durchlauf bekomme ich tatsächlich einen vernünftigen Wert für den linken Fototransistor geliefert, danach aber immer nur 0! Um zu sehen, ob meine Serielle Ausgabe falsch ist, hab ich auch noch das Status LED angesteuert, was so viel heißt, dass meine Werte wohl wirklich 0 ist! Das ist doch sehr komisch, zumal es ja bei allerersten Durchlauf nicht 0 ist, also muss der Foto-Transistor ja schon irgendwie funktionieren, oder?
unsigned int data[2];
while (1)
{ data[0] = 0;
data[1] = 0;
LineData(data);
SerWrite("Links ", 6);
warte(100);
writeUint(data[0]);
warte(100);
SerWrite("Rechts ", 7);
warte(100);
writeUint(data[1]);
warte(1000);
SerWrite("\n\r", 2);
if (data[1] > 500)
{ if (data[1] >1024)
StatusLED(GREEN);
else
StatusLED(YELLOW);
}
else
if (data[1] >1 || data[0] > 1)
StatusLED(RED);
else StatusLED(OFF);
while(PollSwitch() < 1)
warte(1);
}
ich bin am verzweifeln beim Asuro. Eigentlich schien alles zu funktionieren und der Selbsttest tat das, was er soll, aber jetzt versuche ich, den Asuro einer Linie folgen zu lassen. Ich hab mein Problem nach ewigen hin und herfummeln zumindest schon mal erkannt: Die LineData() Methode spukt nicht aus, was sie soll!
Dazu hab ich hier mal dieses Codeschnippsel gemacht, jetzt verhält sich das Ding folgendermaßen: Bei ersten durchlauf bekomme ich tatsächlich einen vernünftigen Wert für den linken Fototransistor geliefert, danach aber immer nur 0! Um zu sehen, ob meine Serielle Ausgabe falsch ist, hab ich auch noch das Status LED angesteuert, was so viel heißt, dass meine Werte wohl wirklich 0 ist! Das ist doch sehr komisch, zumal es ja bei allerersten Durchlauf nicht 0 ist, also muss der Foto-Transistor ja schon irgendwie funktionieren, oder?
unsigned int data[2];
while (1)
{ data[0] = 0;
data[1] = 0;
LineData(data);
SerWrite("Links ", 6);
warte(100);
writeUint(data[0]);
warte(100);
SerWrite("Rechts ", 7);
warte(100);
writeUint(data[1]);
warte(1000);
SerWrite("\n\r", 2);
if (data[1] > 500)
{ if (data[1] >1024)
StatusLED(GREEN);
else
StatusLED(YELLOW);
}
else
if (data[1] >1 || data[0] > 1)
StatusLED(RED);
else StatusLED(OFF);
while(PollSwitch() < 1)
warte(1);
}