Go Down

Topic: Abfrage nach AT-CIPSEND ob ">" Zeichen gesendet wird. (Read 458 times) previous topic - next topic

Trottel100

Hallo,
ich will eine Abfrage nach CIPSEND auf das > ZEICHEN abfragen.

ioch versuche dies mit

for (int i=0; i <= 5; i++){
      if(GPRS.read() == ">"){
      i = 5;
      delay(1000);
      Serial.print("X");
     
   }

leider kommt beim Compilieren der Fehler Comparsion error between pointer and integer

Was kann ich machen, dass auf das Zeichen geprüft wird, er soll die Abfrage 5 mal widerholen wenn > nicht kommt ansonsten weiter.

Danke

legotechnicus

#1
Mar 31, 2013, 02:52 pm Last Edit: Mar 31, 2013, 02:56 pm by legotechnicus Reason: 1
Hi,
deine If Abfrage schließt sich nicht, also hat der Compiler eine Klammer zu wenig.
for (int i=0; i <= 5; i++){
     if(GPRS.read() == ">"){ // Klammer geht auf,
     i = 5;                             // aber hier nicht mehr zu
     delay(1000);
     Serial.print("X");
   
  }   // Das wäre jetzt für den Compiler die Endklammer für die IF Abfrage, die Klammer für die FOR-Schleife fehlt
}  // mit dieser Klammer funktioniert es
Everybody makes mistakes, me too :)

mkl0815

Außerdem ist ">"  ein String, nicht nur ein Zeichen. Hier ist es ganz wichtig, zwischen den Zeichen " und ' zu unterscheiden

Code: [Select]

//ich bin ein String, denn ich bin in " eingeschlossen
//außerdem bin ich 2 Zeichen lang
char * zeichenkette = ">";

//ich bin ein Zeichen, denn ich bin in ' eingeschlossen
char zeichen = '>'


Dein Vergleich muss also wiefolgt aussehen:
Code: [Select]
if(GPRS.read() == '>'){
Vorausgesetzt, GPRS.read() liefert ein Zeichen (char, byte, uint_8 etc.) zurück.

Mario.

Trottel100

#3
Mar 31, 2013, 08:23 pm Last Edit: Mar 31, 2013, 10:47 pm by Trottel100 Reason: 1
Hallo,
danke für die Antwort, leider kommt bei GPRS.read()
nicht das Zeichen > raus.

Dies wird erst gesendet nachdem der Befehl ausgeführt wurde (dies ist vorher festgelegt worden durch "GPRS.println("AT+CIPSEND=1"); // Set its prompt echo '>'and shows "send ok" when sending is successful" .

Gibt es einen Befehl der wartet bis das zeichen > gesendet wurde (auf der seriellen Ausgabe)?

Gruß


Go Up