- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: kleinste Wert aus mehreren Variablen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.11.2008
    Ort
    Saarland
    Alter
    38
    Beiträge
    11

    kleinste Wert aus mehreren Variablen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    wir stehen hier vor einem kleinen Problem.

    Ich Suche eine Funktion für Bascom, die aus 4 Integervariablen den kleinsten Wert auswählt.

    Habe es mit ner If Schleife erfolgreich hinbekommen, das zieht aber Rechenzeit wie sau, vielleicht gibts ja was eleganteres? Danke im Voraus

    Gruß

    Klaus

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    34
    Beiträge
    607
    wert = var1

    wenn(var2< wert) dann {wert = var2}
    wenn(var3< wert) dann {wert = var3}
    usw.
    Schöner würde man es mit einem Array hinbekommen.
    Schneller wirds aber kaum gehen.

    Gruß, Yaro

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Du kannst mit Re-definition (Overlay) die Integer als Bytes betrachten.
    Du vergleichst erst nur die MSBytes, und nur, wenn die gleich sind, checkst du noch das LSB.
    Das bringt aber wahrscheinlich nur dann wirklich was Spürbares, wenn du die Routine im assembler machst.

    Variante: Schon bei Erstellen der Variablen auf kleinste Zahl prüfen. da kommts auf restliche Programm an.
    Das bringt dann was, wenn es deutlich mehr als 4 Variablen sind,
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der Vergleich nur mit dem MSB bringt beim AVR nur relativ wenig, denn ein Bedingter Sprung braucht zumindestens in ASM schon länger.

    Es gint ja da extra die Bascom funktion MIN für genau diese Aufgabe, wenn die Daten in einem Array stehen. Wenn die Funktion nicht ganz schlecht programmiert ist, dann wäre nur eine ASM lösung schneller.
    Wenn die Daten nicht ohnehin im Array stehen, könnte man das wahrscheinlich per Overlay erreichen.

Berechtigungen

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

Labornetzteil AliExpress