diff options
Diffstat (limited to 'packages/i2c-tools/picodlp-control/Crc8.c')
-rw-r--r-- | packages/i2c-tools/picodlp-control/Crc8.c | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/packages/i2c-tools/picodlp-control/Crc8.c b/packages/i2c-tools/picodlp-control/Crc8.c deleted file mode 100644 index 87dcf5c2f4..0000000000 --- a/packages/i2c-tools/picodlp-control/Crc8.c +++ /dev/null @@ -1,149 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2006 Dave Hylands <dhylands@gmail.com> -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -* -* Alternatively, this software may be distributed under the terms of BSD -* license. -* -* See README and COPYING for more details. -* -****************************************************************************/ -/** -* -* @file Crc8.c -* -* @brief This file contains the definition of the CRC-8 algorithim -* used by SMBus -* -* -*****************************************************************************/ - -/* ---- Include Files ----------------------------------------------------- */ - -#include "Config.h" - -#include "Crc8.h" - -#include "Log.h" - -/* ---- Public Variables -------------------------------------------------- */ -/* ---- Private Constants and Types --------------------------------------- */ -/* ---- Private Variables ------------------------------------------------- */ -/* ---- Private Function Prototypes --------------------------------------- */ -/* ---- Functions --------------------------------------------------------- */ - -/****************************************************************************/ -/** -* Calculates the CRC-8 used as part of SMBus. -* -* CRC-8 is defined to be x^8 + x^2 + x + 1 -* -* To use this function use the following template: -* -* crc = Crc8( crc, data ); -*/ - -#if 0 // Traditional implementation - -#define POLYNOMIAL (0x1070U << 3) - -unsigned char Crc8( unsigned char inCrc, unsigned char inData ) -{ - int i; - unsigned short data; - - data = inCrc ^ inData; - data <<= 8; - - for ( i = 0; i < 8; i++ ) - { - if (( data & 0x8000 ) != 0 ) - { - data = data ^ POLYNOMIAL; - } - data = data << 1; - } - -#if 0 -#if defined( LogBuf2 ) - LogBuf2( "Crc8: data:0x%02x crc:0x%02x\n", inData, (unsigned char)( data >> 8 )); -#else - - Log( "Crc8: data:0x%02x crc:0x%02x\n", inData, (unsigned char)( data >> 8 )); -#endif - -#endif - - - return (unsigned char)( data >> 8 ); - -} // Crc8 - -#else // Optimized for 8 bit CPUs (0x22 bytes on ATMega128 versus 0x30 for above version) - -unsigned char Crc8( unsigned char inCrc, unsigned char inData ) -{ - unsigned char i; - unsigned char data; - - data = inCrc ^ inData; - - for ( i = 0; i < 8; i++ ) - { - if (( data & 0x80 ) != 0 ) - { - data <<= 1; - data ^= 0x07; - } - else - { - data <<= 1; - } - } - -#if 0 -#if defined( LogBuf2 ) - LogBuf2( "Crc8: data:0x%02x crc:0x%02x\n", inData, data ); -#else - - Log( "Crc8: data:0x%02x crc:0x%02x\n", inData, data ); -#endif - -#endif - - - return data; - -} // Crc8 - -#endif - - -#if defined( CFG_CRC8BLOCK ) - -/****************************************************************************/ -/** -* Calculates the CRC-8 used as part of SMBus over a block of memory. -*/ - -uint8_t Crc8Block( uint8_t crc, uint8_t *data, uint8_t len ) -{ - while ( len > 0 ) - { - crc = Crc8( crc, *data++ ); - len--; - } - - return crc; - -} // Crc8Block - -#endif // CFG_CRC8BLOCK - -/** @} */ - - |