30 lines
647 B
Plaintext
30 lines
647 B
Plaintext
|
|
(* @PATH := '\/Functions_Collection' *)
|
|
(* @SYMFILEFLAGS := '0' *)
|
|
FUNCTION _Dword_Swap_ByteArray : ARRAY [0..3] OF BYTE
|
|
VAR_INPUT
|
|
i_Real : REAL ;
|
|
END_VAR
|
|
VAR
|
|
i : INT ;
|
|
j : INT ;
|
|
k : INT ;
|
|
mAuxDWord : DWORD ;
|
|
mAuxByte : BYTE ;
|
|
mOutByte: BYTE;
|
|
END_VAR
|
|
(* @END_DECLARATION := '0' *)
|
|
MEMCPY(ADR(mAuxDWord), ADR(i_Real), 4) ;
|
|
FOR k := 0 TO 3 DO
|
|
mOutByte := 0;
|
|
mAuxByte := DWORD_TO_BYTE (mAuxDWord) ;
|
|
FOR i:=0 TO 7 DO
|
|
IF (SHR (mAuxByte, i) MOD 2) = 1 THEN
|
|
mOutByte := mOutByte + REAL_TO_BYTE(EXPT(2, i)) ;
|
|
END_IF
|
|
END_FOR
|
|
_Dword_Swap_ByteArray[3 - k] := mOutByte ;
|
|
mAuxDword := SHR (mAuxDWord, 8);
|
|
END_FOR
|
|
END_FUNCTION
|