Hallöchen, ich wollte mich mal mit dem encoder versuchen. Das Programm aus der Docu geht, Asuro fährt seine 500 vorwärts.
Ich wollte den Asuro fahren lassen bis er irgenwo dagegen fährt, und dann die encoderwerte ans terminal senden. Hier der Code:(UCHAR ist als unsigned char definiert)Code:#include "asuro.h" int main (void) { Init(); EncoderInit(); MotorDir(FWD,FWD); MotorSpeed(100,100); UCHAR PS[3]; while (1) { PS[0]=PollSwitch(); PS[1]=PollSwitch(); PS[2]=PollSwitch(); if(PS[0]!=0 && PS[0]==PS[1] && PS[0]==PS[2]) break; } StatusLED(YELLOW); PrintLong(encoder[0]); SerPrint(" "); PrintLong(encoder[1]); SerPrint("\r\n"); EncoderStop(); StatusLED(RED); MotorSpeed(0,0); while(1); return 0; }
Am Ende erhalte ich immer nur "0 0" "0 2" oder "0 1".
Was mach ich falsch???







Zitieren

Lesezeichen