Здравствуйте, у меня такая проблема.
У меня есть программа, которая считывает с контроллера по COM-порту бйты, которые, в свою очередь, являются ответом на команду, посылаемую с компьютера. Получая этот или иной пакеты, а также отправляя их, в них есть последние 2 байта, которые являются CRC 16 битной.
Не могу своей программой подсчитать CRC пакета байт, пробовал разнами методами, не совпадает с теми байтами, которые отправляются и принимаются в результате обмена информацией между контроллером и компом.
Вот например есть массив байт:
Код
unsigned char m1[10]={0x55,0xAA,0xFF,0,0,0,0,0,0,0};
А CRC16 дожна быть такой: 0xDAF2, либо 0xF2DA.(производитель любит байтыместами менять)
Вот еще например:
Код
unsigned char m2[10]={0x55,0xAA,0xA5,0,0x58,0,0,0,0x22,0};
А CRC16 дожна быть такой: 0x4A09 либо 0x094A/
Помогите пожалуйта, с посчетом CRC, как они из считали не пойму.