Da es das gleiche Thema ist klinke ich ich hier auch mal ein. Zuerst danke SlyD für den HInweis auf dieses Thema.
Nun mal ne Frage.
Code:
char receiveBuffer[UART_RECEIVE_BUFFER_SIZE+1];
uint8_t getInputLine(void)
{
static uint8_t buffer_pos = 0;
if(getBufferLength())
{
receiveBuffer[buffer_pos] = readChar();
if(receiveBuffer[buffer_pos]=='\n')
{
receiveBuffer[buffer_pos]='\0';
buffer_pos = 0;
return 1;
}
else if(buffer_pos >= 32)
{
receiveBuffer[32]='\0';
buffer_pos = 0;
return 2;
}
buffer_pos++;
}
return 0;
}
Was macht dieser Code denn genau? Ich weiß gern was ich da in einem Programm verwende. 
Ist die Variable UART_RECEIVE_BUFFER_SIZE denn schon definiert? Oder muss ich die selber definieren aufgrund der Menge an Zeichen die ich definiere?
Die Funktion oben geht ja den kompletten receiveBuffer Zeichen für Zeichen durch und jagt readChar() darüber. Was macht readChar() den mit den Zeichen?
Dann, ein Abbruchkriterium ist ja wenn als Zeichen '\n' gefunden wird. Ich vermute das kann ich auch einfach durch andere "Zeilenendzeichen" ersetzen? Also z.B. mit '\r'.
Was bringt es eigentlich wenn man ein Zeichen mit '\0' überschreibt?
Meine letzte aber wohl komischste Frage überhaupt, wo befinden sich denn nach der Funktion überhaupt die eingelesenen Zeichen?
Wenn ich die Funktion ja aufrufe liefert die mir nur je nach Zustand ein 0, eine 1 oder eine 2 zurück. Oder seh ich das grad richtig das am Ende alle Zeichen der Reihe nach in receiveBuffer[0..Ende] stehen?
EDIT: Nachdem ich das ganze geschrieben hab un noch ein paar mal drüber nachgedacht hab glaub ich das ich das doch verstanden hab. Narf immer das gleiche ^^
EDIT2: Aber eine Frage habe ich immernoch, wie kann ich es denn realisieren dass ich in einer Zeile z.B. "050 050" übertragen kann und dann im RP6 das in zwei Variable mit jeweils 50 umsetze?
Ich will da nämlich Geschwindigkeitswerte übertragen und eben auf für Kurven z.B. "075 125" oder sowas
Kann ich denn von dieser Variable vom Typ Char einfach die ersten drei Zeichen irgendwie rausnehmen und in eine integer schreiben? Weiß da einer wie man sowas macht?
EDIT3: Habe nun rausgefunden das sich das ein char mittels
int i = atoi (char) in etwa umwandeln lässt.
Werde das daheim dann mal testen.
Lesezeichen