Byte aus einem Wort auslesen

phil122

Level-1
Beiträge
26
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich hab ein Wort und möchste gern das Low und High Byte aus lesen.

gibt es dazu eine schnell schreibweiße wie bei dem einzeln bits mit variabel.0(bit)

Danke im Voraus
 
Gelöscht, weil ich nicht lesen konnte...

So, Tapatalk muss ich noch lernen. Hab die Rubrik übersehen

Thomas

Wähle einen Beruf, den du liebst,und du brauchst keinen Tag in deinem Leben mehr zu arbeiten. Konfuzius
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
In TwinCAT (little Endian):

Low Byte
Code:
LowByte := WORD_TO_BYTE(Wort);

High Byte
Code:
HighByte := WORD_TO_BYTE(SHR(Wort,8));

WORD_TO_BYTE sollte immer die 8 niederwertigsten Bits in das Byte kopieren. Der Rest wird einfach abgeschnitten.
Um an die 8 höherwertigen Bits zu kommen, muss man also erstmal vorher alle Bits um 8 Stellen nach rechts schieben (Shift Right).

Hoffe ich habe keinen Mist verzapft, war zu faul zum testen ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
irgendwie stand ich gestern auf schlauch ....


natürlich die einfachste form ist es einfach die einzelne Bytes auszugeben:

meinword AT %MW50

highbyte AT %MB51

lowbyte AT %MB50

Aber danke noch für eure Antworten !
 
wenn ich das noch richtig im Kopf habe funktioniert das bei Codesys aber nicht, MW hat die halben Adressen von MB.

also so:

Code:
meinword AT %MW[COLOR=#ff0000]25[/COLOR]

highbyte AT %MB51

lowbyte AT %MB50

oder so:
Code:
meinword AT %MW50

highbyte AT %MB[COLOR=#ff0000]101[/COLOR]

lowbyte AT %MB[COLOR=#ff0000]100[/COLOR]

Ich würde aber die Rechenvariante bevorzugen, absolute Adressen im ganzen Programm verteilt findet später keiner mehr
 
Zurück
Oben