- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Fehler in If...else Anweisungen???

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242

    Fehler in If...else Anweisungen???

    Ich habe den Fehler gefunden!

    Es muss bei den ODER -Abfragen so heißen:

    else if ( BT_Info == "*10|6|2#" || BT_Info == "*10|6|3#")


    Hallo,

    der folgende Code eines Unterprogramms funktioniert bis zu der Abfrage von "*10|2|2#" || "*10|2|3#".

    Wenn dann BT_Info was enthält, was danach kommt, dann erscheint auf dem SM immer nur die 2 und "IR_Nr_fuer_Mx = 3".

    Das sieht dann z.B. so aus:

    BT_Info = *10|4|3#
    2
    IR_Nr_fuer_Mx = 3



    Code:
    void BT_Empfangen () {
    
      Serial.print("BT_Info   =   ");
      Serial.println (BT_Info);
    
      if ( BT_Info == "*10|1|3#")    //    M1 ausfahren
      { Serial.println(" 1a");
        IR_Nr_fuer_Mx = 1;
    
        M1_Start =  true;   // wird ja nur einmal mit dem Empfang des Signals vom IR durchlaufen
      }
    
      else if ( BT_Info == "*10|1|2#")    //    M1 einfahren
      { Serial.println(" 1b");
        IR_Nr_fuer_Mx = 2;
    
        M1_Start =  true;   // wird ja nur einmal mit dem Empfang des Signals vom IR durchlaufen
    
      }
    
      else if ( BT_Info == "*10|2|2#"  ||  "*10|2|3#")    //    M1 STOP
      { Serial.println(" 2");
        IR_Nr_fuer_Mx = 3;
    
      }
    
      else if ( BT_Info == "*10|3|3#")    //    M2 ausfahren
      { Serial.println(" 3a");
        IR_Nr_fuer_Mx = 4;
    
        M1_Start =  true;   // wird ja nur einmal mit dem Empfang des Signals vom IR durchlaufen
      }
    
      else if ( BT_Info == "*10|3|2#")    //    M2 einfahren
      { Serial.println(" 3b");
        IR_Nr_fuer_Mx = 5;
    
        M1_Start =  true;   // wird ja nur einmal mit dem Empfang des Signals vom IR durchlaufen
    
      }
    
      else if ( BT_Info == "*10|4|2#"  ||  "*10|4|3#")    //    M2 STOP
      { Serial.println(" 4");
        IR_Nr_fuer_Mx = 6;
    
      }
    
    
      else if ( BT_Info == "*10|5|3#")    //    M3 ausfahren
      { Serial.println(" 5a");
        IR_Nr_fuer_Mx = 7;
    
        M1_Start =  true;   // wird ja nur einmal mit dem Empfang des Signals vom IR durchlaufen
      }
    
      else if ( BT_Info == "*10|5|2#")    //    M3 einfahren
      { Serial.println(" 5b");
        IR_Nr_fuer_Mx = 8;
    
        M1_Start =  true;   // wird ja nur einmal mit dem Empfang des Signals vom IR durchlaufen
    
      }
    
      else if ( BT_Info == "*10|6|2#"  ||  "*10|6|3#")    //    M3 STOP
      { Serial.println(" 6");
        IR_Nr_fuer_Mx = 9;
    
      }
    
    Serial.print ("IR_Nr_fuer_Mx   =  ");
    Serial.println (IR_Nr_fuer_Mx);
    
    return;
    
    }     //   ENDE  >>>>>>>  void BT_Empfangen ()
    Das UP wird immer mit dem Eintreffen eines Signals von der Seriellen Schnittstelle 2 des Arduino MEGA aufgerufen.

    Sieht jemand einen Fehler, den ich nicht erkenne? Dann bitte melden!

    Der Aufruf sieht so aus:

    Code:
       if(Serial2.available())        //   Info verfügbar?
     {
     BT_Info = Serial2.readStringUntil('\n');      //   Info einlesen
    
     BT_Empfangen ();     // Aufruf der BT-Signalverarbeitung
    
     
     }       //   *************  ENDE   if(Serial2.available())
    Geändert von fredyxx (18.11.2016 um 18:08 Uhr)

Ähnliche Themen

  1. Wo ist der Fehler?
    Von Ezalo im Forum Robby RP6
    Antworten: 8
    Letzter Beitrag: 12.08.2010, 17:48
  2. Frage zu Assembler-Anweisungen
    Von Jaecko im Forum Assembler-Programmierung
    Antworten: 3
    Letzter Beitrag: 11.10.2008, 22:38
  3. LCD flackert bei Verwendung von Gosub Anweisungen! Warum?
    Von elcapitano im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 23.03.2008, 18:03
  4. mehrere if anweisungen verschachteln
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 25.11.2007, 20:21
  5. "Select Case" und dann mehrere Anweisungen pro Zei
    Von Willa im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 25.10.2007, 14:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress