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
Versuchs mal mit Maskierung. Also if(Byte & 0x01) oder if(Byte & 0x02) bzw. Gruß Tobias
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.