Sshqgl[ $ 5hprwh $fwlydwlrq – Grass Valley XSwitch Feb 01 2005 User Manual
Page 35

34 ©2001 XSWITCH Installation and Operations Manual
$SSHQGL[ $ 5HPRWH $FWLYDWLRQ
EXAMPLE 'C' PROGRAM
//==================================================================
// UpdateCRC16()
//==================================================================
//
Calculated: X^16 + X^12 + X^5 + 1
//------------------------------------------------------------------
UINT UpdateCRC16( BYTE b, UINT crc )
{
unsigned int i;
// Calculate CRC
for( i = 0; i < 8; i++ )
{
if ( ( crc ^ b ) & 1 ) crc >>= 1, crc ^= 0x8408;
else crc>>=1;
b >>= 1;
}
return crc;
} // end UpdateCRC16()
//==================================================================
// CalcCRC16()
//==================================================================
UINT CalcCRC16( LPBYTE buf, DWORD size )
{
UINT crc = 0;
// Calc CRC16 on buffer
for ( DWORD i = 0; i < size; i++ )
crc = UpdateCRC16( buf[ i ], crc );
} // end CalcCRC16()