Hallo,

willkommen im RN-Forum.

Irgendwie bist du über deine Klammern gestolpert, ich konnte dein Programm nicht fehlerfrei übersetzen:

avr-gcc -mmcu=atmega8 -Os -mno-interrupts -funsigned-char -funsigned-bitfields -Wall -Wstrict-prototypes -ggdb -c -DF_CPU=8000000UL -Wa,-acdhlmns=temp.lst temp.c -o temp.o
temp.c: In function `main':
temp.c:28: error: syntax error before "else"
temp.c: At top level:
temp.c:31: error: syntax error before "return"
make: *** [temp.o] Error 1
2
Nachdem ich deinen Code etwas umgestellt habe (ich finde das so übersichtlicher, aber jeder kann's machen wie er will!) funktioniert es fast:
Code:
#include "asuro.h"

int main(void)
{
	Init();
	int zaehler;

	StatusLED(YELLOW);
	MotorDir(FWD,FWD);
	while(1)
	{
		if (PollSwitch()>0)
		{
			if (PollSwitch()>0)
			{
				StatusLED(YELLOW);
				MotorDir(RWD,RWD);
				for (zaehler=0; zaehler<300; zaehler++)
				{
					Sleep(255);
				}
				for (zaehler=0; zaehler<30; zaehler++)
				{
					FrontLED(ON);
					MotorSpeed(140,140);
					Sleep(250);
				}
				MotorSpeed(0,0);
				for (zaehler=0; zaehler<100; zaehler++)
				{
					MotorDir(FWD,RWD);
					MotorSpeed(250,250);
					Sleep(250);
				}
			}
			else
			{
				FrontLED(OFF);
			}
		}
		else
		{
		StatusLED(GREEN);
		MotorDir(FWD,FWD);
		MotorSpeed(140,140);
	}
}
return(0);
}
Da mein asuro zur Zeit keine Räder hat weiß ich allerdings nicht, ob er sich wie gewünscht bewegt. Das FrontLED(OFF) muss wohl in den else-Zweig der ersten if-Abfrage, sonst geht die LED nie mehr aus. (Außer man läßt den Taster genau nach dem ersten if los ;)

Die zusätzlichen StatusLED-Befehle dienen dem debuggen, damit man sieht, was er grad treibt.

Noch ein Tipp: Möglicherweise stört ein zu häufiges MotorSpeed(x,x); die PWM, deshalb sollte man solche Dinge:
Code:
				for (zaehler=0; zaehler<100; zaehler++)
				{
					MotorDir(FWD,RWD);
					MotorSpeed(250,250);
					Sleep(250);
				}
besser so formulieren:
Code:
				MotorDir(FWD,RWD);
				MotorSpeed(250,250);
				for (zaehler=0; zaehler<100; zaehler++)
				{
					Sleep(250);
				}
Gruß

mic