Hallo albi1989

Doch, du bist schon im asuro-Bereich. Herzlich willkommen.

Deine Tastenwerte sehen gut aus, allerdings vermutlich bei stehendem asuro. In deinem Programm könntest du anstatt (taste>0) testweise auch mal auf die einzelnen Taster prüfen (taste==1)... (taste==32) oder Gruppen wie (taste==33) oder (taste==12) bzw. (taste==7) oder (taste==56). Jeder Taster wird durch ein Bit im Ergebniss von PollSwitch() dargestellt. Mehrere Taster durch die Summe der Wertigkeiten der jeweiligen Bits. (*würgs* alles klar soweit?)

Eine Möglichkeit wäre die Mehrfachabfrage von PollSwitch() und der anschliessende Vergleich der Ergebnisse:

taste1=PollSwitch();
taste2=PollSwitch();

if ((taste1==taste2) && (taste1>0)) ....

Vielleicht bringt auch eine kurze Verzögerung nach Init() etwas:

Init();
Sleep(255);

Mit serWrite() kann man nur Zeichenketten an den PC senden, der zweite Parameter gibt die Länge der Zeichenkette an. Um Werte zu senden, must du eine andere Funktion verwenden:

PrintInt(taste);

Die Funktion ist aus der erweiterten asuro-Bibliothek und sieht so aus:

Code:
void PrintInt(int wert)
{  	char text[6]="      ";
	itoa(wert,text,10);
	SerWrite(text,5);
}
Wenn du diesen Code vor int main() in dein Programm kopierst, kann du diese Funktion auch mit deiner aktuellen Bibliothek nutzen.

...gibt es das oder ähnliche Probleme auch bei anderen Funktionen?
Leider, oder zum Glück, gibt es ähnliche Probleme bei der Odometrie, bei den Liniensensoren und auch bei der Regelung der Motoren. Schliesslich wollen wir ja was lernen und nicht nur unterhalten werden.

Gruß

mic