zurücksetzen kannst du sie nur durch EncoderSet(0,0);
hat dalmator geschrieben.

das ist glaube ich der schlüssel. setze mal vor den if encoder ein encoderset(0,0) damit der encoder neu von null an zählen kann.

alernativ wäre den encoderwert in eine variable zwischenspeichern und dann mir diesem wert + s1*3 oder was immer da sein sollte zu vergleichen

in der art etwa

int iLeftencoder= encoder[LEFT]; //Startwert merken

while (encoder[LEFT]<=iLeftencoder+(cm90*3))
{
MotorDir(FWD,FWD);
MotorSpeed(160,0);
}


gruß
downad