Hallo , ich hoffe ich werde hier fündig...ich möchte einen Teil eines Registers auslesen und zwar in C1RX0B1 (16 bits lang) sind von bit 0-7 der Status einer "Position" hinterlegt und von bit 8-15 der Status der "Temperature" aber ich brauche nur die "Position" ...wie kann ich nur diese ersten 8 bits in einer variable speichern ? Ich bedanke mich für Eure Rückmeldung !!
Schön wären noch ein paar Infos, mit welcher Hard- und Software du arbeitest und als was du deinen Wert speichern willst. Als Byte oder wieder als 16bit-UINT...
Ohh Danke Danke @Lukas ...ds-PIC30F4013 mikrocontroller -- MPLAB IDE (ICD3)---Programmiersprache C. Die Variable ,wo der Wert gespeichert werden soll ist vom Typ unsigned int. @Peter C1RX0B1 & 127 --- warum diese Schreibweise? ja gut 255/2 =127,5 .Sorry der Nachfrage ich will es genauer verstehen @Martin --so wird sowohl Position als auch Temp in X gespeichert ..das ich ich ja gar nicht ich brauche nur den Wert der Position. Nochmal Danke an alle
Pos = Register & 0xff Was Peter schrieb ist falsch, da fehlt dann das achte Bit, denn 0...7 = 8! Ingo
Ingo schrieb: > Pos = Register & 0xff > Was Peter schrieb ist falsch, da fehlt dann das achte Bit, denn 0...7 = > 8! > Ingo ingo hat recht, hatte gedacht es waren 7bits gemeint.
ok vielen Dank Ingo..ist mir jetzt klar geworden kann erst am Montag beim Testen überprüfen. Ich hätte noch eine Frage meine 4 Receive Registers sehen so aus (jeder ist 16 bits lang also 2 Bytes) C1RX0B1:[Byte1 enthält "current_Position"][Byte0 enthält "Last commanded command"] C1RX0B2:[Byte3 enthält "Temperature"][Byte2 enthält "current_Position"] C1RX0B3:[Byte5 enthält "Voltage"][Byte4 enthält "Status Code"] C1RX0B4:[Byte7 enthält "Motor Effort"][Byte6 "not defined"] Die Position ist ein Wert zwischen 0-1000 je nach welcher Spannung (0-5v) am µC anliegt. Wie man sieht ist die Position in 2 Buffer (B1 von bit 8-15 und B2 von bit 0-7) hinterlegt. Zum Speichern diese Position wollte ich so vorgehen: a= C1RX0B1&0xFF00 (Danke Ingo !!!) b= C1RX0B2&0x00FF (Danke Ingo !!!) pos= a+b ????? Würde das Endergebnis der Position so stimmen ??? wie würdet Ihr da vorgehen ? wie gesagt ich kann erst wieder am Montag Testen denn beim Testen sieht man schon ob den Wert diesen Endergebnis so stimmen kann oder nicht.... aber was sagt Ihr jetzt erstmal zu dieser Überlegung bzw Zuweisungen ? Danke !!!
euuuh ich wollte a,b und pos als Tpy unsigned int deklarieren...passt das immer noch ?? oder welcher Datentyp sollte a,b haben ??? Danke !!
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.