en alt satırda yazan fonksiyonu calıstırdıgınızda tablo yardımı ile sizin crc nizi hesaplıyor.
yapılan işlem baslangıcta crch=0xff ve crcl=0xff, sonra sizin crcsini hesaplamak istediginiz baytların sayısı kadar(burada j=hesaplanacak byte sayısı) for döngüsü icerisinde en altta yazdıgınız fonksiyon calıstırılıyor.yapılan işlem bir önce bulunan crc ile xor işlemi.
yani yapacagınız unsigned char index,crch,crcl fonksiyonunu calıstırmak.
bu sizin yaptıgınız metodda crc ler tablo yardımı ile hesaplanıyor.
isterseniz C programlamada
void Petit_CRC16(const unsigned char Data, unsigned int* CRC)
{
unsigned int i;
*CRC = *CRC ^(unsigned int) Data;
for (i = 8; i > 0; i--)
{
if (*CRC & 0x0001)
*CRC = (*CRC >> 1) ^ 0xA001;
else
*CRC >>= 1;
}
}
şeklinde tablo olmaksızında crc hesaplayabilirsiniz.
bu fonksiyonda yapacagınız işlem CRC ye başlangıcta 0xffff atayacaksınız ve işleme tabi tutmak istediginiz byte leri her seferinde bir önce hesaplanmış crc ile işleme tabi tutacaksınız.
Yaptıgınız işlemlerin dogru olup olmadıgını kontrol etmek için internette online crc hesaplama yapan siteler var.