bewirkt, dass die aktuellen Werten der beiden Fototansistoren des Linienfolgers in die Variable lineData geschrieben werden.Code:LineData(lineData);
Diese ist als
deklariert und das bedeutet, dass sie eigentlich aus zwei Speicherplätzen besteht: lineData[0] und lineData[1]. Somit steht nachCode:unsigned int lineData[2];
LineData(lineData); der Wert des linken Fototransistors in lineData[0] und der Wert des rechten in lineData[1].
In obigem Programm wird mit
zuerst der Unterschied der beiden Fototransistoren festgestellt und dann in der Endlosschleife mitCode:ADOffset = lineData[0] - lineData[1];
jeweils der tatsächliche Unterschied abzüglich des ursprünglichen Unterschieds festgestellt.Code:LineData(lineData); i = (lineData[0] - lineData[1]) - ADOffset;
Wenn dieser Unterschied größer als 4 ist, wird die Funktion LineLeft() ausgeführt, wenn er kleiner ist als -4 wird LineRight() ausgeführt und sonst fährt er einfach weiter geradeaus.
Ich hoffe, dass es jetzt einigermassen verständlich geworden ist, was LineData() macht.
Gruß
Günther







Zitieren

Lesezeichen