Hi,
ich wollte mir mal für den RP6 ein TerminalsteuerungsProgramm erstellen
das dann irgentwann ganze Kommandoketten auswertet z.B. 100_FWD_1min_
leider komme ich nicht mehr weiter kann mir jemand sagen wo ein fehler liegen
könnte?
Danke
Code:
#include "RP6RobotBaseLib.h"
char Buffer[UART_RECEIVE_BUFFER_SIZE + 1];
char Name[12+1];
uint8_t cnt;
uint8_t speed = 0;
int8_t dir = 0;
uint8_t Eingabe(void){
static uint8_t buffer_pos = 0;
if(getBufferLength()){
Buffer[buffer_pos]=readChar();
if(Buffer[buffer_pos]=='\n'){
Buffer[buffer_pos] = '\0';
buffer_pos = 0;
clearReceptionBuffer();
return 1;
}
else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) {
Buffer[buffer_pos] = '\0';
buffer_pos = 0;
clearReceptionBuffer();
return 1;}
buffer_pos++;
}
return 0;
}
void Warten(void){
for(cnt = 0; cnt <UART_RECEIVE_BUFFER_SIZE + 2; cnt++) {
Buffer[cnt]=0;
}
while(!Eingabe());
}
void Namenlesen(void){
uint8_t a;
for(a=0;a<14;a++){
Name[a]=Buffer[a];
}
}
void KommandoAuswerten(){
int cnt = 0;
int cnt2;
int done = 0;
char Speed[2];
while(Buffer[cnt]!='/n){
if (Buffer[cnt]=='_'&& done == 0){
for(cnt2=0;cnt2<4;cnt2++){
Speed[cnt2]=Buffer[cnt2];
}
speed = atoi(Speed);
done = 1;
break;
}
cnt++;
}
}
int main(void){
initRobotBase();
setLEDs(0b000000);
writeString("Hallo lass uns starten\n");
writeString("Schreibe mal bitte deinen Namen ins Terminal\n");
Warten();
Namenlesen();
writeString("Dein Name ist also ");
writeString(Name);
writeChar('.');
writeString("\n");
writeString("Gib mir mal ein Komando");
writeString("\n");
Warten();
KommandoAuswerten();
powerON();
moveAtSpeed(speed,speed);
return 0;
}
Lesezeichen