oberallgeier: kann das an zu geringer stromversorgung liegen? infrarot und motoren ist ganz schön viel...
Theux: Halte den transceiver etwas höher =) bei mir sind knapp 1 m kein Problem.
Druckbare Version
oberallgeier: kann das an zu geringer stromversorgung liegen? infrarot und motoren ist ganz schön viel...
Theux: Halte den transceiver etwas höher =) bei mir sind knapp 1 m kein Problem.
Hallo
Hast Du mir gestern über die Schulter geguckt!!? Das Terminal zeigte plötzlich lauter VL VL VL VL . . . darauf hin hatte ich die Lademaschine angeworfen.Zitat:
Zitat von damaltor
Und jetzt läuft er, der Asuro. Ich hatte ein Energieproblem :(
Kannste mal sehen... =) Naja passiert. aber wenn es so einfach war ist doch alles gut.
Ich habe das Herauskommen der neuen lib 2.7.1 zum Anlass und Übung genommen um damit Henks Programm mal als Quellcode nach zu vollziehen.
Ich hoffe, ich habe es damit im Wesentlichen getroffen Henk?Code:#include "asuro.h"
#define MAX 50
#define SPEED 10*reg[0]
#define DIST 10*reg[1]
void readLine(char *cmd, int max) {
unsigned char len=0;
char data;
while(len<max-1) {
SerRead(&data, 1, 0);
switch (data){
case 'k': // end of command sequence but first wait for any asuro key (change)
StatusLED(YELLOW);
PollSwitch();
max=PollSwitch();
while (PollSwitch()==max); // LOOP
// FALL THRU
case 'x': // end of command sequence
cmd[len++]=data;
max=len;
break;
case 'q': // kills the entire input buffer
StatusLED(RED);
len=0;
break;
default:
cmd[len++]=data;
break;
}
}
cmd[len]=0;
StatusLED(GREEN);
}
void turtle(void) {
int reg[]={10, 20};
unsigned char i, r=0;
char cmd[MAX];
EncoderInit();
while(1) {
readLine(cmd, MAX);
for(i=0; cmd[i]; i++) {
switch(cmd[i]) {
case 's': r=0; reg[0]=0; break;
case 'd': r=1; reg[1]=0; break;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
reg[r]=10*reg[r]+cmd[i]-'0';
break;
case 'l': Turn( -90, SPEED); break;
case 'r': Turn( 90, SPEED); break;
case 'L': Turn( -45, SPEED); break;
case 'R': Turn( 45, SPEED); break;
case 'e': Turn(-180, SPEED); break;
case 'i': Turn( 180, SPEED); break;
case 'f': Go( DIST, SPEED); break;
case 'b': Go(-DIST, SPEED); break;
}
}
}
}
int main(void) {
Init();
turtle();
return 0;
}
Hallo,
>Ich hoffe, ich habe es damit im Wesentlichen getroffen
Ja dass stimmt. ;-)
Gruss,
Henk