Hallo Zusammen,

hier der Code, der wohl auf den ersten Blick laufen sollte:
Code:
char    getMotorState(void)
{
char        iState=0;

    if( (PINC & (1 << INPUT_MOTOR_L_DIAGA)) == 0 && (PINC & (1 << INPUT_MOTOR_L_DIAGB))== 1)    // check feed backs
        iState |= 0x1;

    if( (PINC & (1 << INPUT_MOTOR_R_DIAGA))== 0 && (PINC & (1 << INPUT_MOTOR_R_DIAGB)) == 1)
        iState |= 0x2;

    return (iState);
}
Ursache meines Fehler ist, das ich die Wahrheitstabelle falsch gelesen habe. Wenn Diag B auf 0 geht, ist das ein normaler Zustand.

Siehe Datenblatt Seite 8/26 oder auch letztes Impulsdiagram Seite 12/26

Gruss R.