Habe meinem Asuro jetzt die Snake Vision gegönnt. Als aller erstes möchte ich mal testen, ob das mit dem Taster (der sich auf der Snake-Vision befindet) überhaupt so klappt, wie ich mir das vorstelle. Dazu habe ich mal ein Programm verfasst, das nichts anderes macht. Das Programm ist schnell erklärt. Bei Betätigen des Tasters soll die Status LED 3 mal grüne blinken, außerhalb der Schalter-Abfrage-Schleife soll sie rot leuchten. Wenn ich ihn einschalte, blinkt sie sofort 3 mal grün, dann leuchtet sie so lange rot, bis ich wieder den Taster drücke. Wieso springt das Programm beim Start in die Blink-Schleife, obwohl ich den Taster noch gar nicht gedrückt habe?

Code:
#include "asuro.h"
#include "avr/interrupt.h"


int main(void)
	{
																	// Speicher für die Messwerte bereitstellen
	int a,b,c;
	Init();
	MotorDir(FWD,FWD);
	StatusLED(OFF);
	DDRD&=~(1<<6);												//Pin6 auf "Eingang" schalten ACHTUNG MIT HR MAYER ABSPRECHEN
	PORTD|=(1<<6);
	
	while (1)
    		{
			if ((PIND&(1<<6))==0)										//Wenn der Taster auf der Snake-Platine gedrückt wird ...
				{														//nimmt Pin 6 des Prozessors High-Zustand an 
				for (c=0; c<=2; c++)
					{
					for (a=0; a<150; a++)
						{
						StatusLED(OFF);									//0,4 Sekunden soll aus sein
						Sleep(216);
						}
					for (b=0; b<150; b++)							//0,4 Sekunden soll grün leuchten
						{
						StatusLED(GREEN);
						Sleep(216);
						}
					} 
				}
			StatusLED(RED);
    		}     
	return 0;
	}

(Quellcode eingefügt von radbruch)