Hallo Stratege993,

bei "move (160, FWD, 4000, true);" bewegt sich der RP6 4000 Encoderschritte vorwärts.
Die Umrechnung über die ENCODER_RESOLUTION
Werte in der Datei RP6config.h läuft dann aber über ein zusätzliches Makro.
Damit sich etwas ändert, musst Du den Aufruf oben so machen:

move (160, FWD, DIST_MM(1000), true);

So werden die 1000mm in Encoder Zählschritte umgerechnet. Du kannst auch den von Dir berechneten Wert direkt verwenden - also z.B. anstelle der 4000 halt 4100 oder so versuchen.

Die Makros sind ja zwei Zeilen tiefer in derselben Datei definiert:
Code:
#define DIST_MM(__DST__) (uint16_t)(__DST__/ENCODER_RESOLUTION)
#define DIST_CM(__DST__) (uint16_t)(__DST__/(ENCODER_RESOLUTION/10))
#define DIST_M(__DST__) (uint16_t)(__DST__/(ENCODER_RESOLUTION/1000))
DIST_MM steht für Distanz in MilliMetern, DIST_CM für Zentimeter und DIST_M für Meter.


Die Zeilen die mit "//" anfangen sind natürlich auskommentiert, werden vom Compiler also nicht beachtet. Sind nur Beispielwerte.
(lieber mal den C Crashkurs ansehen)

MfG,
SlyD