1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 00:35:39 +03:00

Additional crc functions

This commit is contained in:
Martin Budden 2017-08-12 10:21:41 +01:00
parent 981df1d544
commit 4ba8669cc3
12 changed files with 117 additions and 46 deletions

View file

@ -345,41 +345,3 @@ int16_t qMultiply(fix12_t q, int16_t input) {
fix12_t qConstruct(int16_t num, int16_t den) {
return (num << 12) / den;
}
uint16_t crc16_ccitt(uint16_t crc, unsigned char a)
{
crc ^= (uint16_t)a << 8;
for (int ii = 0; ii < 8; ++ii) {
if (crc & 0x8000) {
crc = (crc << 1) ^ 0x1021;
} else {
crc = crc << 1;
}
}
return crc;
}
uint16_t crc16_ccitt_update(uint16_t crc, const void *data, uint32_t length)
{
const uint8_t *p = (const uint8_t *)data;
const uint8_t *pend = p + length;
for (; p != pend; p++) {
crc = crc16_ccitt(crc, *p);
}
return crc;
}
uint8_t crc8_dvb_s2(uint8_t crc, unsigned char a)
{
crc ^= a;
for (int ii = 0; ii < 8; ++ii) {
if (crc & 0x80) {
crc = (crc << 1) ^ 0xD5;
} else {
crc = crc << 1;
}
}
return crc;
}