Ja. Ist einfacher...
Hat jemand eine Idee, wie ich vom Distanzunterschied zwischen linkem und rechtem Encoder auf den gedrehten Winkel komme? Ich verstehe nicht ganz, wie die das in der Lib.c machen.
Hier mal der Auszug, von dem ich glaube, dass er Winkel(unint16_t angle) in Distanzen umrechnet:
Code:
void rotate(uint8_t desired_speed, uint8_t dir, uint16_t angle, uint8_t blocking)
{
    motion_status.move_L = true;
    motion_status.move_R = true;
    uint16_t distance = (uint16_t) (((uint32_t)(ROTATION_FACTOR) * (uint16_t)angle)/100);
    preDecelerate_L = distance - 100;
    preDecelerate_R = distance - 100;
    preStop_L = distance;
    preStop_R = distance;
    if(distance < 40) {
        distance = 40; 
        preStop_L = 20;
        preStop_R = 20;
        preDecelerate_L = 10;
        preDecelerate_R = 10;
    }
    moveAtSpeed(desired_speed,desired_speed);
    changeDirection(dir);
    
    mleft_dist = 0; 
    mright_dist = 0;
    distanceToMove_L = distance;
    distanceToMove_R = distance;
    
    motion_status_tmp = motion_status.byte;
    MOTIONCONTROL_stateChangedHandler();
    if(blocking)
        while(!isMovementComplete())
            task_RP6System();
}
Ich hätts gern andersrum... Winkel in Grad!

mfg