Unity Pro - 16bit Integer zerlegen

holgermaik

Level-3
Beiträge
1.357
Reaktionspunkte
332
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich komme nicht weiter mit der Uhrzeit bei Unity auf einer Quantum.
Die Systemzeit steht im Systemwort z.B. %SW51 im Format 16#HHMM. (16 bit Integer im BCD Format)
Ich bekomme das Low- und Heighbyte einfach nicht getrennt un damit weiterarbeiten zu können. :confused:
Eventuell hat jemand eine Idee.
Grüsse Holger
 
Einfach Ausmaskieren mit einem AND geht nicht? Ich kenn jetzt die Unity nicht, aber ich würds so machen. Und beim zweiten Byte musst du alle nach rechts um 8 Bit shiften.
 
Hallo
Danke für eure Antworten. Das mit dem Maskieren war auch mein erster Gedanke. Geht aber nicht.
Um es mal zu verdeutlichen. Es ist 10:05 Uhr. Jeder würde annehmen, das der Inhalt der Zelle jetzt 16#0A05 ist. Das wäre zu einfach. der Inhat ist 16#1005.
Habe es jetz über Multiplikation und Division gemacht, ist nicht schön geht aber.
Grüsse Holger.
 
Stimmt, das ist die beste Lösung für dieses einfache Problem. Die vollständige Lösung incl. BCD-Decodierung kann wie folgt aussehn:
Code:
WORD_AS_BYTE(IN:= INT_TO(%SW51), LOW => LowByte, HIGH => HighByte);
Stunden := BCD_TO_INT(BYTE_TO(HighByte));
Minuten := BCD_TO_INT(BYTE_TO(LowByte));
Gruss
 
Zuletzt bearbeitet:
Zurück
Oben