Files
E502_ADC_BF_PC_companion/x502api-1.1.34/lib/crc/fast_crc.h

76 lines
3.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*================================================================================================*
* Контрольные суммы CRC-16 и CRC-32 с повышенной скоростью вычислений
*================================================================================================*/
#ifndef FAST_CRC_H_
#define FAST_CRC_H_
#include "fast_crc_cfg.h"
#ifdef __cplusplus
extern "C" {
#endif
/*================================================================================================*/
/* Вычисление CRC16 (CCITT, 0x1021) */
#if FASTCRC_CRC16_ADD8
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Add8 /* Добавление байта */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
FASTCRC_U8_TYPE byte /* (вх) - данные */
);
/*------------------------------------------------------------------------------------------------*/
#endif
#if FASTCRC_CRC16_ADD16
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Add16 /* Добавление 16-битного слова (младший байт первым) */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
FASTCRC_U16_TYPE word /* (вх) - данные */
);
/*------------------------------------------------------------------------------------------------*/
#endif
#if FASTCRC_CRC16_BLOCK8
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Block8 /* Вычисление CRC16 блока байтов */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
const FASTCRC_U8_TYPE* pdata, /* (вх) - данные */
FASTCRC_SIZE_TYPE num_bytes /* (вх) - размер данных */
);
/*------------------------------------------------------------------------------------------------*/
#endif
#if FASTCRC_CRC16_BLOCK16
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Block16 /* Вычисление CRC16 блока 16-битных слов */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
const FASTCRC_U16_TYPE* pdata, /* (вх) - данные */
FASTCRC_SIZE_TYPE num_words /* (вх) - размер данных */
);
/*------------------------------------------------------------------------------------------------*/
#endif
/* Вычисление CRC32 (CCITT) */
#if FASTCRC_CRC32_BLOCK8
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U32_TYPE CRC32_Block8 /* Вычисление CRC32 блока байтов */
(
FASTCRC_U32_TYPE crc, /* (вх) - начальное значение (при первом блоке 0) */
const FASTCRC_U8_TYPE* pdata, /* (вх) - данные */
FASTCRC_SIZE_TYPE num_bytes /* (вх) - размер данных */
);
/*------------------------------------------------------------------------------------------------*/
#endif
/*================================================================================================*/
#ifdef __cplusplus
}
#endif
#endif /* FAST_CRC_H_ */