Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
void CRC (unsigned char* msg, unsigned char* out) { //char CRC16[2] = {0xFF,0xFF}; unsigned int CRC16 = 0xffff; unsigned int poly = 0xA001; unsigned char data[14]; unsigned char crc [2]; for (int i=0; i<14; i++) { CRC16 = (unsigned int)msg[i] ^ CRC16; //alteração data para msg for (int j=0; j<8; j++) { // AQUI: primeiro verifica, depois executa o shift if(CRC16 & 0x0001 == 1) { CRC16 >>= 1; CRC16 ^= poly; } else { CRC16 >>= 1; } } } crc[0] = CRC16 >> 8; crc[1] = CRC16 & 0b0000000011111111 ; strcpy (data,msg); strcat (data,crc); strcpy (out,data); }
Compartilhar