Forum: Compiler & IDEs Zuweisen zwier Strukturelemnte?


von khan (Gast)


Lesenswert?

Hallo Zusammen,

eine C-Frage:
Ich habe folgende zwei Structurren und möchte wie folgt zuweisen.
Ist dass möglich?
1
minute.zeit_gesamt = dcf77_minute.DCF77_minute
1
typedef volatile union
2
{
3
   struct
4
   {
5
      uint8_t zeit_l :4;
6
      uint8_t zeit_h :4;
7
   };
8
9
   uint8_t zeit_gesamt;
10
11
}ZEIT_t;
12
ZEIT_t minute, stunde;
13
14
15
16
/* Template für DCF77 (Minuten)  */
17
typedef volatile  union
18
{
19
   uint8_t minute_gesamt;
20
   struct
21
   {
22
       uint8_t DCF77_minute  :7;
23
       uint8_t parity_min :1;
24
   };
25
}DCF77_MIN_t;
26
DCF77_MIN_t dcf77_minute;

grüße

von Micha (Gast)


Lesenswert?

Den Code hast du ja schon geschrieben - wieso probierst du es nicht 
einfach aus?

von khan (Gast)


Lesenswert?

Habe leider mein equipment nicht hier.....

Ich hatte gestern eine Abwandlung von diesem Code gescrieben und es 
hatte nicht getan.
Wollte wissen ob es grundsetzlich so funktioniert.

von Karl H. (kbuchegg)


Lesenswert?

grundsätzlich: ja

von khan (Gast)


Lesenswert?

Hmmm,
dann nichts wie nachhause und Testen ;-)

Irgendwie lieferte mir diese Zuweisung(ohne volatile) eine null.

Ist volatile unbedingt notwendig?
Übergebe ja den aktuellen Stand.

von Micha (Gast)


Lesenswert?

> Ist volatile unbedingt notwendig?
Das hängt davon ab wo du darauf zugreifst - das ist aus dem geposteten 
Code nicht ersichtlich.

> dann nichts wie nachhause und Testen ;-)
Wirf bei dieser Gelegenheit noch einmal einen Blick auf deine 
Strukturen. Möglicherweise fehlt da noch etwas damit es funktionieren 
kann... ;)

von khan (Gast)


Lesenswert?

wie meinst du dass ?
was kann denn noch fehlen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Der Name der struct im Typedef und in der Zuweisung.

Mit dcf77_minute.DCF77_minute kommst du noch nicht an das Element 
DCF77_minute in der struct ??? in der union dcf77_minute

Die Zuweisung muss rechts diese Form haben:
dcf77_minute.???.DCF77_minute

von khan (Gast)


Lesenswert?

du meinst also

folgendes:
1
/* Template für DCF77 (Minuten)  */
2
typedef volatile  union
3
{
4
   uint8_t minute_gesamt;
5
   struct
6
   {
7
       uint8_t DCF77_minute  :7;
8
       uint8_t parity_min :1;
9
   }xxx;
10
}DCF77_MIN_t;
11
DCF77_MIN_t dcf77_minute;


Zuweisung:

zzz = dcf77_minute.xxx.DCF77_minute

ist dass so richtig?

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.