uint16_t Crc16( uint8_t *s) { unsigned short crc = 0xFFFF; unsigned char i; while(*s) { crc ^= *s++ << 8; for( i = 0; i < 8; i++ ) crc = crc & 0x8000 ? ( crc << 1 ) ^ 0x1021 : crc << 1; } return crc; } |
#ifndef CRC16_H_ #define CRC16_H_ #include <stdint.h> uint16_t Crc16( uint8_t *s); #endif |