Eim kleines Testprogramm das ich mal genau zu diesem Thema gemacht habe.

Code:
/*******************************************************************************
*
* Description: Test Asuro LinienSensor
* Version 0: 
* Autor: Vogon	16.10.05
*
*****************************************************************************/
#include "asuro.h"
#include <stdlib.h>

unsigned int lineData[2];
unsigned int ld[2][2];

int i, ldat, ssum, don, doff;
void PrintStr(unsigned char *data) {
	unsigned char i = 0;
	while(data[i++]!=0x00); 
	SerWrite(data,i);
}
	
int main(void)
{
	Init();

	PrintStr("\r\nTest Asuro LinienSensor");
	while(TRUE) {
		PrintStr("\r\nOff:l,r  |  On:l,r  | ssum | doff,don | ldat | ");
		for (i = 0; i < 10; i++ ) {
			FrontLED(ON);
			LineData(lineData);						// Messung mit LED ON
			ld[1][0] = lineData[0];
			ld[1][1] = lineData[1];
	
			FrontLED(OFF);
			LineData(lineData);						// Messung mit LED OFF
			ld[0][0] = lineData[0];
			ld[0][1] = lineData[1];	
		
			don = (ld[1][0] - ld[1][1]);			// Regelabweichung mit LED ON
			doff = (ld[0][0] - ld[0][1]);			// Regelabweichung mit LED OFF
			ldat = don - doff;						// Regelabweichung 
			
			if (ldat < 0 ) BackLED(ON,OFF); else BackLED(OFF,ON);

			ssum = (ld[0][0] + ld[1][0] + ld[0][1] + ld[1][1]);		// Fehler wenn über 250
			
			StatusLED(OFF);
			BackLED(OFF,OFF);
			if (ssum  > 250) StatusLED(RED); 
			else if (abs(ldat) > 5) {
				StatusLED(GREEN);
				if (ldat < 0 ) BackLED(ON,OFF); else BackLED(OFF,ON);
			}

			PrintStr("\r\n");
			PrintInt(ld[0][0]);		// 	Linker Sensor Messung mit LED OFF
			PrintInt(ld[0][1]);		// 	Rechter Sensor
			PrintStr(" | ");
			PrintInt(ld[1][0]);		// 	Linker Sensor Messung mit LED ON
			PrintInt(ld[1][1]);		// 	Rechter Sensor
			PrintStr(" | ");
			PrintInt(ssum);				// Sensoren Summe der Messungen
			PrintStr(" | ");
			PrintInt(doff);				// Regelabweichung mit LED OFF
			PrintInt(don);				// Regelabweichung mit LED ON
			PrintStr(" | ");
			PrintInt(ldat);				// Regelabweichung
			PrintStr(" | ");
		}
	}
    return 0;
}