Probier mal dieses kleine Diagnose Programm aus. Das hab ich mir extra zum Testen meiner Line Sensoren gemacht. Anmerkung: Mit den beiden linken Tasten kannst Du die LED unten ein- und auszuschalten. Auf dem Bildschirm bekommst Du die Werte der Line Sensoren angezeigt und beim Drücken von Tasten, auch diese Werte angezeigt.
Dieses kleine Programm war mein erster Gehversuch mit dem Asuro. Ich hoffe, dass ich mit dem Ding noch warm werde.
Vielleicht hilft Dir das weiter
Gruß
Pit

Code:
#include "asuro.h"


unsigned int readSwitch (void)
{
	unsigned int i;
	
	DDRD |= SWITCHES;				// Switches as Output
	SWITCH_ON;						// Output HIGH for measurement
	ADMUX = (1 << REFS0) | SWITCH;	// AVCC reference with external capacitor
	Sleep(10);
	
	ADCSRA |= (1 << ADSC);			// Start conversion
	while (!(ADCSRA & (1 << ADIF)));// wait for conversion complete
	ADCSRA |= (1 << ADIF);			// clear ADCIF
	i = ADCL + (ADCH << 8);
	
	SWITCH_OFF;
	return i;
}



void sekunden(int anzahl)
{
	int i, j;
	for(i = 1; i <= anzahl; i++) 
	{
		for(j = 1; j <= 284; j++) {Sleep(255);}
	}
}


void sendeZahl(unsigned int wert, unsigned int zahlenSystemAusg, unsigned int stellenAusg)
{
	unsigned int restWert, stellenWert, i;
	unsigned char zeichenAusg[stellenAusg];

	i = 1;
	stellenWert = 1;
	while ((stellenWert * zahlenSystemAusg <= wert) || (i < stellenAusg)) {stellenWert *= zahlenSystemAusg;i++;}

	restWert = wert;
	for (i=0; i < stellenAusg; i++)
	{
		zeichenAusg[i] = (unsigned char) (restWert / stellenWert + 48);
		restWert -= ((unsigned int) zeichenAusg[i] - 48) * stellenWert;
		stellenWert /= zahlenSystemAusg;		
	}
	SerWrite(zeichenAusg, stellenAusg);
}
		


unsigned int printTasten(unsigned int ui_taste0)
{
	float f_taste;
	unsigned int ui_AD_wert0, ui_AD_wert1, ui_taste1, ui_delta;

		
	ui_AD_wert0 = 0;
	ui_AD_wert1 = 10;
	while (((ui_AD_wert0 + 5) <= ui_AD_wert1) && ((ui_AD_wert0 - 5) >= ui_AD_wert1))
	{
		ui_AD_wert0 = ui_AD_wert1;
		ui_AD_wert1 = readSwitch();
	}	
	f_taste = ((1024.0/(float) ui_AD_wert1 - 1.0) * 63.0);
	ui_taste1 = (unsigned int) (f_taste + 0.5);

	if (ui_taste0 != ui_taste1)
	{
		SerWrite("\n\r\n\r", 4);
		SerWrite("AD-Wert: ", 9);
		sendeZahl(ui_AD_wert1, 10, 4);
		SerWrite("    Tastenwert bin: ", 20);
		sendeZahl(ui_taste1, 2, 8);
		SerWrite("    Tastenwert dez: ", 20);
		sendeZahl(ui_taste1, 10, 3);
		

		if (f_taste > (float) ui_taste1)
		{
			SerWrite(" +0,", 4);
			ui_delta = (unsigned int) ((f_taste - (float) ui_taste1) * 100);
			sendeZahl (ui_delta, 10, 2);		
		}
		else
		{
			SerWrite(" -0,", 4);
			ui_delta = (unsigned int) (((float) ui_taste1 - f_taste) * 100);
			sendeZahl (ui_delta, 10, 2);
		}

		SerWrite("\n\r", 2);
	}
	return ui_taste1;
}




int main(void)
{
	unsigned int ui_taste, ui_Line[2];
	Init();
	SerWrite("\n\r\n\r Asuro Line- und Switch-Test\n\r", 34);
	StatusLED(OFF);
	SerWrite("\n\rStatusLED(OFF)", 16);
	ui_taste = 0; 
Sleep(25);
	while(1)
	{		
		ui_taste = printTasten(ui_taste);
sekunden(1);
		if (ui_taste == 32) {FrontLED(ON); SerWrite("\n\rFrontLED(ON)\n\r", 16);}
		if (ui_taste == 16 || ui_taste == 8) {FrontLED(OFF); SerWrite("\n\rFrontLED(OFF)\n\r", 17);}
		LineData(ui_Line);
		SerWrite("\n\rLineData      links: ", 23);
		sendeZahl(ui_Line[0], 10, 3);
		SerWrite("          rechts: ", 18);
		sendeZahl(ui_Line[1], 10, 3);
	}
	
	return 0;
}

[Code-Tags eingefügt von Radbruch]