Hallo zusammen,

ich hab mir vor kurzem einen Asuro zugelegt. Der Zusammenbau, das flashen usw. hatt alles problemlos funktioniert. Aber je mehr Programme ich schreib, desto verrückter werd ich. Ich verwende zum Programmieren Programmers Notepad 2 so wie in der Anleitung beschrieben. Nur, selbst wenn Programmers Notepad keine Fehler noch Warnungen, ausgibt, macht der Asuro manchmal einfahc was er will. Manchmal überspricht er einfach manche Programmschleifen und springt einfach weiter zur nächsten. So wie beim folgenden Programm die erste Schleife übersprungen wird:
Code:
#include "asuro.h"
#include <stdio.h>

unsigned char colo = FALSE;
unsigned char zahl[5];
int i = 0;

int main(void)
{	
	int zaehler = 0;
	unsigned int data[2], licht;
	Init();
	licht = 5;
	data[0] = 0;
	MotorDir(FWD, FWD);
	MotorSpeed(102, 95); //Motoren laufen unterschiedlich
	
	ODOMETRIE_LED_ON;
	
	StatusLED(RED);
	
	while(1) {
		DDRC &= ~((1 << PC0) | (1 << PC1)); // Input => no break LED
		ADMUX = (1 << REFS0) | WHEEL_RIGHT; // AVCC reference with external capacitor
		ADCSRA |= (1 << ADSC);			// Start conversion
		while (!(ADCSRA & (1 << ADIF)));	// wait for conversion complete
		ADCSRA |= (1 << ADIF);			// clear ADCIF
		data[1] = ADCL + (ADCH << 8);
		
		licht += data[1];
		data[0]++;
		if(data[0] > 50)
			break;
		
	}
	
	StatusLED(GREEN);
	licht = licht / 50;
	MotorSpeed(0, 0);
	for(i = 0; i < 600; i++)
		Sleep(255);
	MotorSpeed(100, 100);
	
	while(zaehler < 126){		
		ADMUX = (1 << REFS0) | WHEEL_RIGHT; // AVCC reference with external capacitor
		ADCSRA |= (1 << ADSC);			// Start conversion
		while (!(ADCSRA & (1 << ADIF)));	// wait for conversion complete
		ADCSRA |= (1 << ADIF);			// clear ADCIF
		data[1] = ADCL + (ADCH << 8);
		
		
		if((data[1] < licht) && (colo == FALSE)) {
			colo = TRUE;
			zaehler = zaehler + 1;
			
		}
		else 
			colo = FALSE;
		
		sprintf(zahl, "%d\n", data[1]);
		SerWrite(zahl, 5);
		
	}
	StatusLED(RED);
	MotorSpeed(0, 0);
	while(1);
		
		
	return 0;
}
Die zweite Schleife funktioniert auch erst wie durch ein Wunder durch hinzufügen von spritnf und serwrite. Kann mir jemand sagen was ich falsch mach?

MfG Neo