Antworten

Der Beitrag verursachte die folgenden Fehler, die behoben werden müssen:
Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.
Einschränkungen: 8 pro Beitrag (8 verbleibend), maximale Gesamtgröße 8,79 MB, maximale Individualgröße 1 MB
Entfernen Sie den Haken der Dateianhänge, die gelöscht werden sollen
Klicken Sie hier oder ziehen Sie Dateien hierher, um sie anzuhängen.
Anhänge und andere Optionen
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Zusammenfassung

Autor pic18
 - 10.11.2022, 16:24:25 CET
Die zwei Möglichkeiten hatte ich auch schon überlegt, macht aber an Rechenzeit und Speicherbedarf kein Unterschied. Ich werde den ursprünglichen Code wahrscheinlich lassen. Ich hatte mir auch schon eine Schleife überlegt, die muß aber nur von 0 bis 1 zählen, was auch uninteressant ist.
Autor vloki
 - 10.11.2022, 15:15:00 CET
Bin mir nicht ganz sicher, dass ich die Frage richtig verstehe ;-)

Die Zeile bei jeder Abfrage einzufügen, wirst du nicht drumrum kommen.
Aber die Rechenzeit verlängert sich dadurch ja nicht, weil es nur einmal ausgeführt wird.

Klammern brauchst du dann natürlich, aber irgendwie glaube ich nicht so ganz,
dass das deine Frage war.

Würde so aussehen:
    if(aktAnz[0]==ausg_ds18b20){
        ds18b20_LCD=0;
        ds18b20CMD = ds18b20ToutInit_LCD;
    }
    else if(aktAnz[1]==ausg_ds18b20){ 
        ds18b20_LCD=1;
	ds18b20CMD = ds18b20ToutInit_LCD;
    }
    else 
        ds18b20CMD = ds18b20Tread;// beide Bedingungen nicht erfüllt

Ginge auch noch mit einem logischen ODER in der ersten Abfrage, aber dadurch wird es nicht besser
    if((aktAnz[0]==ausg_ds18b20)||(aktAnz[1]==ausg_ds18b20)){
        if(aktAnz[0]==ausg_ds18b20) ds18b20_LCD=0;
          else ds18b20_LCD=1; 
        ds18b20CMD = ds18b20ToutInit_LCD;
    }
    else 
        ds18b20CMD = ds18b20Tread;// beide Bedingungen nicht erfüllt
Autor pic18
 - 10.11.2022, 12:09:42 CET
Hallo ich habe folgenden Code geschrieben.
                    ds18b20CMD = ds18b20ToutInit_LCD;//nur wenn eine der folgende Bedingungen erfüllt sind.
                    if(aktAnz[0]==ausg_ds18b20)
                        ds18b20_LCD=0;
                    else if(aktAnz[1]==ausg_ds18b20) 
                        ds18b20_LCD=1;
                    else 
                        ds18b20CMD = ds18b20Tread;// beide Bedingungen nicht erfüllt
Meine Frage: Da ich Rechenzeit sparen will möchte ich die Zeile:
ds18b20CMD = ds18b20ToutInit_LCD
nur ausführen wenn eine der nachfolgenden Bedingungen erfüllt ist. Ich möchte aber nicht bei jeder IF- Abfrage diese Zeile einfügen. Habt ihr eine Idee wie das geht? Evtl. mit setzen von Klammern {}