Nachdem ich das jetzt schon eine Weile beobachte, muss ich jetzt doch mal antworten:

#define links45 { turn(180); Msleep(500);turn(135);Msleep(500);}

Eine Rechtsdrehung um 180°+135° = 315° ist wie eine Linksdrehung um 45° ( 360°-45° = 315° ).

Mein ASURO hat die Eigenschaft, dass er je nach Richtung unterschiedlich weit dreht. Die Kallibrierroutine ist aber nur für die Rechtsdrehung ( glaub ich mich zu erinnern ). Deshalb habe ich die Linksdrehung über eine Rechtsdrehung realisiert.

Ein weiteres Problem der Turn ( und Go ) Routine ist, dass man die Bewegungen eigentlich mit einer programmgesteuerten Bremsphase versehen müsste. Schaltet man die Motoren schnell ab, bewegt sich der Roboter noch ein Stückchen weiter, was zu einem Fehler in der Sollposition führt.
Das ist eine Unsauberkeit der Routinen, die man irgendwan mal beheben könnte. Damals im Wettberwerb ging es aber darum, möglichst schnell das Ziel zu erreichen, deshalb sind solche Feinheiten unter den Tisch gefallen.

Gruss,
sto - chri