Array einer structure in WinAVR?

Gast #364395
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
Gast #364397
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?
Gast #364398
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?
Gast #364400
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren