Die Tasterauswertung "lügt" gelegentlich:

Code:
#include "asuro.h"

int main(void)
{
	int i;
	char taste1, taste2;

	Init(); // nach Init() ist die StatusLED grün
	// StatusLED(RED);
	SerWrite("Programm wird gestartet\n\r", 25); // richtige Anzahl der Zeichen ist wichtig!
	for (i=0; i<1000; i++)
	{
		Sleep(216);
	}
	SerWrite("GOO!!\n\r", 7); // \n\r bedeutet Neue Zeile und Wagenrücklauf
	BackLED(ON,ON);
	MotorDir(FWD,FWD);
	MotorSpeed(255,230);
	StatusLED(YELLOW); // Anzeige "Fahren"
	taste2=PollSwitch(); // ersten Vergleichswert einlesen
	
	while(1)
	{
		taste1=PollSwitch(); // zweiten Wert einlesen
		if((taste1 == taste2) && (taste1 > 0))
		{
			MotorSpeed(0,0);
			MotorDir(BREAK, BREAK);
			SerWrite("Shit happens\n\r", 14);
			StatusLED(RED); // Anzeige "Stoppen"
			while(1); // endlos warten (oder Programmende)
		}
		taste2=taste1; // letzten Wert merken für nächsten Vergleich
		Sleep(255);
	}
	return(0); // ohne meckert der Kompiler
}
Meine Programmbeispiele für den asuro sind meist ungetestet, weil mein asuro eingemottet ist...