Forum: Mikrocontroller und Digitale Elektronik Struct-Zugriff


von Structurschwach (Gast)


Lesenswert?

for(uint16_t l=0; l<SAMPLES; l++)
{
  Array_1[l]                 = Messergebnisse.Buffer[l];
  uint16_t Ort               = Bitreversal_Field[l];
  Messergebnisse.Buffer[Ort] = Array_1[l];
}

Hallo,

ich habe ein Problem mit der obigen Funktion:

Die Messergebnisse liegen in dem Buffer in geordneter Reihenfogle.

Nun möchte ich diese zwischenspeichern im Array_1

Dann lese ich aus dem Bitreversal_Field eine neue Speicherposition aus.

Dann versuche ich die Messergebnisse aus der Kopie in das Original zu 
überschreiben, wobei nun eine neue Reihenfolge eingenommen werden soll.

Ergebnis:
Funktioniert nicht.

Offensichtlich arbeitet die obige Funktion mit Call-By-Value.

Frage:
Wie greife ich auf das struct Messergebnisse.Buffer mit einem write 
Access zu? Derzeit scheine ich nur mit einer Kopie zu arbeiten...

schonmal Danke im Voraus

von Peter II (Gast)


Lesenswert?

ich denke mehr du überschreibst dir dein array zu früh.

Du musst erst alles in dein hilfsarray kopieren und dann neu ins alte 
Array zurückkopieren. Du brauchst also 2 Schleifen.

von Structurschwach (Gast)


Lesenswert?

aaaah.

natürlich.

Das ist auf jeden Fall ein Fehler.


Ist der Zugriff denn ansonsten richtig, oder müsste ich auf das struct 
noch wieder irgendwie anders zugreifen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.