MicroAPRS/util/CRC-CCIT.h

24 lines
539 B
C
Raw Normal View History

2019-03-22 01:52:22 -06:00
// Copyright Mark Qvist / unsigned.io
// https://unsigned.io/microaprs
//
// Licensed under GPL-3.0. For full info,
// read the LICENSE file.
2014-12-02 17:10:06 -07:00
// 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