Teil eines Registers auslesen

Gast #2772772
Lesenswert?

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 !!
Gast #2772817
Lesenswert?

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
Gast #2772897
Lesenswert?

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 !!!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren