]> git.zerfleddert.de Git - proxmark3-svn/blob - common/crc16.c
Fixed some small mistakes in the bit synchronization of Miller and Manchester decodin...
[proxmark3-svn] / common / crc16.c
1 //-----------------------------------------------------------------------------
2 // This code is licensed to you under the terms of the GNU GPL, version 2 or,
3 // at your option, any later version. See the LICENSE.txt file for the text of
4 // the license.
5 //-----------------------------------------------------------------------------
6 // CRC16
7 //-----------------------------------------------------------------------------
8
9 #include "crc16.h"
10
11 unsigned short update_crc16( unsigned short crc, unsigned char c )
12 {
13 unsigned short i, v, tcrc = 0;
14
15 v = (crc ^ c) & 0xff;
16 for (i = 0; i < 8; i++) {
17 tcrc = ( (tcrc ^ v) & 1 ) ? ( tcrc >> 1 ) ^ 0x8408 : tcrc >> 1;
18 v >>= 1;
19 }
20
21 return ((crc >> 8) ^ tcrc)&0xffff;
22 }
Impressum, Datenschutz