mikrocontroller.net

Forum: Compiler & IDEs 16Bit zu 2x8Bit


Autor: -bjoern- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich hab mal eine Frage, und zwar habe ich eine 16Bit Variable. 
Ich möchte diese jetzt in 2x8 Bit aufteilen also Binär
sprich die Binärzahl ist z.B.

Var0="0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0"

jetzt möchte ich aber gerne 2 Variablen haben mit jeweils 8Bit also:

Var1="0 0 0 0 0 1 1 1"

Var2="0 1 1 0 0 1 1 0"

wie kann ich das am geschicktesten anstellen in C??

Gruß
Björn

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@-bjoern-

>Hallo, ich hab mal eine Frage, und zwar habe ich eine 16Bit Variable.
>Ich möchte diese jetzt in 2x8 Bit aufteilen also Binär

Die sind schon aufgeteilt, du musst nur zugreifen.

uint16_t var_16;
uint8_t var_a, var_b;

var_a = var_16 & 0xFF;   // high byte
var_b = var_16 >> 8;     // low byte

MfG
Falk

P.S. Man kanns auch mit ner UNION machen, da bin ich aber nicht ganz 
fit.

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wie kann ich das am geschicktesten anstellen in C??

Var1 = (unsigend char) (Var0>>8);
Var2 = (unsigend char) Var0;

Sowas dürfte sich in jedem C-Bch finden.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
union
{
    unsigned int Wert16;
    unsigned char Wert8[2];
}
In Wert16 steht der Gesamtwert, in Wert8[0] und Wert8[1] die beiden 
Einzelbytes...

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
// AT90USB/macros.h
// S. Salewski 29-JAN-2007

#ifndef MACROS_H
#define MACROS_H

#define MSB(w) ((char*) &w)[1]
#define LSB(w) ((char*) &w)[0]

#endif

Autor: -bjoern- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke...
Sorry hatte auf die schnelle kein C-Buch zur Hand...

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.