ТРИД РА-RS-485-D-0,5% Инструкция по эксплуатации онлайн [17/33] 160800

17
unsigned short int Rc;
void *av;
av=&Rc;
ab=av;
Rc=0xFFFF;
for(i=0; i< dl; i++) {
rabb=mas[i];
ab[0]= ab[0] ^ rabb;
for(j=0; j< 8; j++) {
if (Rc & 0x0001) {
Rc=Rc>>1;
Rc = Rc ^ 0xA001;
} else {
- Rc=Rc>>1;
}
}
}
return(Rc);
}
//----------------------------------------------------- //
unsigned int AnswerModbusSlave(char cCmd[], int Len)
{
unsigned int h,l;
h= RunCRC (cCmd,Len);
l=h&0xff; h=h>>8;
h=h&0xff;
cCmd[Len]=l;
cCmd[Len+1]=h;
return(l+256*h);
}
5.3.3 Фрагмент программы, используемой для расчета контрольной суммы
(табличный способ).
Предложенный способ подсчета контрольной суммы используется для экономии
времени.
#define CrcError 1
#define FunctionNotSupport 2
/* CRC16 Table High byte */
static unsigned char CRC16Hi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

Содержание

Похожие устройства

Скачать