mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik struct und array


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.