- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 31

Thema: ESP32 berechnet floats falsch im Vergleich zu M4 und Due/M3

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    einfache Programme habe ich schon mal probiert, z.B. 100000 aufeinanderfolgende float-Multiplikationen mit Konstanten - kein Unterschied.
    Es ist auch nicht nur ein Serial print Bug, denn er meldet ja die "Landung" mit "way off!" - kein Wunder, wenn man die Tranquility Base um 54,196km verfehlt hat....

    Möglicherweise ist auch die Float-Falschberechnung kein ausschließlicher (primärer) Float-Rechenfehler, sondern es hängt mit irgendwelchen if/else Randbedingungen ab, die falsch ausgewertet werden.... (?)

    Aber hier hat doch sicher jemand einen M3, M4 und/oder (vor allem auch) einen ESP32 zum Austesten meines Programms bei sich selber zuhause?

    - - - Aktualisiert - - -

    PS,
    ich habe es auch mit fp64 double ausprobiert, gleiche Ergebnisse bei allen Plattformen: M3+M4 gleich, ESP32 völlig anders.
    Das ist um so interessanter, als der M4 ja einen fp32-Coprozessor hat, nicht aber für fp64 (hier rechnet er über C++ Software Routinen), trotzdem rechnet der M4 für fp32 und fp64 gleich (Stellen-Genauigkeit außen vor).
    Geändert von HaWe (30.04.2019 um 08:21 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    z.B. 100000 float-Multiplikationen mit Konstanten
    vorsicht ob da der compiler nicht was wegotimiert XD dann steht da vielleicht nur eine einfache zuweisung weil der compiler das schon vorberechnet hat
    bei solchen experimenten rate ich immer alle variablen vorsorglich als volatile zu deklarieren um sicher zu gehen dass er daran nichts optimiert (vielleicht behebt das auch dein problem beim ESP, versuchs mal)

    manchmal macht auch der compiler komische sachen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    vorsicht ob da der compiler nicht was wegotimiert XD dann steht da vielleicht nur eine einfache zuweisung weil der compiler das schon vorberechnet hat
    bei solchen experimenten rate ich immer alle variablen vorsorglich als volatile zu deklarieren um sicher zu gehen dass er daran nichts optimiert (vielleicht behebt das auch dein problem beim ESP, versuchs mal)

    manchmal macht auch der compiler komische sachen
    nein, macht er nicht, weil nach jeder Multiplikation ein Serial.println() erfolgt, man kann alles Schritt für Schritt verfolgen - aber auch volatile verhindert das ansonsten, das mache ich schon immer so. Daran liegt es nicht (habe da schon ein paar Erfahrungen aus meinen Benchmark-Programmen... ).

    Aber zurück zum Ausgangsproblem: hier hat doch sicher jemand einen M3, M4 und/oder (vor allem auch) einen ESP32 zum Austesten meines Programms bei sich selber zuhause?
    Zunächst mal wäre es nämlich auch wichtig, das eine oder andere Ergebnis überhaupt einmal (v.a. per Arduino IDE) zu bestätigen.

Ähnliche Themen

  1. Integer oder Floats in Bytes auftrennen
    Von ElchiMtr im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 30.05.2013, 20:52
  2. Wie berechnet man das Haltemoment?
    Von Elvid im Forum Motoren
    Antworten: 5
    Letzter Beitrag: 08.11.2012, 10:08
  3. Antworten: 5
    Letzter Beitrag: 07.08.2008, 16:38
  4. Wie wurde der Spannungsverdoppler berechnet?
    Von Charly_cs im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 31.08.2005, 12:19
  5. [ERLEDIGT] Wie berechnet man Geschwindigkeit
    Von Alexander im Forum Mechanik
    Antworten: 6
    Letzter Beitrag: 28.02.2004, 22:06

Berechtigungen

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

Labornetzteil AliExpress