PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : encoder-Problem



BlazeX
19.03.2008, 18:46
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:
#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???

damaltor
19.03.2008, 23:15
sind die encoderwerte nicht integer und keine LONGs?
du musst den encoder noch auf 0,0 setzen, ich glaube das geht mit Encoder_Set(0,0); (würds aber nicht beschwören, ist lange her dass ich das das letzte mal benutzt hab)