Hallo Leute, ich hab mal ne Frage.
Ich will meinen RP6 über Labview fernsteuern, doch beim schreiben des Programms hab ich grad ein paar Schwierigkeiten.
Ich will hingehen und den Inhalt des Empfangsbuffers mit anderen Werten vergleichen. Also z.B. wenn eine 1 empfangen wird soll er mit dem Programm fortfahren.
Ich versuch mir das mit der UART Schnittstelle grad anhand des Beispielprogramms RP6Base_SerialInterface_02.c zu erklären.
Anhand von dem Teil des Quelltext
Code:
while(true) // Loop until we received one line of Data!
{
if(getBufferLength()) // Check if we still have data (means getBufferLength()
{ // is not zero)
receiveBuffer[buffer_pos] = readChar(); // get next character from reception buffer
if(receiveBuffer[buffer_pos]=='\n') // End of line detected!
{
receiveBuffer[buffer_pos]='\0'; // Terminate String with a 0, so other routines.
buffer_pos = 0; // can determine where it ends!
// We also overwrite the Newline character here.
break; // We are done and can leave reception loop!
}
else if(buffer_pos >= charsToReceive) // IMPORTANT: We can not receive more
{ // characters than "charsToReceive" because
// our buffer wouldn't be large enough!
receiveBuffer[charsToReceive]='\0'; // So if we receive more characters, we just
// stop reception and terminate the String.
writeString_P("\n\nYou entered more characters than possible!\n");
break; // We are done and can leave reception loop!
}
buffer_pos++;
}
}
writeChar('\n');
// ------------------------------------------
// Do something with the received answer:
switch(question) // select the question...
{
case 0: // Question 0: What's your name?
writeString_P("Hello \"");
writeString(receiveBuffer); // Output the received data as a String
writeString_P("\" !\n");
break;
versuch ich grad ein bissl zu arbeiten. Kann ich denn diesen Receivebuffer auch einfach mit einem Wert vergleichen?
if(receiveBuffer=1)
{
...
}
Würde das denn gehen?
Und die andere Frage, ich würde gerne etwas übertragen in der Art
"50 50" oder "132 70"
Wie kann ich mich denn ranmachen diese Übertragung zu zerlegen?
Kann man da hingehen, den Buffer auslesen und alles bis zum Leerzeichen in eine Variable schreiben, alles nach dem Leerzeichen bis zum Ende dann in eine andere Variable? An der Stelle werden immer nur Zahlen übertragen.
Danke schonmal für die Hilfe und Grüße
Lesezeichen