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

Thema: Mittelwerte von Feldern

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.04.2011
    Beiträge
    16

    Frage Mittelwerte von Feldern

    Anzeige

    Praxistest und DIY Projekte
    Hallo,
    ich probiere nun schon eine Weile rum, doch ich komme einfach nicht weiter, deshalb wollte ich fragen, ob von euch jemand eine idee hat.
    Ich möchte die mit LineData die ausgelesenen Werte in Felder schreiben, also z.B. k[0]=35, k[1]=37, k[2]=32, k[3]= 31 usw. und dann von k[0] und k[1] und k[2] und k[3] den Mittelwert bilden, jedoch sind es 30 Felder weshalb ich es nicht einfach ausschreiben kann. Den Mittelwert möchte ich dann wieder in eine Variable schreiben.
    Vielen Dank für eure Hilfe!
    Lg Oliver

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Hallo,
    versuche einmal so etwas: (ungetestet, lässt sich bestimmt noch optimieren...)
    Code:
    unsigned int durchschnitt=0;
    unsigned int summe=0;
    unsigned int anzahl=30;
    for(unsigned char counter=0;counter<anzahl;counter++)
    {
     summe=summe+k[counter];
    }
    durchschnitt=summe/anzahl;
    Grüße, Bernhard

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    22.04.2011
    Beiträge
    16

    Lächeln

    vielen Dank für deine Hilfe!
    Habe es gerade nach dem Muster in meim Programm eingebaut und es funktioniert!
    Aber eine Frage habe ich noch: Was bedeutet " unsigned char counter"?
    Lg Oliver

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Da wird eine Variable namens "counter" vom Typ "unsigned char" (vorzeichenlos, 1 Byte groß) definiert.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Genau so war es gemeint
    Und ich versuche immer, den kleinst möglichen Datentyp zu verwenden, und auch unsigned falls das sinnvoll ist. Auch mit Fließkommazahlen sollte man sparsam umgehen. Das spart Platz im RAM und ein 8-Bit-Controller kann es geringfügig schneller verarbeiten. Man könnte auch aus der Variable Summe und Durchschnitt eine einzige machen, würde noch etwas RAM sparen.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    22.04.2011
    Beiträge
    16
    das heißt also ich könnte alle variablen, die als zähler fungieren statt als unsigned int mit unsigned char definieren? hat dies einen großen geschwindigkeitsverlust zur folge, wenn man alle mit unsigned int definiert?

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    das heißt also ich könnte alle variablen, die als zähler fungieren statt als unsigned int mit unsigned char definieren?
    Ja schon, musst aber sicher sein das der Wert nicht über 255 steigt.

    hat dies einen großen geschwindigkeitsverlust zur folge, wenn man alle mit unsigned int definiert?
    Ein Geschwindigkeitsverlust eher weniger, sollte für deine Zwecke auch absolut keine Rolle spielen.
    Wenn du eine unsigned Variable deren Wert nie über 255 steigt als int definierst, ist das einfach nur Platzverschwendung.

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests