EasyManua.ls Logo

hpmont HD5L series - Page 149

hpmont HD5L series
155 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Appendix B Communication Protocol Shenzhen Hpmont Technology Co., Ltd
140 HD5L Series Controller User Manual
9. CRC checking
In order to satisfy speed increase needs, CRC-16 normally adopts form mode. The following is
CRC-16 C language channel code. Please note the final result has exchanged the higher and
lower bytes. That is the right CRC checksum to be sent.
unsigned short CRC16 ( unsigned char *msg, unsigned char length)
/* The function returns the CRC as a unsigned short type */
{
/* high byte of CRC initialized */
unsigned char uchCRCHi = 0xFF ;
/* low byte of CRC initialized */
unsigned char uchCRCLo = 0xFF ;
/* index into CRC look up table */
unsigned uIndex ;
/* pass through message buffer */
While (length--)
{
/* calculate the CRC */
uIndex = uchCRCLo ^ *msg++ ;
uchCRCLo = uchCRCHi ^ (crcvalue[uIndex] >>8);
uchCRCHi =crcvalue[uIndex]&0xff;
}
return (uchCRCHi | uchCRCLo<<8) ;
}
/* Table of CRC values */
const unsigned int crcvalue[ ] = {
0x0000,0xC1C0,0x81C1,0x4001,0x01C3,0xC003,0x8002,0x41C2,0x01C6,0xC006,0x8007,
0x41C7,0x0005,0xC1C5,0x81C4,0x4004,0x01CC,0xC00C,0x800D,0x41CD,0x000F,0xC1CF,
0x81CE,0x400E,0x000A,0xC1CA,0x81CB,0x400B,0x01C9,0xC009,0x8008,0x41C8,0x01D8,
0xC018,0x8019,0x41D9,0x001B,0xC1DB,0x81DA,0x401A,0x001E,0xC1DE,0x81DF,0x401F,
0x01DD,0xC01D,0x801C,0x41DC,0x0014,0xC1D4,0x81D5,0x4015,0x01D7,0xC017,0x8016,
0x41D6,0x01D2,0xC012,0x8013,0x41D3,0x0011,0xC1D1,0x81D0,0x4010,0x01F0,0xC030,
0x8031,0x41F1,0x0033,0xC1F3,0x81F2,0x4032,0x0036,0xC1F6,0x81F7,0x4037,0x01F5,
0xC035,0x8034,0x41F4,0x003C,0xC1FC,0x81FD,0x403D,0x01FF,0xC03F,0x803E,0x41FE,
0x01FA,0xC03A,0x803B,0x41FB,0x0039,0xC1F9,0x81F8,0x4038,0x0028,0xC1E8,0x81E9,
0x4029,0x01EB,0xC02B,0x802A,0x41EA,0x01EE,0xC02E,0x802F,0x41EF,0x002D,0xC1ED,
0x81EC,0x402C,0x01E4,0xC024,0x8025,0x41E5,0x0027,0xC1E7,0x81E6,0x4026,0x0022,
0xC1E2,0x81E3,0x4023,0x01E1,0xC021,0x8020,0x41E0,0x01A0,0xC060,0x8061,0x41A1,
0x0063,0xC1A3,0x81A2,0x4062,0x0066,0xC1A6,0x81A7,0x4067,0x01A5,0xC065,0x8064,
0x41A4,0x006C,0xC1AC,0x81AD,0x406D,0x01AF,0xC06F,0x806E,0x41AE,0x01AA,0xC06A,
0x806B,0x41AB,0x0069,0xC1A9,0x81A8,0x4068,0x0078,0xC1B8,0x81B9,0x4079,0x01BB,

Table of Contents

Related product manuals