32Bit Datentyp auf 2x16Bit abbilden

Itus

Level-2
Beiträge
97
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen

Ich hab das folgendes Problem:
Mein Servoregler hat im Parameterkanal 4x16Bit zum Beschreiben.
Ich hab nun Variablen von 16Bit und auch von 32 Bit welche abgefüllt werden müssen.
16Bit auf 16Bit ist kein Problem.
Wie aber bilde ich einen 32Bit Wert auf 2 16Bit Register ab?

Danke für die Unterstützung
Itus
 
du hast verschiedene möglichkeiten:

1. wenn es sich um einen dint oder dword handelt
16bit_var1 := dword_to_word(32bit_var);
16bit_var2 := dword_to_word(shr(32bit_var,16));

2. bei real kannst du das nicht anwenden, dort musst du mit pointer
zugreifen, was auch bei allen anderen datentypen funktionieren würde
32bit_var_adr := adr(32bit_var); (* 32bit_var_adr ist vom typ dword *)
16bit_var1 := 32bit_var_adr^; (* liest dcie unteren 16 bit aus *)
32bit_var_adr := 32bit_var_adr + 2;
16bit_var2 := 32bit_var_adr^;

weitere beispiele findest du in der open source library uoscat.lib unter www.oscat.de
 
Zurück
Oben