Forum: Compiler & IDEs struct mit Bitfeldern in EEProm ablegen


von Jens (Gast)


Lesenswert?

Hi,

ich möchte einen Datensatz in dieser Form:
1
typedef struct
2
{
3
  uint16_t  day   :5,
4
            month :4,
5
            year  :7;
6
  uint8_t   cat   :3,
7
            open  :5;
8
  uint8_t   text[8];
9
}appointment_t;
10
11
12
appointment_t appointments[2]={{13,8,80,2,0,"Name x"},
13
                               {11,4,69,2,0,"Name y"}};
Gleich direkt im EEProm erzeugen, vordefinieren sozusagen. Nun könnte 
ich ja ein EEProm file erstellen, müsste dann aber alle Bytes selber 
ausrechnen...
Gibt es eine Möglichkeit es direkt im SPeicher des EE zu erzeugen? 
Klingt für mich unlogisch, da es ja beim Programmieren ja erstmal im 
Flash SPeicher des uc landen würde, das möchte ich nicht...

Ich schätze mir bleibt dann keine andere Wahl als mir die Bytes für das 
EEProm selber auszurechnen und dann das EEProm vorzuprogrammieren, oder?

JJ

von Karl H. (kbuchegg)


Lesenswert?

Jens schrieb:

> Gleich direkt im EEProm erzeugen, vordefinieren sozusagen. Nun könnte
> ich ja ein EEProm file erstellen, müsste dann aber alle Bytes selber
> ausrechnen...

?
Kann ich mir nicht vorstellen.
Eigentlich sollte der Compiler dir das EEP File aus der Initialisierung 
erzeugen. Und zwar so, dass du es direkt ins EEPROM brennen kannst.

Leg die EEMEM Variable an, initialisier sie und der Compiler macht 
daraus das EEP File. Ich seh jetzt keinen Grund, was Bitfelder daran 
ändern sollten.

von Jens (Gast)


Lesenswert?

Hallo Karl Heinz,

danke für die Info. EEMEM habe ich noch nie gesehen, ich schaue mir das 
mal an.

Viele Grüße,
JJ

von Karl H. (kbuchegg)


Lesenswert?

AVR-GCC-Tutorial

Punkt: 14.3

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.