Teil eines Registers auslesen

Gast #2772772
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
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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.