HaWe
02.12.2017, 21:06
hallo,
ich komme nicht weiter:
ich habe eine Structure (hoffentlich richtig initialisiert):
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:
// 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...?
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
void logval( float f, vlog &v) {
///
}
und den Aufruf
logval(ftmp, t1);
- - - Aktualisiert - - -
EDIT2:
Jawoll, so geht's! :D 8)
ich komme nicht weiter:
ich habe eine Structure (hoffentlich richtig initialisiert):
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:
// 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...?
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
void logval( float f, vlog &v) {
///
}
und den Aufruf
logval(ftmp, t1);
- - - Aktualisiert - - -
EDIT2:
Jawoll, so geht's! :D 8)