Байтов действительно разное число. А в чем проблема-то.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено war4one 24 января 2006 г. 15:10
В ответ на: Подсчет CRC у DS1820, проблемы. отправлено <font color=gray>eXeC001er</font> 24 января 2006 г. 15:00

Температура у термометра - это, к примеру

struct __ds1820_scratch_pad_struct
{
unsigned char temp_lsb,
temp_msb,
user_high,
user_low,
res1,
res2,
cnt_rem,
cnt_c,
crc;
} __ds1820_scratch_pad;

А CRC считается как

unsigned char CRC8(unsigned char *ptr, unsigned char count)
{
unsigned char crc=0;
unsigned char i, c, tmp;

while (count-- != 0)
{
c = *ptr++;
i = 8;
do
{
tmp=c;
tmp ^= crc;
crc >> = 1;
c >> = 1;
if(tmp & 1)
{
crc ^= 0x8C;
}
}
while(--i);
}
return crc;
}

Подставляете разный count и считайте на здоровье

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

Ответы



Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru