В общем, я разобрался как на С вычислять. Могу ли я С код вставить в MathScriptКоротенко Алексей писал(а):как видишь у меня это просто под , у меня посылка обрабатывается в виде булеановского массиваNemo писал(а):зачем нежен 1DBody? зачем на выходе получать crc в виде булеановского массива ?можешь поставить нумерик контрол, в его свойствах укажи HEX формат, потом соедини контрол через @number to boolean array@ к входу вместо 1dbody, на выходе в нумерик индикаторе укажи показывать в виде HEXNemo писал(а):где входные 8 (16) байтов?
булеан индикатор на выходе и 1dbody можешь убрать
есть вопросы - спрашивай
Код: Выделить всё
unsigned char calc_crc (unsigned char *mas) //функция вычисления crc
{
unsigned char i, data, crc, fb, st_byt;
st_byt = 0;
crc = 0;
do{
data = mas[st_byt];
for (i=0; i<8; i++)// счетчик битов в байте
{
fb = crc ^ data;
fb &= 1; //fb = fb & 1;
crc >>= 1;
data >>= 1; //data = data >> 1;
if (fb == 1)
{
crc ^= 0x8c; //crc = crc ^ 0x8c; // полином
};
};
st_byt++;
} while (st_byt != 8);// счетчик байтов в массиве (!(st_byt == 8))
return crc;
}