⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buildcrc.c

📁 Discription: This multi-master driver provides the software interface to the I2C Bus hardware of th
💻 C
字号:
		 /*******************************************************************
 *
 *    DESCRIPTION:	cardInfo.c - module for reading and writing EEPROM
 *
 *    AUTHOR:			 O. Kessel-Deynet
 *
 *      Lightmaze AG    
 *
 *******************************************************************/

/** include files **/
#include "Rtos.H"
#include "Types/Basetypes.h"
#include "I2c.h"

static OS_RSEMA crcSema;

void initCRC( void )
{
	OS_CREATERSEMA( &crcSema );
}

#if 0
#define CRC16_POLY_CCIT (0x8408)
/*
 * -------------------------------------
 * calculate CRC16 without CPU support
 * -------------------------------------
 */
word
buildSuccCRC(void *pData,word len,word crc) {
        int i,j;
	byte *buf = (byte *) pData;
        for(j=0;j<len;j++) {
                for (crc ^= buf[j], i = 8; i > 0; i--) {
                        crc = (crc >> 1) ^ (-(crc & 1) & CRC16_POLY_CCIT);
                }
        }
        return crc;
}
#else
/*
 * ----------------------------------------------
 * calculate CRC16 with CPU internal CRC unit 
 * ----------------------------------------------
 */
word buildSuccCRC( void* pData, word numData, word oldCrc)
{
	word i, ans;
	byte* bpData = (byte *) pData;

	OS_Use( &crcSema );
	CRCD = oldCrc;
	for( i=0; i<numData;  i++)
		CRCIN = *bpData++;

	ans = CRCD;
	OS_Unuse( &crcSema );
	return ans;
}
#endif

word buildCRC( void* pData, word numData )
{
	return buildSuccCRC( pData, numData, INITIAL_CRC );
}

word buildSuccCRC_far( _far void* pData, word numData, word oldCrc)
{
	word i, ans;
	_far byte* bpData = (_far byte *) pData;

	OS_Use( &crcSema );
	CRCD = oldCrc;
	for( i=0; i<numData;  i++)
		CRCIN = *bpData++;

	ans = CRCD;
	OS_Unuse( &crcSema );
	return ans;
}

word buildCRC_far( _far void* pData, word numData )
{
	return buildSuccCRC_far( pData, numData, INITIAL_CRC );
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -