реклама на сайте
подробности

 
 
> CRC идея!, Помогите с реализацией
Who_are_you?
сообщение Apr 20 2010, 06:03
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 185
Регистрация: 5-02-10
Из: Донецк
Пользователь №: 55 329



Подскажите, где почитать о применении CRC для передачи данных.
При поиске по Интернету много информации. Но реализация?

Вот подпрограмма, взятая с инета:
Код
unsigned char crc_ib(unsigned char __crc,unsigned char data)
{
unsigned char temp;
temp=__crc^data;
__crc=0;
if (temp&(1<<7)){__crc^=0x8C;}
if (temp&(1<<6)){__crc^=0x46;}
if (temp&(1<<5)){__crc^=0x23;}
if (temp&(1<<4)){__crc^=0x9D;}
if (temp&(1<<3)){__crc^=0xC2;}
if (temp&(1<<2)){__crc^=0x61;}
if (temp&(1<<1)){__crc^=0xBC;}
if (temp&(1<<0)){__crc^=0x5E;}
return __crc;
}


Ну и что? Например, есть файл байтов, есть эта подпрограмма.
И какие действия нужно делать со стороны передачи и со стороны приема?

Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение Apr 20 2010, 06:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Например, есть файл байтов, есть эта подпрограмма.
И какие действия нужно делать со стороны передачи и со стороны приема?
Сильный вопрос wacko.gif
Если это вызывает вопросы, то надо 'взять с инета' программу целиком smile.gif

По существу. Нужно запустить эту процедуру на каждый байт данных. В начале параметр __crc чем нибудь инициализируется, далее он переписывается из результата функции. Посчитанный crc передать на приемный конец. Там все повторить и сравнить crc
Код
unsigned char* data=...
size_t data_length = ...
unsigned char crc=0;
while(data_len--) crc=crc_ib(crc,*data++);
// В crc результат
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 18:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01351 секунд с 7
ELECTRONIX ©2004-2016