Gast
#3033007
Hallo,
ich stehe gerade voll auf dem Schlauch, weil ich die Messergebnisse
einer 10-Kanal-AD-Wandlung als Funktionsparameter zurückgeben will und
das klappt einfach nicht.
Übersetzt wird der Code so wie unten angegeben ohne Fehlermeldung oder
Warnung, aber die von der Funktion zurückgelieferten Messwerte stimmen
nicht (sieht nach Zufallszahlen aus).
Wenn ich die Messwerte IN der Funktion anzeigen lasse und keine
Funktionsparameter für die Rückgabe verwende, sind die Werte in Ordnung.
Hat jemand eine Idee ?
So sieht der Code aus (schematisch)
char get_data_10_channel(ULONG *l_flags_val_channel, unsigned int
*l_ADC12data_10_channel[10]); // Funktion zur Messwerterfassung :
{ ..
for (ni=0; ni<8; ni++) // AD-Wandlungen
{
...
*l_ADC12data_10_channel[ni] = ADC12MEM0; // ADC-Kanal ni
speichern
*l_flags_val_channel |= (1<ni); // Flags für Messwert
}
}
int main(void) // Hauptprogramm
{
ULONG lflags_valADC12_channel; // Flags erfasste
ADC-Messwerte
unsigned int *lADC12data_10_channel[10]; // ADC-Messwerte der Kanäle
...
// Messdaten über 8 Kanäle des 4051 lesen :
rcode = get_data_10_channel_4051(&lflags_valADC12_channel,
lADC12data_10_channel); // Modul "mod_messungen01.c"
...
}