This function of the ⇘ CAA_Memory.library calculates the check sum of a memory area in a generalized manner.
Input:
pMemoryBlock |
DWORD |
Address of memory area |
uiLength |
UINT |
Size of area in bytes |
wCRCInit |
WORD |
Initial value of check sum |
wPoly |
WORD |
Polynomial of CRC algorithm |
xReflectInput |
BOOL |
Reflect input bytes |
xReflectOutput |
BOOL |
Reflect output bytes |
wXORout |
WORD |
XOR Word preceeding output |
Example:
sTest : STRING(10) := '123456789' ;
->
MEM.CRC16_generic(ADR(sTest),9,16#1021, FALSE, FALSE, 16#0000) = 16#29B1
Typical input parameters:
CRC16 standard :
wCRCInit := 16#0000
wPoly := 16#8005
xReflectInput := TRUE
xReflectOutput := TRUE
wXORout := 16#0000
CRC16-CCITT :
wCRCInit := 16#FFFF
wPoly := 16#1021
xReflectInput := FALSE
xReflectOutput := FALSE
wXORout := 16#0000
CRC16-Modbus :
wCRCInit := 16#FFFF
wPoly := 16#8005
xReflectInput := TRUE
xReflectOutput := TRUE
wXORout := 16#0000