You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
396 B
18 lines
396 B
10 months ago
|
// CRC-CCIT Implementation based on work by Francesco Sacchi
|
||
|
|
||
|
#ifndef CRC_CCIT_H
|
||
|
#define CRC_CCIT_H
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#include <avr/pgmspace.h>
|
||
|
|
||
|
#define CRC_CCIT_INIT_VAL ((uint16_t)0xFFFF)
|
||
|
|
||
|
extern const uint16_t crc_ccit_table[256];
|
||
|
|
||
|
inline uint16_t update_crc_ccit(uint8_t c, uint16_t prev_crc) {
|
||
|
return (prev_crc >> 8) ^ pgm_read_word(&crc_ccit_table[(prev_crc ^ c) & 0xff]);
|
||
|
}
|
||
|
|
||
|
|
||
|
#endif
|