www.mikrocontroller.net

Forum: Compiler & IDEs Zuweisen zwier Strukturelemnte?


Autor: khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

eine C-Frage:
Ich habe folgende zwei Structurren und möchte wie folgt zuweisen.
Ist dass möglich?
minute.zeit_gesamt = dcf77_minute.DCF77_minute
typedef volatile union
{
   struct
   {
      uint8_t zeit_l :4;
      uint8_t zeit_h :4;
   };

   uint8_t zeit_gesamt;

}ZEIT_t;
ZEIT_t minute, stunde;



/* Template für DCF77 (Minuten)  */
typedef volatile  union
{
   uint8_t minute_gesamt;
   struct
   {
       uint8_t DCF77_minute  :7;
       uint8_t parity_min :1;
   };
}DCF77_MIN_t;
DCF77_MIN_t dcf77_minute;

grüße

Autor: Micha (Gast)
Datum:

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

Autor: khan (Gast)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundsätzlich: ja

Autor: khan (Gast)
Datum:

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

Autor: Micha (Gast)
Datum:

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

Autor: khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie meinst du dass ?
was kann denn noch fehlen?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

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

Autor: khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du meinst also

folgendes:
/* Template für DCF77 (Minuten)  */
typedef volatile  union
{
   uint8_t minute_gesamt;
   struct
   {
       uint8_t DCF77_minute  :7;
       uint8_t parity_min :1;
   }xxx;
}DCF77_MIN_t;
DCF77_MIN_t dcf77_minute;


Zuweisung:

zzz = dcf77_minute.xxx.DCF77_minute

ist dass so richtig?

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.