میتونید از این کد برای محاسبه crc مودباس استفاده کنید
unsigned int crc16_update(unsigned int crc, unsigned char a){
int i;
crc ^= a;
for (i = 0; i < 8; ++i)
{
if (crc & 1)
crc = (crc >> 1) ^ 0xA001;
else
crc = (crc >> 1);
}
return crc;
}
هر بایتی که ارسال میشه باید با این فانکشن توی محاسبه crc لحاظ بشه و در نهایت مقدار نهائی crc ارسال بشه
مثلا اینطوری :
unsigned int crc=0xFFFF;
crc=crc16_update(crc,1);
crc=crc16_update(crc,3);
crc=crc16_update(crc,0);
crc=crc16_update(crc,0);
crc=crc16_update(crc,0);
crc=crc16_update(crc,0x0A);
// send crc LOW byte
// send crc HIGH byte
_______________________________________________________________________ پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من
|