mikrocontroller.net

Forum: Compiler & IDEs ein Byte-Informationen trennen


Autor: ZachariasFoxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

brauche folgende Lösung oder Hinweis

gegeben eine Variable, die über einen Eingangsport Information 
erhält(C++):

uint8_t Variable;          //reserviert mir 1 Byte
Variable = PORTB;          //einlesen der Information und in Variable
                           //speichern


z.B. enthält die Variable nun diese Information

11011010

Möchte nun die linken fünf Bits in eine andere Variable vom Typ 
"uint8_t",
die rechten drei auch.

hab es über "struct" versucht, funktionierte aber nicht so richtig

struct
{
    uint8_t Wert1:3;
    uint8_t Wert2:5;
} x;

Wie kriege ich nun die Bits dort rein?
Pease help me

Autor: jay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
maskieren!

split1 = variable & 0xf8
split2 = variable & 0x07

Autor: ZachariasFoxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super danke,

aber die höherwertigen Bits (die linken fünf) sind in der neuen 
Variablen
in der selben Wertigkeit.

11011010

will ich splitten in

11011      und     010
(27 d)             (2 d)

und nicht

11011000
(216 d)

kann ich die Bits vielleicht noch verschieben?

Autor: jay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar

split1 = (split1 >> 5);

mit << oder >> schiebste nach links oder rechts, dazu die zahl wieweit

Autor: jopelabln (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
split1 = (variable & 0xf8)>>3;

Autor: ZachariasFoxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
funktioniert!!!!

:-)

man, ich will dir nicht zeigen, was ich hier schon alles an Funktionen 
verbogen habe.

Danke dir..

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.