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:
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;
}
(UCHAR ist als unsigned char definiert)
Am Ende erhalte ich immer nur "0 0" "0 2" oder "0 1".
Was mach ich falsch???
Lesezeichen