@Martinius:
Vielleicht guckst du dir mal dieses sinnfreie Progrämmchen an:
https://www.roboternetz.de/community...l=1#post510826
Hi,
ich wolt mit meinem RP6 mal ein Programm schreiben indem er mit mir komuniziert.
Ich hab dazu erst mal ein Test-Progrämmchen geschrieben um mich einzu arbeiten.
Das funktioniert aber leider nicht. Kann mir jemand helfen? Danke
Code:#include "RP6RobotBaseLib.h" int main(void){ setLEDs(0b000000); writeString("Hallo lass uns starten\n"); writeString("Schreibe mal bitte zwei Chars ins Terminal\n"); uint8_t charsToReceive = 2; char receiveBuffer[charsToReceive+1]; clearReceptionBuffer(); uint8_t cnt; for(cnt = 0; cnt < charsToReceive; cnt++) { receiveBuffer[cnt]=0; } uint8_t buffer_pos = 0; while(true){ if(getBufferLength()){ receiveBuffer[buffer_pos] = readChar(); if(receiveBuffer[buffer_pos]=='\n') { receiveBuffer[buffer_pos]='\0'; buffer_pos = 0; break; } } buffer_pos++; } writeChar('\n'); writeString(receiveBuffer); writeString_P("\n"); return 0; }
@Martinius:
Vielleicht guckst du dir mal dieses sinnfreie Progrämmchen an:
https://www.roboternetz.de/community...l=1#post510826
Gruß
Dirk
ich hab mein programm mal deinem nachenpfunden aber es will nicht klappen:
Code:#include "RP6RobotBaseLib.h" char Buffer[UART_RECEIVE_BUFFER_SIZE + 1]; uint8_t Eingabe(void){ uint8_t buffer_pos = 0; if(getBufferLength()){ Buffer[buffer_pos]=readChar(); if(Buffer[buffer_pos]=='\n'){ Buffer[buffer_pos] = '\0'; return true; } else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) { Buffer[UART_RECEIVE_BUFFER_SIZE] = '\0'; buffer_pos = 0; return 2;} buffer_pos++; } return 0; } void Warten(void){ while(!Eingabe()); } int main(void){ setLEDs(0b000000); writeString("Hallo lass uns starten\n"); writeString("Schreibe mal bitte zwei Chars ins Terminal\n"); Warten(); writeChar('\n'); writeString(Buffer); writeString_P("\n"); return 0; }
@Martinius:
1. In Main immer: initRobotBase();
Sonst funktioniert nichts!
2. buffer_pos als "static" deklarieren!
3. Anstelle von:
Buffer[buffer_pos] = '\0';
return true;
... muss da in der Funktion Eingabe() stehen:
Buffer[buffer_pos] = '\0';
buffer_pos = 0;
return 1;
Dann sollte es klappen!
Gruß
Dirk
Lesezeichen