www.mikrocontroller.net

Forum: Compiler & IDEs Array einer structure in WinAVR?


Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe in WinAVR folgende structure

struct CAN_Message
{
  char Name[8];
  uint16_t SID;
  uint16_t EID;
  uint8_t Data[8];
};

deklariert. Nun möchte ich aus dieser structure ein Array anlegen:

struct CAN_Message Message[5];

Auf den ersten Blick scheint das im Simulator (AStudio) auch zu
funktionieren. Bei genauerem hinsehen musste ich allerdings
feststellen, dass jedes Array-Element die selbe Adresse besitzt (also
Message[0].SID liegt auf der gleichen Speicherzelle wie
Message[1].SID).

Woran liegt das? Wie mache ich es richtig?

Grüsse,
Steffen

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf den ersten Blick kann ich keinen Fehler entdecken. Wie hast du dir
die Adresse anzeigen lassen?

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich rufe den Code in AStudio 4.11 auf und simuliere ihn. Die Adressen
lese ich im "Watch"-Fenster ab...

Ich kann also davon ausgehen, dass mein Fehler hausgemacht ist? Also
WinAVR kann Arrays einer struct anlegen?

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, Du hast mich mit Deiner Frage stutzig gemacht. Ich hab also nochmal
im Memory-Fenster nachgesehen und tatsächlich - dort werden
unterschiedliche Adressen verwendet!

Der Code funktioniert also doch! Er wird nur nicht so im Watch-Fenster
angezeigt, wie ich's erwarten würde. Bug? Oder hat das einen
bestimmten Grund?

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich rufe den Code in AStudio 4.11 auf und simuliere ihn
Wieso verwendest du nicht die aktuellste AVR Studio Version 4.12 SP2
build 472 ??

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil ich hinter einer Modem-Verbindung sitze und 4.11 bisher problemlos
funktionierte ;-) Aber ich entnehme Deiner Antwort, dass mit etwas
Glück mein Problem in der neuen Version gelöst wurde.

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.