www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bits eines bytes umdrehen


Autor: gamecounter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hilfeee!

Ich such eine ganz einfache Funktion, oder mathematische Operation, mit 
denen ich die einzelnen Bits eines Bytes umdrehen kann. (für meinen 
mega8 in C)

Bsp:

Aus  0b11100100
Wird 0b00100111

Ich steh einfach auf der leitung.

Wahrscheinlich is die lösung so einfach, dass ich sie deshalb nicht bei 
google find.

danke für eure hilfe

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das hatten wir erst vor kurzem:

goto Suchfunktion vom Forum
set  input = umdrehen


einen einfachen Befehl gibt es nicht, Peter Danegger hat glaub ich eine 
Lösung für c die ~20 Takte braucht.

Gruß
Roland

Autor: Anton Streg. (analysis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Inline Assembler- Bits spiegeln"
bzw. Boardsuche

Wenn die Frage gestattet ist: Warum müssen bei dir die Bits vertauscht 
werden?

Autor: zero_gravity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du willst also die bits an einer seite des bytes "spiegeln", oder?

hab zwar von c nich so die ahnung, aber nimm einfach den 
inline-assembler und roll das eine byte rechts raus ins carry-flag und 
von da linkswärtig wieder in ein anderes byte... das ganze acht mal und 
schon is dein byte gespiegelt ^^

gibt aber - besonders in c - bestimmt ne elegantere methode :P

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
einfach XOR mit 0xFF

byte ^= 0xFF ;

Gruss
Thomas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups,
war wohl nix...
Das invertiert die Bits, war aber nicht gewünscht. Mein Fehler, sorry.

Autor: gamecounter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die flotten antworten!!

ich muss mich entschuldigen das ich die suche nicht richtig benutzt hab, 
denn benutzt hab ich sie, nur mal wieder viel zu kompliziert gedacht, 
anstatt nach einfachen wörtern zu suchen.

@Anton Streg:

kennst du solche tage wo einfach alles schief läuft??
ich hab heut so nen tag. nen lm75 an meinen µC angeschlossen, nur er 
will einfach nicht. kommunikation per i2c haut hin, nur das er irgendwie 
falsche werte ausspuckt. jetzt hab ich mir gedacht, das vielleicht, aus 
welchem grund auch immer die bits vielleicht in verkehrter reihenfolge 
empfangen werden.

(Dem war nicht so)

inzwischen glaube ich ich hab den LM75 beim löten verbraten. gibts das?
das er zwar kommuniziert nur falsche werte ausspuckt

werte die er ausspuckt:

1st Byte: 00011101   Dec = 29
2nd Byte: 01110111   Dec = 119

bei raumtemperatur

danke für die hilfe, auch wenns mich jetzt nicht wirklich weitergebracht 
hat.

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.