- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 3 von 3

Thema: Übergabe von float variable und structure type by reference

  1. #1
    HaWe
    Gast

    Übergabe von float variable und structure type by reference

    Anzeige

    E-Bike
    hallo,
    ich komme nicht weiter:

    ich habe eine Structure (hoffentlich richtig initialisiert):
    Code:
    typedef struct {
       float    val[3] = {-99.9, -99.9, -99.9};
       uint32_t tst[3] = {0, 0, 0};
    } vlog;
    und mehrere dieser Stuctures als globale Variablen:
    Code:
    // editiert:
    vlog t1, h1,   
         t2, h2,
         t3, h3,
         t4, h4,
         p1, q1;
    Nun möchte ich von meiner loop() aus einen Sensorwert ftmp nach dem anderen einlesen und ihn dann an eine Funktion übergeben, die die arrays in der zugehörigen structure aktualisiert
    - aber wie macht man das richtig mit Pointern und Adressen und Referenzieren und Dereferenzieren...?

    Code:
    void logval( float f, vlog v) { // <<< sooo gehts nicht! :-/
        v.val[1]=f;
        v.tst[1]=millis();
        // usw usf...
    }
    
    void loop() {
       //...
       float ftmp = (float)analogRead(A0);
       logval(ftmp, t1);   // <<< sooo gehts auch nicht! :-/
    
       float ftmp = (float)analogRead(A1);
       logval(ftmp, &h1);   // <<< sooo gehts auch nicht! :-/
       //...
    }
    Ich kriegs einfach nicht hin....

    - - - Aktualisiert - - -


    EDIT:
    ich fürchte, da war ein c+p error drin.

    Ich probiere jetzt die Funktion
    Code:
    void logval( float f, vlog &v) {
      ///
    }
    und den Aufruf
    Code:
    logval(ftmp, t1);
    - - - Aktualisiert - - -

    EDIT2:

    Jawoll, so geht's!
    Geändert von HaWe (02.12.2017 um 20:54 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    logval((float)analogRead(A0), &t1);
    ist gleichbedeutend mit
    logval((float)analogRead(A0), t1[0]);

  3. #3
    HaWe
    Gast
    Zitat Zitat von Sisor Beitrag anzeigen
    logval((float)analogRead(A0), &t1);
    ist gleichbedeutend mit
    logval((float)analogRead(A0), t1[0]);
    danke, ich glaube ich werde das nie auf Anhieb richtig machen.
    Immerhin geht es jetzt so wie ich zufällig drauf gekommen bin und im EDIT2 grade eben beschrieben habe !

Ähnliche Themen

  1. Übergabe von Werten an eine SUB per Byval
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 23.11.2008, 12:52
  2. Übergabe von Buchstaben an Unterfunktionen
    Von corone im Forum C - Programmierung (GCC u.a.)
    Antworten: 12
    Letzter Beitrag: 10.03.2007, 15:52
  3. RB40GM 03 Type
    Von Nr. 5 im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 16.02.2007, 14:52
  4. float Variable mit printf ausgeben(UART)
    Von Kera im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 02.02.2006, 12:45
  5. Übergabe von Long und Single Variablen klappt nicht
    Von Onkelono im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 14.02.2005, 14:00

Berechtigungen

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

Labornetzteil AliExpress