Hi Georg und Egon,
vielen Dank für Eure Hinweise, zur Zeit habe ich echt die Lust verloren..
Habe letztes Wochenende mal versucht mit set Target eine Kurvenfahrt (Kreisbogen)hinzubekommen:
copro_setTargetRel(100,500,20);
also mit setTarget kann man nur geradeaus fahren oder drehen..
nächster Versuch:
copro_setTargetRel(100,500,0);
copro_setSpeed(16,32);
das scheint das KillerKommando zu sein, macht nur Knack und alles duster..?! Bei Euch auch??
Das mit dem Sekundenschlaf meine ich auch gesehen zu haben; es liegt augenscheinlich daran, dass der Motorregler (PID) etwas länger braucht noch den letzten fehlenden Tick für copro_target_distance auszuregeln.
Weiterhin musste ich feststellen, dass zwischen einem Commando an den copro und dem copro_update() eine längere Pause erforderlich ist. Wie Ihr ja wisst ist der copro der SPI Master, der alle 10ms dem MainBrain (Mega128) die aktuellen Copro Werte überträgt - werden in einen Buffer geschrieben - und als Antwort die neuen Befehle gesendet bekommt. Erst bei einem copro_update werden die Werte aus dem SPI rx Buffer in die entsprechenden Variablen kopiert.
Wenn man also dem Copro ein setTarget angibt und das copro_update zu schnell kommt, werden die Werte von vor dem neuen Kommando geholt.
In der Mainloop also erst Kommando an copro aufrufen, Displayausgaben sorgen für Wartezeit und dann erst das copro_update aufrufen.