вариант для crc16
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено pvi 27 февраля 2003 г. 13:02
В ответ на: Бросте исходник или укажите где про CRC в С почитать чтоб находу это делать. отправлено Pioner 26 февраля 2003 г. 18:59

это вариант подсчета CRC16 полностью рабочая
//--------------------------------------------

unsigned int calc_csum(void )
{
extern const char Data[88];
unsigned int coef_in;
unsigned int csum=0;
unsigned int csum_temp;
char i;
for ( i=0; i<88; i++) /* loop for each remaining coefficient, */
{
if (i < 64)
{
coef_in=Data[i]<<8;
coef_in+=Data[i=i+1];
else
{
coef_in = Data[i]<<8;
}
csum_temp = ((csum<<1) ^ coef_in) & 0xffff;
if (csum >= 0x8000) csum = csum_temp ^ 0x0483; /* polynomial value is set to (1<<10) + (1<<7)+2 +1 */
else csum = csum_temp;
}
return (csum);
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru