Здравствуйте!
Начал работу со считывателем PR-01(по работе один один с DS1990A). Есть карточка. Считываю данные, номер совпадает с номером на карточке. Считаю CRC - не совпадает.
Вот функция:
Код
unsigned char Crc8(unsigned char *pcBlock, unsigned char len)
{ unsigned char crc=0xFF;
unsigned char i;
while (len--)
{crc^=*pcBlock++;
for(i=0;i<8;i++)
crc=crc&0x80?(crc<<1)^0x31:crc<<1;
}
return crc;
}
Вот что я считал с карточки:
[code] mas[0]=0x01;
mas[1]=0xdf;
mas[2]=0xd8;
mas[3]=0x58;
mas[4]=0x00;
mas[5]=0x00;
mas[6]=0x00;
mas[7]=0x79;//CRC
Использую функцию так:
Код
CRC8=Crc8(mas[0],7);
В результате CRC8=0х95
Что я делаю не так, подтолкните