mikrocontroller.net

Forum: Compiler & IDEs Trennen einer Variablen


Autor: StartER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Wie kann ich eine 16Bit Variable (z.B.0xFFFF) in zwei 8 Bit Variablen
trennen?? Möchte sie über einen 8 Bit Port ausgeben.

ganz nach dem Motto:
Variable = 0xFFFF;
PORTA = Variable;


Danke für eure Hilfe!

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am effektivsten über eine Strucktur mit 2 chars und 1 int
Am einfachsten mit Port1=Variable&255, Port2=Variable>>8

Autor: StartER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das habe ich leider jetzt nicht ganz verstanden! :-(

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HiByte = (Variable >> 8);
PORTA = HiByte;

LowByte = (unsigned char) Variable;
PORTA = LowByte;

Rick

Autor: StartER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schon klar...einfach mal nachdenken! danke!

Autor: MSE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit union:

union TInt16 {
  unsigned int u;
  unsigned char b[2];
};


Du kannst dann folgendes machen:

TInt16 otto;
otto.u = 0xf01a;
PORTA = otto.b[1];
PORTB = otto.b[0];

Gruß, Michael

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du kannst dann folgendes machen:
> union ...

Das ist allerdings nicht mehr portabel (Little Endian vs. Big Endian),
weswegen die Lösung mit dem Shiften vermutlich doch besser geeignet
ist.

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.