|
//--------------------------------
// Подсчет контрольной суммы
unsigned char CalcCRC ()
{
unsigned char i, j, D, CRC;
CRC = 0;
for ( i = 0; i < 8; i++ )
{
CLRWDT ();
D = MicroLANData [ i ];
for ( j = 0; j < 8; j++ )
{
if ( ( CRC ^ D ) & 1 )
{
CRC = ( ( CRC ^ 0x18 ) >> 1 ) | 0x80;
}
else
{
CRC >>= 1;
}
D >>= 1;
}
}
return ( CRC );
} // CalcCRC
E-mail: info@telesys.ru