einzelne bits lesen / setzen

Gast #1108664
Lesenswert?
• ▲
▼
Hallie hallo allerseits!

bin gerade dabei mein fertiges Prograemmchen zu optimieren und hab da 
ein Problem gefunden, dem ich nicht Herr werde.
hoffe, hier kann mir vielleicht jemand weiter helfen:

und zwar sollen im Programm verschiedene Bausteine und Funktionen ueber 
UART (Hyperterminal/Labview) ein und aus geschaltet werden.
das habe ich bis Dato mit einem ganzen Byte gemacht, in das ich eine 1 
oder 0 geschrieben hab und im Programm dieses Byte auch auf 1 oder !1 
abgefragt hab. Funktioniert, aber da werden bisl Ressourcen verballert, 
denk ich.

nun wuerd ich gerne ein Byte nehmen und die bits darin Umschalten und 
Auslesen, aber so, dass die anderen bits, die dann fuer andere 
Funktionen stehen, unangetastet bleiben und selber auch gesetzt und 
ausgelesen werden koennen.
allgemein, will ich alle Funktionen die zwischen on/off abfragen mit 
einem Byte erschlagen.

mein Problem ist nun, dass ich nicht wirklich weiss, wie ich ein Bit 
abfragen kann ohne grosse Rechenoperation und ohne die Bits zu schieben.
Bits von null auf 1 unabhaengig von den anderen zu switchen funktioniert 
mit
Byte^=0x0001, Byte^=0x0002, Byte^=0x0003 usw, denk ich, ganz gut?

wuerde mich freuen, wenn jemand einen Ansatz parrat haette

Mein System:
DSPIC33
MPLAB C30 Compiler

Gruesse
Gustav-G
Gast #1109048
Lesenswert?
• ▲
▼
Danke fuer die Info

hab die Bits manipuluiert!


Setzen wie gehabt: "switch^=0x0008;"
Lesen: "if ((switch & 0x0008) == 8 bzw 0)"

nuja...doch einen ganzen KB hats in der HEX Datei erspart aber die 
Übersicht ist floeten gegangen.

aber Dankeschoen fuer die Infos!

Gruesse

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.