Jun. 4th, 2012

hedgeov: (Default)
Набрел на такой вот код для подсчета CRC-16 CCITT без таблиц и циклов. Только сдвиги. (отсюда http://www.embeddedrelated.com/groups/msp430/show/29689.php)


void crc_ccitt_init(void)
{
crc = 0xffff;
}

void crc_ccitt_update(unsigned char x)
{
unsigned crc_new = (unsigned char)(crc >> 8) | (crc << 8);
crc_new ^= x;
crc_new ^= (unsigned char)(crc_new & 0xff) >> 4;
crc_new ^= crc_new << 12;
crc_new ^= (crc_new & 0xff) << 5;
crc = crc_new;
}

unsigned int crc_ccitt_crc(void)
{
return crc;
}

Profile

hedgeov: (Default)
hedgeov

April 2016

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 05:16 am
Powered by Dreamwidth Studios