- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 12

Thema: Berechnung falsch

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Dann liefere doch mal ein konkretes Beispiel. Was steht in line_values und was kommt als Ergebnis raus?
    MfG
    Stefan

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    line_values[0] ist 600 die anderen sind 0.

    Das Ergebnis ändert sich jedoch ständig (Abstand zwischen den Messungen ist ca. 100ms)

    Offensichtlich wird das Ergebnis ständig dividiert und der Divisior wird proportional kleiner (siehe angehängte Grafik)

    00016
    00016
    00016
    00016
    00016
    00016
    00016
    00016
    00016
    00016
    ...(16 blieb anfangs ziemlich lange)
    02412
    01061
    00684
    00507
    00405
    00337
    00290
    00255
    00228
    00206
    00188
    00174
    00161
    00151
    00142
    00134
    00127
    00121
    00115
    00110
    00106
    00102
    00098
    00094
    00091
    00088
    00086
    00083
    00081
    00079
    00077
    00075
    00073
    00071
    00070
    00068
    00067
    00066
    00064
    00063
    00062
    00061
    00060
    00059
    00058
    00057
    00056
    00055
    00054
    00054
    00053
    00052
    00052
    00051
    00050
    00050
    00049
    00049
    00048
    00047
    00047
    00046
    00046
    00046
    00045
    00045
    00044
    00044
    00043
    00043
    00043
    00042
    00042
    00042
    00041
    00041
    00041
    00040
    00040
    00040
    00039
    00039
    00039
    00039
    00038
    00038
    00038
    00038
    00037
    00037
    00037
    00037
    00036
    00036
    00036
    00036
    00036
    00035
    00035
    00035
    00035
    00035
    00034
    00034
    00034
    00034
    00034
    00034
    00033
    06794
    02412
    01471
    01061
    00831
    00684
    00582
    00507
    00450
    00405
    00368
    00337
    00312
    00290
    00271
    00255
    00240
    00228
    00216
    00206
    00197
    00188
    00181
    00174
    00167
    00161
    00156
    00151
    00146
    00142
    00138
    00134
    00130
    00127
    00124
    00121
    00118
    00115
    00113
    00110
    00108
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.PNG  

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Und mit welcher Code-Variante sind diese Ergebnisse nun entstanden? Die 16 passt jedenfalls genau zu einer "Überlauf-Version".

    Das Ergebnis ändert sich jedoch ständig (Abstand zwischen den Messungen ist ca. 100ms)
    Und hast du mal kontrolliert, ob die Ausgangswerte überhaupt gleich bleiben? Das Ergebnis ändert sich schließlich nicht "einfach so".
    MfG
    Stefan

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2004
    Beiträge
    23
    Hallo,

    die 16 ist "korrekt": (600 * 1000) / 600 = 600.000 / 600 -> 16 Bit: 10.176 / 600 = 16

    Folgende Varianten sollten funktionieren:

    Code:
    wa_numerator += ((uint32_t) line_values[i]) * (i+1) * 1000;
    
    oder
    
    wa_numerator += line_values[i] * (i+1) * 1000UL;
    Wichtig ist, dass der Compiler erkennt, dass er auf der rechten Seite in "uint32_t" rechnen soll. Nebenbei, "itoa(...)" passt nicht zu einem "uint", dafür gibt es "utoa(...)".


    Carry

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    Hat sich erledigt... Man sollte halt nicht vergessen die Variablen nach der Berechnung zu reseten

    Diese Variante funktioniert jetzt:
    Code:
    wa_numerator   += (long)(line_values[i]) *((i+1) * 100);
    DANKE für eure Hilfe

    EDIT: @Carry: Hab deinen Post leider erst jetzt gesehen, trotzdem danke für die Erklärung
    Geändert von Chypsylon (13.02.2012 um 15:27 Uhr)

Ähnliche Themen

  1. Berechnung des DMS
    Von Unregistriert im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 21.02.2012, 18:10
  2. Antworten: 5
    Letzter Beitrag: 07.08.2008, 16:38
  3. CTC- Falsche Berechnung
    Von Spurius im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 24.07.2008, 21:49
  4. NTC-Berechnung
    Von Easter im Forum Sensoren / Sensorik
    Antworten: 10
    Letzter Beitrag: 04.05.2008, 17:57
  5. LED Berechnung
    Von mg im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 30.03.2006, 13:57

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress