[Gmecm] J1850 CRC

Paul Smith psmith
Mon Jan 8 17:58:03 UTC 2007


Hi Bill,

Here's one implementation of the J1850 CRC routine.

unsigned char crcbitbybit(unsigned char* p, unsigned char len) {

unsigned char crchighbit=0x80;
unsigned char crc=0x7E;
unsigned char polynom=0x1D;
unsigned char order=8;

	// bit by bit algorithm with augmented zero bytes.
	// does not use lookup table, suited for polynom orders between 1...32.

	unsigned char i, j, c, bit;


	for (i=0; i<len; i++) {

		c = (unsigned long)*p++;

		for (j=0x80; j; j>>=1) {

			bit = crc & crchighbit;
			crc<<= 1;
			if (c & j) crc|= 1;
			if (bit) crc^= polynom;
		}
	}

	for (i=0; i<order; i++) {

		bit = crc & crchighbit;
		crc<<= 1;
		if (bit) crc^= polynom;
	}

	crc^= 0xFF;;

	return(crc);
}


> Does anyone have a J1850 CRC routine in C that they'd be willing to
> share with the rest of the class?
>
> Thanks,
>
> BIll
> _______________________________________________
> Gmecm mailing list
> Gmecm at diy-efi.org
> Subscribe: http://lists.diy-efi.org/mailman/listinfo/gmecm
> Main WWW page: http://www.diy-efi.org/gmecm
>


-- 
www.obdpros.com
Professional grade scantools




More information about the Gmecm mailing list