Forum: Mikrocontroller und Digitale Elektronik struct und array


von Gast (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Problem mit struct und array und brauche eure Hilfe.
Folgendes Beispiel möchte ich anwenden:

typdef struct
{unsigned int a;
 unsigned char b[6];
 unsigned char c[6];
}wert;
 wert t1;
 wert t2;
 wert t3;

nun möchte ich z.B. in die array's t1.b t2.b und t3.b ständig nach 
einander Werte schreiben. Wenn die letzte Speicherzelle beschríeben ist, 
soll vorne wieder angefangen werden. Mit den array's will ich also einen 
Ringbuffer machen
z.B.
t1.b[0]=1;
t1.b[1]=2;
t1.b[2]=3;
t1.b[3]=4;
t1.b[4]=5;
t1.b[5]=6;
t2.b[0]=7;
t2.b[1]=8;
t2.b[2]=9;
t2.b[3]=10;
t2.b[4]=11;
t2.b[5]=12;
t3.b[0]=13;
t3.b[1]=14;
t3.b[2]=15;
t3.b[3]=16;
t3.b[4]=17;
t3.b[5]=18;
t1.b[0]=19;
t1.b[1]=20;
t1.b[2]=21;
t1.b[3]=22;
t1.b[4]=23;
t1.b[5]=24;
usw.

nun mein Problem:
Wie kann ich von t1.b[5] nach t2.b[0] oder von t2.b[5] nach t3.b[0] und 
wieder von t3.b[5] nach t1.b[0] wechseln?
Wahrscheinlich für euch kein Problem, aber ich komme da nicht weiter.
viele Grüße

von Sven P. (Gast)


Lesenswert?

Umm...einfach zuweisen?
t1.b[5] = t2.b[0] oder auch umgekehrt?

Von alleine macht das keinen Ringpuffer, du musst schon mitzählen, wann 
das erste Array voll ist, und wann es dann Zeit ist, von vorne 
anzufangen :-)

von Gast (Gast)


Lesenswert?

Hallo Sven,

Danke für deine Antwort. Ja stimmt, auf die Idee bin ich nicht gekommen 
einen Zähler mitlaufen zulassen. Den Zähler kann ich von 0 bis 24 hoch 
zählen und bei 7, 13, 19 und 25 jeweils einen Wert in das entsprechende 
array speichern.
Vielen Dank für den Denkanstoss.
Viele Grüße

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.