So ich will ja nicht als faul geleten. Der Code funktioniert jetzt so weit danke für
die hilfe.
Code:#include "RP6RobotBaseLib.h" char Buffer[UART_RECEIVE_BUFFER_SIZE + 1]; // Ein Pfufferarry für die entfangenen Zeicehn char Name[12+1]; // Ein Arry für den Namen des Benutzers uint8_t cnt; //Zählvaribale uint8_t speed = 0; // Geschwindigkeitsvariable int8_t dir = 0; // Richtugungsvariable (ändere ich später) void Pruefen(void){ //Prüft wie das neue Komanndo heißst Warten(); //list Recive Buffer aus KommandoAuswerten(); //wertet das Kommando lautet } uint8_t Eingabe(void){ //Hier werden die sich im UART befindenden Zeichen // inden Puffer geladen static uint8_t buffer_pos = 0; if(getBufferLength()) //sinde noch Zeichen einzulesen? { Buffer[buffer_pos]=readChar(); //Zeichen wird eingelesen if(Buffer[buffer_pos]=='\n') //Zeilenumbruch? { Buffer[buffer_pos] = '\0'; //markieren des Endes des Strings buffer_pos = 0; //Puffer Position zurücksetzen clearReceptionBuffer(); //UART Puffer leeren return 1; } else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) //falls mal ein Lesefehler ist { 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++) // löscht den Puffer { Buffer[cnt]=0; } while(!Eingabe()); } void Namenlesen(void) //speichert den Namen ab { uint8_t a; for(a=0;a<14;a++) { Name[a]=Buffer[a]; } } void KommandoAuswerten(void) // wertet das Kommando aus ein '_' schliesst einen Befehl ab { int cnt2 = 0; //Zählvariablen int cnt3; int done = 0; // so weis das Program wo es gerade ist char Speed[2]; //String zum zwischen while(Buffer[cnt2] != '\n' || Buffer[cnt2] !='\0') // solange nicht das ende des Strings erreicht { if (Buffer[cnt2]=='_' && done == 0) { for(cnt3=0;cnt3<4;cnt3++) //abspeichern des Geschwindigkeits Teilstrings { Speed[cnt3]=Buffer[cnt3]; } speed = atoi(Speed); //auslesen der Geschwindigkeit done = 1; break; } cnt2++; } done= 0; } 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"); Pruefen(); while(1){ powerON(); //PowerON task_RP6System(); moveAtSpeed(speed,speed); } return 0; }







Zitieren


Lesezeichen