Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

На счёи порядка следования бит и правильного полинома - кажись все варианты перебрал. При чём, для 1-го и 3-го (нет на картинке) примера - не считается ни в какую. А для второго случая. вроде, сходится. Текст >>

Отправлено Юрий_СВ (213.5.199.158) 02 октября 2011, г. 17:27
В ответ на: Научите считать CRC-16 под USB ! Как ни считаю не сходится. Или в примере обмена (на картинке) он написан от балды.. ? отправлено Юрий_СВ 02 октября 2011, г. 15:21

//---------------------------------------------------------------------------
unsigned char data[]={0x80, 0x06, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00};
//unsigned char data[]={0x08, 0x60, 0x00, 0x10, 0x00, 0x00, 0x04, 0x00}; // обратный порядок тетрад
//unsigned char data[]={0x01, 0x60, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00}; // обратный порядок бит
//---------------------------------------------------------------------------
unsigned char data_len=8;
//---------------------------------------------------------------------------
unsigned short int crc16_update(unsigned short int crc, unsigned char a)
{
unsigned short int i;

crc ^= a;
for (i = 0; i < 8; ++i)
{
if (crc & 1) crc = (crc >> 1) ^ 0xA001; // 0x8005
else crc = (crc >> 1);
}

return crc;
}
//---------------------------------------------------------------------------
unsigned short int CRC16(unsigned char * data, unsigned char len)
{
unsigned short int crc;
unsigned char i;

crc=0xffff;
for(i=0; i<len; i++) crc=crc16_update(crc, data[i]);
return crc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text=CRC16(data, data_len);
}
//---------------------------------------------------------------------------


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 69:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru